'1.0',
'info' => ['style' => 'RPC', 'product' => 'live', 'version' => '2016-11-01'],
'directories' => [
[
'children' => [
'AddLiveDomain', 'AddLiveDomainPlayMapping', 'DeleteLiveDomainPlayMapping', 'AddLiveDomainMapping', 'DeleteLiveDomain', 'DeleteLiveDomainMapping', 'DescribeLiveDomainMapping', 'DescribeLiveDomainDetail', 'StartLiveDomain', 'StopLiveDomain', 'DescribeLiveCertificateDetail', 'DescribeLiveDomainCertificateInfo', 'DescribeLiveCertificateList', 'SetLiveDomainCertificate', 'BatchDeleteLiveDomainConfigs', 'BatchSetLiveDomainConfigs', 'DescribeLiveDomainConfigs', 'DescribeLiveDomainByCertificate', 'DescribeLiveHttpsDomainList', 'ModifyLiveDomainSchdmByProperty',
'DescribeLiveUserTags', 'VerifyLiveDomainOwner', 'DescribeLiveVerifyContent', 'ChangeLiveDomainResourceGroup',
],
'type' => 'directory',
'title' => 'Domain management',
],
[
'children' => ['SetLiveStreamPreloadTasks', 'DescribeLiveStreamPreloadTasks', 'HotLiveRtcStream'],
'type' => 'directory',
'title' => 'Live stream preloading',
],
[
'children' => ['AddLivePullStreamInfoConfig', 'DescribeLivePullStreamConfig', 'DeleteLivePullStreamInfoConfig', 'SetLiveLazyPullStreamInfoConfig', 'DescribeLiveLazyPullStreamConfig', 'DeleteLiveLazyPullStreamInfoConfig', 'UpdateLivePullStreamInfoConfig'],
'type' => 'directory',
'title' => 'Live stream pulling',
],
[
'children' => ['DescribeLiveStreamsBlockList', 'DescribeLiveStreamsControlHistory', 'DescribeLiveStreamBitRateData', 'DescribeLiveStreamsOnlineList', 'DescribeLiveStreamsPublishList', 'ForbidLiveStream', 'ResumeLiveStream', 'DescribeLiveDomainOnlineUserNum', 'DescribeLiveDomainFrameRateAndBitRateData', 'DescribeLiveDomainLimit', 'DescribeLiveStreamState'],
'type' => 'directory',
'title' => 'Live stream management',
],
[
'children' => ['DeleteLiveStreamMerge', 'AddLiveStreamMerge', 'DescribeLiveStreamMerge'],
'type' => 'directory',
'title' => 'Primary/secondary stream merging',
],
[
'children' => ['DeleteLiveDelayConfig', 'UpdateLiveDelayConfig', 'DescribeLiveDelayConfig', 'ListLiveDelayConfig', 'CreateLiveDelayConfig'],
'type' => 'directory',
'title' => 'Stream delay',
],
[
'children' => ['SetLiveStreamsNotifyUrlConfig', 'DescribeLiveStreamsNotifyUrlConfig', 'DeleteLiveStreamsNotifyUrlConfig', 'DescribeLiveStreamsNotifyRecords'],
'type' => 'directory',
'title' => 'Ingest callback',
],
[
'children' => ['DeleteLiveStreamBlock', 'SetLiveStreamBlock', 'DescribeStreamLocationBlock'],
'type' => 'directory',
'title' => 'Live stream security',
],
[
'children' => ['DescribeLiveShiftConfigs', 'OpenLiveShift', 'CloseLiveShift'],
'type' => 'directory',
'title' => 'Time shifting',
],
[
'children' => ['AddLiveStreamTranscode', 'AddCustomLiveStreamTranscode', 'AddRtsLiveStreamTranscode', 'UpdateCustomLiveStreamTranscode', 'UpdateLiveStreamTranscode', 'UpdateRtsLiveStreamTranscode', 'DeleteLiveStreamTranscode', 'DescribeLiveStreamTranscodeInfo', 'AddTrancodeSEI'],
'type' => 'directory',
'title' => 'Live stream transcoding',
],
[
'children' => ['AddLiveRecordVodConfig', 'UpdateLiveRecordVodConfig', 'DeleteLiveRecordVodConfig', 'DescribeLiveRecordVodConfigs'],
'type' => 'directory',
'title' => 'Live recording to VOD',
],
[
'children' => ['AddLiveAppRecordConfig', 'RealTimeRecordCommand', 'UpdateLiveAppRecordConfig', 'DeleteLiveAppRecordConfig', 'DeleteLiveStreamRecordIndexFiles', 'DescribeLiveRecordConfig', 'DescribeLiveStreamRecordContent', 'CreateLiveStreamRecordIndexFiles', 'DescribeLiveStreamRecordIndexFile', 'DescribeLiveStreamRecordIndexFiles', 'AddLiveRecordNotifyConfig', 'DeleteLiveRecordNotifyConfig', 'DescribeLiveRecordNotifyConfig', 'UpdateLiveRecordNotifyConfig', 'DescribeLiveRecordNotifyRecords'],
'type' => 'directory',
'title' => 'Live recording to OSS',
],
[
'children' => ['AddLiveAppSnapshotConfig', 'DeleteLiveAppSnapshotConfig', 'DeleteSnapshotFiles', 'DescribeLiveSnapshotConfig', 'UpdateLiveAppSnapshotConfig', 'DescribeLiveStreamSnapshotInfo', 'DescribeLiveSnapshotNotifyConfig', 'DeleteLiveSnapshotNotifyConfig', 'AddLiveSnapshotNotifyConfig', 'UpdateLiveSnapshotNotifyConfig', 'SetSnapshotCallbackAuth', 'QuerySnapshotCallbackAuth', 'DeleteSnapshotCallbackAuth'],
'type' => 'directory',
'title' => 'Live stream snapshot',
],
[
'children' => ['AddLivePackageConfig', 'UpdateLivePackageConfig', 'DescribeLivePackageConfig', 'DeleteLivePackageConfig'],
'type' => 'directory',
'title' => 'Live stream packaging',
],
[
'children' => ['AddLiveSnapshotDetectPornConfig', 'AddLiveDetectNotifyConfig', 'DescribeLiveSnapshotDetectPornConfig', 'DescribeLiveDetectNotifyConfig', 'UpdateLiveSnapshotDetectPornConfig', 'UpdateLiveDetectNotifyConfig', 'DeleteLiveSnapshotDetectPornConfig', 'DeleteLiveDetectNotifyConfig', 'AddLiveAudioAuditConfig', 'AddLiveAudioAuditNotifyConfig', 'DeleteLiveAudioAuditConfig', 'DeleteLiveAudioAuditNotifyConfig', 'UpdateLiveAudioAuditNotifyConfig', 'UpdateLiveAudioAuditConfig', 'DescribeLiveAudioAuditConfig', 'DescribeLiveAudioAuditNotifyConfig'],
'type' => 'directory',
'title' => 'Live stream content moderation',
],
[
'children' => ['CreateLivePrivateLine', 'DeleteLivePrivateLine', 'DescribeLivePrivateLineAreas', 'DescribeLivePrivateLineAvailGA'],
'type' => 'directory',
'title' => 'Global acceleration',
],
[
'children' => ['DescribeLiveStreamDelayConfig', 'SetLiveStreamDelayConfig'],
'type' => 'directory',
'title' => 'Live streaming latency',
],
[
'children' => [
'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' => 'Monitoring and statistics',
],
[
'children' => ['DescribeLiveDomainRecordUsageData', 'DescribeLiveDomainSnapshotData', 'DescribeLiveDetectPornData', 'DescribeDomainUsageData', 'DescribeLivePushProxyUsageData', 'DescribeLiveRealtimeDeliveryAcc', 'DescribeLiveDomainTimeShiftData', 'DescribeLiveDomainStreamTranscodeData', 'DescribeLiveProducerUsageData', 'DescribeLiveDomainMonitoringUsageData', 'DescribeLiveDelayedStreamingUsage', 'DescribeLiveGrtnDuration', 'DescribeLiveDrmUsageData', 'DescribeLiveRtcRecordUsageData'],
'type' => 'directory',
'title' => 'Usage query',
],
[
'children' => [
[
'children' => ['CreateCaster', 'SetCasterConfig', 'DescribeCasterConfig', 'DescribeCasters', 'DescribeCasterStreamUrl', 'CopyCaster', 'StartCaster', 'StopCaster', 'DeleteCaster', 'RestartCaster', 'UpdateCasterResourceGroup'],
'type' => 'directory',
'title' => 'Production studio management',
],
[
'children' => ['AddCasterVideoResource', 'DeleteCasterVideoResource', 'ModifyCasterVideoResource', 'DescribeCasterVideoResources'],
'type' => 'directory',
'title' => 'Input source media management',
],
[
'children' => ['AddCasterLayout', 'DeleteCasterLayout', 'ModifyCasterLayout', 'DescribeCasterLayouts'],
'type' => 'directory',
'title' => 'Layout management',
],
[
'children' => ['AddCasterComponent', 'DeleteCasterComponent', 'ModifyCasterComponent', 'DescribeCasterComponents'],
'type' => 'directory',
'title' => 'Component management',
],
[
'children' => ['CopyCasterSceneConfig', 'DeleteCasterSceneConfig', 'UpdateCasterSceneConfig', 'SetCasterSceneConfig', 'DescribeCasterScenes', 'UpdateCasterSceneAudio', 'DescribeCasterSceneAudio', 'StartCasterScene', 'StopCasterScene'],
'type' => 'directory',
'title' => 'Scene and audio management',
],
[
'children' => ['SetCasterChannel', 'DescribeCasterChannels'],
'type' => 'directory',
'title' => 'Channel management',
],
[
'children' => ['EffectCasterUrgent', 'EffectCasterVideoResource'],
'type' => 'directory',
'title' => 'Standby video management',
],
[
'children' => ['AddShowIntoShowList', 'RemoveShowFromShowList', 'ModifyShowList', 'DescribeShowList', 'PlayChoosenShow', 'InitializeAutoShowListTask', 'DescribeAutoShowListTasks', 'EditShowAndReplace', 'GetEditingJobInfo', 'SetShowListBackground'],
'type' => 'directory',
'title' => 'New playlist mode production studio management',
],
[
'children' => ['AddStudioLayout', 'DeleteStudioLayout', 'ModifyStudioLayout', 'DescribeStudioLayouts'],
'type' => 'directory',
'title' => 'Virtual studio management',
],
[
'children' => ['AddCasterEpisode', 'DeleteCasterEpisode', 'ModifyCasterEpisode', 'AddCasterEpisodeGroup', 'DeleteCasterEpisodeGroup', 'AddCasterEpisodeGroupContent', 'AddCasterProgram', 'DescribeCasterProgram', 'ModifyCasterProgram', 'DeleteCasterProgram', 'AddPlaylistItems', 'DeletePlaylistItems', 'ListPlaylistItems', 'EditPlaylist', 'DeletePlaylist', 'ListPlaylist', 'StartPlaylist', 'StopPlaylist'],
'type' => 'directory',
'title' => '(Legacy) playlist mode production studio',
],
],
'type' => 'directory',
'title' => 'Cloud production studio',
],
[
'children' => ['CreateMixStream', 'UpdateMixStream', 'DescribeMixStreamList', 'DeleteMixStream', 'GetAllCustomTemplates'],
'type' => 'directory',
'title' => 'Cloud stream mixing',
],
[
'children' => ['AddLiveStreamWatermark', 'DeleteLiveStreamWatermark', 'UpdateLiveStreamWatermark', 'DynamicUpdateWaterMarkStreamRule', 'DescribeLiveStreamWatermarks', 'AddLiveStreamWatermarkRule', 'DeleteLiveStreamWatermarkRule', 'UpdateLiveStreamWatermarkRule', 'DescribeLiveStreamWatermarkRules'],
'type' => 'directory',
'title' => 'Live stream watermark',
],
[
'children' => ['ListEdgeTranscodeTemplate', 'GetEdgeTranscodeTemplate', 'CreateEdgeTranscodeJob', 'DeleteEdgeTranscodeJob', 'ListEdgeTranscodeJob', 'GetEdgeTranscodeJob', 'UpdateEdgeTranscodeJob', 'StartEdgeTranscodeJob', 'StopEdgeTranscodeJob'],
'type' => 'directory',
'title' => 'Edge transcoding',
],
[
'children' => ['EnableLiveRealtimeLogDelivery', 'DisableLiveRealtimeLogDelivery', 'ModifyLiveRealtimeLogDelivery', 'CreateLiveRealTimeLogDelivery', 'DeleteLiveRealtimeLogDelivery', 'DescribeLiveDomainRealtimeLogDelivery', 'ListLiveRealtimeLogDelivery', 'ListLiveRealtimeLogDeliveryDomains', 'ListLiveRealtimeLogDeliveryInfos', 'DescribeLivePushProxyLog', 'DeleteLiveRealTimeLogLogstore', 'DescribeLiveDomainLog'],
'type' => 'directory',
'title' => 'Live stream logs',
],
[
'children' => ['CreateLiveStreamMonitor', 'UpdateLiveStreamMonitor', 'DescribeLiveStreamMonitorList', 'StartLiveStreamMonitor', 'StopLiveStreamMonitor', 'DeleteLiveStreamMonitor'],
'type' => 'directory',
'title' => 'Live stream monitoring',
],
[
'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',
],
'type' => 'directory',
'title' => 'Interactive messaging server API',
],
[
'children' => ['CreateLiveMessageApp', 'ModifyLiveMessageGroup', 'ModifyLiveMessageGroupBand', 'BanLiveMessageGroup', 'AddLiveMessageGroupBand', 'RemoveLiveMessageGroupBand', 'SendLiveMessageGroup'],
'type' => 'directory',
'title' => 'Interactive messaging (new)',
],
[
'children' => [
[
'children' => ['StartRtcCloudRecording', 'UpdateRtcCloudRecording', 'StopRtcCloudRecording', 'DescribeRtcCloudRecordingFiles'],
'type' => 'directory',
'title' => 'Cloud recording',
],
[
'children' => ['CreateRTCWhipStreamAddress', 'CreateRoomRealTimeStreamAddress', 'ListRTCLiveRooms'],
'type' => 'directory',
'title' => 'Channel management',
],
[
'children' => ['StartLiveMPUTask', 'UpdateLiveMPUTask', 'StopLiveMPUTask', 'ListRtcMPUTaskDetail', 'SetLiveMpuTaskSei'],
'type' => 'directory',
'title' => 'Relay to CDN',
],
[
'children' => ['CreateEventSub', 'UpdateEventSub', 'CreateRtcMPUEventSub', 'UpdateRtcMPUEventSub', 'DeleteRtcMPUEventSub', 'DescribeRtcMPUEventSub', 'ListRtcMPUEventSubRecord'],
'type' => 'directory',
'title' => 'Event callback',
],
[
'children' => ['DescribeLiveInteractionMetricData'],
'type' => 'directory',
'title' => 'Quality data',
],
],
'type' => 'directory',
'title' => 'ApsaraVideo real-time communication',
],
[
'children' => ['DeleteLiveAIProduceRules', 'DescribeLiveAIProduceRules', 'UpdateLiveAIProduceRules', 'AddLiveAIProduceRules', 'AddLiveAISubtitle', 'DeleteLiveAISubtitle', 'UpdateLiveAISubtitle', 'DescribeLiveAISubtitle'],
'type' => 'directory',
'title' => 'Real-time subtitles',
],
[
'children' => ['CreateLiveAIStudio', 'DeleteLiveAIStudio', 'ModifyLiveAIStudio', 'DescribeLiveAIStudio'],
'type' => 'directory',
'title' => 'Virtual background',
],
[
'children' => ['CreateLivePullToPush', 'UpdateLivePullToPush', 'DeleteLivePullToPush', 'DescribeLivePullToPush', 'DescribeLivePullToPushList', 'StopLivePullToPush', 'RestartLivePullToPush'],
'type' => 'directory',
'title' => 'Stream pulling and relaying',
],
[
'children' => ['SetLiveDomainMultiStreamOptimalMode', 'SetLiveDomainMultiStreamMaster', 'DescribeLiveDomainMultiStreamConfig', 'QueryLiveDomainMultiStreamList'],
'type' => 'directory',
'title' => 'Dual-stream disaster recovery',
],
[
'children' => ['DescribeLiveDomainStagingConfig', 'PublishLiveStagingConfigToProduction', 'RollbackLiveStagingConfig', 'SetLiveDomainStagingConfig', 'DeleteLiveSpecificStagingConfig'],
'type' => 'directory',
'title' => 'Edge scripting',
],
[
'children' => ['DescribeLiveIpInfo', 'DescribeLiveStreamAuthChecking'],
'type' => 'directory',
'title' => 'Toolbox',
],
[
'children' => ['TagLiveResources', 'UnTagLiveResources', 'ListLiveTagResources', 'DescribeLiveTagResources'],
'type' => 'directory',
'title' => 'Tag management',
],
[
'children' => [
[
'children' => ['AddLiveCenterTransfer', 'UpdateLiveCenterTransfer', 'DescribeLiveCenterTransfer', 'DeleteLiveCenterTransfer'],
'type' => 'directory',
'title' => 'Live center relay',
],
[
'children' => ['CreateRtcAsrTask', 'QueryRtcAsrTasks', 'StopRtcAsrTask', 'DeleteRtcAsrTask'],
'type' => 'directory',
'title' => 'Real-time speech-to-text/translation',
],
[
'children' => ['DescribeLiveEdgeTransfer', 'DeleteLiveEdgeTransfer', 'SetLiveEdgeTransfer'],
'type' => 'directory',
'title' => 'Edge relay',
],
'DescribeLiveUserBillPrediction',
'DescribeRTSNativeSDKFirstFrameCost',
'DescribeRTSNativeSDKPlayTime',
'DescribeRTSNativeSDKPlayFailStatus',
'DescribeRTSNativeSDKFirstFrameDelay',
'DescribeRTSNativeSDKVvData',
'DescribeLiveRealtimeLogAuthorized',
'DescribeUpBpsPeakData',
'DescribeUpBpsPeakOfLine',
'DescribeUpPeakPublishStreamData',
'DescribeDomainWithIntegrity',
'DescribeToutiaoLivePlay',
'DescribeToutiaoLivePublish',
'DescribeRtcCloudTranscode',
'StartRtcCloudTranscode',
'StopRtcCloudTranscode',
'CheckLiveMessageUsersInGroup',
'CheckLiveMessageUsersOnline',
'CreateCustomTemplate',
'CreateLiveMessageGroup',
'DeleteChannel',
'DeleteCustomTemplate',
'DeleteEventSub',
'DeleteLiveMessageGroup',
'DeleteLiveMessageGroupMessage',
'DeleteLiveMessageUserMessage',
'DescribeChannelParticipants',
'DescribeChannelUsers',
'DescribeLiveMessageApp',
'DescribeLiveMessageGroup',
'DescribeLiveMessageGroupBand',
'DescribeLiveUserDomains',
'DescribeMeterLiveBypassDuration',
'GetCustomTemplate',
'KickLiveMessageGroupUser',
'ListEventSub',
'ListEventSubEvent',
'ListLiveMessageApps',
'ListLiveMessageGroupByPage',
'ListLiveMessageGroupMessages',
'ListLiveMessageGroupUsers',
'ListLiveMessageGroups',
'ModifyLiveMessageAppAudit',
'ModifyLiveMessageAppCallback',
'ModifyLiveMessageAppDisable',
'ModifyLiveMessageUserInfo',
'RecoverLiveMessageDeletedGroup',
'RemoveTerminals',
'SendLiveMessageUser',
'SetLiveDomainMultiStreamConfig',
'UnbanLiveMessageGroup',
],
'type' => 'directory',
'title' => 'Others',
],
],
'components' => [
'schemas' => [],
],
'apis' => [
'AddCasterComponent' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The ID of the region.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you create the production studio by calling the [CreateCaster](~~2848009~~) operation, find the ID in the CasterId parameter of the response.'."\n"
."\n"
.'- If you create the production studio in the LIVE console, go to the **LIVE Console** > **Production Studio** > **Cloud Production Studio** page to view the ID.'."\n"
."\n"
.'> The name of the production studio in the list on the Cloud Production Studio page is the production studio ID.', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', 'title' => ''],
],
[
'name' => 'ComponentName',
'in' => 'query',
'schema' => ['description' => 'The name of the component. The default value is the component ID.', 'type' => 'string', 'required' => false, 'example' => 'text01', 'title' => ''],
],
[
'name' => 'LocationId',
'in' => 'query',
'schema' => ['description' => 'Specifies the position of the component. Each position can hold only one component. The format must be RC01 to RC99.'."\n"
."\n"
.'> If the component type is caption, this parameter specifies the location of the referenced video source.', 'type' => 'string', 'required' => true, 'example' => 'RC01', 'title' => ''],
],
[
'name' => 'ComponentType',
'in' => 'query',
'schema' => ['description' => 'The type of component. Valid values:'."\n"
."\n"
.'- **text**: A text component. If you set this parameter to text, you must also set the TextLayerContent parameter.'."\n"
."\n"
.'- **image**: An image component. If you set this parameter to image, you must also set the ImageLayerContent parameter.'."\n"
."\n"
.'- **caption**: A caption component. If you set this parameter to caption, you must also set the CaptionLayerContent parameter.', 'type' => 'string', 'required' => true, 'example' => 'text', 'title' => ''],
],
[
'name' => 'Effect',
'in' => 'query',
'schema' => ['description' => 'The display effect of the component. Valid values:'."\n"
."\n"
.'- **none** (default): No effect.'."\n"
."\n"
.'- **animateH**: Scrolls horizontally.'."\n"
."\n"
.'- **animateV**: Scrolls vertically.', 'type' => 'string', 'required' => false, 'example' => 'animateH', 'title' => ''],
],
[
'name' => 'ComponentLayer',
'in' => 'query',
'schema' => ['description' => 'The size, layout, and other information about the component layer. The elements are described as follows:'."\n"
."\n"
.'- **HeightNormalized**: The normalized height.'."\n"
."\n"
.'- **WidthNormalized**: The normalized width.'."\n"
."\n"
.'- **PositionNormalized**: The normalized position of the layer element.'."\n"
."\n"
.'- **PositionRefer**: The reference coordinates for the element\'s position.'."\n"
."\n"
.'The value is a JSON-formatted string. Parameter names must be in upper-camel case.', 'type' => 'string', 'required' => true, 'example' => '{"HeightNormalized":"1","PositionRefer":"topRight","WidthNormalized":"0","PositionNormalized":["0.1","0.2"]}', 'title' => ''],
],
[
'name' => 'LayerOrder',
'in' => 'query',
'schema' => ['description' => 'The layer order of the component.'."\n"
."\n"
.'- cover: The component is in the foreground.'."\n"
."\n"
.'- background: The component is in the background.', 'type' => 'string', 'required' => false, 'example' => 'cover', 'title' => ''],
],
[
'name' => 'TextLayerContent',
'in' => 'query',
'schema' => ['description' => 'The properties of the layer element. The properties are described as follows:'."\n"
.'>This parameter is required only when ComponentType is set to text.>'."\n"
."\n"
.'- **SizeNormalized**: The normalized font size. This value is calculated as font size / output height. The value must be in the `[0,1]` range. If the font size calculated from the normalized value is greater than 1024, the font size is set to 1024.'."\n"
."\n"
.'- **BorderWidthNormalized**: The normalized width of the text border. This value is calculated based on the font size: BorderWidth / FontSize. The value must be in the `[0,1]` range. If the width calculated from the normalized value is greater than 16, the width is set to 16. The default value is 0.'."\n"
."\n"
.'- **FontName**: The font name. For valid values, see **Production studio fonts**. The default font is KaiTi.'."\n"
."\n"
.'- **BorderColor**: The color of the text border. The value must be a hexadecimal color code that ranges from 0x000000 to 0xffffff. The default value is an empty string (""), which indicates that no border color is set.'."\n"
."\n"
.'- **Text**: The text content. The default value is an empty string ("").'."\n"
."\n"
.'- **Color**: The text color. The default value is 0xff0000, which represents red.'."\n"
."\n"
.'The value must be a JSON-formatted string. Parameter names must be in upper-camel case.', 'type' => 'string', 'required' => false, 'example' => '{"BorderWidthNormalized":"1","SizeNormalized":"0.2","Color":"0x000000","FontName":"KaiTi","BorderColor":"0x000000","Text":"hello world!"}', 'title' => ''],
],
[
'name' => 'ImageLayerContent',
'in' => 'query',
'schema' => ['description' => 'The properties of the layer element. The properties are described as follows:'."\n"
."\n"
.'>'."\n"
."\n"
.'This parameter is required when ComponentType is set to image.'."\n"
."\n"
.'>'."\n"
."\n"
.'MaterialId: The ID of the media asset. The name that you specify when you upload a media asset is used as the ID of the media asset.'."\n"
."\n"
.'The value must be a JSON-formatted string. Parameter names must be in upper-camel case.', 'type' => 'string', 'required' => false, 'example' => '{"MaterialId":"6cf724c6ebfd4a59b5b3cec6f10d****"}', 'title' => ''],
],
[
'name' => 'CaptionLayerContent',
'in' => 'query',
'schema' => ['description' => 'The properties of the layer element. The properties are described as follows:'."\n"
.'>This parameter is required when ComponentType is set to caption.>'."\n"
."\n"
.'- **SizeNormalized**: The normalized font size. This value is calculated as font size / output height. The value must be in the `[0,1]` range and accurate to two decimal places. If the font size calculated from the normalized value is greater than **1024**, the font size is set to **1024**.'."\n"
."\n"
.'- **BorderWidthNormalized**: The normalized width of the text border. This value is calculated based on the font size: BorderWidth / FontSize. The value must be in the `[0,1]` range and accurate to two decimal places. If the width calculated from the normalized value is greater than **16**, the width is set to **16**. The default value is **0**.'."\n"
."\n"
.'- **FontName**: The font name. For valid values, see **Production studio fonts**. The default font is KaiTi.'."\n"
."\n"
.'- **BorderColor**: The color of the text border. The value must be a hexadecimal color code that ranges from 0x000000 to 0xffffff. The default value is an empty string (""), which indicates that no border color is set.'."\n"
."\n"
.'- **LocationId**: The channel ID of the translation source.'."\n"
."\n"
.'- **SourceLan**: The original audio language of the video source. Valid values: en (English), cn (Chinese), es (Spanish), and ru (Russian). The default value is cn.'."\n"
."\n"
.'- **TargetLan**: The target audio language for the video source. If you do not set this parameter, only speech recognition is performed. If you set this parameter, the audio is translated. Valid values: en (English), cn (Chinese), es (Spanish), and ru (Russian).'."\n"
."\n"
.'- **ShowSourceLan**: Specifies whether to display the source language. Valid values: true and false. The default value is false.'."\n"
."\n"
.'- **Truncation**: Specifies whether captions can be truncated. Valid values: true and false. The default value is false.'."\n"
."\n"
.'- **SourceLanPerLineWordCount**: The maximum number of words per line for the source language captions. The default value is 20.'."\n"
."\n"
.'- **TargetLanPerLineWordCount**: The maximum number of words per line for the target language captions. The default value is 20.'."\n"
."\n"
.'- **SourceLanReservePages**: The number of lines to reserve for the source language captions. This parameter takes effect only when Truncation is set to true. The default value is 2.'."\n"
."\n"
.'- **TargetLanReservePages**: The number of lines to reserve for the target language captions. This parameter takes effect only when Truncation is set to true. The default value is 2.'."\n"
."\n"
.'The value must be a JSON-formatted string. Parameter names must be in upper-camel case.', 'type' => 'string', 'required' => false, 'example' => '{"BorderWidthNormalized":0.01,"SizeNormalized":0.05,"Color":"0x000000","LocationId":"RV01","SourceLan":"cn","FontName":"KaiTi","BorderColor":"0xffffff"}', 'title' => ''],
],
[
'name' => 'HtmlLayerContent',
'in' => 'query',
'schema' => ['description' => 'The configuration of the H5 component.', 'type' => 'string', 'required' => false, 'example' => '{"htmlUrl":http://caster.example.com}', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'ComponentId' => ['description' => 'The component ID. Use this ID to query, modify, or delete the component.', 'type' => 'string', 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'InvalidPositionNormalized.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter PositionNormalized is invalid, please check and try again.'],
['errorCode' => 'DuplicateLocationID', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter LocationID duplicate. Check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'CanvasNotExist', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Canvas does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'AddCasterComponent',
'summary' => 'Adds a component to a production studio.',
'description' => 'Before calling this operation, create a production studio and review its layout list. This operation adds components such as images, text, and captions. For more information about creating a production studio using an API call, see [Create a production studio](~~2848009~~).'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 10. If you exceed this limit, API calls are throttled. This may affect your business. Plan your calls accordingly.',
'requestParamsDescription' => '## Production studio fonts'."\n"
."\n"
.'| Font | FontName value |'."\n"
.'| ------------------------- | ---------------------- |'."\n"
.'| KaiTi | KaiTi |'."\n"
.'| Alibaba PuHuiTi - Regular | AlibabaPuHuiTi-Regular |'."\n"
.'| Alibaba PuHuiTi - Bold | AlibabaPuHuiTi-Bold |'."\n"
.'| Alibaba PuHuiTi - Light | AlibabaPuHuiTi-Light |'."\n"
.'| Source Han Sans - Regular | NotoSansHans-Regular |'."\n"
.'| Source Han Sans - Bold | NotoSansHans-Bold |'."\n"
.'| Source Han Sans - Light | NotoSansHans-Light |',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddCasterComponent'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddCasterComponent',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"ComponentId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]',
],
'AddCasterEpisode' => [
'summary' => 'Adds an episode to a production studio.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'ComponentId',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'A list of component IDs. The components are layered from bottom to top in the specified order.'."\n"
."\n"
.'If you add a component by calling the [AddCasterComponent](~~2848030~~) operation, check the value of the ComponentId parameter that is returned.'."\n"
."\n"
.'- This parameter is required and applies only when the resource type is **Component**.'."\n"
."\n"
.'- This parameter is optional when the resource type is **Resource**. If you specify this parameter, the component is attached to the video source and they are switched synchronously.'."\n"
."\n"
.'> N specifies the sequence number of a component ID. For example, **ComponentId.1** specifies the first component ID and **ComponentId.2** specifies the second component ID.',
'type' => 'array',
'items' => ['description' => 'The component ID.', 'type' => 'string', 'required' => false, 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', 'title' => ''],
'required' => false,
'example' => '["a2b8e671-2fe5-4642-a2ec-bf93880e****"]',
'maxItems' => 10,
'title' => '',
],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you create a production studio by calling the [CreateCaster](~~2848009~~) operation, check the value of the CasterId parameter that is returned.'."\n"
."\n"
.'- If you create a production studio in the LIVE console, go to the **LIVE Console**> **Production Studio** > **Production Studio** page to view the ID.'."\n"
."\n"
.'> The name of the production studio in the production studio list serves as the production studio ID.', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', 'title' => ''],
],
[
'name' => 'EpisodeType',
'in' => 'query',
'schema' => ['description' => 'The node type. Valid values:'."\n"
."\n"
.'- **Resource**: A video source. If you set this parameter to Resource, you must also specify the ResourceId and SwitchType parameters.'."\n"
."\n"
.'- **Component**: A component.', 'type' => 'string', 'required' => true, 'example' => 'Resource', 'title' => ''],
],
[
'name' => 'EpisodeName',
'in' => 'query',
'schema' => ['description' => 'The name of the episode.', 'type' => 'string', 'required' => false, 'example' => 'episode_1', 'title' => ''],
],
[
'name' => 'ResourceId',
'in' => 'query',
'schema' => ['description' => 'The ID of the video source.'."\n"
."\n"
.'>'."\n"
."\n"
.'This parameter is required and applies only when EpisodeType is set to Resource.'."\n"
."\n"
.'>'."\n"
."\n"
.'If you add a video source by calling the [AddCasterVideoResource](~~2848020~~) operation, check the value of the ResourceId parameter that is returned.', 'type' => 'string', 'required' => false, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.', 'type' => 'string', 'required' => true, 'example' => '2016-06-29T08:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.', 'type' => 'string', 'required' => true, 'example' => '2016-06-29T09:10:00Z', 'title' => ''],
],
[
'name' => 'SwitchType',
'in' => 'query',
'schema' => ['description' => 'The switch policy. Valid values:'."\n"
."\n"
.'>'."\n"
."\n"
.'This parameter applies only when EpisodeType is set to Resource.'."\n"
."\n"
.'>'."\n"
."\n"
.'- **TimeFirst**: Time first.'."\n"
."\n"
.'- **ContentFirst**: Content first.'."\n"
."\n"
.'> For more information about video sources, see [Add a video source](~~66094~~).', 'type' => 'string', 'required' => true, 'example' => 'TimeFirst', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'EpisodeId' => ['description' => 'The ID of the episode. This ID can be used as a request parameter to query the episode list, modify an episode, or delete an episode.', 'type' => 'string', 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'SwitchTypeInvalid.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter SwitchType is invalid, please check and try again.'],
['errorCode' => 'IncorrectStartTime', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter StartTime is invalid, please check and try again.'],
['errorCode' => 'IncorrectEndTime', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter EndTime is invalid, please check and try again.'],
['errorCode' => 'EpisodeConflict.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'There is a conflict with the program time, please check and try again.'],
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidResource.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The resource does not exist. Please check and try again.'],
['errorCode' => 'InvalidComponent.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The component to be operated does not exist. Please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'AddCasterEpisode',
'description' => 'Before you call this operation, obtain the ID of the production studio. The ID is generated when the production studio is created.'."\n"
."\n"
.'- If you create a production studio by calling the [CreateCaster](~~2848009~~) operation, check the value of the returned CasterId parameter.'."\n"
."\n"
.'- If you create a production studio in the LIVE console, go to **LIVE Console** > **Production Studio** > **Production Studio** to view the name of the production studio.'."\n"
."\n"
.'> The name of the production studio in the production studio list serves as the production studio ID.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 4 for each account. API calls that exceed this limit are throttled, which may affect your business. Plan your calls accordingly.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddCasterEpisode',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"EpisodeId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","type":"json"}]',
],
'AddCasterEpisodeGroup' => [
'summary' => 'Adds a program list to a production studio.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'Item',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The list of programs.',
'type' => 'array',
'items' => [
'description' => 'The program object.',
'type' => 'object',
'properties' => [
'ItemName' => ['description' => 'The name of the program.', 'type' => 'string', 'required' => false, 'example' => 'Program 1', 'title' => ''],
'VodUrl' => ['description' => 'The URL of the video-on-demand (VOD) file.'."\n"
."\n"
.'If you call the [DescribeCasterVideoResources](~~2848023~~) operation to query the video sources of the production studio, use the value of the returned VodUrl parameter.'."\n"
."\n"
.'> This parameter is used only when the resource is a video file that is not imported to the Material Library. Supported formats: MP4, FLV, and TS.', 'type' => 'string', 'required' => false, 'example' => 'http://learn.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****.flv?auth_key=1608953344-0-0-53f0758162964516ac850f2ddc3f****', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => true,
'maxItems' => 150,
'title' => '',
'example' => '',
],
],
[
'name' => 'ClientToken',
'in' => 'query',
'schema' => ['description' => 'A client-generated token that is used to ensure the idempotence of the request.'."\n"
."\n"
.'>'."\n"
."\n"
.'The token must be unique for each request. It can be up to 64 ASCII characters in length.'."\n"
."\n"
.'>', 'type' => 'string', 'required' => true, 'example' => '8751ad99-2ddb-4aac-ad44-84b21102****', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time. Specify the time in the `yyyy-MM-ddTHH:mm:ssZ` format. The time must be in UTC.', 'type' => 'string', 'required' => true, 'example' => '2018-03-06T19:00:00Z', 'title' => ''],
],
[
'name' => 'RepeatNum',
'in' => 'query',
'schema' => ['description' => 'The number of times to repeat the program. Valid values:'."\n"
."\n"
.'- **0**: The program does not loop.'."\n"
."\n"
.'- **-1**: The program loops indefinitely.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '0', 'title' => ''],
],
[
'name' => 'SideOutputUrl',
'in' => 'query',
'schema' => ['description' => 'The ingest URL for the custom bypass output of the production studio.'."\n"
."\n"
.'If you do not specify this parameter, the system uses the ingest URL for the output URL that is automatically generated by Alibaba Cloud.', 'type' => 'string', 'required' => true, 'example' => 'rtmp://guide.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-53f0758162964516ac850f2ddc3f****', 'title' => ''],
],
[
'name' => 'CallbackUrl',
'in' => 'query',
'schema' => ['description' => 'The webhook address.'."\n"
."\n"
.'If you call the [DescribeCasterConfig](~~2848011~~) operation to query the configuration of the production studio, use the value of the returned CallbackUrl parameter.', 'type' => 'string', 'required' => true, 'example' => 'http://developer.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-53f0758162964516ac850f2ddc3f****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'ItemIds' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'ItemId' => [
'itemNode' => true,
'description' => 'The list of program IDs.',
'title' => '',
'type' => 'array',
'items' => ['description' => 'The program ID.', 'type' => 'string', 'example' => '21926b36-7dd2-4fde-ae25-51b5bc98****', 'title' => ''],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'ProgramId' => ['description' => 'The ID of the program list. This ID is used as a request parameter for other operations, such as deleting or editing a program list, or adding, deleting, or querying a program.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68X****', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'IncorrectStartTime', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter StartTime is invalid, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'AddCasterEpisodeGroup',
'description' => 'Before you call this operation, you must create a production studio and obtain its configuration information. For more information, see [Create a production studio](~~2848009~~).'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 4 calls per second per user. If you exceed the limit, your API calls are throttled. Throttling can affect your business. Plan your calls accordingly.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '4', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddCasterEpisodeGroup'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddCasterEpisodeGroup',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'AddCasterEpisodeGroupContent' => [
'summary' => 'Adds content to an episode group of a production studio.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'ClientToken',
'in' => 'query',
'schema' => ['description' => 'A client-generated token that is used to ensure the idempotence of the request.'."\n"
."\n"
.'> The client generates this value. Make sure that the value is unique among different requests. The value can be up to 64 ASCII characters in length.', 'type' => 'string', 'required' => true, 'example' => '8751ad99-2ddb-4aac-ad44-84b21102****', 'title' => ''],
],
[
'name' => 'Content',
'in' => 'query',
'schema' => ['description' => 'The properties of the episode in the production studio. This parameter is a JSON string. The parameter names are in upper camel case. The properties are described as follows:'."\n"
."\n"
.'- **CallbackUrl**: The webhook address.'."\n"
."\n"
.'- **SideOutputUrl**: The custom bypass output URL.'."\n"
."\n"
.'- **RepeatNum**: The number of times to loop the episode. A value of 0 means the episode does not loop. A value of -1 means the episode loops indefinitely.'."\n"
."\n"
.'- **StartTime**: The start time in UTC. The format is *yyyy-MM-dd*T*HH:mm:ss*Z.'."\n"
."\n"
.'- **DomainName**: The domain name.'."\n"
."\n"
.'- **Items**'."\n"
."\n"
.' : The list of items in the episode.'."\n"
."\n"
.' - **ItemName**: The item name.'."\n"
."\n"
.' - **VodUrl**: The URL of the video-on-demand (VOD) file. This parameter is required only when the resource is a video file that has not been imported to the Material Library. The MP4, FLV, and TS formats are supported.', 'type' => 'string', '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"}]}', 'required' => true, 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'ItemIds' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'ItemId' => [
'itemNode' => true,
'description' => 'A list of item IDs.',
'title' => '',
'type' => 'array',
'items' => ['description' => 'The item ID.', 'type' => 'string', 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', 'title' => ''],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'ProgramId' => ['description' => 'The program ID. You can use this ID as a request parameter when you create, add, delete, or query program items. You can also use this ID to edit, delete, query, start, or stop a program.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68X****', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'IncorrectStartTime', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter StartTime is invalid, please check and try again.'],
['errorCode' => 'InvalidClientToken.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ClientToken is invalid, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'AddCasterEpisodeGroupContent',
'description' => 'Before you call this operation, you must create a production studio and an episode group. For more information, see [Create a production studio](~~2848009~~).'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 4 for each user. If you exceed this limit, your API calls are throttled. This may impact your business. Plan your calls accordingly.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '4', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddCasterEpisodeGroupContent'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddCasterEpisodeGroupContent',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'translator' => 'manual',
],
'AddCasterLayout' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'VideoLayer',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The video layouts.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'FillMode' => ['description' => 'The fill mode of the element. Valid values:'."\n"
."\n"
.'- **none** (default): No scaling. The video is displayed in its original size.'."\n"
."\n"
.'- **fit**: The video is scaled to fit the fill area while maintaining its aspect ratio. The video is centered in the fill area. If the aspect ratio of the fill area is different from that of the video, the area along the shorter edge is not filled. This area displays the video of the underlying layer. If no underlying layer is configured, this area is black.', 'type' => 'string', 'required' => false, 'example' => 'fit', 'title' => ''],
'FixedDelayDuration' => ['description' => 'The fixed latency for the video layer. Use this parameter to synchronize the video with captions. Unit: milliseconds. Default value: 0. Valid values: **0** to **5000**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '5000', 'title' => ''],
'HeightNormalized' => ['description' => 'The normalized height of the layer.'."\n"
."\n"
.'- If you set FillMode to none, the width of the layer is scaled in proportion to the height. The default value is **0**. A value of 0 indicates that the video is displayed in its original size.'."\n"
."\n"
.'- If you set FillMode to fit, this parameter is required and its value must be greater than **0**. The value specifies the normalized height of the fill area.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '1', 'title' => ''],
'PositionNormalized' => [
'description' => 'The position of the video layer. The value is a normalized coordinate `[x,y]`. Default value: `[0,0]`.'."\n"
."\n"
.'Note: The x and y coordinates must be normalized.',
'type' => 'array',
'items' => ['description' => 'The value.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0', 'title' => ''],
'required' => false,
'example' => '0.3',
'maxItems' => 2,
'title' => '',
],
'PositionRefer' => ['description' => 'The reference point for the position of the layer. Valid values:'."\n"
."\n"
.'- **topLeft** (default): Top-left.'."\n"
."\n"
.'- **topRight**: Top-right.'."\n"
."\n"
.'- **bottomLeft**: Bottom-left.'."\n"
."\n"
.'- **bottomRight**: Bottom-right.'."\n"
."\n"
.'- **center**: Center.'."\n"
."\n"
.'- **topCenter**: Top-center.'."\n"
."\n"
.'- **bottomCenter**: Bottom-center.'."\n"
."\n"
.'- **leftCenter**: Left-center.'."\n"
."\n"
.'- **rightCenter**: Right-center.', 'type' => 'string', 'required' => false, 'example' => 'topLeft', 'title' => ''],
'WidthNormalized' => ['description' => 'The normalized width of the layer.'."\n"
."\n"
.'- If you set FillMode to none, the height of the layer is scaled in proportion to the width. The default value is **0**. A value of 0 indicates that the video is displayed in its original size.'."\n"
."\n"
.'- If you set FillMode to fit, this parameter is required and its value must be greater than **0**. The value specifies the normalized width of the fill area.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '1', 'title' => ''],
],
'required' => false,
'description' => 'The video layout.',
'title' => '',
'example' => '',
],
'required' => true,
'maxItems' => 12,
'title' => '',
'example' => '',
],
],
[
'name' => 'AudioLayer',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The audio layouts.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'FixedDelayDuration' => ['description' => 'The fixed latency for the audio layer. Use this parameter to synchronize the audio with captions. Unit: milliseconds. Default value: 0. Valid values: **0** to **5000**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '5000', 'title' => ''],
'ValidChannel' => ['description' => 'The sound channels that are used for audio input. Valid values:'."\n"
."\n"
.'- **leftChannel**: Left channel.'."\n"
."\n"
.'- **rightChannel**: Right channel.'."\n"
."\n"
.'- **all** (default): Both channels.', 'type' => 'string', 'required' => false, 'example' => 'all', 'title' => ''],
'VolumeRate' => ['description' => 'The volume multiplication factor for the audio stream. Valid values: 0 to **10.0**.'."\n"
."\n"
.'- **1.0** (default): The original volume is used.'."\n"
."\n"
.'- A value less than **1** decreases the volume.'."\n"
."\n"
.'- A value greater than **1** increases the volume.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '1.0', 'title' => ''],
],
'required' => false,
'description' => 'The audio layout.',
'title' => '',
'example' => '',
],
'required' => true,
'maxItems' => 12,
'title' => '',
'example' => '',
],
],
[
'name' => 'BlendList',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The location IDs of the video sources. The order of the location IDs corresponds to the order of the video layers specified in the **VideoLayer** parameter. For more information about location IDs, see [AddCasterVideoResource](~~2848020~~).'."\n"
."\n"
.'For LocationId, see [Add a video source](~~2848020~~). This ID corresponds to the order of the VideoLayers elements.',
'type' => 'array',
'items' => ['description' => 'The location ID.', 'type' => 'string', 'required' => false, 'example' => 'RV01', 'title' => ''],
'required' => true,
'example' => 'RV01',
'maxItems' => 12,
'title' => '',
],
],
[
'name' => 'MixList',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The location IDs of the audio sources. The order of the location IDs corresponds to the order of the audio layers specified in the **AudioLayer** parameter. For more information about location IDs, see [AddCasterVideoResource](~~2848020~~).'."\n"
."\n"
.'For \\`LocationId\\`, see [Add a video source](~~2848020~~). It corresponds to the order of the \\`AudioLayers\\` elements.',
'type' => 'array',
'items' => ['description' => 'The location ID.', 'type' => 'string', 'required' => false, 'example' => 'RV01', 'title' => ''],
'required' => true,
'example' => 'RV01',
'maxItems' => 12,
'title' => '',
],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you create a production studio by calling the [CreateCaster](~~2848009~~) operation, the CasterId is returned in the response.'."\n"
."\n"
.'- If you create a production studio in the LIVE console, go to **Production Studio** > **Cloud Production Studio** to view the name of the production studio.'."\n"
."\n"
.'> The name of the production studio on the Cloud Production Studio page is the ID of the production studio.', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'LayoutId' => ['description' => 'The ID of the layout. You can use this ID as a request parameter when you call operations to manage layouts, such as deleting, modifying, or querying layouts for a production studio or a virtual studio.', 'type' => 'string', 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'InvalidVideoLayersAndBlendListSize.Mismatch', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The size of the VideoLayers does not match the size of the BlendList, please check and try again.'],
['errorCode' => 'InvalidAudioLayersAndMixListSize.Mismatch', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The size of the AudioLayers does not match the size of the MixList, please check and try again.'],
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidBlendList.ExceedNorm', 'errorMessage' => '%s, please check and try again later.', 'description' => 'BlendList size exceeds specification, please check and try again.'],
['errorCode' => 'InvalidPositionNormalized.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter PositionNormalized is invalid, please check and try again.'],
['errorCode' => 'InvalidHeightOrWidthNormalized', 'errorMessage' => '%s, please check and try again later.', 'description' => 'HeightNormalized or WidthNormalized parameters are invalid, please check and try again.'],
['errorCode' => 'InvalidMixList.ExceedNorm', 'errorMessage' => '%s, please check and try again later.', 'description' => 'MixList size exceeds specification, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'AddCasterLayout',
'summary' => 'Adds a layout to a production studio.',
'description' => 'Before you call this operation, you must create a production studio and add video sources. For more information about how to create a production studio, see [CreateCaster](~~2848009~~).'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 10 calls per second per user. API calls that exceed this limit are throttled, which may affect your business. Do not exceed this limit.',
'requestParamsDescription' => '> In the request parameters, N represents the sequence number of an element. For example, VideoLayer.N.FillMode specifies the fill mode for the Nth video layer. VideoLayer.1.FillMode specifies the fill mode for the first video layer, and VideoLayer.2.FillMode specifies the fill mode for the second video layer.',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddCasterLayout'],
],
],
'ramActions' => [
[
'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 \\"LayoutId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","type":"json"}]',
],
'AddCasterProgram' => [
'summary' => 'Adds a program list to a production studio.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'Episode',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The program list information.',
'type' => 'array',
'items' => [
'description' => 'The program list information.',
'type' => 'object',
'properties' => [
'ComponentId' => [
'description' => 'A list of component IDs. The components are layered from bottom to top in the order of the elements in the list.'."\n"
."\n"
.'>'."\n"
."\n"
.'This parameter is required and takes effect only when Episode.N.EpisodeType is set to **Component**.'."\n"
."\n"
.'>'."\n"
."\n"
.'If the node type is **Resource**, the components are attached to the video source and switched in sync.',
'type' => 'array',
'items' => ['description' => 'The component ID.', 'type' => 'string', 'required' => false, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf931826****', 'title' => ''],
'required' => false,
'example' => '[ "a2b8e671-2fe5-4642-a2ec-bf931826****", "a2b8e671-2fe5-4642-a2ec-28374657****"]',
'maxItems' => 10,
'title' => '',
],
'EndTime' => ['description' => 'The end time. The time is in UTC. The format is *yyyy-MM-dd*T*HH:mm:ss*Z.', 'type' => 'string', 'required' => false, 'example' => '2016-06-29T10:02:00Z', 'title' => ''],
'EpisodeName' => ['description' => 'The program name.', 'type' => 'string', 'required' => false, 'example' => 'program_name_1', 'title' => ''],
'EpisodeType' => ['description' => 'The node type.'."\n"
."\n"
.'- **Resource**: a video source. If you set this parameter to Resource, you must also set the Episode.N.ResourceId and Episode.N.SwitchType parameters.'."\n"
."\n"
.'- **Component**: a component. If you set this parameter to Component, you must also set the Episode.N.ComponentId.N parameter.', 'type' => 'string', 'required' => false, 'example' => 'Resource', 'title' => ''],
'ResourceId' => ['description' => 'The video source ID.'."\n"
."\n"
.'>'."\n"
."\n"
.'This parameter is required and takes effect only when Episode.N.EpisodeType is set to **Resource**.'."\n"
."\n"
.'>'."\n"
."\n"
.'This parameter is not available when Episode.N.EpisodeType is set to **Component**.'."\n"
."\n"
.'If you call the [AddCasterVideoResource](~~60250~~) operation to add a video source to the production studio, use the value of the ResourceId parameter that is returned.', 'type' => 'string', 'required' => false, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
'StartTime' => ['description' => 'The start time. The time is in UTC. The format is *yyyy-MM-dd*T*HH:mm:ss*Z.', 'type' => 'string', 'required' => false, 'example' => '2016-06-29T09:00:00Z', 'title' => ''],
'SwitchType' => ['description' => 'The switch policy. Valid values:'."\n"
."\n"
.'>'."\n"
."\n"
.'This parameter takes effect only when Episode.N.EpisodeType is set to **Resource**.'."\n"
."\n"
.'>'."\n"
."\n"
.'- **TimeFirst**: time-based priority. This is the only policy allowed for live video sources.'."\n"
."\n"
.'- **ContentFirst**: content-based priority.', 'type' => 'string', 'required' => false, 'example' => 'TimeFirst', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => true,
'maxItems' => 100,
'title' => '',
'example' => '',
],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you create a production studio by calling the [CreateCaster](~~2848009~~) operation, use the value of the CasterId parameter that is returned.'."\n"
."\n"
.'- If you create a production studio in the LIVE console, you can find the name of the production studio by choosing **LIVE Console** > **Production Studio** > **Cloud Production Studio**.'."\n"
."\n"
.'> The name of the production studio in the list on the Cloud Production Studio page is the production studio ID.', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'EpisodeIds' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'EpisodeId' => [
'itemNode' => true,
'description' => 'A list of program IDs. The order of elements in the list is the same as the order of the programs in the request.',
'title' => '',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'EpisodeId' => ['description' => 'The program group ID. You can use this ID as a request parameter to modify the program list, query the program list, delete a program, or modify a program.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'SwitchTypeInvalid.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter SwitchType is invalid, please check and try again.'],
['errorCode' => 'IncorrectStartTime', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter StartTime is invalid, please check and try again.'],
['errorCode' => 'IncorrectEndTime', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter EndTime is invalid, please check and try again.'],
['errorCode' => 'EpisodeConflict.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'There is a conflict with the program time, please check and try again.'],
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'InvalidParameter.EndTime', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter EndTime is invalid, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidResource.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The resource does not exist. Please check and try again.'],
['errorCode' => 'InvalidComponent.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The component to be operated does not exist. Please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'AddCasterProgram',
'description' => 'Before you call this operation, you must create a production studio and add video resources to it. This operation supports only video source and component nodes. To create a production studio by calling an API, see [CreateCaster](~~2848009~~).'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 10 calls per second. If you exceed this limit, API calls are throttled. This can affect your business. We recommend that you call this operation within this limit.',
'requestParamsDescription' => '> In the request parameters, N indicates the sequence number. For example, Episode.1.EpisodeName specifies the name of the first program and Episode.2.EpisodeName specifies the name of the second program.',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddCasterProgram',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"EpisodeIds\\": {\\n \\"EpisodeId\\": [\\n {\\n \\"EpisodeId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","type":"json"}]',
],
'AddCasterVideoResource' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '106832',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'Region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', 'title' => ''],
],
[
'name' => 'ResourceName',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you create a production studio by calling the [CreateCaster](~~2848009~~) operation, find the CasterId value in the response.'."\n"
."\n"
.'- If you create a production studio in the ApsaraVideo Live console, go to **Live Console** > **Production Studio** > **Cloud Production Studio** to find the name of the production studio.'."\n"
."\n"
.'> The name of a production studio in the list on the Cloud Production Studio page is the production studio ID.', 'type' => 'string', 'required' => true, 'example' => 'test001', 'title' => ''],
],
[
'name' => 'LocationId',
'in' => 'query',
'schema' => ['description' => 'The name of the video source.', 'type' => 'string', 'required' => false, 'example' => 'RV01', 'title' => ''],
],
[
'name' => 'LiveStreamUrl',
'in' => 'query',
'schema' => ['description' => 'The location identifier for the video source. This parameter is required.'."\n"
."\n"
.'The identifier references the video\'s position in the layout. Each location supports a maximum of one resource. The format is RV followed by a number from 01 to 99. For example, `RV01`.', 'type' => 'string', 'required' => false, 'example' => 'rtmp://guide.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-ac8c628078541d7055a170ec59a5****', 'title' => ''],
],
[
'name' => 'MaterialId',
'in' => 'query',
'schema' => ['description' => 'The Alibaba Cloud streaming URL.'."\n"
."\n"
.'>'."\n"
."\n"
.'- This parameter is required if the video source type is live stream.'."\n"
."\n"
.'- If the video source type is not live stream, do not include this parameter in the request.'."\n"
."\n"
.'>', 'type' => 'string', 'required' => false, 'example' => 'f080575eb5f4427684fc0715159a****', 'title' => ''],
],
[
'name' => 'VodUrl',
'in' => 'query',
'schema' => ['description' => 'The ID of the media asset.'."\n"
.'>This parameter is required and takes effect only when the video source is a media asset.>'."\n"
."\n"
.'If you call the [DescribeCasterConfig](~~2848011~~) operation to query the configuration of the production studio, view the value of the UrgentMaterialId parameter in the response.'."\n"
."\n"
.'> The value of UrgentMaterialId is the ID of the media asset.', 'type' => 'string', 'required' => false, 'example' => 'http://learn.aliyundoc.com/AppName/StreamName.flv', 'title' => ''],
],
[
'name' => 'BeginOffset',
'in' => 'query',
'schema' => ['description' => 'The URL of the video-on-demand (VOD) file.'."\n"
.'>This parameter is active only when the video source is a file that is not in the Material Library.>'."\n"
."\n"
.'> The VOD file must be in MP4, FLV, or TS format.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1000', 'title' => ''],
],
[
'name' => 'EndOffset',
'in' => 'query',
'schema' => ['description' => 'The start offset of the video file, in milliseconds.'."\n"
.'>This parameter is valid only when the video source is a file.>'."\n"
."\n"
.'> A value greater than **0** specifies the offset from the first frame. The system starts to read the file from this offset.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10000', 'title' => ''],
],
[
'name' => 'RepeatNum',
'in' => 'query',
'schema' => ['description' => 'The end offset value for the video file. Unit: ms.'."\n"
.'>This parameter is valid only when the video source is a file.>'."\n"
."\n"
.'- A value greater than **0** sets the end point for reading at an offset from the first frame.'."\n"
."\n"
.'- A value less than **0** sets the end point for reading at an offset from the last frame.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '60', 'minimum' => '-1', 'example' => '0', 'title' => ''],
],
[
'name' => 'PtsCallbackInterval',
'in' => 'query',
'schema' => ['description' => 'The number of times to repeat the video.'."\n"
.'>This parameter is valid only when the video source is a file.>'."\n"
."\n"
.'- **0** (default): The video plays only once.'."\n"
."\n"
.'- **-1**: The video repeats indefinitely.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '0', 'example' => '2000', 'title' => ''],
],
[
'name' => 'FixedDelayDuration',
'in' => 'query',
'schema' => ['description' => 'The PTS callback interval. The unit is milliseconds.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
],
[
'name' => 'ImageId',
'in' => 'query',
'schema' => ['description' => 'This field sets a fixed delay for the video to synchronize captions. The unit is ms. The default value is 0. The value range is `[0-5000]`.', 'type' => 'string', 'required' => false, 'example' => 'a089175eb5f4427684fc0715159a****', 'title' => ''],
],
[
'name' => 'ImageUrl',
'in' => 'query',
'schema' => ['description' => 'The ID of the image asset.'."\n"
."\n"
.'> This parameter is active and required only when the video source type is Image.', 'type' => 'string', 'required' => false, 'example' => 'http://learn.aliyundoc.com/AppName/image.jpg', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7', 'title' => ''],
'ResourceId' => ['description' => 'The resource ID. Use this ID as a request parameter to delete or modify a production studio video source.', 'type' => 'string', 'example' => 'e5542d98-b08c-46bf-83e9-5b09d08c****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidLiveStreamUrl.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter LiveStreamUrl is invalid, please check and try again.'],
['errorCode' => 'InvalidMaterialId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter MaterialId is invalid, please check and try again.'],
['errorCode' => 'InvalidVodUrl.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter VodUrl is invalid, please check and try again.'],
['errorCode' => 'ResourceNumberExceed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The number of resources exceeds the limit. Please check and try again.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'DuplicateLocationID', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter LocationID duplicate. Check and try again.'],
['errorCode' => 'UnexpectedLocationID', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The LocationId is invalid, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'AddCasterVideoResource',
'summary' => 'Adds a video source to a production studio. The number of video sources that you can add is limited by the number of ingest endpoints in the production studio.',
'description' => 'Before you add a video source, you must create a production studio. The number of video sources that you can add is limited by the number of ingest endpoints in the production studio. For more information about creating a production studio by calling an API operation, see [Create a production studio](~~2848009~~).'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'This operation is limited to 10 queries per second (QPS) per user. If you exceed this limit, API calls are throttled, which can impact your business. Call this operation at a reasonable rate.',
'requestParamsDescription' => '> The type of a video source is determined by the resource type in the streaming URL.',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2024-08-08T03:24:10.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2023-03-31T08:26:54.000Z', 'description' => 'Request parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddCasterVideoResource'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddCasterVideoResource',
'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-122CC1A52FA7\\",\\n \\"ResourceId\\": \\"e5542d98-b08c-46bf-83e9-5b09d08c****\\"\\n}","type":"json"}]',
],
'AddCustomLiveStreamTranscode' => [
'summary' => 'Adds a custom transcoding configuration.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '106833',
'abilityTreeNodes' => ['FEATUREliveHVN9B2'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'Domain',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'App',
'in' => 'query',
'schema' => ['description' => 'The AppName of the live stream.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'KmsKeyID',
'in' => 'query',
'schema' => ['description' => 'The ID of the customer master key (CMK) in Key Management Service (KMS).', 'type' => 'string', 'required' => false, 'example' => 'afce5722-81d2-43c3-9930-7601da11****', 'title' => ''],
],
[
'name' => 'KmsUID',
'in' => 'query',
'schema' => ['description' => 'The ID of the KMS account.', 'type' => 'string', 'required' => false, 'example' => '25346073170691****', 'title' => ''],
],
[
'name' => 'KmsKeyExpireInterval',
'in' => 'query',
'schema' => ['description' => 'The key rotation period. Unit: seconds. Valid values: 60 to 3600.', 'type' => 'string', 'required' => false, 'example' => '3600', 'title' => ''],
],
[
'name' => 'Template',
'in' => 'query',
'schema' => ['description' => 'The custom name of the transcoding template.'."\n"
."\n"
.'> The name can contain digits, letters, and hyphens (-). It must start with a digit or a letter. It cannot be the same as the name of a standard transcoding template.', 'type' => 'string', 'required' => true, 'example' => 'LiveCusTranscode****', 'title' => ''],
],
[
'name' => 'TemplateType',
'in' => 'query',
'schema' => ['description' => 'The type of the custom transcoding template. Valid values:'."\n"
."\n"
.'- **h264**: custom H.264 standard transcoding.'."\n"
."\n"
.'- **h264-nbhd**: custom H.264 Narrowband HD™ transcoding.'."\n"
."\n"
.'- **h265**: custom H.265 standard transcoding.'."\n"
."\n"
.'- **h265-nbhd**: custom H.265 Narrowband HD™ transcoding.'."\n"
."\n"
.'- **audio**: audio-only transcoding.'."\n"
."\n"
.'> For video types, Height, Width, FPS, and VideoBitrate are required.', 'type' => 'string', 'required' => true, 'example' => 'h264', 'title' => ''],
],
[
'name' => 'Height',
'in' => 'query',
'schema' => ['description' => 'Output video height in pixels. Requirements:'."\n"
."\n"
.'- **Height ≥ 100**'."\n"
."\n"
.'- **max(Height, Width) ≤ 2560**'."\n"
."\n"
.'- **min(Height, Width) ≤ 1440**'."\n"
."\n"
.'> For h265-nbhd, it cannot exceed 720.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '720', 'title' => ''],
],
[
'name' => 'Width',
'in' => 'query',
'schema' => ['description' => 'Output video width in pixels.'."\n"
."\n"
.'Requirements:'."\n"
."\n"
.'- **Width ≥ 100**'."\n"
."\n"
.'- **max(Height, Width) ≤ 2560**'."\n"
."\n"
.'- **min(Height, Width) ≤ 1440**'."\n"
."\n"
.'> For h265-nbhd, it cannot exceed 1280.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '576', 'title' => ''],
],
[
'name' => 'FPS',
'in' => 'query',
'schema' => ['description' => 'The frame rate of the output video. Unit: frames per second (FPS). Valid values: 1 to **60**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '30', 'title' => ''],
],
[
'name' => 'VideoBitrate',
'in' => 'query',
'schema' => ['description' => 'The output video bitrate. Unit: kbps. Valid values: 1 to **6000**.'."\n"
."\n"
.'> The system tries to transcode the video at the specified bitrate. However, the actual bitrate may not be the same as the specified value, especially when the specified value is too high or too low.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '720', 'title' => ''],
],
[
'name' => 'AudioBitrate',
'in' => 'query',
'schema' => ['description' => 'The output audio bitrate. Unit: kbps. Valid values: 1 to **1000**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '512', 'title' => ''],
],
[
'name' => 'Gop',
'in' => 'query',
'schema' => ['description' => 'The Group of Pictures (GOP) size. The unit can be frame or second. Valid values:'."\n"
."\n"
.'- By frames: 1 to 3000.'."\n"
."\n"
.'- By seconds: 1s to 20s.', 'type' => 'string', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'Profile',
'in' => 'query',
'schema' => ['description' => 'The video codec profile. A larger value indicates better video quality and higher resource consumption for encoding and decoding. Valid values:'."\n"
."\n"
.'- **1**: baseline (for mobile devices).'."\n"
."\n"
.'- **2**: main (for SD devices).'."\n"
."\n"
.'- **3**: high (for HD devices).', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2', 'title' => ''],
],
[
'name' => 'AudioProfile',
'in' => 'query',
'schema' => ['description' => 'The audio profile. Valid values:'."\n"
."\n"
.'- **aac\\_low**'."\n"
."\n"
.'- **aac\\_he**'."\n"
."\n"
.'- **aac\\_he\\_v2**'."\n"
."\n"
.'- **aac\\_ld**', 'type' => 'string', 'required' => false, 'example' => 'aac_low', 'title' => ''],
],
[
'name' => 'AudioCodec',
'in' => 'query',
'schema' => ['description' => 'The audio codec. Valid values:'."\n"
."\n"
.'- **AAC**'."\n"
."\n"
.'- **MP3**', 'type' => 'string', 'required' => false, 'example' => 'AAC', 'title' => ''],
],
[
'name' => 'AudioRate',
'in' => 'query',
'schema' => ['description' => 'The audio sample rate. Valid values: **22050** to **96000**.'."\n"
."\n"
.'>'."\n"
."\n"
.'If you set AudioProfile to **aac\\_ld**, the sample rate cannot exceed 44100.'."\n"
."\n"
.'>', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '96000', 'title' => ''],
],
[
'name' => 'AudioChannelNum',
'in' => 'query',
'schema' => ['description' => 'The number of audio channels. Valid values:'."\n"
."\n"
.'- **1**: mono.'."\n"
."\n"
.'- **2**: stereo.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2', 'title' => ''],
],
[
'name' => 'Lazy',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to enable on-demand transcoding. Valid values:'."\n"
."\n"
.'- **yes**: Transcoding only starts when the first viewer requests this transcoded stream.'."\n"
."\n"
.'- **no**: Transcoding starts immediately after the stream is published.', 'type' => 'string', 'required' => false, 'example' => 'yes', 'title' => ''],
],
[
'name' => 'EncryptParameters',
'in' => 'query',
'schema' => ['description' => 'The encryption settings, formatted as a JSON string.'."\n"
."\n"
.'- **EncryptType**: The encryption type. Set the value to aliyun.'."\n"
."\n"
.'- **KmsKeyID**: The ID of the customer master key (CMK) in Key Management Service (KMS).'."\n"
."\n"
.'- **KmsKeyExpireInterval**: The key rotation period. Unit: seconds. Valid values: **60 to 3600.**'."\n"
."\n"
.'> If set, its internal fields cannot be empty.', 'type' => 'string', 'required' => false, 'example' => '{"EncryptType": "aliyun", "KmsKeyID":"afce5722-81d2-43c3-9930-7601da11****","KmsKeyExpireInterval":"3600"}', 'title' => ''],
],
[
'name' => 'ResWithSource',
'in' => 'query',
'schema' => ['description' => 'The adaptive resolution settings. If specified, it overrides the Height and Width parameters. Fieds:'."\n"
."\n"
.'- **Type (string):** Required. Valid values:'."\n"
."\n"
.' - **short**: sets the shorter edge of the video to the specified value and scales the other edge to maintain the original aspect ratio.'."\n"
."\n"
.' - **long**: sets the longer edge of the video to the specified value and scales the other edge to maintain the original aspect ratio.'."\n"
."\n"
.' - **screen**: Matches the output to a standard resolution, automatically flipping the dimensions based on the source\'s orientation.'."\n"
."\n"
.'- **Value (string):** Required. Valid values:'."\n"
."\n"
.' - For short: 360, 480, 540, 720, and 1080.'."\n"
."\n"
.' - For long: 640, 848, 960, 1280, and 1920.'."\n"
."\n"
.' - For screen: 640×360, 848×480, 960×540, 1280×720, and 1920×1080.', 'type' => 'string', 'required' => false, 'example' => '{"Type":"short","Value":"1080"}', 'title' => ''],
],
[
'name' => 'FpsWithSource',
'in' => 'query',
'schema' => ['description' => 'Adapts the output frame rate based on the source\'s frame rate, while keeping it within a specified range. If specified, it overrides the FPS parameter. Fields:'."\n"
."\n"
.'- **UpLimit (integer):** Required. The upper limit of the frame rate. This must be an integer from 1 to 60 and greater than the lower limit.'."\n"
."\n"
.'- **LowerLimit (integer):** Required. The lower limit of the frame rate. This must be an integer from 1 to 60 and less than the upper limit.', 'type' => 'string', 'required' => false, 'example' => '{"UpLimit":60,"LowerLimit":1}', 'title' => ''],
],
[
'name' => 'BitrateWithSource',
'in' => 'query',
'schema' => ['description' => 'The adaptive bitrate settings. If specified, it overrides the VideoBitrate parameter. Fields:'."\n"
."\n"
.'- **UpLimit (integer):** Required. The upper limit of the bitrate. This must be an integer from 128 to 10000 and greater than the lower limit.'."\n"
."\n"
.'- **LowerLimit (integer):** Required. The lower limit of the bitrate. This must be an integer from 128 to 10000 and less than the upper limit.'."\n"
."\n"
.'- **Factor (float):** Required: The factor by which the source bitrate is multiplied to calculate the output bitrate. Valid values: 0.1 to 1. The value can be accurate to one decimal place. A value of 1 indicates that the output bitrate is the same as the source bitrate.', 'type' => 'string', 'required' => false, 'example' => '{"UpLimit":2500,"LowerLimit":800,"Factor":1}', 'title' => ''],
],
[
'name' => 'ExtWithSource',
'in' => 'query',
'schema' => ['description' => 'Other adaptive settings that align the transcoded stream with the source stream. Fields:'."\n"
."\n"
.'- **KeyFrameOpen**: Specifies whether to align keyframes with the source stream. Valid values: yes and no.'."\n"
."\n"
.'- **Copyts (string)**: Specifies whether to align the presentation timestamp (PTS) with the source stream. Valid values: yes and no.'."\n"
."\n"
.'- **SeiMode**: The pass-through mode for Supplemental Enhancement Information (SEI). Valid values: 0 (disabled) and 1 (enabled).', 'type' => 'string', 'required' => false, 'example' => '{"KeyFrameOpen":"yes","Copyts":"yes","SeiMode":1}', 'title' => ''],
],
[
'name' => 'DeInterlaced',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to automatically detect and remove interlacing during transcoding. Deinterlacing converts interlaced video into progressive video.'."\n"
."\n"
.'- true: enables deinterlacing.'."\n"
."\n"
.'- false: keeps the source format. This is the default value.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameters', 'errorMessage' => '%s Please check and try again later.', 'description' => 'Exception parameter exists, please check and try again.'],
['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => '%s Please check and try again later.', 'description' => 'Configuration already exists, please check and try again.'],
['errorCode' => 'TemplateLimit', 'errorMessage' => '%s Please check and try again later.', 'description' => 'The number of templates reached the upper limit.'],
],
],
'title' => 'AddCustomLiveStreamTranscode',
'description' => 'This operation supports the following types of custom transcoding templates:'."\n"
."\n"
.'- h264: H.264 standard transcoding.'."\n"
."\n"
.'- h264-nbhd: H.264 Narrowband HD™ transcoding.'."\n"
."\n"
.'- h265: H.265 standard transcoding.'."\n"
."\n"
.'- h265-nbhd: H.265 Narrowband HD™ transcoding.'."\n"
."\n"
.'- audio: audio-only transcoding.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 6,000 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions. For more information, see [QPS limit](~~343507~~).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddCustomLiveStreamTranscode'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddCustomLiveStreamTranscode',
'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}","type":"json"}]',
],
'AddLiveAIProduceRules' => [
'summary' => 'Adds a subtitle rule.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '218952',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'Domain',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com', 'title' => ''],
],
[
'name' => 'App',
'in' => 'query',
'schema' => ['description' => 'The name of the live streaming application. The name can be up to 256 characters long and can contain digits, uppercase and lowercase letters, hyphens (-), and underscores (\\_). The AppName must match the AppName in the ingest URL for the template to take effect.', 'type' => 'string', 'required' => true, 'example' => 'AppName', 'title' => ''],
],
[
'name' => 'Suffix',
'in' => 'query',
'schema' => ['description' => 'The suffix to match.', 'type' => 'string', 'required' => false, 'example' => 'test01', 'title' => ''],
],
[
'name' => 'SubtitleName',
'in' => 'query',
'schema' => ['description' => 'The name of the subtitle template.', 'type' => 'string', 'required' => false, 'example' => 'sub01', 'title' => ''],
],
[
'name' => 'StudioName',
'in' => 'query',
'schema' => ['description' => 'The name of the virtual background template.', 'type' => 'string', 'required' => false, 'example' => 'sub02', 'title' => ''],
],
[
'name' => 'IsLazy',
'in' => 'query',
'schema' => ['description' => 'Specifies whether the rule is triggered by stream pulling. Valid values:'."\n"
."\n"
.'- true: Subtitles are generated when stream pulling starts. If no stream is pulled for 5 minutes, subtitle generation stops. Subtitle generation resumes when stream pulling starts again.'."\n"
."\n"
.'- false: Subtitles are generated when stream ingest starts, regardless of whether a stream is being pulled.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''],
],
[
'name' => 'LiveTemplate',
'in' => 'query',
'schema' => ['description' => 'The specifications of the output subtitles. Valid values:'."\n"
."\n"
.'- Landscape low definition 360p (640 × 360): `lp_ld`'."\n"
."\n"
.'- Portrait low definition 360p (360 × 640): `lp_ld_v`'."\n"
."\n"
.'- Landscape standard definition 480p (854 × 480): `lp_sd`'."\n"
."\n"
.'- Portrait standard definition 480p (480 × 854): `lp_sd_v`'."\n"
."\n"
.'- Landscape high definition 720p (1280 × 720): `lp_hd`'."\n"
."\n"
.'- Portrait high definition 720p (720 × 1280): `lp_hd_v`'."\n"
."\n"
.'- Landscape ultra high definition 1080p (1920 × 1080): `lp_ud`'."\n"
."\n"
.'- Portrait ultra high definition 1080p (1080 × 1920): `lp_ud_v`', 'type' => 'string', 'required' => true, 'example' => 'lp_ld', 'title' => ''],
],
[
'name' => 'Description',
'in' => 'query',
'schema' => ['description' => 'The description of the subtitle rule. The description can contain Chinese and English characters, digits, and special characters. It can be up to 128 characters in length.', 'type' => 'string', 'required' => false, 'example' => 'live AI subtitle template', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5c6a2a0df228-4a64-af62-20e91b96****', 'title' => ''],
'RulesId' => ['description' => 'The ID of the subtitle rule.', 'type' => 'string', 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => 'Parameter error'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'eventInfo' => [
'enable' => false,
'eventNames' => [],
],
'title' => 'AddLiveAIProduceRules',
'description' => '- After you add a subtitle template by calling the [AddLiveAISubtitle](~~2848222~~) operation, you can call this operation to add a subtitle rule.'."\n"
."\n"
.'- To play a subtitle stream, append \\_{Subtitle template name} to the StreamName in the playback URL.'."\n"
."\n"
.' - RTMP: rtmp\\://example.aliyundoc.com/app/stream\\_{Subtitle template name}?auth\\_key={access token}'."\n"
."\n"
.' - FLV: http\\://example.aliyundoc.com/app/stream\\_{Subtitle template name}.flv?auth\\_key={access token}'."\n"
."\n"
.' - M3U8: http\\://example.aliyundoc.com/app/stream\\_{Subtitle template name}.m3u8?auth\\_key={access token}'."\n"
."\n"
.'>'."\n"
."\n"
.'The real-time subtitle feature is in invitational preview. You can add up to 300 subtitle templates.'."\n"
."\n"
.'>'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 60 per user. If you exceed this limit, API calls are throttled. This may affect your business. Plan your calls accordingly.',
'changeSet' => [
['createdAt' => '2024-10-14T03:46:55.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2024-07-04T02:57:17.000Z', 'description' => 'Request parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveAIProduceRules'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddLiveAIProduceRules',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b96****\\",\\n \\"RulesId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\"\\n}","type":"json"}]',
],
'AddLiveAISubtitle' => [
'summary' => 'Adds a subtitle template by calling AddLiveAISubtitle.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '220749',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'SubtitleName',
'in' => 'query',
'schema' => ['description' => 'The name of the subtitle template. The name can contain only digits, letters, and hyphens (-). The name cannot start with a hyphen.', 'type' => 'string', 'required' => true, 'example' => 'sub01', 'title' => ''],
],
[
'name' => 'SrcLanguage',
'in' => 'query',
'schema' => ['description' => 'The source language. Valid values:'."\n"
.'- English: en-US'."\n"
.'- Chinese: zh-CN'."\n"
.'- Russian: ru-RU.', 'type' => 'string', 'required' => true, 'example' => 'zh-CN', 'title' => ''],
],
[
'name' => 'DstLanguage',
'in' => 'query',
'schema' => ['description' => 'The target language for translation. Valid values:'."\n"
.'- English: en-US'."\n"
.'- Chinese: zh-CN'."\n"
.'- Spanish: es-ES'."\n"
.'- Russian: ru-RU.', 'type' => 'string', 'required' => false, 'example' => 'zh-CN', 'title' => ''],
],
[
'name' => 'FontColor',
'in' => 'query',
'schema' => ['description' => 'The font color. Specify the value in RGBA format.', 'type' => 'string', 'required' => false, 'example' => '0xFFFFFF', 'title' => ''],
],
[
'name' => 'FontName',
'in' => 'query',
'schema' => ['description' => 'The font. Valid values:'."\n"
.'- KaiTi: KaiTi (default)'."\n"
.'- AlibabaPuHuiTi-Regular: Alibaba PuHuiTi Regular'."\n"
.'- AlibabaPuHuiTi-Bold: Alibaba PuHuiTi Bold'."\n"
.'- AlibabaPuHuiTi-Light: Alibaba PuHuiTi Light'."\n"
.'- NotoSansHans-Regular: Noto Sans SC Regular'."\n"
.'- NotoSansHans-Bold: Noto Sans SC Bold'."\n"
.'- NotoSansHans-Light: Noto Sans SC Light.', 'type' => 'string', 'required' => false, 'example' => 'KaiTi', 'title' => ''],
],
[
'name' => 'BgColor',
'in' => 'query',
'schema' => ['description' => 'The background color of the subtitle. Specify the value in RGBA format.', 'type' => 'string', 'required' => false, 'example' => '0xFF0000', 'title' => ''],
],
[
'name' => 'PositionNormalized',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The position of the subtitle. The value is the x,y coordinates with the bottom-left corner of the screen as the origin.'."\n"
."\n"
.'> The x and y values must be normalized. The actual values are multiplied by the video height. For example, if the video height is 720p and PositionNormalized is set to [0.1, 0.5], the actual position of the subtitle is x = 72 and y = 360.',
'type' => 'array',
'items' => ['description' => 'The coordinate value of the subtitle position.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.32', 'title' => ''],
'required' => true,
'example' => '[0.32,0.27]',
'title' => '',
],
],
[
'name' => 'ShowSourceLan',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to display the source language. Default value: false.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''],
],
[
'name' => 'MaxLines',
'in' => 'query',
'schema' => ['description' => 'The number of lines to display.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2', 'title' => ''],
],
[
'name' => 'WordPerLine',
'in' => 'query',
'schema' => ['description' => 'The number of characters per line. Valid values: integers in the range of [1, 500].', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '20', 'title' => ''],
],
[
'name' => 'FontSizeNormalized',
'in' => 'query',
'schema' => ['description' => 'The font size. Valid values: [0, 1].', 'type' => 'number', 'format' => 'float', 'required' => true, 'example' => '0.037', 'title' => ''],
],
[
'name' => 'BorderWidthNormalized',
'in' => 'query',
'schema' => ['description' => 'The font weight. Valid values: [0, 1].', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.05', 'title' => ''],
],
[
'name' => 'BgWidthNormalized',
'in' => 'query',
'schema' => ['description' => 'The background size of the subtitle. Valid values: [0, 1].', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.09', 'title' => ''],
],
[
'name' => 'CopyFrom',
'in' => 'query',
'schema' => ['description' => 'The subtitle template to copy from. Set this parameter to the value of SubtitleName.', 'type' => 'string', 'required' => false, 'example' => 'sub01', 'title' => ''],
],
[
'name' => 'Description',
'in' => 'query',
'schema' => ['description' => 'The custom description of the subtitle. The description can contain Chinese characters, letters, digits, and special characters, and can be up to 128 characters in length.', 'type' => 'string', 'required' => false, 'example' => 'live AI subtitle template', 'title' => ''],
],
[
'name' => 'Width',
'in' => 'query',
'schema' => ['description' => 'The width of the preview screen. Unit: px.', 'type' => 'string', 'required' => false, 'example' => '1280', 'title' => ''],
],
[
'name' => 'Height',
'in' => 'query',
'schema' => ['description' => 'The height of the preview screen. Unit: px.'."\n"
."\n"
.'The width × height of the preview screen supports only the following specifications: '."\n"
.'- Landscape low definition 360P: 640 × 360 '."\n"
.'- Portrait low definition 360P: 360 × 640'."\n"
.'- Landscape standard definition 480P: 854 × 480'."\n"
.'- Portrait standard definition 480P: 480 × 854'."\n"
.'- Landscape high definition 720P: 1280 × 720'."\n"
.'- Portrait high definition 720P: 720 × 1280'."\n"
.'- Landscape ultra-high definition 1080P: 1920 × 1080'."\n"
.'- Portrait ultra-high definition 1080P: 1080 × 1920.', 'type' => 'string', 'required' => false, 'example' => '720', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5c6a2a0df228-4a64-af62-20e91b96****', 'title' => ''],
'SubtitleId' => ['description' => 'The subtitle template ID.', 'type' => 'string', 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => 'Parameter error'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b96****\\",\\n \\"SubtitleId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\"\\n}","type":"json"}]',
'title' => 'Add a live subtitle template',
'description' => '## Operation description'."\n"
."\n"
.'- This operation allows you to add a live subtitle template configuration. The template configuration describes subtitle content, layout, and other information.'."\n"
.'- After you add a subtitle template, call the [AddLiveAIProduceRules](~~2799676~~) operation to add subtitle rules. The subtitles take effect in the stream only after you re-ingest the stream.'."\n"
.'- Real-time subtitles are supported only in the Beijing, Shanghai, Singapore, Indonesia, and Saudi Arabia regions.'."\n"
."\n"
.'>The real-time subtitle feature is in public preview. Each user can add up to 300 subtitle templates. The feature is free of charge during the public preview. After the public preview ends, standard billing applies. The specific date will be announced separately.'."\n"
.'>'."\n"
."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this operation is 60 calls per second. If the limit is exceeded, API calls are throttled, which may affect your business. Call this operation as appropriate. For more information, see [QPS limit](~~343507~~).',
'changeSet' => [
['createdAt' => '2024-12-04T05:54:29.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveAISubtitle'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddLiveAISubtitle',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'AddLiveAppRecordConfig' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => ['operationType' => 'create'],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The AppName of the live stream. The template only applies if this name matches the `AppName` in the ingest URL. Use an asterisk (`*`) to match all AppNames.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'OssEndpoint',
'in' => 'query',
'schema' => ['description' => 'The endpoint for OSS storage. You must create an OSS bucket before using this feature. See [Configure OSS](~~84932~~).', 'type' => 'string', 'required' => true, 'example' => 'oss-cn-beijing.aliyuncs.com', 'title' => ''],
],
[
'name' => 'OssBucket',
'in' => 'query',
'schema' => ['description' => 'The name of the OSS bucket for storage.', 'type' => 'string', 'required' => true, 'example' => 'liveBucket****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The stream name. The template only applies if this name matches the StreamName in the ingest URL. Use an asterisk (`*`) to match all streams under the AppName.', 'type' => 'string', 'required' => false, 'example' => 'teststream', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The recording start time. Format: *yyyy-MM-dd*T*HH:mm:ss*Z (UTC time).'."\n"
."\n"
.'> This parameter is only effective for stream-level recordings (i.e., when `StreamName` is specified). The time must be within 7 days of the actual stream start time.', 'type' => 'string', 'required' => false, 'example' => '2018-04-10T09:57:21Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The recording end time. Format: *yyyy-MM-dd*T*HH:mm:ss*Z (UTC time).'."\n"
."\n"
.'> This parameter is only effective for stream-level recordings. The interval between EndTime and StartTime cannot exceed 7 days.', 'type' => 'string', 'required' => false, 'example' => '2018-04-16T09:57:21Z', 'title' => ''],
],
[
'name' => 'OnDemand',
'in' => 'query',
'schema' => ['description' => 'Specifies the recording mode. Valid values:'."\n"
."\n"
.'- **0** (default): Automatic recording.'."\n"
."\n"
.'- **1**: On-demand recording via HTTP callback. You need to configure OnDemandUrl through the [AddLiveRecordNotifyConfig](~~2847891~~) operation first, otherwise recording is disabled by default.'."\n"
."\n"
.'- **2**: On-demand recording by parsing parameters in the ingest URL.'."\n"
."\n"
.'- **7**: Manual recording, disabled by default. You can manually start o. stop recording through the [RealTimeRecordCommand](~~2847882~~) API.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'DelayTime',
'in' => 'query',
'schema' => ['description' => 'The window in seconds for merging fragmented recording after an interruption. If a stream disconnects and reconnects within this window, the recording will continue in the same file. Valid values: 15 to 21600.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '180', 'title' => ''],
],
[
'name' => 'RecordFormat',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The recording details.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'SliceDuration' => ['description' => 'The duration of a single segment. Unit: seconds.'."\n"
."\n"
.'>'."\n"
."\n"
.'This parameter takes effect only when RecordFormat.N.Format is set to m3u8 or cmaf.'."\n"
."\n"
.'>'."\n"
."\n"
.'If not specified, the default value is 30 seconds. Valid values: 5s to 30s.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '30', 'title' => ''],
'SliceOssObjectPrefix' => ['description' => 'The naming pattern for segments.'."\n"
."\n"
.'>'."\n"
."\n"
.'This parameter takes effect only when RecordFormat.N.Format is set to m3u8 or cmaf.'."\n"
."\n"
.'>'."\n"
."\n"
.'- By default, each segment is 30 seconds long and less than 256 bytes. Supports variables: {AppName}, {StreamName}, {UnixTimestamp}, {Sequence}.'."\n"
."\n"
.'- The value must include the {UnixTimestamp} and {Sequence} variables.', 'type' => 'string', 'required' => false, 'example' => 'record/{AppName}/{StreamName}/{UnixTimestamp}_{Sequence}', 'title' => ''],
'CycleDuration' => ['description' => 'The duration of a single recording cycle in seconds.'."\n"
."\n"
.'> - If not specified, the default value is used. Different recording formats have different default values: m3u8 and cmaf formats default to 6 hours, while flv and mp4 formats default to 1 hour.'."\n"
.'>'."\n"
.'> - If a live stream is interrupted during a recording cycle but resumes normal streaming within the merge window, recording will continue in the same file.'."\n"
.'>'."\n"
.'> - A recording file is generated only when a live stream is interrupted for longer than the merge window.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
'OssObjectPrefix' => ['description' => 'The naming pattern for the recording file stored in OSS.'."\n"
."\n"
.'- The file name must be less than 256 bytes. Supports variables: {AppName}, {StreamName}, {Sequence}, {StartTime}, {EndTime}, {EscapedStartTime}, {EscapedEndTime}.'."\n"
."\n"
.'- The value must include either {StartTime} or {EscapedStartTime} and either {EndTime} or {EscapedEndTime}.', 'type' => 'string', 'required' => false, 'example' => 'record/{AppName}/{StreamName}/{Sequence}_{EscapedStartTime}_{EscapedEndTime}', 'title' => ''],
'Format' => ['description' => 'The recording format. Valid values:'."\n"
."\n"
.'>'."\n"
."\n"
.'If you choose m3u8 or cmaf, you must also set SliceOssObjectPrefix and SliceDuration.'."\n"
."\n"
.'>'."\n"
."\n"
.'- m3u8.'."\n"
."\n"
.'- flv.'."\n"
."\n"
.'- mp4.'."\n"
."\n"
.'- cmaf.', 'type' => 'string', 'required' => false, 'example' => 'm3u8', 'title' => ''],
],
'required' => false,
'description' => '',
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 3,
'title' => '',
'example' => '',
],
],
[
'name' => 'TranscodeRecordFormat',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The transcoding recording details.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'SliceDuration' => ['description' => 'The duration of a single segment for transcoded stream recording. Unit: seconds.'."\n"
."\n"
.'>'."\n"
."\n"
.'This parameter takes effect only when TranscodeRecordFormat.N.Format is set to m3u8 or cmaf.'."\n"
."\n"
.'>'."\n"
."\n"
.'If not specified, the default value is 30 seconds. Valid values: 5s to 30s.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '30', 'title' => ''],
'SliceOssObjectPrefix' => ['description' => 'The naming pattern for segments of the transcoded stream.'."\n"
."\n"
.'>'."\n"
."\n"
.'This parameter is required only when TranscodeRecordFormat.N.Format is set to m3u8 or cmaf.'."\n"
."\n"
.'>'."\n"
."\n"
.'- By default, each segment is 30 seconds long. The file name must be less than 256 bytes. Supports variables: {AppName}, {StreamName}, {UnixTimestamp}, {Sequence}.'."\n"
."\n"
.'- The value must include the {UnixTimestamp} and {Sequence} variables.', 'type' => 'string', 'required' => false, 'example' => 'record/{AppName}/{StreamName}/{UnixTimestamp}_{Sequence}', 'title' => ''],
'CycleDuration' => ['description' => 'The duration of a single recording cycle in seconds.'."\n"
."\n"
.'> If not specified, the default value is used. Different recording formats have different default values: m3u8 and cmaf formats default to 6 hours, while flv and mp4 formats default to 1 hour.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '21600', 'title' => ''],
'OssObjectPrefix' => ['description' => 'The maning pattern of the recording file stored in OSS for transcoded stream.'."\n"
."\n"
.'- The file name must be less than 256 bytes. Supports variables: {AppName}, {StreamName}, {Sequence}, {StartTime}, {EndTime}, {EscapedStartTime}, {EscapedEndTime}.'."\n"
."\n"
.'- The value must include either {StartTime} or {EscapedStartTime} and either {EndTime} or {EscapedEndTime}.', 'type' => 'string', 'required' => false, 'example' => 'record/{AppName}/{StreamName}/{Sequence}_{EscapedStartTime}_{EscapedEndTime}', 'title' => ''],
'Format' => ['description' => 'The format for transcoded stream recording. Valid values:'."\n"
."\n"
.'>'."\n"
."\n"
.'If you select the m3u8 or cmaf format, you must also set the TranscodeRecordFormat.N.SliceOssObjectPrefix and TranscodeRecordFormat.N.SliceDuration request parameters.'."\n"
."\n"
.'>'."\n"
."\n"
.'- m3u8.'."\n"
."\n"
.'- flv.'."\n"
."\n"
.'- mp4.'."\n"
."\n"
.'- cmaf.', 'type' => 'string', 'required' => false, 'example' => 'm3u8', 'title' => ''],
],
'required' => false,
'description' => '',
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 3,
'title' => '',
'example' => '',
],
],
[
'name' => 'TranscodeTemplates',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The transcoding template group.',
'type' => 'array',
'items' => ['description' => '- The [transcoding template](~~45039~~). You can configure multiple templates, up to 10.'."\n"
."\n"
.'- When setting TranscodeRecordFormat.N.xxx configurations, you need to set at least one TranscodeTemplates.'."\n"
."\n"
.'- To record multiple or all transcoded streams, you can set TranscodeTemplates.1 to \\*\\*\\*\\*\\* (five asterisks).'."\n"
."\n"
.'> TranscodeTemplates is not allowed to pass in `raw`, which is a reserved identifier. The .N in TranscodeTemplates.N represents an incremental index for specifying multiple templates. For example: TranscodeTemplates.1=sd, TranscodeTemplates.2=hd.', 'type' => 'string', 'required' => false, 'example' => 'sd', 'title' => ''],
'required' => false,
'example' => 'sd',
'maxItems' => 10,
'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidOssEndpoint.Malformed', 'errorMessage' => '%s', 'description' => ''],
['errorCode' => 'InvalidOssBucket.Malformed', 'errorMessage' => 'Specified parameter OssBucket is not valid.', 'description' => ''],
['errorCode' => 'InvalidOssBucket.NotFound', 'errorMessage' => 'The parameter OssBucket does not exist.', 'description' => ''],
['errorCode' => 'InvalidFormat.Malformed', 'errorMessage' => 'Specified parameter Format is not valid.', 'description' => 'Invalid value of Format. Check whether the Format parameter that you specified is correct.'],
['errorCode' => 'InvalidCycleDuration.Malformed', 'errorMessage' => 'Specified CycleDuration Format is not valid.', 'description' => 'Invalid format of CycleDuration. Check whether the format of the CycleDuration parameter is correct.'],
['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' => ''],
['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' => 'AddLiveAppRecordConfig',
'summary' => 'Configures live recording settings and saves the output to Object Storage Service (OSS).',
'description' => '- Before using this API, ensure that you understand the billing methods and pricing of live recording. For details, see [Billing of live recording](~~195287~~).'."\n"
."\n"
.'- To save recordings to OSS, you must first activate the OSS service and create a bucket. For instructions, see [Record and store in OSS](~~84932~~).'."\n"
."\n"
.'- Storing recorded files in OSS incurs storage fees, which are billed separately. For details, see [Storage fees](~~173534~~).'."\n"
."\n"
.'- The live recording feature allows you to record live streams and save them to a specified location for later playback. When saving to OSS, multiple formats (TS, MP4, FLV, CMAF) and recording strategies (automatic, on-demand, manual) are supported. Use this API to configure a recording template. For more information, see [Live recording](~~199357~~).'."\n"
."\n"
.'- A unique recording configuration is identified by the triplet (`DomainName`, `AppName`, `StreamName`). Calling this API for a triplet that already has a configuration will result in an error indicating that the configuration already exists.'."\n"
."\n"
.'- Configurations set using this API take effect only after the stream is reingested. Once active, the configuration remains effective indefinitely.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'You can call this operation up to 30 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '# Considerations:'."\n"
."\n"
.'- ApsaraVideo Live supports triggered stream pulling. If the streaming URL for a domain name is used for playback, ApsaraVideo Live is automatically triggered to pull live streams. If no live streams are played, ApsaraVideo Live does not pull live streams from the origin. In this case, automatic recording, on-demand recording, and manual recording are also disabled.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveAppRecordConfig'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddLiveAppRecordConfig',
'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}","type":"json"}]',
],
'AddLiveAppSnapshotConfig' => [
'summary' => 'Configures the snapshot feature for a streaming domain. The captured snapshots are stored in Object Storage Service (OSS). The configuration takes effect after you restart stream ingest.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveMH1XD3'],
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the application to which the live stream belongs. The value of this parameter must be the same as the application name in the ingest URL. Otherwise, the configuration does not take effect. The name can be up to 255 characters in length and can contain digits, letters, hyphens (-), and underscores (\\_). The name cannot start with a hyphen (-) or underscore (\\_). You can also specify an asterisk (\\*) as the value to match all applications.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'TimeInterval',
'in' => 'query',
'schema' => ['description' => 'The interval at which snapshots are captured. Unit: seconds. Valid values: **5 to 3600**.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '3600', 'minimum' => '5', 'example' => '5', 'title' => ''],
],
[
'name' => 'OssEndpoint',
'in' => 'query',
'schema' => ['description' => 'The endpoint of the OSS bucket.'."\n"
."\n"
.'After the configuration is complete, you can search for specific snapshots in the OSS console based on the callback information. You must configure the OSS endpoint in advance. For more information, see [Configure OSS](~~84932~~).', 'type' => 'string', 'required' => true, 'example' => 'cn-oss-****.aliyuncs.com', 'title' => ''],
],
[
'name' => 'OssBucket',
'in' => 'query',
'schema' => ['description' => 'The name of the OSS bucket.'."\n"
."\n"
.'After the configuration is complete, you can search for specific snapshots in the OSS console based on the callback information. You must create the OSS bucket in advance. For more information, see [Configure OSS](~~84932~~).', 'type' => 'string', 'required' => true, 'example' => 'liveBucket****', 'title' => ''],
],
[
'name' => 'OverwriteOssObject',
'in' => 'query',
'schema' => ['description' => 'The naming format of snapshots that are stored in the overwrite mode, which means that a new snapshot overwrites the previous snapshot.'."\n"
."\n"
.'- The name must be less than 256 bytes in length.'."\n"
."\n"
.'- Only JPG images are supported.'."\n"
."\n"
.'- The name can contain variables such as {AppName} and {StreamName}.', 'type' => 'string', 'required' => false, 'example' => '{AppName}/{StreamName}.jpg', 'title' => ''],
],
[
'name' => 'SequenceOssObject',
'in' => 'query',
'schema' => ['description' => 'The naming format of snapshots that are stored in sequence,'."\n"
."\n"
.'which means that a new snapshot does not overwrite the previous snapshot. You can call the [DescribeLiveStreamSnapshotInfo](~~2847902~~) operation to query the snapshots that were captured within a specific time period.'."\n"
."\n"
.'- The name must be less than 256 bytes in length.'."\n"
."\n"
.'- Only JPG images are supported.'."\n"
."\n"
.'- The name can contain variables such as {AppName}, {StreamName}, {UnixTimestamp}, and {Sequence}. The name must contain at least one of the {UnixTimestamp} and {Sequence} variables.', 'type' => 'string', 'required' => false, 'example' => 'snapshot/{AppName}/{StreamName}/{UnixTimestamp}.jpg', 'title' => ''],
],
[
'name' => 'Callback',
'in' => 'query',
'schema' => ['description' => 'The callback URL that is used to receive notifications about snapshot capture.', 'type' => 'string', 'required' => false, 'example' => 'https://learn.aliyundoc.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidOverwriteOssObjectOrSequenceOssObject.Malformed', 'errorMessage' => 'Specified paramters OverwriteOssObject or SequenceOssObject should have one.', 'description' => 'You can specify only one of the OverwriteOssObject and SequenceOssObject parameters.'],
['errorCode' => 'InvalidOssBucket.Malformed', 'errorMessage' => 'Specified parameter OssBucket is not valid.', 'description' => ''],
['errorCode' => 'InvalidOssEndpoint.Malformed', 'errorMessage' => 'Specified parameter OssEndpoint is not valid.', 'description' => ''],
['errorCode' => 'InvalidOverwriteOssObject.Malformed', 'errorMessage' => 'Specified parameter OverwriteOssObject is not valid.', 'description' => ''],
['errorCode' => 'InvalidSequenceOssObject.Malformed', 'errorMessage' => 'Specified parameter SequenceOssObject is not valid.', 'description' => 'Invalid value of SequenceOssObject. Check whether the SequenceOssObject parameter that you specified is correct.'],
['errorCode' => 'InvalidOssBucket.NotFound', 'errorMessage' => 'The parameter OssBucket does not exist.', 'description' => ''],
['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => 'Config has already exist.', 'description' => ''],
],
],
'title' => 'AddLiveAppSnapshotConfig',
'description' => '- Before you call this operation, make sure that you fully understand the billing method and pricing of live stream snapshots in ApsaraVideo Live. For more information, see [Billing of live stream snapshots](~~195286~~).'."\n"
."\n"
.'- Make sure that Object Storage Service (OSS) is activated and a specific bucket is created. This way, ApsaraVideo Live can store live stream snapshots in the bucket. For more information, see [Configure OSS](~~84932~~).'."\n"
."\n"
.'- If you store snapshots in OSS, storage fees are generated. For more information, see [Storage fees](~~173534~~).'."\n"
."\n"
.'- The OSS bucket must reside in the same region as the live center of the streaming domain. Cross-region snapshot capture is not supported.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 30 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddLiveAppSnapshotConfig',
'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"}]',
],
'AddLiveAudioAuditConfig' => [
'summary' => 'Adds an audio moderation configuration.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveUTGSNT'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The AppName of the live stream. The AppName must match that in the ingest URL for the template to take effect. The value is case-sensitive.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The name of the live stream. The StreamName must match that in the ingest URL for the template to take effect. The value is case-sensitive.', 'type' => 'string', 'required' => true, 'example' => 'liveStream****', 'title' => ''],
],
[
'name' => 'OssBucket',
'in' => 'query',
'schema' => ['description' => 'The name of the OSS bucket.', 'type' => 'string', 'required' => false, 'example' => 'liveBucket****', 'title' => ''],
],
[
'name' => 'OssEndpoint',
'in' => 'query',
'schema' => ['description' => 'The endpoint of the OSS bucket.', 'type' => 'string', 'required' => false, 'example' => 'cn-oss-****.aliyuncs.com', 'title' => ''],
],
[
'name' => 'OssObject',
'in' => 'query',
'schema' => ['description' => 'The name of the recording file stored in OSS.', 'type' => 'string', 'required' => false, 'example' => 'liveObject****', 'title' => ''],
],
[
'name' => 'BizType',
'in' => 'query',
'schema' => ['description' => 'The business type. This parameter can be used to select a model. The default value is the domain name.', 'type' => 'string', 'required' => false, 'example' => 'example.edu', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '7BF95F2A-3B24-4CDE-9346-7F6FA86697A1', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MalformedParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Invalid parameter, please check and try again.'],
['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is missing, please check and try again.'],
['errorCode' => 'ConfigExisted', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Configuration already exists, please check and try again.'],
['errorCode' => 'ConfigNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Configuration does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'AddLiveAudioAuditConfig',
'description' => '- The audio moderation feature detects sensitive content in audio from live streams and uses callbacks to notify you of violations in real time. You can then manually review the content and take appropriate actions.'."\n"
."\n"
.'- Currently, only some live centers support automated review. For supported regions, see [Service regions](~~193730~~).'."\n"
."\n"
.''."\n"
."\n"
.'Before you call this API, make sure that you understand the billing methods and pricing of the live audio moderation service. For more information, see [Automated review fees](~~195288~~).'."\n"
."\n"
.''."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'You can call this operation up to 10 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveAudioAuditConfig'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddLiveAudioAuditConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\"\\n}","type":"json"}]',
],
'AddLiveAudioAuditNotifyConfig' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveUTGSNT'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'Callback',
'in' => 'query',
'schema' => ['description' => 'The URL used to receive callbacks for audio that contains problematic content.', 'type' => 'string', 'required' => false, 'example' => 'https://demo.aliyundoc.com/callback', 'title' => ''],
],
[
'name' => 'CallbackTemplate',
'in' => 'query',
'schema' => ['description' => 'The callback template for automated reviews. The value is a JSON string that can contain the following variables:'."\n"
."\n"
.'- **{DomainName}**: The streaming domain.'."\n"
."\n"
.'- **{AppName}**: The AppName of the live stream.'."\n"
."\n"
.'- **{StreamName}**: The stream name.'."\n"
."\n"
.'- **{Timestamp}**: The UNIX timestamp of the callback. Unit: seconds.'."\n"
."\n"
.'- **{Result}**: The review result.', 'type' => 'string', 'required' => false, 'example' => '{"domain":{DomainName},"app":{AppName},"stream":{StreamName},"timestamp":{Timestamp},"result":{Result}}', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '7BF95F2A-3B24-4CDE-9346-7F6FA86697A1', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MalformedParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Invalid parameter, please check and try again.'],
['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is missing, please check and try again.'],
['errorCode' => 'ConfigExisted', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Configuration already exists, please check and try again.'],
['errorCode' => 'ConfigNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Configuration does not exist, please check and try again.'],
['errorCode' => 'UnsafeCallback', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The callback address is not safe. Please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'AddLiveAudioAuditNotifyConfig',
'summary' => 'Adds a callback configuration for audio moderation.',
'description' => '- The automated review service returns review results based on the configured callback template.'."\n"
."\n"
.'- The automated review feature is available only in some live centers. For supported regions, see [Service regions](~~193730~~).'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 10 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => '## Format of the Result field'."\n"
."\n"
.'Example'."\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": "The Shangbala team on the third floor joins the fifth floor.",'."\n"
.' "label": "normal"'."\n"
.' },'."\n"
.' {'."\n"
.' "startTime": 1571989515,'."\n"
.' "endTime": 1571989518,'."\n"
.' "text": "On, grilled fish and hot pot festival date, two Tengqing tycoons.",'."\n"
.' "label": "normal"'."\n"
.' },'."\n"
.' {'."\n"
.' "startTime": 1571989520,'."\n"
.' "endTime": 1571989522,'."\n"
.' "text": "How many Shangbala members enjoy 39",'."\n"
.' "label": "normal"'."\n"
.' },'."\n"
.' {'."\n"
.' "startTime": 1571989523,'."\n"
.' "endTime": 1571989526,'."\n"
.' "text": "Emperor cash single purchase minus 66 yuan.",'."\n"
.' "label": "normal"'."\n"
.' },'."\n"
.' {'."\n"
.' "startTime": 1571989530,'."\n"
.' "endTime": 1571989533,'."\n"
.' "text": "For details about the grand prize, call 3398787.",'."\n"
.' "label": "ad"'."\n"
.' },'."\n"
.' {'."\n"
.' "startTime": 1571989533,'."\n"
.' "endTime": 1571989534,'."\n"
.' "text": "Good news, it seems.",'."\n"
.' "label": "normal"'."\n"
.' },'."\n"
.' {'."\n"
.' "startTime": 1571989538,'."\n"
.' "endTime": 1571989539,'."\n"
.' "text": "Carrying vehicle registration, 4 people.",'."\n"
.' "label": "normal"'."\n"
.' },'."\n"
.' {'."\n"
.' "startTime": 1571989542,'."\n"
.' "endTime": 1571989543,'."\n"
.' "text": "The proxy has 10 minutes left.",'."\n"
.' "label": "normal"'."\n"
.' },'."\n"
.' {'."\n"
.' "startTime": 1571989545,'."\n"
.' "endTime": 1571989547,'."\n"
.' "text": "CCB ETC witness no.",'."\n"
.' "label": "normal"'."\n"
.' },'."\n"
.' {'."\n"
.' "startTime": 1571989550,'."\n"
.' "endTime": 1571989552,'."\n"
.' "text": "Zhao Xinyuan, under Luliang City State-owned Investment Group.",'."\n"
.' "label": "normal"'."\n"
.' }'."\n"
.' ]'."\n"
.' }'."\n"
.']'."\n"
.'```',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveAudioAuditNotifyConfig'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddLiveAudioAuditNotifyConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\"\\n}","type":"json"}]',
],
'AddLiveCenterTransfer' => [
'summary' => 'Adds a live center stream relay configuration.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the live stream application. The AppName you enter must be the same as the AppName of the live stream to be relayed for the configuration to take effect. You can view the AppName on the [Stream Management](~~197397~~) page.', 'type' => 'string', 'required' => true, 'example' => 'testapp', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The name of the live stream. You can view the StreamName on the [Stream Management](~~197397~~) page.', 'type' => 'string', 'required' => true, 'example' => 'teststream', 'title' => ''],
],
[
'name' => 'DstUrl',
'in' => 'query',
'schema' => ['description' => 'The third-party live streaming address for relay. You can add up to one address.'."\n"
."\n"
.'>The protocol of the destination address must be the same as the protocol of the live stream to be relayed. Only RTMP and SRT relay addresses are supported.', 'type' => 'string', 'required' => true, 'example' => 'rtmp://push.example2.aliyunlive.com/testapp1/teststream2', 'title' => ''],
],
[
'name' => 'TransferArgs',
'in' => 'query',
'schema' => [
'description' => 'The validity period of the relay. Valid values:'."\n"
."\n"
.'- **always**: permanently effective.'."\n"
."\n"
.'- **time**: effective within the specified time period.'."\n"
."\n"
.'>If the value is **time**, **StartTime** and **EndTime** are required.',
'enumValueTitles' => ['always' => 'Permanently effective', 'time' => 'Effective within the specified time period'],
'type' => 'string',
'required' => true,
'enum' => ['always', 'time'],
'example' => 'always',
'title' => '',
],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time of the relay. The date format follows the ISO 8601 notation and uses UTC+0 time. The format is yyyy-MM-ddTHH:mm:ssZ.', 'type' => 'string', 'required' => false, 'example' => '2017-12-21T10:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time of the relay. The date format follows the ISO 8601 notation and uses UTC+0 time. The format is yyyy-MM-ddTHH:mm:ssZ.'."\n"
."\n"
.'>The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2017-12-22T08:00:00Z', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '7908F2FF-44F8-120F-9FD6-85AE4B6C19EC', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => 'Illegal input parameters'],
['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' => ''],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"7908F2FF-44F8-120F-9FD6-85AE4B6C19EC\\"\\n}","type":"json"}]',
'title' => 'Add live center stream relay configuration',
'description' => 'The single-user QPS limit of this API is 100 calls per second. If the limit is exceeded, API calls will be throttled, which may affect your business. Please make calls appropriately.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveCenterTransfer'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddLiveCenterTransfer',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
],
'AddLiveDetectNotifyConfig' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveUTGSNT'],
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'NotifyUrl',
'in' => 'query',
'schema' => ['description' => 'The callback URL that is used to receive callback notifications about violations, such as pornographic content and politically sensitive content, detected in live streams.', 'type' => 'string', 'required' => true, 'example' => 'http://demo.aliyundoc.com/examplecallback.action', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidNotifyUrl.Malformed', 'errorMessage' => 'Specified NotifyUrl is invalid.', 'description' => 'Invalid value of notifyurl. Check whether the notifyurl parameter that you specified is correct.'],
['errorCode' => 'InvalidNotifyUrl.Unsafe', 'errorMessage' => 'Specified NotifyUrl is not safe.', 'description' => 'Invalid value of notifyurl. Check whether the notifyurl parameter that you specified is correct.'],
['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => 'Config has already exist.', 'description' => ''],
['errorCode' => 'InvalidParams', 'errorMessage' => 'Invalid Params.', 'description' => ''],
],
],
'title' => 'AddLiveDetectNotifyConfig',
'summary' => 'Configures callbacks for video moderation results. As a result, a callback URL that is used to receive the callback notifications is added.',
'description' => '- The automated review feature sends notifications about violations to the callback URL in real time. Then, you can manually review the content and take actions accordingly.'."\n"
."\n"
.'- Only some live centers support the automated review feature. For more information, see [Supported regions](~~193730~~).'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 30 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation. For more information, see [QPS limit on an API operation in ApsaraVideo Live](https://www.alibabacloud.com/help/en/apsaravideo-live/latest/qps-limit-on-an-api-operation-in-apsaravideo-live).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddLiveDetectNotifyConfig',
'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"}]',
],
'AddLiveDomain' => [
'summary' => 'Adds a domain name to ApsaraVideo Live. This operation allows you to add only one domain name at a time.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'paid',
'abilityTreeCode' => '106844',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'LiveDomainType',
'in' => 'query',
'schema' => [
'description' => 'The type of the domain name. Valid values:'."\n"
."\n"
.'- **liveVideo**: streaming domain. This value is required if you set the DomainName parameter to a streaming domain.'."\n"
."\n"
.'- **liveEdge**: ingest domain. This value is required if you set the DomainName parameter to an ingest domain.',
'type' => 'string',
'required' => true,
'docRequired' => true,
'enum' => ['liveVideo', 'liveEdge', 'liveGrtnPub', 'liveGrtnSub'],
'example' => 'liveVideo',
'title' => '',
],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The ingest domain or streaming domain that you want to add. Wildcard domain names that start with a period (.) are supported.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'example.aliyundoc.com', 'title' => ''],
],
[
'name' => 'Region',
'in' => 'query',
'schema' => ['description' => 'The region in which the domain name resides. Valid values:'."\n"
."\n"
.'- **cn-beijing**: China (Beijing)'."\n"
."\n"
.'- **cn-shanghai**: China (Shanghai)'."\n"
."\n"
.'- **cn-shenzhen**: China (Shenzhen)'."\n"
."\n"
.'- **cn-qingdao**: China (Qingdao)'."\n"
."\n"
.'- **ap-southeast-1**: Singapore'."\n"
."\n"
.'- **eu-central-1**: Germany (Frankfurt)'."\n"
."\n"
.'- **ap-northeast-1**: Japan (Tokyo)'."\n"
."\n"
.'- **ap-southeast-5**: Indonesia (Jakarta)'."\n"
."\n"
.'> Make sure that the settings of the Region and Scope parameters do not conflict with each other.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-beijing', 'title' => ''],
],
[
'name' => 'CheckUrl',
'in' => 'query',
'schema' => ['description' => 'The URL that is used for health checks.', 'type' => 'string', 'required' => false, 'example' => 'http://demo.aliyundoc.com/status.html', 'title' => ''],
],
[
'name' => 'Scope',
'in' => 'query',
'schema' => ['description' => 'The edge group. This parameter is applicable to users of level 3 or higher in mainland China and users outside mainland China. Valid values:'."\n"
."\n"
.'- **domestic**: mainland China. This is the default value.'."\n"
."\n"
.'- **overseas**: outside mainland China.'."\n"
."\n"
.'- **global**: regions in and outside mainland China.', 'type' => 'string', 'required' => false, 'example' => 'domestic', 'title' => ''],
],
[
'name' => 'TopLevelDomain',
'in' => 'query',
'schema' => ['description' => 'The top-level domain name.', 'type' => 'string', 'required' => false, 'example' => 'learn.aliyundoc.com', 'title' => ''],
],
[
'name' => 'ResourceGroupId',
'in' => 'query',
'allowEmptyValue' => true,
'schema' => ['description' => 'The ID of the resource group. For more information about resource groups, see [Resource groups](~~2381067~~).', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'rg-aekzw******'],
],
[
'name' => 'Tag',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The tags.',
'type' => 'array',
'items' => [
'description' => 'The tag.',
'type' => 'object',
'properties' => [
'Key' => ['description' => 'The key of the tag.', 'type' => 'string', 'required' => false, 'example' => 'TestKey', 'title' => ''],
'Value' => ['description' => 'The value of the tag.', 'type' => 'string', 'required' => false, 'example' => 'TestValue'."\n", 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 21,
'title' => '',
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidDomainName.Malformed', 'errorMessage' => 'Specified DomainName is malformed.', 'description' => ''],
['errorCode' => 'InvalidRegion.Malformed', 'errorMessage' => 'Specified Region is malformed.', 'description' => 'The specified area is invalid.'],
['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' => 'Extensive domain and corresponding specific domain are mutually exclusive.'],
['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' => 'The root domain is added to other accounts.'],
['errorCode' => 'ExceedLimit', 'errorMessage' => 'The number of domains has exceeded the limit.', 'description' => 'The number of domains has exceeded the limit.'],
['errorCode' => 'LockFail', 'errorMessage' => 'Domain has been occupied.', 'description' => 'The domain name is currently in use. Please try again later.'],
],
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' => 'The resource group does not exist.'],
],
[
['errorCode' => 'InvalidUser', 'errorMessage' => 'The user\'s account is invalid.', 'description' => ''],
],
],
'title' => 'AddLiveDomain',
'description' => '- You must activate ApsaraVideo Live before you add a domain name. For more information, see [Activate ApsaraVideo Live](~~195292~~).'."\n"
."\n"
.'- ApsaraVideo Live verifies the ownership of a new domain name that you add. After the verification is passed, the domain name is added to ApsaraVideo Live. ApsaraVideo Live allows you to use a Domain Name System (DNS) record or a verification file to verify the ownership of a domain name. For more information, see [Verify the ownership of a domain name](~~184466~~).'."\n"
."\n"
.'- To use ApsaraVideo Live to ingest and play streams, you must add an ingest domain and a streaming domain. You can add only one domain name at a time.'."\n"
."\n"
.'- After you add a domain name, you must configure a CNAME record for the domain name. For more information, see [Add a CNAME record](~~84929~~).'."\n"
."\n"
.'- After you add an ingest domain and a streaming domain, you must associate the streaming domain with the ingest domain. For more information, see [Associate a streaming domain with an ingest domain](~~199338~~).'."\n"
."\n"
.'> From February 19, 2019, domain names that are added by calling the AddLiveDomain operation do not support live center ingest. Domain names that are added by using Alibaba Cloud CDN also do not support live center ingest. When you call the AddLiveDomain operation, you can set the LiveDomainType parameter to liveEdge to add an ingest domain that uses edge ingest or set the LiveDomainType parameter to liveVideo to add a streaming domain. You can associate a streaming domain with an ingest domain by calling the AddLiveDomainMapping operation. Domain names added before February 19, 2019, for which live center ingest was configured, are not affected.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 30 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2024-10-24T06:13:17.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2024-09-25T07:00:46.000Z', 'description' => 'Error codes changed, Request parameters changed'],
['createdAt' => '2023-05-09T08:02:40.000Z', 'description' => 'Error codes changed'],
['createdAt' => '2022-12-22T09:03:34.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveDomain'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddLiveDomain',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]',
],
'AddLiveDomainMapping' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => [
'operationType' => 'create',
'abilityTreeCode' => '106845',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'PushDomain',
'in' => 'query',
'schema' => ['description' => 'The ingest domain. The type of the domain name is **liveEdge**.', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com', 'title' => ''],
],
[
'name' => 'PullDomain',
'in' => 'query',
'schema' => ['description' => 'The streaming domain. The type of the domain name is **liveVideo**.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidPushDomain', 'errorMessage' => 'The PushDomain should be liveEdge type.', 'description' => ''],
['errorCode' => 'InvalidPullDomain', 'errorMessage' => 'The PullDomain should be liveVideo type.', 'description' => ''],
],
],
'eventInfo' => [
'enable' => false,
'eventNames' => [],
],
'title' => 'AddLiveDomainMapping',
'summary' => 'Creates the mapping between a streaming domain and an ingest domain.',
'description' => 'Call the [AddLiveDomain](~~88327~~) operation to add a streaming domain and an ingest domain, and then call this operation to create the mapping between the two domain names.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 30 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation. For more information, see [QPS limits](~~343507~~).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveDomainMapping'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddLiveDomainMapping',
'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"}]',
],
'AddLiveDomainPlayMapping' => [
'summary' => 'Maps a sub-streaming domain to a main streaming domain.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '106846',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'PlayDomain',
'in' => 'query',
'schema' => ['description' => 'The sub-streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.aliyundoc.com', 'title' => ''],
],
[
'name' => 'PullDomain',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => 'Illegal input parameters'],
['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' => 'AddLiveDomainPlayMapping',
'description' => 'Before you call this operation, you must add the main streaming domain and sub-streaming domain by calling [AddLiveDomain](~~88327~~).'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 1,000 times per minute per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveDomainPlayMapping'],
],
],
'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' => 'The AddLiveMessageGroupBand operation mutes users in a group.',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '235183',
'abilityTreeNodes' => ['FEATUREliveSL6Y07'],
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID.', 'type' => 'string', 'required' => true, 'example' => 'demo', 'title' => ''],
],
[
'name' => 'GroupId',
'in' => 'query',
'schema' => ['description' => 'The group ID.', 'type' => 'string', 'required' => true, 'example' => 'grouptest', 'title' => ''],
],
[
'name' => 'BannedUsers',
'in' => 'query',
'style' => 'simple',
'schema' => [
'description' => 'A list of users to mute. Separate multiple user IDs with a comma (,). You can specify a maximum of 30 users.',
'type' => 'array',
'items' => ['description' => 'The user to mute.', 'type' => 'string', 'required' => false, 'example' => 'uid1', 'title' => ''],
'required' => true,
'title' => '',
'example' => '',
],
],
[
'name' => 'DataCenter',
'in' => 'query',
'schema' => ['description' => 'The data center. This must be the same data center that you specified when you called the [CreateLiveMessageApp](~~2848162~~) operation.'."\n"
."\n"
.'> Currently, this operation is supported in Shanghai (value: cn-shanghai) and Singapore (value: ap-southeast-1).', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '84AF36BF-0B39-1F8A-A416-FAC7C484****'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"84AF36BF-0B39-1F8A-A416-FAC7C484****\\"\\n}","type":"json"}]',
'title' => 'AddLiveMessageGroupBand',
'description' => 'Before you call this operation, you must call the [CreateLiveMessageGroup](~~2848163~~) operation to create an interactive message group.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 10 calls per second for each user. API calls that exceed this limit are throttled, which may affect your business. Plan your calls accordingly.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:AddLiveMessageGroupBand',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'],
],
],
],
],
],
'AddLivePackageConfig' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '191929',
'abilityTreeNodes' => ['FEATUREliveJAENGU'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The live streaming domain name. This is the primary playback domain name.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The AppName must match the AppName in the ingest URL for the template to take effect. The AppName can be up to 255 characters in length and can contain digits, uppercase letters, lowercase letters, hyphens (-), and underscores (\\_). A hyphen or an underscore cannot be the first character. You can also set this parameter to a single asterisk (\\*) to match all AppNames.', 'type' => 'string', 'required' => true, 'example' => 'AppName', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The StreamName must match the StreamName in the ingest URL for the template to take effect. The StreamName can be up to 255 characters in length and can contain digits, uppercase letters, lowercase letters, hyphens (-), and underscores (\\_). A hyphen or an underscore cannot be the first character. You can also set this parameter to a single asterisk (\\*) to match all StreamNames.', 'type' => 'string', 'required' => true, 'example' => 'StreamName', 'title' => ''],
],
[
'name' => 'Protocol',
'in' => 'query',
'schema' => ['description' => 'The live streaming protocol and container format. Valid values:'."\n"
."\n"
.'- **HLS\\_CMAF**'."\n"
."\n"
.'- **LLHLS\\_TS**'."\n"
.' (low latency)'."\n"
."\n"
.'- **LLHLS\\_CMAF** (low latency)'."\n"
."\n"
.'- **DASH\\_CMAF**'."\n"
."\n"
.'- **HLSDASH\\_CMAF**', 'type' => 'string', 'required' => true, 'example' => 'HLS_CMAF', 'title' => ''],
],
[
'name' => 'SegmentNum',
'in' => 'query',
'schema' => ['description' => 'The number of M3U8 segments for live streaming.'."\n"
."\n"
.'- Valid values: 3 to 10.'."\n"
."\n"
.'- Default value: 3.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '3', 'title' => ''],
],
[
'name' => 'SegmentDuration',
'in' => 'query',
'schema' => ['description' => 'The segment length, in seconds.'."\n"
."\n"
.'- If you set Protocol to HLS\\_CMAF, the valid values are 1 to 10. The default value is 5.'."\n"
."\n"
.'- If you set Protocol to LLHLS\\_\\*, the valid values are 1 to 2. The default value is 1.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '5', 'title' => ''],
],
[
'name' => 'PartDuration',
'in' => 'query',
'schema' => ['description' => 'The length of the part segment, in milliseconds.'."\n"
."\n"
.'- If SegmentDuration is 1 s, the valid values are 100 to 500. The default value is 350.'."\n"
."\n"
.'- If SegmentDuration is 2 s, the valid values are 100 to 1000. The default value is 700.'."\n"
."\n"
.'- This parameter is valid only when you set Protocol to LLHLS\\_\\*.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '350', 'title' => ''],
],
[
'name' => 'IgnoreTranscode',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to ignore transcoded streams. Valid values:'."\n"
."\n"
.'- **true** (default): Ignore transcoded streams.'."\n"
."\n"
.'- **false**: Do not ignore transcoded streams.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '05D00B48-DF50-5DC0-A07D-A250DFAE****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is missing, please check and try again.'],
['errorCode' => 'InvalidParams', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is invalid, please check and try again.'],
['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => '%s Please check and try again later.', 'description' => 'Configuration already exists, please check and try again.'],
['errorCode' => 'InvalidProtocol', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter Protocol is invalid, please check and try again.'],
['errorCode' => 'InvalidSegmentNum', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter SegmentNum is invalid, please check and try again.'],
['errorCode' => 'InvalidSegmentDuration', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter SegmentDuration is invalid, please check and try again.'],
['errorCode' => 'InvalidPartDuration', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter PartDuration is invalid, please check and try again.'],
],
409 => [
['errorCode' => 'ConfigConflicts', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Configuration conflict, please check and try again.'],
],
500 => [
['errorCode' => 'InternalErr', 'errorMessage' => '%s, please try again.', 'description' => 'Internal error, please try again later.'],
['errorCode' => 'DomainConfigFailed', 'errorMessage' => '%s, please try again later.', 'description' => 'Domain name configuration failed, please try again later.'],
],
],
'title' => 'AddLivePackageConfig',
'summary' => 'You can call the AddLivePackageConfig operation to add a live stream packaging configuration.',
'description' => '- When you add a packaging configuration to a domain name for the first time, the related acceleration configurations for the playback domain name are also applied. The configurations take effect in 3 to 5 minutes.'."\n"
."\n"
.'- If the playback domain name is in a region outside China, such as Singapore, Germany, Japan, or Indonesia, high latency may occur. After you add the configuration, test it to ensure it works as expected.'."\n"
."\n"
.'- After you add a live stream packaging configuration, you must restart the stream ingest for the configuration to take effect.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 300 calls per minute. If you exceed the limit, API calls are throttled. This may affect your business. Plan your calls accordingly.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddLivePackageConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"05D00B48-DF50-5DC0-A07D-A250DFAE****\\"\\n}","type":"json"}]',
],
'AddLivePullStreamInfoConfig' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain where the ingested stream will be hosted and distributed from.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The custom name of the application.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The custom name of the live stream.', 'type' => 'string', 'required' => true, 'example' => 'liveStream****', 'title' => ''],
],
[
'name' => 'SourceUrl',
'in' => 'query',
'schema' => ['description' => 'The origin URL of the live stream. You can specify multiple URLs. Separate them with semicolons (;).'."\n"
."\n"
.'> You can pull only live streams in the RTMP, FLV, HLS, and SRT formats.', 'type' => 'string', 'required' => true, 'example' => 'rtmp://guide.aliyundoc.com/liveApp****/liveStream****;rtmp://developer.aliyundoc.com/liveApp****/liveStream****', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The time when stream pulling starts. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.', 'type' => 'string', 'required' => true, 'example' => '2017-12-21T08:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The time when stream pulling ends.'."\n"
."\n"
.'The time range specified by the StartTime and EndTime parameters cannot exceed seven days. The time must be later than the current time. Specify the value in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.', 'type' => 'string', 'required' => true, 'example' => '2017-12-22T08:00:00Z', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'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' => ''],
['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' => 'Illegal input parameters'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''],
],
],
'title' => 'AddLivePullStreamInfoConfig',
'summary' => 'Creates a scheduled stream pulling configuration, which includes parameters such as the origin URL, start time, and end time.',
'description' => '- Before you call this operation, make sure that you understand the billing method and pricing of ApsaraVideo Live. For more information, see [](t1961174.xdita#).'."\n"
."\n"
.'- Stream pulling refers to the process of pulling live streams from third-party URLs to a live center of ApsaraVideo Live for CDN acceleration.'."\n"
."\n"
.'- This operation supports only scheduled stream pulling. You can specify a start time and an end time to pull a live stream during a specific time period.'."\n"
."\n"
.'- The console supports both scheduled and triggered stream pulling. For more information, see [Configure stream pulling](~~199452~~).'."\n"
."\n"
.'- You can specify custom values for the AppName and StreamName parameters. Streaming URLs are generated based on AppName and StreamName. You can use the [](t2020590.xdita#) to generate a streaming URL.'."\n"
."\n"
.'- Each stream pulling configuration must be unique. The combination of DomainName, AppName, and StreamName can only be associated with one active configuration. Attempting to add a duplicate configuration will result in an error.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 15 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddLivePullStreamInfoConfig',
'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-CB92E68F4CF8\\"\\n}","type":"json"}]',
],
'AddLiveRecordNotifyConfig' => [
'summary' => 'Adds a domain-level recording callback configuration.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streamer streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'NotifyUrl',
'in' => 'query',
'schema' => ['description' => 'The callback URL for recording events and status callbacks.'."\n"
."\n"
.'> The URL must start with `http://` or `https://`. For more information, see [Recording event callback](~~55016~~).', 'type' => 'string', 'required' => true, 'example' => 'http://demo.aliyundoc.com/examplecallback.action', 'title' => ''],
],
[
'name' => 'NeedStatusNotify',
'in' => 'query',
'schema' => ['description' => 'Specifies whether recording task status callbacks are required. Valid values:'."\n"
."\n"
.'- true: Required. If NeedStatusNotify is set to **true**, the response includes a recording status callback example.'."\n"
.'- false (default): Not required.', 'type' => 'boolean', 'required' => false, 'default' => 'false', 'example' => 'false', 'title' => ''],
],
[
'name' => 'OnDemandUrl',
'in' => 'query',
'schema' => ['description' => 'The callback URL for on-demand recording.'."\n"
."\n"
.'> The URL must start with `http://` or `https://`. For more information, see [On-demand recording callback](~~85910~~).', 'type' => 'string', 'required' => false, 'example' => 'http://learn.aliyundoc.com/ondemandcallback.action', 'title' => ''],
],
[
'name' => 'NotifyReqAuth',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to enable callback authentication. Valid values:'."\n"
."\n"
.'- true: Enabled.'."\n"
."\n"
.'- false (default): Disabled.'."\n"
."\n"
.'> When this parameter is set to true, the NotifyAuthKey parameter is required.', 'type' => 'boolean', 'required' => false, 'default' => 'false', 'example' => 'true', 'title' => ''],
],
[
'name' => 'NotifyAuthKey',
'in' => 'query',
'schema' => ['description' => 'The callback authentication key. The key must be 16 to 32 characters in length and can contain only letters and digits.'."\n"
.'> This parameter is required when the NotifyReqAuth parameter is set to true.', 'type' => 'string', 'required' => false, 'maxLength' => 64, 'minLength' => 16, 'example' => 'chenhuanxin249088', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidNotifyUrl.Malformed', 'errorMessage' => 'Specified NotifyUrl is invalid.', 'description' => 'Invalid value of notifyurl. Check whether the notifyurl parameter that you specified is correct.'],
['errorCode' => 'InvalidNotifyUrl.Unsafe', 'errorMessage' => 'Specified NotifyUrl is not safe.', 'description' => 'Invalid value of notifyurl. Check whether the notifyurl parameter that you specified is correct.'],
['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' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]',
'title' => 'Add domain-level recording callback configuration',
'description' => 'Before calling this operation to add a domain-level recording callback configuration, query the live recording callback configuration first. To query the live recording callback configuration by using an API operation, see [Query live recording callback configuration](~~2847893~~).'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The single-user QPS limit for this operation is 30 calls per second. If the limit is exceeded, API calls are throttled, which may affect your business. Call this operation appropriately.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveRecordNotifyConfig'],
],
],
'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' => 'Creates a live-to-VOD configuration to store recordings in ApsaraVideo VOD.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '106854',
'abilityTreeNodes' => ['FEATUREliveL04ZVK'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID. The example value `cn-shanghai` indicates the China (Shanghai) region.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.'."\n"
."\n"
.'> Ensure ApsaraVideo VOD is activated in the same region as the streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the application that the stream belongs to. You can find this value on the [stream management](~~197397~~) page.', 'type' => 'string', 'required' => true, 'example' => 'testName', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The stream name. You can find this value on the [stream management](~~197397~~) page.', 'type' => 'string', 'required' => false, 'example' => 'stream', 'title' => ''],
],
[
'name' => 'VodTranscodeGroupId',
'in' => 'query',
'schema' => ['description' => '>This parameter is ignored if `RecordFormat` is specified.>'."\n"
.'The ID of the ApsaraVideo VOD transcoding template group for transcoding recorded videos.', 'type' => 'string', 'required' => false, 'example' => 'e2d796d3bb5fd8049d32bff62f94****', 'title' => ''],
],
[
'name' => 'CycleDuration',
'in' => 'query',
'schema' => ['description' => 'The cycle duration, in seconds. The default value is **3600**. The value must be between **300** and **21600**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '21600', 'minimum' => '300', 'example' => '300', 'title' => ''],
],
[
'name' => 'AutoCompose',
'in' => 'query',
'schema' => ['description' => '>This parameter is ignored if `RecordFormat` is specified.>'."\n"
.'Specifies whether to automatically merge files from multiple recording cycles into a single file after a live stream ends.'."\n"
."\n"
.'A value of **ON** enables automatic merging. If enabled, you must also specify the `ComposeVodTranscodeGroupId` parameter. By default, automatic merging is disabled.', 'type' => 'string', 'required' => false, 'example' => 'ON', 'title' => ''],
],
[
'name' => 'SpaceId',
'in' => 'query',
'schema' => ['description' => 'The ID of the VOD application space. You can obtain this ID from the **VOD console** or by calling an [API operation to query application information](~~454873~~). This parameter applies only when the VOD application space feature is enabled.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'app-1000000'],
],
[
'name' => 'StorageLocation',
'in' => 'query',
'schema' => ['description' => 'The storage location.', 'type' => 'string', 'required' => false, 'example' => '****-tjptr2vatm.oss-cn-shanghai.aliyuncs.com', 'title' => ''],
],
[
'name' => 'ComposeVodTranscodeGroupId',
'in' => 'query',
'schema' => ['description' => '>This parameter is ignored if `RecordFormat` is specified.>'."\n"
.'The ID of the ApsaraVideo VOD transcoding template group for transcoding the merged video. This parameter is required if `AutoCompose` is set to `ON`.', 'type' => 'string', 'required' => false, 'example' => '*****', 'title' => ''],
],
[
'name' => 'OnDemand',
'in' => 'query',
'schema' => ['description' => 'The recording trigger mode. Valid values:'."\n"
."\n"
.'- **0** (Default): Automatic recording.'."\n"
."\n"
.'- **1**: On-demand recording triggered by an HTTP callback.'."\n"
."\n"
.'- **2**: On-demand recording triggered by ingest parameters.'."\n"
."\n"
.'- **7**: Manual recording. Allows you to start and stop recording by calling the `RealTimeRecordCommand` operation.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
],
[
'name' => 'RecordContent',
'in' => 'query',
'schema' => ['description' => 'The recorded content. Valid values:'."\n"
."\n"
.'- `raw` (Default): Records the source stream.'."\n"
."\n"
.'- `transcode`: Records transcoded streams.'."\n"
."\n"
.'To record both source and transcoded streams, provide a comma-separated list, for example, `raw,transcode`.'."\n"
."\n"
.'> If this parameter is set to include `transcode`, you must specify at least one template in the `TranscodeTemplates` parameter.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'raw'],
],
[
'name' => 'DelayTime',
'in' => 'query',
'schema' => ['description' => 'The stream interruption timeout, in seconds. If a stream interruption is shorter than this duration, recording continues in the same file. If the interruption is longer, a new file is created. Valid values: 15 to 21600.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '21600', 'minimum' => '15', 'default' => '180', 'title' => '', 'required' => false, 'example' => '180'],
],
[
'name' => 'RecordFormat',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Format' => ['description' => 'The recording format. Valid values:'."\n"
."\n"
.'- `m3u8`'."\n"
."\n"
.'- `flv`'."\n"
."\n"
.'- `mp4`', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'm3u8'],
'SliceDuration' => ['description' => 'The slice duration, in seconds.'."\n"
."\n"
.'This parameter applies only to the `m3u8` format.'."\n"
."\n"
.'The value must be between 5 and 30. The default is 30.', 'type' => 'integer', 'format' => 'int32', 'default' => '30', 'title' => '', 'required' => false, 'example' => '30'],
'AutoCompose' => ['description' => 'Specifies whether to automatically merge recording files for this format after the stream ends. Valid values:'."\n"
."\n"
.'- `ON`: Enables automatic merging.'."\n"
."\n"
.'- `OFF`: Disables automatic merging.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'ON'],
'VideoProcess' => ['description' => 'The video source to process. Valid values:'."\n"
."\n"
.'- `origin` (Default): The per-cycle recording files.'."\n"
."\n"
.'- `compose`: The single video file composed from all cycles.'."\n"
."\n"
.'To process both video sources, separate the values with a comma (,), for example, `origin,compose`.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'origin'],
'ProcessMethod' => ['description' => 'The video processing method. Valid values:'."\n"
."\n"
.'- `transcode`: Uses a transcoding template group to process the video.'."\n"
."\n"
.'- `workflow`: Uses a workflow to process the video.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'transcode'],
'ProcessTemplateId' => ['description' => 'The ID of the transcoding template group or workflow.'."\n"
."\n"
.'> The specified ID must match the `ProcessMethod`. For example, provide a transcoding template group ID if `ProcessMethod` is `transcode`, or a workflow ID if `ProcessMethod` is `workflow`.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'e2d796d3bb5fd8049d32bff62f94****'],
'Tags' => ['description' => 'The tags for video categorization.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'sports'],
],
'title' => '',
'description' => 'The recording format configuration.',
'required' => false,
'example' => '',
],
'maxItems' => 3,
'title' => '',
'description' => 'A list of format-specific recording configurations.',
'required' => false,
'example' => '',
],
],
[
'name' => 'TranscodeTemplates',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'type' => 'array',
'items' => ['description' => '- The name of the [transcoding template](~~45039~~). You can specify up to 10 templates.'."\n"
."\n"
.'- If `RecordContent` is set to include `transcode`, you must specify at least one template.'."\n"
."\n"
.'- To record all available transcoded streams, specify the wildcard character (`*`) as the value. For example, `TranscodeTemplates.1=*`.'."\n"
."\n"
.'> The value `raw` is reserved and cannot be used. The `N` in `TranscodeTemplates.N` is an index starting from 1 for each template. For example: `TranscodeTemplates.1=sd` and `TranscodeTemplates.2=hd`. ', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'sd'],
'maxItems' => 10,
'title' => '',
'description' => 'A list of transcoding templates for recording transcoded streams.',
'required' => false,
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned data.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'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' => 'Parameter verification failed'],
],
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' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","type":"json"}]',
'title' => 'AddLiveRecordVodConfig',
'description' => '- Storing recordings in ApsaraVideo for VOD triggers automatic operations like video merging and transcoding, which incur video processing fees within the service. For details, see [video editing billing](~~188310~~) and [video transcoding billing](~~188308~~). For FAQs on automatic merging and transcoding, see the [live-to-VOD FAQ](~~99726~~).'."\n"
."\n"
.'- Alibaba Finance Cloud accounts do not support the live-to-VOD feature.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The QPS limit for this API is 1,000 calls per minute per user. Exceeding this limit will cause API calls to be throttled, which can impact your business. To avoid throttling, call the API at a reasonable rate.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '1000', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AddLiveRecordVodConfig'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddLiveRecordVodConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
],
'AddLiveSnapshotDetectPornConfig' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveUTGSNT'],
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the application to which the live stream belongs.', 'type' => 'string', 'required' => true, 'example' => 'testApp', 'title' => ''],
],
[
'name' => 'OssEndpoint',
'in' => 'query',
'schema' => ['description' => 'The endpoint of the Object Storage Service (OSS) bucket.'."\n"
."\n"
.'After the review is complete, you can search for specific violations in the OSS console based on the callback information. You must configure the OSS endpoint in advance. For more information, see [Configure content moderation](~~199449~~).', 'type' => 'string', 'required' => true, 'example' => 'cn-oss-****.aliyuncs.com', 'title' => ''],
],
[
'name' => 'OssBucket',
'in' => 'query',
'schema' => ['description' => 'The name of the OSS bucket.'."\n"
."\n"
.'After the review is complete, you can search for specific violations in the OSS console based on the callback information. You must create the OSS bucket in advance. For more information, see [Configure content moderation](~~199449~~).', 'type' => 'string', 'required' => true, 'example' => 'livebucket', 'title' => ''],
],
[
'name' => 'OssObject',
'in' => 'query',
'schema' => ['description' => 'The name of the snapshot that stores violations such as pornographic content and politically sensitive content.', 'type' => 'string', 'required' => false, 'example' => 'record/{AppName}/{StreamName}/{Sequence}.jpg', 'title' => ''],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => ['description' => 'The interval at which snapshots are captured from the live stream. Valid values: **5 to 3600**. Unit: seconds.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '3600', 'minimum' => '5', 'example' => '10', 'title' => ''],
],
[
'name' => 'Scene',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Scene list detection.',
'type' => 'array',
'items' => ['description' => 'The moderation scenario. Valid values:'."\n"
."\n"
.'- **porn**: pornography detection. This is the default value.'."\n"
."\n"
.'- **terrorism**: terrorism detection'."\n"
."\n"
.'- **ad**: ad violation detection'."\n"
."\n"
.'- **live**: undesirable scene detection'."\n"
."\n"
.'- **logo**: logo detection', 'type' => 'string', 'required' => false, 'example' => 'live', 'title' => ''],
'required' => false,
'example' => 'live',
'maxItems' => 5,
'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidOssEndpoint.Malformed', 'errorMessage' => 'Specified parameter OssEndpoint is not valid.', 'description' => ''],
['errorCode' => 'InvalidOssBucket.Malformed', 'errorMessage' => 'Specified parameter OssBucket is not valid.', 'description' => ''],
['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' => 'AddLiveSnapshotDetectPornConfig',
'summary' => 'Adds a video moderation configuration for live streams in an application under a domain name.',
'description' => '- The live streaming audit function identifies and reviews non-compliant sensitive content at the domain and App level, and promptly notifies users of such violations via callbacks. Users can then review the content and take appropriate actions.'."\n"
."\n"
.'- Currently, only some live streaming centers support intelligent auditing. For a list of live streaming centers that support this feature, please refer to [Service Regions](~~193730~~).'."\n"
."\n"
.'## QPS Limitation'."\n"
."\n"
.'The QPS limit for this API per user is 30 requests/second. Exceeding this limit will result in API throttling, which may impact your services. Please use the API judiciously. For more information, see [QPS Limitations](~~343507~~).',
'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' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","type":"json"}]',
],
'AddLiveSnapshotNotifyConfig' => [
'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' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'www.yourdomain***.com', 'title' => ''],
],
[
'name' => 'NotifyUrl',
'in' => 'query',
'schema' => ['description' => 'The callback URL. The URL must be valid, with a maximum length of 500 characters.', 'type' => 'string', 'required' => true, 'example' => 'http://callback.yourdomain***.com', 'title' => ''],
],
[
'name' => 'NotifyReqAuth',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to enable callback authentication. Valid values:'."\n"
."\n"
.'- **yes**: Enables'."\n"
."\n"
.'- **no** (Default): Disables'."\n"
."\n"
.'> If you set this parameter to yes, NotifyAuthKey is required.', 'type' => 'string', 'required' => false, 'example' => 'yes', 'title' => ''],
],
[
'name' => 'NotifyAuthKey',
'in' => 'query',
'schema' => ['description' => 'The authentication key for the callback. The key must be 16 to 32 characters in length and contain only letters and digits.'."\n"
."\n"
.'> This parameter is required if you set NotifyReqAuth to **yes**.', 'type' => 'string', 'required' => false, 'example' => 'yourkey', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is missing, please check and try again.'],
['errorCode' => 'MalformedParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Invalid parameter, please check and try again.'],
],
409 => [
['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Configuration already exists, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'AddLiveSnapshotNotifyConfig',
'summary' => 'Configures snapshot callbacks.',
'description' => 'You can call this operation up to 30 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'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' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","type":"json"}]',
],
'AddLiveStreamMerge' => [
'summary' => 'Call AddLiveStreamMerge to add a primary/backup stream merge configuration.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '106856',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The AppName of the output stream. For the configuration to take effect, this AppName must match the one in the ingest URL. Wildcards (`*`) are not supported.', 'type' => 'string', 'required' => true, 'example' => 'app', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The StreamName of the output stream. For the configuration to take effect, this StreamName must match the one in the ingest URL. Wildcards (`*`) are not supported.', 'type' => 'string', 'required' => true, 'example' => 'StreamName', 'title' => ''],
],
[
'name' => 'InAppName1',
'in' => 'query',
'schema' => ['description' => 'The AppName of the primary input stream. This value must match the AppName in the ingest URL for the primary stream.', 'type' => 'string', 'required' => true, 'example' => 'app1', 'title' => ''],
],
[
'name' => 'InStreamName1',
'in' => 'query',
'schema' => ['description' => 'The StreamName of the primary input stream. This value must match the StreamName in the ingest URL for the primary stream.', 'type' => 'string', 'required' => true, 'example' => 'InStream1', 'title' => ''],
],
[
'name' => 'InAppName2',
'in' => 'query',
'schema' => ['description' => 'The AppName of the backup input stream. This value must match the AppName in the ingest URL for the backup stream.', 'type' => 'string', 'required' => true, 'example' => 'app2', 'title' => ''],
],
[
'name' => 'InStreamName2',
'in' => 'query',
'schema' => ['description' => 'The StreamName of the backup input stream. This value must match the StreamName in the ingest URL for the backup stream.', 'type' => 'string', 'required' => true, 'example' => 'stream2', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time of the stream merge.'."\n"
."\n"
.'The time must be in UTC and specified in the ISO 8601 standard format: `yyyy-MM-ddTHH:mm:ssZ`.', 'type' => 'string', 'required' => true, 'example' => '2020-05-29T00:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time of the stream merge.'."\n"
."\n"
.'The time must be in UTC and specified in the ISO 8601 standard format: `yyyy-MM-ddTHH:mm:ssZ`.'."\n"
."\n"
.'> The interval between `StartTime` and `EndTime` cannot exceed 7 days.', 'type' => 'string', 'required' => true, 'example' => '2020-05-29T01:00:00Z', 'title' => ''],
],
[
'name' => 'Protocol',
'in' => 'query',
'schema' => ['description' => 'The live stream protocol for the input streams. Valid values:'."\n"
."\n"
.'- **rtmp** (Default)'."\n"
."\n"
.'- **rtc**', 'type' => 'string', 'required' => false, 'example' => 'rtmp', 'title' => ''],
],
[
'name' => 'LiveMerger',
'in' => 'query',
'schema' => ['description' => 'The engine to use for stream merging.'."\n"
."\n"
.'- `on`: The new liveswitch engine.'."\n"
."\n"
.'- `off`: A legacy engine (such as rtmpr). This is the default.', 'type' => 'string', 'default' => 'off', 'required' => false, 'example' => 'off', 'title' => ''],
],
[
'name' => 'MergeParameters',
'in' => 'query',
'schema' => ['description' => 'Parameters that define the failover conditions. A failover is triggered when one of the following conditions is met:'."\n"
."\n"
.'1. An explicit stream disconnection occurs, such as an end-of-file (EOF) or network error.'."\n"
."\n"
.'2. The stutter rate exceeds 60% in the last 5 seconds.'."\n"
."\n"
.'3. A stream pulling timeout occurs if no frame data is received for 2 consecutive seconds.'."\n"
."\n"
.'4. The average frame rate over the period specified by `ali_max_no_frame_timeout` drops below `ali_low_frame_rate_threshold`. This condition applies even if there is no stream disconnection or stuttering. If you set `ali_max_no_frame_timeout`, the timeout for Condition 3 is also updated to this value.'."\n"
."\n"
.'5. If `block_all_jitter` is set to `1`, Conditions 2, 3, and 4 do not apply.'."\n"
."\n"
.'- `ali_max_no_frame_timeout`: an integer from 2 to 10. `ali_low_frame_rate_threshold`: an integer from 1 to 200. `block_all_jitter`: `0` or `1`.
', 'type' => 'string', 'required' => false, 'example' => 'ali_low_frame_rate_threshold=10&ali_max_no_frame_timeout=5&block_all_jitter=0', 'title' => ''],
],
[
'name' => 'SelectAppName',
'in' => 'query',
'schema' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''],
],
[
'name' => 'SelectStreamName',
'in' => 'query',
'schema' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''],
],
[
'name' => 'SwitchMode',
'in' => 'query',
'schema' => [
'type' => 'string',
'enum' => ['manually', 'automatically'],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The unique ID of the request.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', 'title' => ''],
'Message' => ['description' => '- A message that indicates the result of the request. If the request fails, this message helps the caller identify the issue.'."\n"
."\n"
.'- Valid values: OK, config invalid, degrade to no livemerger.', 'type' => 'string', 'example' => 'OK', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['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' => 'The value specified for the StartTime parameter is invalid.'],
['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => 'Illegal input parameters'],
['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' => 'The value of start time should be less than the value of end time .'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''],
],
],
'eventInfo' => [
'enable' => false,
'eventNames' => [],
],
'title' => 'AddLiveStreamMerge',
'description' => 'Exceeding the API limit of 100 QPS per account triggers throttling, which may disrupt your service. Please make calls reasonably.',
'requestParamsDescription' => '> The values for AppName, InAppName1, and InAppName2 must be unique. Similarly, the values for StreamName, InStreamName1, and InStreamName2 must be unique.',
'responseParamsDescription' => 'The message "config invalid, degrade to no livemerger" means the configuration for the new liveswitch engine is incomplete, causing an automatic downgrade to the legacy engine.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveStreamMerge'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddLiveStreamMerge',
'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 \\"Message\\": \\"OK\\"\\n}","type":"json"}]',
],
'AddLiveStreamTranscode' => [
'summary' => 'Calls AddLiveStreamTranscode to add transcoding configuration information.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveHVN9B2'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID. When using SDK 2.0, set this parameter to the region ID that corresponds to the service registration endpoint. When using SDK 1.0, ignore this parameter.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'Domain',
'in' => 'query',
'schema' => ['description' => 'The streaming domain of the streamer.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'App',
'in' => 'query',
'schema' => ['description' => 'The name of the application to which the stream belongs.'."\n"
."\n"
.'- The value of App must be the same as the AppName in the ingest URL for the transcoding template to take effect. The value can be up to 256 characters in length and can contain digits, letters, hyphens (-), and underscores (_).'."\n"
."\n"
.'- App also supports a single asterisk (\\*) as the value, which matches any string including an empty string.'."\n"
."\n"
.'> If a transcoding template with App set to a single asterisk (\\*) is configured: when a user pulls a transcoded stream, the system first matches the transcoding template whose App value is the same as the AppName in the ingest URL. If no such template exists, the system matches the transcoding template with App set to a single asterisk (\\*).', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'Template',
'in' => 'query',
'schema' => ['description' => 'The transcoding template. Valid values:'."\n"
."\n"
.'- Standard quality templates:'."\n"
."\n"
.' - **lld**: low definition.'."\n"
."\n"
.' - **lsd**: standard definition.'."\n"
."\n"
.' - **lhd**: high definition.'."\n"
."\n"
.' - **lud**: ultra-high definition.'."\n"
.' '."\n"
.'- Narrowband HD™ transcoding templates:'."\n"
."\n"
.' - **ld**: low definition.'."\n"
.' '."\n"
.' - **sd**: standard definition.'."\n"
.' '."\n"
.' - **hd**: high definition.'."\n"
.' '."\n"
.' - **ud**: ultra-high definition.', 'type' => 'string', 'required' => true, 'example' => 'lsd', 'title' => ''],
],
[
'name' => 'EncryptParameters',
'in' => 'query',
'schema' => ['description' => 'The encryption configuration. JSON format. The fields are described as follows:'."\n"
."\n"
.'- EncryptType: the encryption type. Set the value to **aliyun**.'."\n"
.'- KmsKeyID: the user KMS master key ID.'."\n"
.'- KmsKeyExpireInterval: the key rotation interval. Valid values: **60 to 3600**. Unit: seconds.', 'type' => 'string', 'required' => false, 'example' => '{"EncryptType": "aliyun", "KmsKeyID":"afce5722-81d2-43c3-9930-7601da11****","KmsKeyExpireInterval":"3600"}', 'title' => ''],
],
[
'name' => 'Lazy',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to enable on-demand transcoding. Valid values:'."\n"
.'- **yes**: enables on-demand transcoding.'."\n"
.'- **no**: disables on-demand transcoding.', 'type' => 'string', 'required' => false, 'default' => 'yes', 'example' => 'yes', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The request ID.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameters', 'errorMessage' => '%s Please check and try again later.', 'description' => 'Exception parameter exists, please check and try again.'],
['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => '%s Please check and try again later.', 'description' => 'Configuration already exists, please check and try again.'],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]',
'title' => 'Add transcoding configuration information',
'description' => '- Using the live stream transcoding feature incurs transcoding fees, which are calculated based on the transcoding standard, resolution specification, and total transcoding length. For billing rules, see [Live stream transcoding fees](~~90424~~).'."\n"
."\n"
.'- First obtain the user KMS master key ID through Key Management Service (KMS), and then invoke this operation to add default transcoding configuration information. Currently, this operation supports only two types of transcoding templates: standard quality templates and Narrowband HD™ transcoding templates.'."\n"
."\n"
.'- Alibaba Cloud KMS provides default keys for server-side encryption of cloud services at no cost, and no instance purchase is required. However, if you need to build a custom application cryptographic solution, use the credential feature, or manage the key lifecycle, you must purchase a software or hardware key management instance. For billing details, see [Billing](~~600418~~).'."\n"
."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this operation is 30 calls per second. If the limit is exceeded, API calls are throttled, which may affect your business. Invoke this operation appropriately.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveStreamTranscode'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddLiveStreamTranscode',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
],
'AddLiveStreamWatermark' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveCT0GRQ'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'Type',
'in' => 'query',
'schema' => ['description' => 'The type of the watermark. Valid value:'."\n"
."\n"
.'- **0**: image.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '0', 'title' => ''],
],
[
'name' => 'Name',
'in' => 'query',
'schema' => ['description' => 'The name of the watermark template.', 'type' => 'string', 'required' => true, 'example' => 'livewatermark****', 'title' => ''],
],
[
'name' => 'RefWidth',
'in' => 'query',
'schema' => ['description' => 'The reference width of the video background, in pixels.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1920', 'title' => ''],
],
[
'name' => 'RefHeight',
'in' => 'query',
'schema' => ['description' => 'The reference height of the video background, in pixels.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1080', 'title' => ''],
],
[
'name' => 'XOffset',
'in' => 'query',
'schema' => ['description' => 'The X-axis offset of the watermark, in pixels.'."\n"
."\n"
.'> Relative to RefWidth. If OffsetCorner is TopLeft, XOffset is the horizontal distance between the top‑left corner of the watermark and the top‑left corner of the background video. Positive X points to the right.', 'type' => 'number', 'format' => 'float', 'required' => true, 'example' => '50.0', 'title' => ''],
],
[
'name' => 'YOffset',
'in' => 'query',
'schema' => ['description' => 'The Y-axis offset of the watermark, in pixels.'."\n"
."\n"
.'> Relative to RefHeight. If OffsetCorner is TopLeft, YOffset is the vertical distance between the top‑left corner of the watermark and the top‑left corner of the background video. Positive Y points downward.', 'type' => 'number', 'format' => 'float', 'required' => true, 'example' => '100.0', 'title' => ''],
],
[
'name' => 'Height',
'in' => 'query',
'schema' => ['description' => 'The height of the watermark image, in pixels. This value is relative to `RefHeight` and will be scaled proportionally with the actual video resolution.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '200', 'title' => ''],
],
[
'name' => 'Transparency',
'in' => 'query',
'schema' => ['description' => 'The opacity of the watermark. Value range: `0` (fully transparent) to `255` (fully opaque).', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '255', 'title' => ''],
],
[
'name' => 'OffsetCorner',
'in' => 'query',
'schema' => ['description' => 'The anchor point for the watermark\'s position. Valid values:'."\n"
."\n"
.'- TopLeft'."\n"
."\n"
.'- TopRight'."\n"
."\n"
.'- BottomLeft'."\n"
."\n"
.'- BottomRight', 'type' => 'string', 'required' => true, 'example' => 'TopRight', 'title' => ''],
],
[
'name' => 'PictureUrl',
'in' => 'query',
'schema' => ['description' => 'The URL of the watermark image.', 'type' => 'string', 'required' => true, 'example' => 'http://example.com', 'title' => ''],
],
[
'name' => 'Description',
'in' => 'query',
'schema' => ['description' => 'A custom description for the watermark.', 'type' => 'string', 'required' => false, 'example' => 'my watermark', 'title' => ''],
],
[
'name' => 'Domain',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => false, 'example' => 'example.aliyundoc.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'TemplateId' => ['description' => 'The ID of the watermark template.', 'type' => 'string', 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5c6a2a0df228-4a64- af62-20e91b96****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameters', 'errorMessage' => '%s Please check and try again later.', 'description' => 'Exception parameter exists, please check and try again.'],
],
],
'title' => 'AddLiveStreamWatermark',
'summary' => 'Adds a watermark template.',
'description' => '- This API creates a live stream watermark template, which defines the watermark\'s content, layout, and other properties.'."\n"
."\n"
.'- After you add a watermark template, you must call the [AddLiveStreamWatermarkRule](~~2848100~~) operation to create a rule that applies the template. The watermark appears on the stream after you restart the stream ingest.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 60 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveStreamWatermark'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddLiveStreamWatermark',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TemplateId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0df228-4a64- af62-20e91b96****\\"\\n}","type":"json"}]',
],
'AddLiveStreamWatermarkRule' => [
'summary' => 'Adds a watermark rule.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveCT0GRQ'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'Name',
'in' => 'query',
'schema' => ['description' => 'The name of the custom rule.', 'type' => 'string', 'required' => true, 'example' => 'WatermarkRule****', 'title' => ''],
],
[
'name' => 'Domain',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.aliyundoc.com', 'title' => ''],
],
[
'name' => 'App',
'in' => 'query',
'schema' => ['description' => 'The AppName of the live stream.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'Stream',
'in' => 'query',
'schema' => ['description' => 'The stream name. The following rules apply:'."\n"
."\n"
.'- To match a specific stream, enter the full stream name. For example, liveStreamA.'."\n"
."\n"
.'- You can use a wildcard match. The asterisk (`*`) matches all streams.'."\n"
."\n"
.'- You can perform prefix and suffix matching.'."\n"
."\n"
.'> * You can use only one asterisk (`*`). The asterisk must be at the beginning or end of the string. The matching items must be enclosed in parentheses (`()`) and separated by a vertical bar (`|`).'."\n"
.'>'."\n"
.'> * For example, `*(t1|t2)` matches all streams that end with `t1` or `t2`. `(abc|123)*` matches all streams that start with `abc` or `123`.', 'type' => 'string', 'required' => true, 'example' => 'liveStreamA', 'title' => ''],
],
[
'name' => 'TemplateId',
'in' => 'query',
'schema' => ['description' => 'The ID of the watermark template.'."\n"
."\n"
.'> Get the template ID from the response of the [AddLiveStreamWatermark](~~2848096~~) operation.', 'type' => 'string', 'required' => true, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
],
[
'name' => 'Description',
'in' => 'query',
'schema' => ['description' => 'The description of the custom rule.', 'type' => 'string', 'required' => false, 'example' => 'my rule', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RuleId' => ['description' => 'The ID of the watermark rule.', 'type' => 'string', 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5c6a2a0df228-4a64-af62-20e91b96****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameters', 'errorMessage' => '%s Please check and try again later.', 'description' => 'Exception parameter exists, please check and try again.'],
],
],
'title' => 'AddLiveStreamWatermarkRule',
'description' => 'After you add a watermark template by calling the [AddLiveStreamWatermark](~~2848096~~) operation, call this operation to create a rule that applies the template.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'You can call this operation up to 60 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddLiveStreamWatermarkRule',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RuleId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b96****\\"\\n}","type":"json"}]',
],
'AddPlaylistItems' => [
'summary' => 'Adds items to a playlist.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you create a production studio by calling the [CreateCaster](~~2848009~~) operation, use the value of the CasterId parameter that is returned.'."\n"
."\n"
.'- If you create a production studio in the ApsaraVideo Live console, go to **ApsaraVideo Live console** > **Production Studio** > **Cloud Production Studio** to view the name of the production studio.'."\n"
."\n"
.'> The name of the production studio in the list on the Cloud Production Studio page is the ID of the production studio.'."\n"
."\n"
.'The production studio must have the following configurations:'."\n"
."\n"
.'- **NormType**: **3**. You must create a lightweight carousel production studio. You can call the **CreateCaster** operation to create the studio.'."\n"
."\n"
.'- **CasterTemplate**: lp\\_noTranscode.'."\n"
."\n"
.'- **channelEnable**: 0.'."\n"
."\n"
.'- **programEffect**: 1.', 'type' => 'string', 'required' => true, 'example' => '0e94d1f4-1a65-445c-9dcf-de8b3b8d****', 'title' => ''],
],
[
'name' => 'ProgramItems',
'in' => 'query',
'schema' => ['description' => 'The list of playlist items. This is a JSON string. For more information, see **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****"}]', 'title' => ''],
],
[
'name' => 'ProgramId',
'in' => 'query',
'schema' => ['description' => 'The playlist ID. If you leave this parameter empty, a new playlist is created.', 'type' => 'string', 'required' => false, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
],
[
'name' => 'ProgramConfig',
'in' => 'query',
'schema' => ['description' => 'The playlist item configurations. If this is the first time you add items, pass this parameter for initialization. For more information, see **ProgramConfig**.', 'type' => 'string', 'required' => false, 'example' => '[{"RepeatNumber":"0","ProgramName":"my program"}]', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'Items' => [
'description' => 'The list of information about the added playlist items.',
'type' => 'object',
'properties' => [
'FailedItems' => [
'description' => 'The list of playlist items that failed to be added.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'ItemId' => ['description' => 'The ID of the playlist item.', 'type' => 'string', 'example' => 'c09f3d63-eacf-4fbf-bd48-a07a6ba7****', 'title' => ''],
'ItemName' => ['description' => 'The name of the playlist item.', 'type' => 'string', 'example' => 'item1', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'SuccessItems' => [
'description' => 'The list of playlist items that were successfully added.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'ItemId' => ['description' => 'The ID of the playlist item.', 'type' => 'string', 'example' => 'c09f3d63-eacf-4fbf-bd48-a07a6ba7****', 'title' => ''],
'ItemName' => ['description' => 'The name of the playlist item.', 'type' => 'string', 'example' => 'item2', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'ProgramId' => ['description' => 'The playlist ID. You can use this ID as a request parameter to delete playlist items, query playlist items, edit a playlist, delete a playlist, query a playlist, start a playlist, or stop a playlist.', 'type' => 'string', 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'PlayListIsEmpty', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Playlist is empty, please check and try again.'],
['errorCode' => 'MissInputParams', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is missing, please check and try again.'],
['errorCode' => 'InvalidProgramId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ProgramId is invalid, please check and try again.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
],
403 => [
['errorCode' => 'UserQuotaExceed', 'errorMessage' => 'Quota exceeded: %s.', 'description' => 'Quota exceeded: %s.'],
],
[
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidDomainName.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Domain name does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'AddPlaylistItems',
'description' => 'After you create a production studio with a layout and components, you can call this operation to add items to a playlist. If a playlist does not exist, a new one is created. For more information about how to create a production studio by calling an API operation, see [Create a production studio](~~2848009~~).'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 10 calls per second for each user. If you exceed the limit, API calls are throttled. This may impact your business. We recommend that you call this operation at a reasonable rate.',
'requestParamsDescription' => '### InputProgramItem'."\n"
."\n"
.'| Parameter | Example | Type | Description |'."\n"
.'| ------------- | ------------------------------------ | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n"
.'| ItemName | item1 | String | The name of the playlist item. |'."\n"
.'| ResourceType | vod | String | The resource type. Valid values: **vod**: an ApsaraVideo VOD resource. **url**: a third-party video resource. |'."\n"
.'| ResourceValue | 5f8809f2-3352-4d1f-a8f7-86f9429f**** | String | If ResourceType is set to vod, ResourceValue is the media asset ID. If ResourceType is set to URL, ResourceValue is the URL of the third-party video. |'."\n"
."\n"
.'### ProgramConfig'."\n"
."\n"
.'| Parameter | Example | Type | Description |'."\n"
.'| ------------ | --------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n"
.'| RepeatNumber | 0 | Integer | The number of times to repeat playback after the item finishes. Valid values: **0** (default): Playback does not repeat. **-1**: Playback repeats in a loop. Other positive integers: The number of times to repeat playback. |'."\n"
.'| ProgramName | myprogram | String | The name of the playlist. |',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddPlaylistItems'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddPlaylistItems',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'AddRtsLiveStreamTranscode' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveHVN9B2'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'Domain',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'App',
'in' => 'query',
'schema' => ['description' => 'The AppName of the live stream. Requirements:'."\n"
."\n"
.'- Supports letters, digits, underscores (\\_), and hyphens (-).'."\n"
."\n"
.'- Must start with a letter or a digit. A name longer than three characters is recommended.', 'type' => 'string', 'required' => true, 'example' => 'aliyun-test', 'title' => ''],
],
[
'name' => 'Template',
'in' => 'query',
'schema' => ['description' => 'The name of the custom transcoding template. Requirements:'."\n"
."\n"
.'- Supports letters, digits, underscores (\\_), and hyphens (-).'."\n"
."\n"
.'- Must start with a letter or a digit. A name longer than three characters is recommended.'."\n"
."\n"
.'> The name cannot be the same as that of a standard transcoding template.', 'type' => 'string', 'required' => true, 'example' => 'ld', 'title' => ''],
],
[
'name' => 'TemplateType',
'in' => 'query',
'schema' => ['description' => 'The type of the custom transcoding template. Valid values:'."\n"
."\n"
.'- **h264**: custom H.264 standard transcoding.'."\n"
."\n"
.'- **h264-nbhd**: custom H.264 Narrowband HD™ transcoding.'."\n"
."\n"
.'- **h264-origin**: original quality H.264 standard transcoding. It preserves the parameters of the source video as closely as possible.'."\n"
."\n"
.'- **audio**: audio-only transcoding. The output file contains only audio. If you set this parameter to audio, you must set AudioBitrate.'."\n"
."\n"
.'> For video types, Height, Width, FPS, VideoBitrate, and DeleteBframe are required.', 'type' => 'string', 'required' => true, 'example' => 'h264', 'title' => ''],
],
[
'name' => 'Height',
'in' => 'query',
'schema' => ['description' => 'Output video height in pixels.'."\n"
."\n"
.'>'."\n"
."\n"
.'Required if you set TemplateType to h264, h264-nbhd, or h264-origin.'."\n"
."\n"
.'>'."\n"
."\n"
.'Requirements:'."\n"
."\n"
.'- **Height ≥ 100**'."\n"
."\n"
.'- **max(Height, Width) ≤ 2560**'."\n"
."\n"
.'- **min(Height, Width) ≤ 1440**'."\n"
."\n"
.'For example, a resolution of 1560 × 1560 (a square video) is invalid.'."\n"
."\n"
.'> For h264-origin templates, the resolution can be up to 4K to retain the information of the source stream.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1280', 'title' => ''],
],
[
'name' => 'Width',
'in' => 'query',
'schema' => ['description' => 'Output video width in pixels.'."\n"
."\n"
.'>'."\n"
."\n"
.'Required if you set TemplateType to h264, h264-nbhd, or h264-origin.'."\n"
."\n"
.'>'."\n"
."\n"
.'Requirements:'."\n"
."\n"
.'- **Width ≥ 100**'."\n"
."\n"
.'- **max(Height, Width) ≤ 2560**'."\n"
."\n"
.'- **min(Height, Width) ≤ 1440**'."\n"
."\n"
.'For example, a resolution of 1560 × 1560 (a square video) is invalid.'."\n"
."\n"
.'> For h264-origin templates, the resolution can be up to 4K to retain the information of the source stream.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '720', 'title' => ''],
],
[
'name' => 'FPS',
'in' => 'query',
'schema' => ['description' => 'The frame rate of the output video. Unit: frames per second (FPS). Valid values: 1 to **60**.'."\n"
."\n"
.'>'."\n"
."\n"
.'Required if you set TemplateType to h264, h264-nbhd, or h264-origin.'."\n"
."\n"
.'>', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '30', 'title' => ''],
],
[
'name' => 'VideoBitrate',
'in' => 'query',
'schema' => ['description' => 'The output video bitrate. Unit: kbps. Valid values: 1 to **6000**.'."\n"
."\n"
.'>'."\n"
."\n"
.'Required if you set TemplateType to h264, h264-nbhd, or h264-origin.'."\n"
."\n"
.'>'."\n"
."\n"
.'> The system tries to transcode the video at the specified bitrate. However, the actual bitrate may not be the same as the specified value, especially when the specified value is too high or too low.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2000', 'title' => ''],
],
[
'name' => 'AudioBitrate',
'in' => 'query',
'schema' => ['description' => 'The output audio bitrate. Unit: kbps. Valid values: 1 to **1000**.'."\n"
."\n"
.'>'."\n"
."\n"
.'Required if you set TemplateType to audio.'."\n"
."\n"
.'>', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '128', 'title' => ''],
],
[
'name' => 'Gop',
'in' => 'query',
'schema' => ['description' => 'The Group of Pictures (GOP) size, which specifies the keyframe interval. Unit: seconds. Valid values: **1** to **3**.', 'type' => 'string', 'required' => false, 'example' => '2', 'title' => ''],
],
[
'name' => 'DeleteBframes',
'in' => 'query',
'schema' => ['description' => 'Controls whether to remove B-frames from the transcoded output video. Valid values:'."\n"
."\n"
.'>'."\n"
."\n"
.'Required if you set TemplateType to h264, h264-nbhd, or h264-origin.'."\n"
."\n"
.'>'."\n"
."\n"
.'- **true**: The transcoded video has no B-frames.'."\n"
."\n"
.'- **false**: The transcoded video contains B-frames. This is the default value.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
],
[
'name' => 'Opus',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to use the Opus codec for audio transcoding. This is mainly for compatibility with native WebRTC. Valid values:'."\n"
."\n"
.'- **true**: Transcodes the audio to the Opus format.'."\n"
."\n"
.'- **false**: Does not use the Opus format for transcoding. This is the default value.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''],
],
[
'name' => 'Profile',
'in' => 'query',
'schema' => ['description' => 'The video codec profile. A larger value indicates better video quality and higher resource consumption for encoding and decoding. Valid values:'."\n"
."\n"
.'- **1**: baseline (for mobile devices).'."\n"
."\n"
.'- **2**: main (for SD devices).'."\n"
."\n"
.'- **3**: high (for HD devices).', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2', 'title' => ''],
],
[
'name' => 'AudioProfile',
'in' => 'query',
'schema' => ['description' => 'The audio codec profile. Valid values:'."\n"
."\n"
.'- **aac\\_low**'."\n"
."\n"
.'- **aac\\_he**'."\n"
."\n"
.'- **aac\\_he\\_v2**'."\n"
."\n"
.'- **aac\\_ld**', 'type' => 'string', 'required' => false, 'example' => 'aac_low', 'title' => ''],
],
[
'name' => 'AudioCodec',
'in' => 'query',
'schema' => ['description' => 'The audio codec. Valid values:'."\n"
."\n"
.'- **aac**'."\n"
."\n"
.'- **mp3**'."\n"
."\n"
.'> To use the Opus codec, set the Opus parameter to true.', 'type' => 'string', 'required' => false, 'example' => 'aac', 'title' => ''],
],
[
'name' => 'AudioRate',
'in' => 'query',
'schema' => ['description' => 'The audio sample rate. Valid values: **22050** to **96000**. Recommended: 44100. Unit: Hz.'."\n"
."\n"
.'> If AudioProfile is set to aac\\_ld, the sample rate cannot exceed 44100.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '44100', 'title' => ''],
],
[
'name' => 'AudioChannelNum',
'in' => 'query',
'schema' => ['description' => 'The number of audio channels. Valid values:'."\n"
."\n"
.'- **1**: mono.'."\n"
."\n"
.'- **2**: stereo.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2', 'title' => ''],
],
[
'name' => 'Lazy',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to enable on-demand transcoding. Valid values:'."\n"
."\n"
.'- **yes**: Transcoding only starts when the first viewer requests this transcoded stream.'."\n"
."\n"
.'- **no**: Transcoding starts immediately after the stream is published.', 'type' => 'string', 'required' => false, 'example' => 'no', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameters', 'errorMessage' => '%s Please check and try again later.', 'description' => 'Exception parameter exists, please check and try again.'],
['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => '%s Please check and try again later.', 'description' => 'Configuration already exists, please check and try again.'],
['errorCode' => 'TemplateLimit', 'errorMessage' => '%s Please check and try again later.', 'description' => 'The number of templates reached the upper limit.'],
],
],
'title' => 'AddRtsLiveStreamTranscode',
'summary' => 'Adds a custom transcoding configuration for a streaming domain with Real-Time Streaming (RTS) enabled.',
'description' => '## Usage notes'."\n"
."\n"
.'You can call this operation to add a custom RTS transcoding configuration. This operation supports only the following types of custom transcoding templates: h264, h264-nbhd, h264-origin, and audio.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions. For more information, see [QPS limits](https://help.aliyun.com/document_detail/343507.html).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '### Special error codes'."\n"
."\n"
.'|Error code|Error message|HTTP status code|Description|'."\n"
.'|---|---|---|---|'."\n"
.'|InvalidDomain.NotFound|The domain provided does not exist in our records.|404|The error message returned because the specified domain name does not exist or does not belong to the current account.|'."\n"
.'|IllegalOperation|Illegal domain operate is not permitted.|403|The error message returned because the current operation is not supported. For example, the specified domain name is not a domain name in ApsaraVideo Live.|'."\n"
.'|InvalidParameters|Invalid parameters.|400|The error message returned because one or more parameters are invalid. For example, the height or bitrate is too large.|'."\n"
.'|ConfigAlreadyExists|Config has already exist.|400|The error message returned because the configuration already exists.|'."\n"
.'|InternalError|The request processing has failed due to some unknown error.|500|The error message returned because an unknown error occurred.|',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddRtsLiveStreamTranscode'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddRtsLiveStreamTranscode',
'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"}]',
],
'AddShowIntoShowList' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The ID of the region.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'showList',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The list of show resources to add. Each resource has its own parameters, such as showName and resourceUrl.',
'type' => 'array',
'items' => [
'description' => 'The information about the show.',
'type' => 'object',
'properties' => [
'duration' => ['description' => 'The playback duration of a single show, in seconds.'."\n"
."\n"
.'> You can set only one of the **RepeatTimes** and **Duration** parameters.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '20', 'title' => ''],
'liveInputType' => ['description' => 'The custom type tag.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
'repeatTimes' => ['description' => 'The number of times a single show is played in a loop. The default value is 0.'."\n"
."\n"
.'> - You can set only one of the **RepeatTimes** and **Duration** parameters.'."\n"
."\n"
.'- RepeatTimes specifies the number of repetitions. For example, a value of 0 means the show is played once (not repeated), and a value of 1 means the show is played twice (repeated once).', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'resourceId' => ['description' => 'The ID of the VOD file.', 'type' => 'string', 'required' => false, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
'resourceType' => ['description' => 'The type of the media asset. Valid values:'."\n"
."\n"
.'- live: live stream'."\n"
."\n"
.'- vod: VOD asset'."\n"
."\n"
.'- pic: image'."\n"
."\n"
.'> * When using resources from ApsaraVideo VOD, prioritize resources from hosted buckets. Resources from your own buckets may expire. If you use resources from your own buckets, note their validity period.'."\n"
."\n"
.'- Live stream files support live stream assets and third-party URLs.'."\n"
."\n"
.'- VOD files support VOD assets, image assets, and third-party URLs.', 'type' => 'string', 'required' => false, 'example' => 'vod', 'title' => ''],
'resourceUrl' => ['description' => 'The URL of the playback file.', 'type' => 'string', 'required' => false, 'example' => 'http://****/atestObject****.m3u8', 'title' => ''],
'showName' => ['description' => 'The name of the show.', 'type' => 'string', 'required' => false, 'example' => 'liveShow****', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 10,
'title' => '',
'example' => '',
],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you create a production studio by calling the [CreateCaster](~~2848009~~) operation, use the CasterId value that is returned in the response.'."\n"
."\n"
.'- If you create a production studio in the ApsaraVideo LIVE console, go to the **ApsaraVideo LIVE console** > **Production Studio** > **Cloud Production Studio** page to view the name of the production studio.'."\n"
."\n"
.'> The name of the production studio in the list on the Cloud Production Studio page is the ID of the production studio.', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', 'title' => ''],
],
[
'name' => 'ShowName',
'in' => 'query',
'schema' => ['description' => 'The name of the show.', 'type' => 'string', 'required' => false, 'example' => 'liveShow****', 'title' => ''],
],
[
'name' => 'ResourceType',
'in' => 'query',
'schema' => ['description' => 'The type of the media asset. Valid values:'."\n"
."\n"
.'- live: live stream'."\n"
."\n"
.'- vod: VOD asset'."\n"
."\n"
.'- pic: image'."\n"
."\n"
.'> * When using resources from ApsaraVideo VOD, prioritize resources from hosted buckets. Resources from your own buckets may expire. If you use resources from your own buckets, note their validity period. Live stream files support live stream assets and third-party URLs. VOD files support VOD assets, image assets, and third-party URLs.', 'type' => 'string', 'required' => false, 'example' => 'vod', 'title' => ''],
],
[
'name' => 'ResourceUrl',
'in' => 'query',
'schema' => ['description' => 'The URL of the playback file.', 'type' => 'string', 'required' => false, 'example' => 'http://****/atestObject****.m3u8', 'title' => ''],
],
[
'name' => 'ResourceId',
'in' => 'query',
'schema' => ['description' => 'The ID of the VOD file.', 'type' => 'string', 'required' => false, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
],
[
'name' => 'Duration',
'in' => 'query',
'schema' => ['description' => 'The playback duration of a single show, in seconds.'."\n"
."\n"
.'> You can set only one of the **RepeatTimes** and **Duration** parameters.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '20', 'title' => ''],
],
[
'name' => 'RepeatTimes',
'in' => 'query',
'schema' => ['description' => 'The number of times a single show is played in a loop. The default value is 0.'."\n"
."\n"
.'> - You can set only one of the **RepeatTimes** and **Duration** parameters. RepeatTimes specifies the number of repetitions. For example, -1 means the show is played in an infinite loop. 0 means the show is played once (not repeated). 1 means the show is played twice (repeated once).', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
],
[
'name' => 'Spot',
'in' => 'query',
'schema' => ['description' => 'The position in the playlist where you want to insert the show. Positions are indexed from 0. By default, the show is added to the end of the current playlist.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'LiveInputType',
'in' => 'query',
'schema' => ['description' => 'The custom type tag.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'isBatchMode',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to add shows to the playlist in batches. Valid values:'."\n"
."\n"
.'- true: adds shows in batches.'."\n"
."\n"
.'- false: adds a single show.'."\n"
."\n"
.'> If you do not specify this parameter or leave it empty, a single show is added.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '987DA143-A39C-5B5D-AF5B-3B07944A0036', 'title' => ''],
'ShowId' => ['description' => 'The show ID.', 'type' => 'string', 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
'failedList' => ['description' => 'The list of resources that failed to be added and the reasons for the failures.', 'type' => 'string', 'example' => 'failedList[Show1, Show2...]', 'title' => ''],
'successfulShowIds' => ['description' => 'The list of IDs of the shows that were successfully added.', 'type' => 'string', 'example' => 'f1933f16-5467-4308-b3a9-e8d451a90999,547436b8-c839-4469-a2c0-704c1ce5ce00', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'InvalidVodUrl.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter VodUrl is invalid, please check and try again.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidShowList.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'ShowList does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'AddShowIntoShowList',
'summary' => 'Adds an episode to an episode list.',
'description' => 'Before you call this operation, you must create a production studio in playlist mode and add video resources to the production studio. Then, you can call this operation to add shows from the production studio to the playlist. To create a production studio using an API, see [Create a production studio](~~2848009~~).'."\n"
."\n"
.'You can add a maximum of 1,000 shows to a playlist.'."\n"
."\n"
.'>'."\n"
."\n"
.'- When you use resources from ApsaraVideo VOD, prioritize resources from hosted buckets. Resources from your own buckets may expire. If you use resources from your own buckets, be aware of their validity period.'."\n"
."\n"
.'- When you add media resources to a production studio, prioritize resources from ApsaraVideo LIVE and ApsaraVideo VOD. If you add a resource from a third-party URL, playback may fail. Ensure that the resource is of high quality and is valid.'."\n"
."\n"
.'>'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 10 calls per second per user. API calls that exceed this limit are throttled, which may affect your business. We recommend that you call this operation at a reasonable rate to prevent throttling.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Sample code'."\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'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddShowIntoShowList',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'AddStudioLayout' => [
'summary' => 'Adds layout settings for a virtual production studio.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'>'."\n"
."\n"
.'Create a virtual production studio in advance. You can create a production studio in the console or by calling the [CreateCaster](~~69338~~) API operation. The production studio must be a virtual production studio.'."\n"
."\n"
.'>'."\n"
."\n"
.'- If you call the [CreateCaster](~~2848009~~) API operation to create a production studio, use the returned CasterId value.'."\n"
."\n"
.'- If you create a production studio in the ApsaraVideo Live console, go to the **ApsaraVideo Live console** > **Production Studio** > **Cloud Production Studio** page. The name of the production studio in the list is its ID.'."\n"
."\n"
.'> The name of the production studio in the list on the Cloud Production Studio page is the production studio ID.', 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
],
[
'name' => 'LayoutName',
'in' => 'query',
'schema' => ['description' => 'The name of the studio layout.', 'type' => 'string', 'example' => 'Test layout', 'required' => true, 'title' => ''],
],
[
'name' => 'LayoutType',
'in' => 'query',
'schema' => ['description' => 'The type of the studio layout. Valid values:'."\n"
."\n"
.'- **common**: A common layout. If you set LayoutType to common, you must also specify CommonConfig.'."\n"
."\n"
.'- **studio**: A studio layout. If you set LayoutType to studio, you must also specify BgImageConfig and ScreenInputConfigList. The MediaInputConfigList parameter is optional.', 'type' => 'string', 'required' => true, 'example' => 'studio', 'title' => ''],
],
[
'name' => 'CommonConfig',
'in' => 'query',
'schema' => ['description' => 'The configuration of the common layout. The value is a JSON string. For more information, see **CommonConfig**.'."\n"
."\n"
.'>'."\n"
."\n"
.'This parameter is required only when you set LayoutType to common.'."\n"
."\n"
.'>', 'type' => 'string', 'required' => false, 'example' => '{"ChannelId":"RV01" }', 'title' => ''],
],
[
'name' => 'BgImageConfig',
'in' => 'query',
'schema' => ['description' => 'The configuration of the background resource. The value is a JSON string. For more information, see **BgImageConfig**.'."\n"
."\n"
.'>'."\n"
."\n"
.'This parameter is required only when you set LayoutType to studio.'."\n"
."\n"
.'>', 'type' => 'string', 'required' => false, 'example' => '{ "Id":"k12kj31****", "MaterialId":"f080575eb5f4427684fc0715159a****" }', 'title' => ''],
],
[
'name' => 'ScreenInputConfigList',
'in' => 'query',
'schema' => ['description' => 'The settings for the chroma keying input. The value is a JSON string. For more information, see **ScreenInputConfig**.'."\n"
."\n"
.'>'."\n"
."\n"
.'This parameter is required only when you set LayoutType to studio.'."\n"
."\n"
.'>', 'type' => 'string', 'required' => false, 'example' => '[ { "Index":"1", "ChannelId":"RV01", "Color":"green", "PositionX":"0.1", "PositionY":"0.2", "HeightNormalized":"0.4" } ]', 'title' => ''],
],
[
'name' => 'MediaInputConfigList',
'in' => 'query',
'schema' => ['description' => 'The settings for the multimedia input resource. The value is a JSON string. For more information, see **MediaInputConfig**.'."\n"
."\n"
.'>'."\n"
."\n"
.'This parameter is valid and optional only when you set LayoutType to 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]" } ]', 'title' => ''],
],
[
'name' => 'LayerOrderConfigList',
'in' => 'query',
'schema' => ['description' => 'The layer order settings. The value is a JSON string. For more information, see **LayerOrderConfig**. You can sort background materials and multimedia materials. Chroma keying layers are not supported. The earlier a material appears in the list, the lower its layer.', 'type' => 'string', 'required' => false, 'example' => '[ { "Type":"media", "Id":"k12kj31****" }, { "Type":"media", "Id":"k12kj31****" } ]', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'LayoutId' => ['description' => 'The layout ID. Use this ID to delete, modify, or query a virtual production studio layout.', 'type' => 'string', 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidPositionNormalized.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter PositionNormalized is invalid, please check and try again.'],
['errorCode' => 'InvalidHeightOrWidthNormalized', 'errorMessage' => '%s, please check and try again later.', 'description' => 'HeightNormalized or WidthNormalized parameters are invalid, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"LayoutId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b96****\\"\\n}","type":"json"}]',
'title' => 'AddStudioLayout',
'description' => 'You can call this operation to add layout settings for a virtual production studio. This operation supports both common and studio layouts.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 10 per user. If you exceed this limit, your API calls are throttled. This may affect your business. We recommend that you call this operation at a reasonable rate.',
'requestParamsDescription' => '## CommonConfig'."\n"
."\n"
.'| Name | Type | Example | Description |'."\n"
.'| --------- | ------ | ------- | -------------------------------------------------------------- |'."\n"
.'| ChannelId | String | RV01 | The ID of the channel to which the video resource is attached. |'."\n"
."\n"
.'## BgImageConfig'."\n"
."\n"
.'> Specify only one of ImageUrl or MaterialId.'."\n"
."\n"
.'| Name | Type | Example | Description |'."\n"
.'| ---------- | ------ | -------------------------------- | --------------------------------------------- |'."\n"
.'| Id | String | k12kj31**** | The unique ID of the background material. |'."\n"
.'| ImageUrl | String | http://aliyundoc.com | The URL of the material. |'."\n"
.'| MaterialId | String | f080575eb5f4427684fc0715159a**** | The ID of the video on demand (VOD) material. |'."\n"
."\n"
.'## ScreenInputConfig'."\n"
."\n"
.'| Name | Type | Example | Description |'."\n"
.'| ---------------- | ------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n"
.'| Index | Integer | 1 | The number of the chroma keying source. This parameter is for display on the frontend and has no logical function. It must be a positive integer greater than 0. |'."\n"
.'| ChannelId | String | RV01 | The ID of the channel to which the video resource is attached. |'."\n"
.'| Color | String | green | The color for chroma keying. Valid values: **blue**: Blue screen background. **green**: Green screen background. **auto**: Automatic detection. **complex**: Real-scene chroma keying. |'."\n"
.'| PositionX | Float | 0.1 | The x-coordinate. The value must be in the range [0, 1]. The top-left corner is the reference point for the material\'s position. |'."\n"
.'| PositionY | Float | 0.2 | The y-coordinate. The value must be in the range [0, 1]. The top-left corner is the reference point for the material\'s position. |'."\n"
.'| HeightNormalized | Float | 0.4 | The normalized height. This is the ratio of the height of the keyed-out portrait to the height of the background. The value must be in the range [0, 1]. |'."\n"
."\n"
.'## MediaInputConfig'."\n"
."\n"
.'- If the multimedia material is a video source, specify ChannelId.'."\n"
."\n"
.'- If the multimedia material is an image, specify ImageMaterialId.'."\n"
."\n"
.'- ChannelId and ImageMaterialId are mutually exclusive. Specify only one.'."\n"
."\n"
.'| Name | Type | Example | Description |'."\n"
.'| ------------------ | ------- | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n"
.'| Id | String | k12kj31**** | The unique ID of the multimedia material. |'."\n"
.'| Index | Integer | 1 | The number of the multimedia material. This parameter is for display on the frontend and has no logical function. It must be a positive integer greater than 0. |'."\n"
.'| ChannelId | String | RV01 | The ID of the channel to which the video resource is attached. |'."\n"
.'| ImageMaterialId | String | lkajsdfsa8fd89asd8**** | The ID of the VOD image material. |'."\n"
.'| FillMode | String | none | The fill type. Set this to **none**. |'."\n"
.'| PositionRefer | String | topLeft | The reference point for the material\'s position. Set this to **topLeft**. This indicates that the top-left corner is the reference point. |'."\n"
.'| WidthNormalized | Float | 0.4 | The normalized width of the material. This is the ratio of the width of the material to the width of the background. The value must be in the range [0, 1]. |'."\n"
.'| HeightNormalized | Float | 0.4 | The normalized height of the material. This is the ratio of the height of the material to the height of the background. The value must be in the range [0, 1]. |'."\n"
.'| PositionNormalized | Float | \\[0.1, 0.2] | The normalized position of the material\'s fill area [x, y]. The values of x and y must be in the range [0, 1]. For example, [0.1, 0.2] indicates a horizontal offset of 10% and a vertical offset of 20% from the top-left corner. |'."\n"
."\n"
.'## LayerOrderConfig'."\n"
."\n"
.'| Name | Type | Example | Description |'."\n"
.'| ---- | ------ | ----------- | -------------------------------------------------------------------------------------------------------- |'."\n"
.'| Type | String | media | The type of the resource configuration. background: A background material. media: A multimedia material. |'."\n"
.'| Id | String | k12kj31**** | The unique ID of the resource. |',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddStudioLayout'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddStudioLayout',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
],
'translator' => 'manual',
],
'AddTrancodeSEI' => [
'summary' => 'Inserts Supplemental Enhancement Information (SEI) data into transcoded streams.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveHVN9B2'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The AppName of the live stream. View AppNames on the [Stream Management](~~197397~~) page.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The name of the live stream.'."\n"
."\n"
.'> It must be the name of the source stream. This ensures that SEI is inserted into all transcoded streams.', 'type' => 'string', 'required' => true, 'example' => 'liveStream****', 'title' => ''],
],
[
'name' => 'Text',
'in' => 'query',
'schema' => ['description' => 'The SEI text. Length limit: 4000 bytes.', 'type' => 'string', 'required' => true, 'example' => 'liveSei****', 'title' => ''],
],
[
'name' => 'Pattern',
'in' => 'query',
'schema' => ['description' => 'Specifies the insertion pattern for the SEI.'."\n"
."\n"
.'- **keyframe**: Inserts at every keyframe.'."\n"
."\n"
.'- **frame**: Inserts at every single frame.', 'type' => 'string', 'required' => true, 'example' => 'keyframe', 'title' => ''],
],
[
'name' => 'Repeat',
'in' => 'query',
'schema' => ['description' => 'The number of times to repeat the insertion. A value of -1 means infinite repetitions.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '-1', 'title' => ''],
],
[
'name' => 'Delay',
'in' => 'query',
'schema' => ['description' => 'The delay in milliseconds before the SEI is inserted after the command is received.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '100', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4E*****43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameters', 'errorMessage' => '%s Please check and try again later.', 'description' => 'Exception parameter exists, please check and try again.'],
],
],
'title' => 'AddTrancodeSEI',
'description' => 'First, obtain the streaming domain. Then, call this operation to insert SEI into the transcoded streams. The stream name must be the same as the source stream to ensure that SEI is inserted into all transcoded streams.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 6,000 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddTrancodeSEI',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4E*****43-CB92E68F4CD8\\"\\n}","type":"json"}]',
],
'BanLiveMessageGroup' => [
'summary' => 'Call the BanLiveMessageGroup operation to mute a user.',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '237378',
'abilityTreeNodes' => ['FEATUREliveSL6Y07'],
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID.', 'type' => 'string', 'required' => true, 'example' => 'demo', 'title' => ''],
],
[
'name' => 'GroupId',
'in' => 'query',
'schema' => ['description' => 'The group ID.', 'type' => 'string', 'required' => true, 'example' => 'grouptest', 'title' => ''],
],
[
'name' => 'ExceptUsers',
'in' => 'query',
'style' => 'simple',
'schema' => [
'description' => 'The users who are exempt from the group-wide mute. Specify up to 30 users. Separate multiple user IDs with a comma (,).',
'type' => 'array',
'items' => ['description' => 'A user who is exempt from the group-wide mute.', 'type' => 'string', 'required' => false, 'example' => 'uid3', 'title' => ''],
'required' => false,
'title' => '',
'example' => '',
],
],
[
'name' => 'DataCenter',
'in' => 'query',
'schema' => ['description' => 'The data center. This value must be the same as the data center that you specified when you called [CreateLiveMessageApp](~~2848162~~).'."\n"
."\n"
.'> The supported data centers are China (Shanghai) (cn-shanghai) and Singapore (ap-southeast-1).', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'The response schema.',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '84AF36BF-0B39-1F8A-A416-FAC7C484****'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"84AF36BF-0B39-1F8A-A416-FAC7C484****\\"\\n}","type":"json"}]',
'title' => 'BanLiveMessageGroup',
'description' => 'Before you call this operation, you must call [CreateLiveMessageGroup](~~2848163~~) to create an interactive message group.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'Each user can call this operation up to 10 times per second. API calls that exceed this limit are throttled, which may impact your business. We recommend that you call this operation within this limit.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:BanLiveMessageGroup',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'],
],
],
],
],
],
'BatchDeleteLiveDomainConfigs' => [
'summary' => 'Deletes the configurations of multiple domain names at a time.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'paid',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'DomainNames',
'in' => 'query',
'schema' => ['description' => 'The ingest domain or streaming domain. Separate multiple domain names with commas (,).', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com,example.aliyundoc.com,example.com', 'title' => ''],
],
[
'name' => 'FunctionNames',
'in' => 'query',
'schema' => ['description' => 'The names of the features. Separate multiple features with commas (,). For more information, see **Features specified by the Functions parameter**.', 'type' => 'string', 'required' => true, 'example' => 'referer_white_list_set,ip_black_list_set', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'Invalid%s.ValueNotSupported', 'errorMessage' => 'FunctionName [%s] is not supported.', 'description' => ''],
],
],
'eventInfo' => [
'enable' => false,
'eventNames' => [],
],
'title' => 'BatchDeleteLiveDomainConfigs',
'description' => 'Obtain the domain names for which you want to delete the configurations, and then call this operation to delete the configurations of these domain domains at a time.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 30 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.',
'requestParamsDescription' => '## Format of the FunctionNames parameter'."\n"
."\n"
.'- Example: `[{"functionArgs":[{"argName":"domain_name","argValue":"developer.aliyundoc.com"}],"functionName":"set_req_host_header"}]`'."\n"
."\n"
.'- Some features, such as filetype\\_based\\_ttl\\_set, support multiple configuration records. To update one of the configuration records, use configId to identify the record. Example: `[{"functionArgs":[{"argName":"file_type","argValue":"jpg"},{"argName":"ttl","argValue":"18"},{"argName":"weight","argValue":"30"}],"functionName":"filetype_based_ttl_set","configId":506***}]`'."\n"
."\n"
.'## Features specified by the FunctionNames parameter'."\n"
."\n"
.'| Feature | Attribute |'."\n"
.'| -------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |'."\n"
.'| **referer_white_list_set**: specifies the Referer whitelist. | **refer_domain_allow_list**: the Referers to be added to the whitelist. Separate multiple Referers with commas (,).**allow_empty**: specifies whether an empty Referer is allowed. Valid values: **on** and **off**. |'."\n"
.'| **referer_black_list_set**: specifies the Referer blacklist. | **refer_domain_deny_list**: the Referers to be added to the blacklist. Separate multiple Referers with commas (,).**allow_empty**: specifies whether an empty Referer is allowed. Valid values: **on** and **off**. |'."\n"
.'| **filetype_based_ttl_set**: specifies the time period after which a file expires. | **ttl**: the cache duration. Unit: seconds. Valid values: 1 to 99999999 (more than three years).**file_type**: the file type. Separate multiple file types with commas (,).**weight**: the weight of the file type. Valid values: **1 to 99**. |'."\n"
.'| **path_based_ttl_set**: specifies the time period after which a directory expires. | **ttl**: the cache duration. Unit: seconds. Valid values: 1 to 99999999 (more than three years).**path**: the directory, which must start with a forward slash (/).**weight**: the weight of the directory. Valid values: **1 to 99**. |'."\n"
.'| **oss_auth**: authenticates access to an Object Storage Service (OSS) bucket. | **oss_bucket_id**: the path of your OSS bucket. |'."\n"
.'| **ip_black_list_set**: specifies the IP address blacklist. | **ip_list**: the IP addresses to be added to the blacklist. Separate multiple IP addresses with commas (,). |'."\n"
.'| **ip_allow_list_set**: specifies the IP address whitelist. | **ip_list**: the IP addresses to be added to the whitelist. Separate multiple IP addresses with commas (,). |'."\n"
.'| **ip_white_list_set**: specifies the IP address whitelist for rate limiting. | **ip_list**: the IP addresses to be added to the whitelist. Separate multiple IP addresses with commas (,). |'."\n"
.'| **error_page**: redirects an error page to a specified page. | **error_code**: the error code.**rewrite_page**: the page to which the error page is redirected. |'."\n"
.'| **set_req_host_header**: modifies the Host header of back-to-origin requests. | **domain_name**: the Host header of back-to-origin requests. |'."\n"
.'| **set_hashkey_args**: ignores the specified URL parameters. | **hashkey_args**: the parameters to be reserved. Separate multiple parameters with commas (,).**disable**: specifies whether to ignore all parameters. Valid values: on and off. A value of on specifies that all parameters are ignored. A value of off specifies that none of the parameters are ignored. |'."\n"
.'| **aliauth**: configures Alibaba Cloud authentication. | **auth_type**: the authentication type. Valid values: **type_a** and **no_auth**. A value of type_a specifies that authentication type A is enabled. A value of no_auth specifies that authentication is disabled.**auth_key1**: the primary authentication key. The authentication key can contain letters and digits. We recommend that you set the authentication key to a value that is 8 to 32 characters in length.**auth_key2**: the secondary authentication key.**ali_auth_delta**: the custom buffer time for authentication. Unit: minutes. We recommend that you set the value to at least 1 minute.**auth_m3u8**: specifies whether to enable M3U8 rewrite. If you enable M3U8 rewrite, the system completes authentication for TS segments in an M3U8 playlist to prevent failures in accessing the TS segments. Valid values: **on** (default) and **off**. |'."\n"
.'| **remote_auth**: configures remote authentication for live streaming. | **enable**: specifies whether to enable remote authentication. This attribute is required. Valid values: on and off.**remote_auth_path**: the address of the authentication server. This attribute is required.**remote_auth_pattern**: the authentication mode. The following fields are available:- **param**: specifies whether to pass parameters in the ingest URL to the authentication server. Valid values: pass (default) and fail.- **args_white**: the parameter that you want to pass. Separate multiple parameters with commas (,).- **args_black**: the parameter that you do not want to pass. Separate multiple parameters with commas (,).- **code**: the HTTP status code. A value in the form of code=XXX is returned by the authentication server to ApsaraVideo Live upon successful authentication. Example: code=200. A value in the form of code=~XXX is returned by the authentication server to ApsaraVideo Live upon failed authentication. Example: code=~403.- **delta**: the timeout duration for authentication.- **retry**: the number of retries upon authentication timeout.- **timeout**: the action to perform upon authentication timeout. Valid values: **pass** and **fail**. **pass**: ApsaraVideo Live passes the request. **fail**: ApsaraVideo Live returns the HTTP status code 403 that indicates failure.- **async**: specifies whether to enable asynchronous authentication. Valid values: **on** and **off** (default). |'."\n"
.'| **set_resp_header**: configures a response header. To verify the configuration, you can check the response message in a browser. | **key**: the name of the response header. Valid values:**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**: the content of the response header. If you want to delete the header, enter null. |'."\n"
.'| **https_force**: configures force redirect to HTTPS. | **enable**: specifies whether to enable the feature. Valid values: **on** and **off**. The https_force and http_force features are mutually exclusive. You cannot configure them both. If you have configured one of the features, you must delete it before you can configure the other feature. |'."\n"
.'| **http_force**: configures force redirect to HTTP. | **enable**: specifies whether to enable the feature. Valid values: **on** and **off**. The https_force and http_force features are mutually exclusive. You cannot configure them both. If you have configured one of the features, you must delete it before you can configure the other feature. |'."\n"
.'| **forward_scheme**: configures adaptive back-to-origin. | **enable**: specifies whether to enable the feature. Valid values: **on** and **off**.**scheme_origin**: the protocol of the origin. Valid values: http, https, and follow.**scheme_origin_port**: the port number of the origin. Valid values: 80, 443, and 80:443. |'."\n"
.'| **green_manager**: configures pornography detection. | **enable**: specifies whether to enable pornography detection. Valid values: **on** and **off**. |'."\n"
.'| **tmd_signature**: configures custom rate limiting rules. | **name**: the name of the rule, which must be globally unique.**path**: the uniform resource identifier (URI). You can specify duplicate URIs. However, you must verify their validity.**pathType**: the matching rule. Valid values: **0** and **1**. A value of 0 specifies a prefix match. A value of 1 specifies an exact match.**interval**: the interval at which data is monitored. Unit: seconds. The interval must be greater than or equal to 10 seconds.**count**: the number of visits from an IP address.**action**: the action to perform after the specified conditions are met. Valid values: **0** and **1**. A value of 0 specifies that access is blocked. A value of 1 specifies that bot detection is performed.**ttl**: the time period during which access is blocked. Unit: seconds. |'."\n"
.'| **l2_oss_key**: configures private key authentication for back-to-origin requests from L2 nodes to private OSS buckets. | **private_oss_auth**: specifies whether to authenticate access to a private OSS bucket. Valid values: **on** and **off**. |'."\n"
.'| **video_seek**: configures video seeking. | **enable**: specifies whether to enable the feature. Valid values: **on** and **off**. |'."\n"
.'| **gzip**: configures Gzip compression. | **enable**: specifies whether to enable the feature. Valid values: **on** and **off**. |'."\n"
.'| **tesla**: configures page optimization to accelerate access. | **enable**: specifies whether to enable the feature. Valid values: **on** and **off**. |'."\n"
.'| **ali_ua**: configures User-Agent-based access control. | **ua**: the User-Agent.**type**: the type of the list. Valid values: **black** and **white**. |'."\n"
.'| **host_redirect**: configures URL rewrite. | **regex**: the URL to be rewritten. Example: ^/$.**replacement**: the destination URL. Example: /go/act/sale/tbzlsy.php.**flag**: the flag. Valid values: redirect and break. |'."\n"
.'| **ipv6**: configures IPv6. | **switch**: specifies whether to enable IPv6. This attribute is required. Valid values: **on** and **off**. If you want to disable this feature after this feature is enabled, deselect the feature in the console. Do not delete the configuration. Otherwise, the feature will still be enabled.**region**: the region in which you want to enable IPv6. Valid values: cn-beijing, cn-shanghai, cn-shenzhen, cn-qingdao, apsoutheast-1, eu-central-1, ap-northeast-1, and ap-southeast-5, which indicate China (Beijing), China (Shanghai), China (Shenzhen), China (Qingdao), Singapore, Germany (Frankfurt), Japan (Tokyo), and Indonesia (Jakarta), respectively. |'."\n"
.'| **ali_location**: configures region-based access control. | **location**: the regions.**type**: the type of the list. Valid values: **black** and **white**. |'."\n"
.'| **cc_defense**: configures protection against HTTP flood attacks. | **enable**: specifies whether to enable protection against HTTP flood attacks. Valid values: **on** and **off**. |'."\n"
.'| **alilive**: configures the live streaming settings. | **notify_url**: the URL for receiving notifications from ApsaraVideo Live.**enable**: specifies whether to enable the feature. Valid values: **on** and **off**.**live_forbid_flv**: specifies whether to prohibit the playback of Flash Video (FLV) videos. Valid values: **on** and **off**.**live_forbid_rtmp**: specifies whether to prohibit the playback of Real-Time Messaging Protocol (RTMP) videos. Valid values: **on** and **off**.**live_forbid_hls**: specifies whether to prohibit the playback of HTTP Live Streaming (HLS) videos. Valid values: **on** and **off**. |'."\n"
.'| **ali_grtn**: specifies whether to connect to Global Realtime Transport Network (GRTN). | **grtn_rts_pub**: specifies whether to enable stream ingest over Real-Time Streaming (RTS). This attribute is applicable to ingest domains. Valid values: **on** and **off**.**grtn_rts_play**: specifies whether to enable streaming over RTS. This attribute is applicable to streaming domains. Valid values: **on** and **off**.**grtn_rts_transcode**: specifies whether to enable auto transcoding for RTS-based HTML5 playback. Valid values: **on** and **off**. |'."\n"
.'| **edge_function**: configures the edge function. | Required attributes:**rule**: the domain-specific language (DSL) rule.**pri**: the priority of the rule.**enable**: specifies whether to enable the rule. Valid values: **on** and **off**.Optional attributes:**name**: the name of the rule.**pos**: the position from which to execute the rule.**brk**: After the rule is hit, the rules after the specified position are skipped.**option**: the option.**grammar**: the grammar. Valid values: es2 and js. You can also leave this attribute empty.**jsmode**: the mode to manage the domain name whitelist in JavaScript. Valid values: **redirect** and **bypass**. |'."\n"
.'| **https_tls_version**: configures the Transport Layer Security (TLS) protocol versions. | **tls10**: specifies whether to enable TLS 1.0. Default value: **on**. Valid values: **on** and **off**.**tls11**: specifies whether to enable TLS 1.1. Default value: **on**. Valid values: **on** and **off**.**tls12**: specifies whether to enable TLS 1.2. Default value: **on**. Valid values: **on** and **off**.**tls13**: specifies whether to enable TLS 1.3. Default value: **on**. Valid values: **on** and **off**. |'."\n"
.'| **https_option** :configures HTTP settings. | **http2**: specifies whether to enable HTTP/2. Default value: **off**. Valid values: **on** and **off**.**live_http2**: specifies whether to enable live_http2. Default value: **off**. Valid values: **on** and **off**. |',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'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' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveSL6Y07'],
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'formData',
'schema' => ['description' => 'The ID of the interactive messaging application.', 'type' => 'string', 'required' => true, 'example' => 'a494caec-***-695ef345db77', 'title' => ''],
],
[
'name' => 'GroupId',
'in' => 'formData',
'schema' => ['description' => 'The message group ID.', 'type' => 'string', 'required' => true, 'example' => '23wcaec-***695ef', 'title' => ''],
],
[
'name' => 'UserIds',
'in' => 'formData',
'schema' => ['description' => 'The list of user IDs. Separate multiple user IDs with commas (,). You can specify up to 20 user IDs.', 'type' => 'string', 'required' => true, 'example' => 'de1**a0,hu**9', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'The returned parameters.',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'],
'Result' => [
'description' => 'The returned result',
'type' => 'object',
'properties' => [
'OnlineUsers' => [
'description' => 'The array of objects',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'JoinTime' => ['description' => 'The UTC timestamp when the user joined the message group. Unit: milliseconds', 'type' => 'integer', 'format' => 'int64', 'example' => '12**45', 'title' => ''],
'Online' => ['description' => 'Indicates whether the user is online. Valid values:'."\n"
."\n"
.'- **true**: The user is online.'."\n"
."\n"
.'- **false**: The user is offline.', 'type' => 'boolean', 'example' => 'true', 'title' => ''],
'UserId' => ['description' => 'The user ID.', 'type' => 'string', 'example' => 'de1**a0', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'errorCodes' => [
403 => [
['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => ''],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'BatchGetOnlineUsers',
'summary' => 'Queries whether one or more users are online based on their UIDs',
'description' => '## Usage notes'."\n"
."\n"
.'This operation supports batch queries. You can query the online status of up to 20 users at a time.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The single-user queries per second (QPS) limit for this operation is 100 times/second. If you exceed this limit, API calls will be throttled, which may affect your business. You should make API calls at a reasonable rate. For more information, see [QPS limits](~~343507~~).',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchGetOnlineUsers'],
],
],
'ramActions' => [
[
'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-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"OnlineUsers\\": [\\n {\\n \\"JoinTime\\": 0,\\n \\"Online\\": true,\\n \\"UserId\\": \\"de1**a0\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
],
'BatchSetLiveDomainConfigs' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '106875',
'abilityTreeNodes' => ['FEATUREliveHVN9B2'],
],
'parameters' => [
[
'name' => 'DomainNames',
'in' => 'query',
'schema' => ['description' => 'The domain names that you want to batch configure. Supported domain names include ingest domains, main streaming domains, and sub-streaming domains. Separate multiple domain names with commas (,).', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com,example.aliyundoc.com,example.com', 'title' => ''],
],
[
'name' => 'Functions',
'in' => 'query',
'schema' => ['description' => 'The list of features.'."\n"
."\n"
.'Some features, such as `filetype_based_ttl_set`, support multiple configuration records. To update one of the configuration records, use `configId` to identify the record. For more information, see **Format of the Functions parameter** and **Features specified by the Functions parameter**.', '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***}]', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'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' => 'The staging environment has a configuration in effect and cannot modify the production environment configuration.'],
],
],
'eventInfo' => [
'enable' => false,
'eventNames' => [],
],
'title' => 'BatchSetLiveDomainConfigs',
'summary' => 'Configures multiple domain names at a time.',
'description' => 'Obtain the domain names that you want to configure, and then call this operation to configure the domain names in batches.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 30 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.',
'requestParamsDescription' => '## Format of the Functions parameter'."\n"
."\n"
.'- Example: `[{"functionArgs":[{"argName":"domain_name","argValue":"developer.aliyundoc.com"}],"functionName":"set_req_host_header"}]`'."\n"
."\n"
.'- Some features, such as filetype\\_based\\_ttl\\_set, support multiple configuration records. To update one of the configuration records, use configId to identify the record. Example: `[{"functionArgs":[{"argName":"file_type","argValue":"jpg"},{"argName":"ttl","argValue":"18"},{"argName":"weight","argValue":"30"}],"functionName":"filetype_based_ttl_set","configId":506***}]`'."\n"
."\n"
.'## Features specified by the Functions parameter'."\n"
."\n"
.'| Feature | Attribute |'."\n"
.'| -------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |'."\n"
.'| **referer_white_list_set**: specifies the Referer whitelist. | **refer_domain_allow_list**: the Referers to be added to the whitelist. Separate multiple Referers with commas (,).**allow_empty**: specifies whether an empty Referer is allowed. Valid values: **on** and **off**. |'."\n"
.'| **referer_black_list_set**: specifies the Referer blacklist. | **refer_domain_deny_list**: the Referers to be added to the blacklist. Separate multiple Referers with commas (,).**allow_empty**: specifies whether an empty Referer is allowed. Valid values: **on** and **off**. |'."\n"
.'| **filetype_based_ttl_set**: specifies the time period after which a file expires. | **ttl**: the cache duration. Unit: seconds. Valid values: 1 to 99999999 (more than three years).**file_type**: the file type. Separate multiple file types with commas (,).**weight**: the weight of the file type. Valid values: **1 to 99**. |'."\n"
.'| **path_based_ttl_set**: specifies the time period after which a directory expires. | **ttl**: the cache duration. Unit: seconds. Valid values: 1 to 99999999 (more than three years).**path**: the directory, which must start with a forward slash (/).**weight**: the weight of the directory. Valid values: **1 to 99**. |'."\n"
.'| **oss_auth**: authenticates access to an Object Storage Service (OSS) bucket. | **oss_bucket_id**: the path of your OSS bucket. |'."\n"
.'| **ip_black_list_set**: specifies the IP address blacklist. | **ip_list**: the IP addresses to be added to the blacklist. Separate multiple IP addresses with commas (,). |'."\n"
.'| **ip_allow_list_set**: specifies the IP address whitelist. | **ip_list**: the IP addresses to be added to the whitelist. Separate multiple IP addresses with commas (,). |'."\n"
.'| **ip_white_list_set**: specifies the IP address whitelist for rate limiting. | **ip_list**: the IP addresses to be added to the whitelist. Separate multiple IP addresses with commas (,). |'."\n"
.'| **error_page**: redirects an error page to a specified page. | **error_code**: the error code.**rewrite_page**: the page to which the error page is redirected. |'."\n"
.'| **set_req_host_header**: modifies the Host header of back-to-origin requests. | **domain_name**: the Host header of back-to-origin requests. |'."\n"
.'| **set_hashkey_args**: ignores the specified URL parameters. | **hashkey_args**: the parameters to be reserved. Separate multiple parameters with commas (,).**disable**: specifies whether to ignore all parameters. Valid values: on and off. A value of on specifies that all parameters are ignored. A value of off specifies that none of the parameters are ignored. |'."\n"
.'| **aliauth**: configures Alibaba Cloud authentication. | **auth_type**: the authentication type. Valid values: **type_a** and **no_auth**. A value of type_a specifies that authentication type A is enabled. A value of no_auth specifies that authentication is disabled.**auth_key1**: the primary authentication key. The authentication key can contain letters and digits. We recommend that you set the authentication key to a value that is 8 to 32 characters in length.**auth_key2**: the secondary authentication key.**ali_auth_delta**: the custom buffer time for authentication. Unit: seconds. We recommend that you set the value to at least 60 seconds.**auth_m3u8**: specifies whether to enable M3U8 rewrite. If you enable M3U8 rewrite, the system completes authentication for TS segments in an M3U8 playlist to prevent failures in accessing the TS segments. Valid values: **on** (default) and **off**. |'."\n"
.'| **remote_auth**: configures remote authentication for live streaming. | **enable**: specifies whether to enable remote authentication. This attribute is required. Valid values: on and off.**remote_auth_path**: the address of the authentication server. This attribute is required.**remote_auth_pattern**: the authentication mode. The following fields are available:- **param**: specifies whether to pass parameters in the ingest URL to the authentication server. Valid values: pass (default) and fail.- **args_white**: the parameter that you want to pass. Separate multiple parameters with commas (,).- **args_black**: the parameter that you do not want to pass. Separate multiple parameters with commas (,).- **code**: the HTTP status code. A value in the form of code=XXX is returned by the authentication server to ApsaraVideo Live upon successful authentication. Example: code=200. A value in the form of code=~XXX is returned by the authentication server to ApsaraVideo Live upon failed authentication. Example: code=~403.- **delta**: the timeout duration for authentication.- **retry**: the number of retries upon authentication timeout.- **timeout**: the action to perform upon authentication timeout. Valid values: **pass** and **fail**. **pass**: ApsaraVideo Live passes the request. **fail**: ApsaraVideo Live returns the HTTP status code 403 that indicates failure.- **async**: specifies whether to enable asynchronous authentication. Valid values: **on** and **off** (default). |'."\n"
.'| **set_resp_header**: configures a response header. To verify the configuration, you can check the response message in a browser. | **key**: the name of the response header. Valid values:**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**: the content of the response header. If you want to delete the header, enter null. |'."\n"
.'| **https_force**: configures force redirect to HTTPS. | **enable**: specifies whether to enable the feature. Valid values: **on** and **off**. The https_force and http_force features are mutually exclusive. You cannot configure them both. If you have configured one of the features, you must delete it before you can configure the other feature. |'."\n"
.'| **http_force**: configures force redirect to HTTP. | **enable**: specifies whether to enable the feature. Valid values: **on** and **off**. The https_force and http_force features are mutually exclusive. You cannot configure them both. If you have configured one of the features, you must delete it before you can configure the other feature. |'."\n"
.'| **forward_scheme**: configures adaptive back-to-origin. | **enable**: specifies whether to enable the feature. Valid values: **on** and **off**.**scheme_origin**: the protocol of the origin. Valid values: http, https, and follow.**scheme_origin_port**: the port number of the origin. Valid values: 80, 443, and 80:443. |'."\n"
.'| **green_manager**: configures pornography detection. | **enable**: specifies whether to enable pornography detection. Valid values: **on** and **off**. |'."\n"
.'| **tmd_signature**: configures custom rate limiting rules. | **name**: the name of the rule, which must be globally unique.**path**: the uniform resource identifier (URI). You can specify duplicate URIs. However, you must verify their validity.**pathType**: the matching rule. Valid values: **0** and **1**. A value of 0 specifies a prefix match. A value of 1 specifies an exact match.**interval**: the interval at which data is monitored. Unit: seconds. The interval must be greater than or equal to 10 seconds.**count**: the number of visits from an IP address.**action**: the action to perform after the specified conditions are met. Valid values: **0** and **1**. A value of 0 specifies that access is blocked. A value of 1 specifies that bot detection is performed.**ttl**: the time period during which access is blocked. Unit: seconds. |'."\n"
.'| **l2_oss_key**: configures private key authentication for back-to-origin requests from L2 nodes to private OSS buckets. | **private_oss_auth**: specifies whether to authenticate access to a private OSS bucket. Valid values: **on** and **off**. |'."\n"
.'| **video_seek**: configures video seeking. | **enable**: specifies whether to enable the feature. Valid values: **on** and **off**. |'."\n"
.'| **gzip**: configures Gzip compression. | **enable**: specifies whether to enable the feature. Valid values: **on** and **off**. |'."\n"
.'| **tesla**: configures page optimization to accelerate access. | **enable**: specifies whether to enable the feature. Valid values: **on** and **off**. |'."\n"
.'| **ali_ua**: configures User-Agent-based access control. | **ua**: the User-Agent.**type**: the type of the list. Valid values: **black** and **white**. |'."\n"
.'| **host_redirect**: configures URL rewrite. | **regex**: the URL to be rewritten. Example: ^/$.**replacement**: the destination URL. Example: /go/act/sale/tbzlsy.php.**flag**: the flag. Valid values: redirect and break. |'."\n"
.'| **ipv6**: configures IPv6. | **switch**: specifies whether to enable IPv6. This attribute is required. Valid values: **on** and **off**. If you want to disable this feature after this feature is enabled, deselect the feature in the console. Do not delete the configuration. Otherwise, the feature will still be enabled.**region**: the region in which you want to enable IPv6. Valid values: cn-beijing, cn-shanghai, cn-shenzhen, cn-qingdao, apsoutheast-1, eu-central-1, ap-northeast-1, and ap-southeast-5, which indicate China (Beijing), China (Shanghai), China (Shenzhen), China (Qingdao), Singapore, Germany (Frankfurt), Japan (Tokyo), and Indonesia (Jakarta), respectively. |'."\n"
.'| **ali_location**: configures region-based access control. | **location**: the regions.**type**: the type of the list. Valid values: **black** and **white**. |'."\n"
.'| **cc_defense**: configures protection against HTTP flood attacks. | **enable**: specifies whether to enable protection against HTTP flood attacks. Valid values: **on** and **off**. |'."\n"
.'| **alilive**: configures the live streaming settings. | **notify_url**: the URL for receiving notifications from ApsaraVideo Live.**enable**: specifies whether to enable the feature. Valid values: **on** and **off**.**live_forbid_flv**: specifies whether to prohibit the playback of Flash Videos (FLVs). Valid values: **on** and **off**.**live_forbid_rtmp**: specifies whether to prohibit the playback of Real-Time Messaging Protocol (RTMP) videos. Valid values: **on** and **off**.**live_forbid_hls**: specifies whether to prohibit the playback of HTTP Live Streaming (HLS) videos. Valid values: **on** and **off**. |'."\n"
.'| **ali_grtn**: specifies whether to connect to Global Realtime Transport Network (GRTN). | **grtn_rts_pub**: specifies whether to enable stream ingest over Real-Time Streaming (RTS). This attribute is applicable to ingest domains. Valid values: **on** and **off**.**grtn_rts_play**: specifies whether to enable streaming over RTS. This attribute is applicable to streaming domains. Valid values: **on** and **off**.**grtn_rts_transcode**: specifies whether to enable auto transcoding for RTS-based HTML5 playback. Valid values: **on** and **off**. |'."\n"
.'| **edge_function**: configures the edge function. | Required attributes:**rule**: the domain-specific language (DSL) rule.**pri**: the priority of the rule.**enable**: specifies whether to enable the rule. Valid values: **on** and **off**.Optional attributes:**name**: the name of the rule.**pos**: the position from which to execute the rule.**brk**: After the rule is hit, the rules after the specified position are skipped.**option**: the option.**grammar**: the grammar. Valid values: es2 and js. You can also leave this attribute empty.**jsmode**: the mode to manage the domain name whitelist in JavaScript. Valid values: **redirect** and **bypass**. |'."\n"
.'| **https_tls_version**: configures the Transport Layer Security (TLS) protocol versions. | **tls10**: specifies whether to enable TLS 1.0. Default value: **on**. Valid values: **on** and **off**.**tls11**: specifies whether to enable TLS 1.1. Default value: **on**. Valid values: **on** and **off**.**tls12**: specifies whether to enable TLS 1.2. Default value: **on**. Valid values: **on** and **off**.**tls13**: specifies whether to enable TLS 1.3. Default value: **on**. Valid values: **on** and **off**. |'."\n"
.'| **https_option**: configures HTTP settings. | **http2**: specifies whether to enable HTTP/2. Default value: **off**. Valid values: **on** and **off**.**live_http2**: specifies whether to enable live_http2. Default value: **off**. Valid values: **on** and **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'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:BatchSetLiveDomainConfigs',
'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"}]',
],
'CancelMuteAllGroupUser' => [
'summary' => 'Cancels the muting of a message group user.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'none',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveK6LRQR'],
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'formData',
'schema' => ['description' => 'Interactive Messages application ID.', 'type' => 'string', 'required' => true, 'example' => 'VKL3***', 'title' => ''],
],
[
'name' => 'GroupId',
'in' => 'formData',
'schema' => ['description' => 'Group ID.', 'type' => 'string', 'required' => true, 'example' => 'AE35-****-T95F', 'title' => ''],
],
[
'name' => 'OperatorUserId',
'in' => 'formData',
'schema' => ['description' => 'User ID of the operator.'."\n"
."\n"
.'> This parameter is required. The user must be the creator of the group.', 'type' => 'string', 'required' => false, 'example' => 'de1**a0', 'title' => ''],
],
[
'name' => 'BroadCastType',
'in' => 'formData',
'schema' => ['description' => 'System message diffusion type. Valid values:'."\n"
."\n"
.'- 0: No diffusion.'."\n"
."\n"
.'- 1: Diffusion to specified users.'."\n"
."\n"
.'- 2: Diffusion to the group.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'Request ID.', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'],
'Result' => [
'description' => 'Actual return result of the service',
'type' => 'object',
'properties' => [
'Success' => ['description' => 'Indicates whether the cancellation was successful. Valid values:'."\n"
."\n"
.'- true: Successful.'."\n"
."\n"
.'- false: Unsuccessful.', 'type' => 'boolean', 'example' => 'true', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'title' => 'CancelMuteAllGroupUser',
'description' => '## QPS limits'."\n"
."\n"
.'The single-user QPS limit for this operation is 100 times/second. If this limit is exceeded, API calls will be throttled, which may affect your business. You should make API calls at a reasonable rate. For more information, see [QPS limits](~~343507~~).',
'changeSet' => [
['createdAt' => '2023-04-04T06:09:59.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2022-09-27T09:18:31.000Z', 'description' => 'OpenAPI offline'],
],
'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' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": true\\n }\\n}","type":"json"}]',
],
'CancelMuteGroupUser' => [
'summary' => 'Calls CancelMuteGroupUser to batch unmute members in a message group.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'formData',
'schema' => ['description' => 'Interactive Messages application ID.', 'type' => 'string', 'required' => true, 'example' => 'VKL3***', 'title' => ''],
],
[
'name' => 'GroupId',
'in' => 'formData',
'schema' => ['description' => 'Message group ID.', 'type' => 'string', 'required' => true, 'example' => 'AE35-****-T95F', 'title' => ''],
],
[
'name' => 'CancelMuteUserList',
'in' => 'formData',
'style' => 'simple',
'schema' => [
'description' => 'User ID group.',
'type' => 'array',
'items' => ['description' => 'List of user IDs to unmute.', 'type' => 'string', 'required' => false, 'example' => 'qu***,yu1***', 'title' => ''],
'required' => true,
'title' => '',
'example' => '',
],
],
[
'name' => 'OperatorUserId',
'in' => 'formData',
'schema' => ['description' => 'Operator\'s user ID.'."\n"
."\n"
.'> This parameter must be filled and the user must be the creator of the group.', 'type' => 'string', 'required' => false, 'example' => 'de1**a0', 'title' => ''],
],
[
'name' => 'BroadCastType',
'in' => 'formData',
'schema' => ['description' => 'System message diffusion type, values:'."\n"
."\n"
.'- 0 (default): No diffusion.'."\n"
.'- 1: Diffusion to specified users.'."\n"
.'- 2: Diffusion to the group.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'Request ID.', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'],
'Result' => [
'description' => 'Return result.',
'type' => 'object',
'properties' => [
'Success' => ['description' => 'Whether unmuting is successful, values:'."\n"
."\n"
.'- true: Successful.'."\n"
.'- false: Unsuccessful.', 'type' => 'boolean', 'example' => 'false', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": false\\n }\\n}","type":"json"}]',
'title' => 'CancelMuteGroupUser',
'description' => '## QPS limits'."\n"
."\n"
.'The QPS limit for this API is 100 queries per second (QPS) per user. If the limit is exceeded, API calls will be throttled, which may affect your business. You can call the API properly to avoid this issue. For more information, see [QPS limits](~~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}'],
],
],
],
],
],
'ChangeLiveDomainResourceGroup' => [
'summary' => 'Moves a domain name in ApsaraVideo Live to a specified resource group.',
'methods' => ['post', 'get'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '235330',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'description' => 'The ID of the region.', 'title' => '', 'example' => 'cn-shanghai'],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The ingest or streaming domain name.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'example.com'],
],
[
'name' => 'NewResourceGroupId',
'in' => 'query',
'allowEmptyValue' => true,
'schema' => ['description' => 'The ID of the destination resource group.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'rg-****ke6uuxw****'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'title' => '', 'example' => '******8F-F82F-10E2-BAE1-A036FD******'],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'LiveServiceNotFound', 'errorMessage' => 'Your account does not open Live service yet', 'description' => 'Your account has not yet activated ApsaraVideo Live.'],
['errorCode' => 'LockFail', 'errorMessage' => 'Domain has been occupied.', 'description' => 'The domain name is currently in use. Please try again later.'],
],
403 => [
['errorCode' => 'EntityNotExist.ResourceGroup', 'errorMessage' => 'The resource group does not exist.', 'description' => 'The resource group does not exist.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'ChangeLiveDomainResourceGroup',
'description' => 'You can call this operation up to 30 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:ChangeLiveDomainResourceGroup',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"******8F-F82F-10E2-BAE1-A036FD******\\"\\n}","type":"json"}]',
],
'CheckLiveMessageUsersInGroup' => [
'summary' => 'Queries whether a user is in an interactive messaging group.',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'demo', 'title' => ''],
],
[
'name' => 'GroupId',
'in' => 'query',
'schema' => ['description' => 'The group ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'grouptest', 'title' => ''],
],
[
'name' => 'UserIds',
'in' => 'query',
'style' => 'simple',
'schema' => [
'title' => '',
'description' => 'The list of users that you want to query.'."\n",
'type' => 'array',
'items' => ['description' => 'The user ID. Separate multiple user IDs with commas (,). The number of users to query in each call can range from 1 to 10.'."\n", 'type' => 'string', 'required' => true, 'example' => 'uid', 'title' => ''],
'required' => true,
'maxItems' => 10,
'minItems' => 1,
'example' => '',
],
],
[
'name' => 'DataCenter',
'in' => 'query',
'schema' => ['description' => 'The data center. It must be the same as the data center that was specified when you called the [CreateLiveMessageApp](~~2848162~~) operation to create the interactive messaging application. Valid values: cn-shanghai and ap-southeast-1 (Singapore).'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => '',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'F1F68D81-1543-1FE4-B56E-82200DD2****'],
'Users' => [
'description' => 'The list of users queried.'."\n",
'type' => 'array',
'items' => [
'description' => '',
'type' => 'object',
'properties' => [
'UserId' => ['description' => 'The ID of the user.'."\n", 'type' => 'string', 'example' => 'uid1', 'title' => ''],
'Online' => ['description' => 'Indicates whether the user is in the group.'."\n", 'type' => 'boolean', 'example' => 'false', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'CheckLiveMessageUsersInGroup',
'description' => 'Before you call this operation, make sure that you have called the [CreateLiveMessageGroup](~~2848163~~) operation to create an interactive messaging group.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n",
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CheckLiveMessageUsersInGroup'],
],
],
'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' => [
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'demo', 'title' => ''],
],
[
'name' => 'UserIds',
'in' => 'query',
'style' => 'simple',
'schema' => [
'title' => '',
'description' => 'The list of users that you want to query.'."\n",
'type' => 'array',
'items' => ['description' => 'The user ID. Separate multiple user IDs with commas (,). The number of users to query in each call can range from 1 to 10.'."\n", 'type' => 'string', 'required' => false, 'example' => 'uid', 'title' => ''],
'required' => true,
'maxItems' => 10,
'minItems' => 1,
'example' => '',
],
],
[
'name' => 'DataCenter',
'in' => 'query',
'schema' => ['description' => 'The data center. It must be the same as the data center that was specified when you called the [CreateLiveMessageApp](~~2848162~~) operation to create the interactive messaging application. Valid values: cn-shanghai and ap-southeast-1 (Singapore).'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => '',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '178F572F-AECF-100B-937A-B8047B4D****'],
'UserList' => [
'description' => 'The list of users queried.'."\n",
'type' => 'array',
'items' => [
'description' => '',
'type' => 'object',
'properties' => [
'Online' => ['description' => 'Indicates whether the user is online.'."\n", 'type' => 'boolean', 'example' => 'false', 'title' => ''],
'UserId' => ['description' => 'The user ID.'."\n", 'type' => 'string', 'example' => 'uid1', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'CheckLiveMessageUsersOnline',
'summary' => 'Queries whether one or more specified users are online.',
'description' => 'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n",
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CheckLiveMessageUsersOnline'],
],
],
'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' => 'Disables time shifting for a domain name, or an application or a live stream under the domain name.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'none',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveGDJYFA'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The AppName of the live stream. You can specify an asterisk (\\*) to match all AppNames under the domain name. View AppNames on the [Stream Management](~~197397~~) page.', 'type' => 'string', 'required' => false, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The name of the live stream. You can use the wildcard (\\*) to specify all StreamNames under the AppName. View StreamNames on the [Stream Management](~~197397~~) page.', 'type' => 'string', 'required' => false, 'example' => 'liveStream****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => '%s.', 'description' => 'Parameter verification failed'],
],
404 => [
['errorCode' => 'InvalidDataNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Data does not exist, please check and try again.'],
],
409 => [
['errorCode' => 'InvalidStreamNum', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The number of streams is abnormal. Please check and try again.'],
],
],
'title' => 'CloseLiveShift',
'description' => '## QPS limits'."\n"
."\n"
.'You can call this operation up to 10 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'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'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'live:CloseLiveShift',
'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"}]',
],
'CopyCaster' => [
'summary' => 'Duplicates a production studio and creates a new production studio instance.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterName',
'in' => 'query',
'schema' => ['description' => 'The name of the new production studio.', 'type' => 'string', 'required' => true, 'example' => 'caster001', 'title' => ''],
],
[
'name' => 'SrcCasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio to copy.'."\n"
."\n"
.'- If you created the production studio by calling the [CreateCaster](~~2848009~~) operation, use the CasterId value that is returned.'."\n"
."\n"
.'- If you created the production studio in the ApsaraVideo Live console, go to **ApsaraVideo Live console** > **Production Studio** > **Cloud Production Studio** to view the production studio name.'."\n"
."\n"
.'> The name of a production studio on the Cloud Production Studio page is its production studio ID.', 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
],
[
'name' => 'ClientToken',
'in' => 'query',
'schema' => ['description' => 'A client-generated token that ensures the idempotence of the request.'."\n"
."\n"
.'Generate a unique value for this parameter for each request. The token can contain a maximum of 64 ASCII characters.', 'type' => 'string', 'required' => true, 'example' => '53200b81-b761-4c10-842a-a0726d97****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'CasterId' => ['description' => 'The ID of the new production studio.', 'type' => 'string', 'example' => '1909f043-e3d3-49e9-82d6-4329ec4a****', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidClientToken.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ClientToken is invalid, please check and try again.'],
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
['errorCode' => 'CasterNumberExceed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The number of casters exceeds the limit. Please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'CopyCaster',
'description' => 'You can call this operation to copy a specified production studio, which creates a new production studio instance.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 10 calls per second. If the limit is exceeded, API calls are throttled, which may affect your business. Plan your calls accordingly.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:CopyCaster',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"CasterId\\": \\"1909f043-e3d3-49e9-82d6-4329ec4a****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]',
],
'CopyCasterSceneConfig' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The ID of the region.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you create a production studio by calling the [CreateCaster](~~2848009~~) operation, use the CasterId value that is returned in the response.'."\n"
."\n"
.'- If you create a production studio in the ApsaraVideo Live console, go to the **Production Studio** > **Cloud Production Studio** page. The ID of the production studio is in the **Instance ID/Name** column.'."\n"
."\n"
.'> The production studio name in the list on the Cloud Production Studio page of the ApsaraVideo Live console is the production studio ID.', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', 'title' => ''],
],
[
'name' => 'FromSceneId',
'in' => 'query',
'schema' => ['description' => 'The ID of the source scene. The scene must be a PVW scene.', 'type' => 'string', 'required' => true, 'example' => 'f1a361f4-bee3-436d-ae6e-d38e6943****', 'title' => ''],
],
[
'name' => 'ToSceneId',
'in' => 'query',
'schema' => ['description' => 'The ID of the destination scene. The scene must be a PGM scene.', 'type' => 'string', 'required' => true, 'example' => '05ab713c-676e-49c0-96ce-cc408da1****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A5****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidSceneId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter SceneId is invalid, please check and try again.'],
['errorCode' => 'IncorrectSceneStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene status is not supported, please check and try again.'],
['errorCode' => 'IncorrectSceneStatus.Idle', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene status is idle, please check and try again.'],
['errorCode' => 'IncorrectSceneStatus.ConfigError', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene configuration error, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'ResourceInChannel.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The resource does not exist. Please check and try again.'],
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidScene.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene does not exist, please check and try again.'],
],
412 => [
['errorCode' => 'ResourceInChannel.PreConditionFailed', 'errorMessage' => '%s, please try again later.', 'description' => 'Resource pre-verification failed, please try again later.'],
['errorCode' => 'ResourceInChannel.Invalid', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Resource and channel material address are inconsistent, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'CopyCasterSceneConfig',
'summary' => 'Applies the configuration of a PVW scene to a PGM scene.',
'description' => '- Production Studio is billed based on output specifications, transcoding specifications, and the duration of usage. For more information, see [Production studio pricing](~~64531~~).'."\n"
."\n"
.'- You can call this operation to copy the configuration from a source scene to a destination scene. You can only copy the configuration from a PVW scene to a PGM scene. A PVW scene is a preview scene, and a PGM scene is a program scene.'."\n"
."\n"
.'- The PVW scene and the PGM scene must be in the same production studio.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 10 calls per second per user. API calls that exceed this limit are throttled, which may affect your business. Plan your calls accordingly.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CopyCasterSceneConfig'],
],
],
'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' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'paid',
'abilityTreeCode' => '106890',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-beijing', 'title' => ''],
],
[
'name' => 'CasterName',
'in' => 'query',
'schema' => ['description' => 'The name of the production studio.', 'type' => 'string', 'required' => false, 'example' => 'liveCaster****', 'title' => ''],
],
[
'name' => 'ClientToken',
'in' => 'query',
'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n"
."\n"
.'Generate a token on your client and ensure that the token is unique among different requests. The token can be up to 64 ASCII characters in length.', 'type' => 'string', 'required' => true, 'maxLength' => 64, 'minLength' => 0, 'example' => '53200b81-b761-4c10-842a-a0726d97****', 'title' => ''],
],
[
'name' => 'NormType',
'in' => 'query',
'schema' => ['description' => 'The type of the production studio. Valid values:'."\n"
."\n"
.''."\n"
."\n"
.'- **1**: Standard.'."\n"
."\n"
.'- **3**: Lightweight Carousel.'."\n"
."\n"
.'- **4**: Virtual Studio.'."\n"
."\n"
.'- **6**: Carousel (New Playlist).'."\n"
."\n"
.''."\n"
."\n"
.''."\n"
."\n"
.'- **1**: Standard.'."\n"
."\n"
.'- **6**: Carousel (New Playlist).'."\n"
."\n"
.'', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1', 'title' => ''],
],
[
'name' => 'ChargeType',
'in' => 'query',
'schema' => ['description' => 'The billing method. Only **PostPaid** is supported. Valid values:'."\n"
."\n"
.'- **PrePaid**: subscription (not supported).'."\n"
."\n"
.'- **PostPaid**: pay-as-you-go.', 'type' => 'string', 'required' => true, 'example' => 'PostPaid', 'title' => ''],
],
[
'name' => 'PurchaseTime',
'in' => 'query',
'schema' => ['description' => 'The purchase time of the production studio. The time is in the \\`yyyy-MM-ddTHH:mm:ssZ\\` format and is displayed in UTC.'."\n"
."\n"
.'> This parameter is available only if you set **ChargeType** to **PrePaid**.', 'type' => 'string', 'required' => false, 'example' => '2017-08-20T12:10:10Z', 'title' => ''],
],
[
'name' => 'ExpireTime',
'in' => 'query',
'schema' => ['description' => 'The expiration time of the production studio. The time is in the \\`yyyy-MM-ddTHH:mm:ssZ\\` format and is displayed in UTC.'."\n"
."\n"
.'> This parameter is available only if you set **ChargeType** to **PrePaid**.', 'type' => 'string', 'required' => false, 'example' => '2017-08-22T12:10:10Z', 'title' => ''],
],
[
'name' => 'CasterTemplate',
'in' => 'query',
'schema' => ['description' => 'The preset resolution of the production studio. This parameter is available only for the subscription billing method. Valid values:'."\n"
."\n"
.'- **lp\\_ld**: low definition.'."\n"
."\n"
.'- **lp\\_sd**: standard definition.'."\n"
."\n"
.'- **lp\\_hd**: high definition.'."\n"
."\n"
.'- **lp\\_ud**: ultra-high definition.'."\n"
."\n"
.'- **lp\\_ld\\_v**: vertical low definition.'."\n"
."\n"
.'- **lp\\_sd\\_v**: vertical standard definition.'."\n"
."\n"
.'- **lp\\_hd\\_v**: vertical high definition.'."\n"
."\n"
.'- **lp\\_ud\\_v**: vertical ultra-high definition.'."\n"
."\n"
.'> If you use the pay-as-you-go billing method, call the [SetCasterConfig](~~60271~~) operation to set the resolution.', 'type' => 'string', 'required' => false, 'example' => 'lp_sd', 'title' => ''],
],
[
'name' => 'ResourceGroupId',
'in' => 'query',
'schema' => ['description' => 'The ID of the resource group. For more information, see [What is a resource group?](~~2381067~~).', 'type' => 'string', 'required' => false, 'example' => 'rg-aekzw******', 'title' => ''],
],
[
'name' => 'Tag',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The tags.',
'type' => 'array',
'items' => [
'description' => 'The tags.',
'type' => 'object',
'properties' => [
'Key' => ['description' => 'The tag key.', 'type' => 'string', 'required' => false, 'example' => 'TestKey', 'title' => ''],
'Value' => ['description' => 'The tag value.', 'type' => 'string', 'required' => false, 'example' => 'TestValue', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 100,
'title' => '',
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'CasterId' => ['description' => 'The ID of the production studio. You can use this ID as a request parameter to query stream URLs, start the production studio, add video resources, add layouts, query the layout list, add components, and add playlists.', 'type' => 'string', 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameter.PurchaseTime', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter PurchaseTime is invalid, please check and try again.'],
['errorCode' => 'InvalidParameter.ExpireTime', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ExpireTime is invalid, please check and try again.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'InvalidChargeType.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ChargeType is invalid, please check and try again.'],
['errorCode' => 'InvalidChargeType.PostSupport', 'errorMessage' => '%s, please check and try again later.', 'description' => 'ChargeType only supports post-paid, please check and try again.'],
['errorCode' => 'InvalidCasterTemplate.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterTemplate is invalid, please check and try again.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'InvalidParameter.ChargeType', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ChargeType is invalid, please check and try again.'],
['errorCode' => 'InvalidPeriod.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Invalid time interval, please check and try again.'],
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidClientToken.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ClientToken is invalid, please check and try again.'],
['errorCode' => 'IncorrectCasterStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Guide station status error, please check and try again.'],
],
[
['errorCode' => 'CasterNumberExceed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The number of casters exceeds the limit. Please check and try again.'],
],
403 => [
['errorCode' => 'PermissionDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Access denied, please check and try again.'],
],
[
['errorCode' => 'InvalidParameter.NormType', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter NormType is invalid, please check and try again.'],
['errorCode' => 'InvalidConfiguration.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Configuration does not exist, please check and try again.'],
],
408 => [
['errorCode' => 'CreateCaster.Timeout', 'errorMessage' => '%s, please try again later.', 'description' => 'Call CreateCaster timed out, please try again later.'],
],
],
'eventInfo' => [
'enable' => false,
'eventNames' => [],
],
'title' => 'CreateCaster',
'summary' => 'Call the CreateCaster operation to create a production studio.',
'description' => 'You must activate ApsaraVideo Live before you call this operation. For more information, see [Activate ApsaraVideo Live](~~60361~~). This operation supports the following types of production studios: Standard, Lightweight Carousel, Virtual Studio, and New Playlist (Carousel).This operation supports the following types of production studios: Standard and New Playlist (Carousel).'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 10 calls per second for each user. If you exceed this limit, API calls are throttled, which may affect your business. We recommend that you call this operation at a reasonable rate.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2024-09-27T02:16:13.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2024-08-21T03:33:21.000Z', 'description' => 'Error codes changed, Request parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateCaster'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:CreateCaster',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","type":"json"}]',
],
'CreateCustomTemplate' => [
'summary' => 'Creates a custom stream mixing template.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveI16NIW'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'description' => 'The region ID.', 'title' => '', 'example' => 'cn-shanghai'],
],
[
'name' => 'CustomTemplate',
'in' => 'query',
'schema' => ['description' => 'The template configuration in JSON format. The value must be in the following format: {height:xxx,scale:xxx,gop:xxx,bframes:xxx,cdesc:xxx}. All fields are required. The call fails if any field is missing.'."\n"
."\n"
.'> For more information about the parameters, see the **CustomTemplate details** table below.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => '{"height":"1060","scale":"[16:9]","gop":"60","bframes":"30","cdesc":"h264"}'],
],
[
'name' => 'Template',
'in' => 'query',
'schema' => ['description' => 'The name of the template to add.'."\n"
."\n"
.'> Record the template name after you create it. The name is required for subsequent operations, such as using, querying, and deleting the template.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'TestTemplate'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '0D715397-2E66-4AE1-694h-C546628AD145'],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'TemplateAlreadyExist', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Template already exists, please check and try again.'],
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'CustomTemplateInvalid', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The custom template is invalid, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidDomainName.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Domain name does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'CreateCustomTemplate',
'description' => 'After you call this operation to create a custom template, record the template name. To use the custom template, set the MixStreamTemplate parameter to the template name when you call the [CreateMixStream](~~2848087~~) operation to create a stream mixing task.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 10 for each user. API calls that exceed this limit are throttled, which can affect your business. Plan your calls accordingly.',
'requestParamsDescription' => '**CustomTemplate details**'."\n"
."\n"
.'| Parameter | Type | Required | Description |'."\n"
.'| --------- | ------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n"
.'| height | String | Yes | The height of the output resolution. If scale is set to 16:9, the maximum resolution is 1920 × 1080. If scale is set to 4:3, the maximum resolution is 1440 × 1080. |'."\n"
.'| scale | String | Yes | The aspect ratio of the output resolution. Only string values are accepted. Valid values: \\[3:4] \\[4:3] \\[16:9] \\[9:16] |'."\n"
.'| bframes | String | Yes | The number of B-frames in the output stream. The value must be greater than 0 and less than 9. |'."\n"
.'| cdesc | String | Yes | The encoding format. Set the value to h264. |'."\n"
.'| gop | String | Yes | The Group of Pictures (GOP) interval. The value must be greater than 25 and less than 250. |',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:CreateCustomTemplate',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0D715397-2E66-4AE1-694h-C546628AD145\\"\\n}","type":"json"}]',
],
'CreateEdgeTranscodeJob' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'paid',
'abilityTreeNodes' => ['FEATUREliveHVN9B2'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'ClusterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the data center.', 'type' => 'string', 'required' => true, 'example' => '******3b-4d18-395c-8106-ff21a6******', 'title' => ''],
],
[
'name' => 'Name',
'in' => 'query',
'schema' => ['description' => 'The job name. The name can contain Chinese characters, letters, digits, hyphens (-), and underscores (\\_). The name can be up to 255 characters in length.', 'type' => 'string', 'required' => true, 'example' => 'task1', 'title' => ''],
],
[
'name' => 'TemplateId',
'in' => 'query',
'schema' => ['description' => 'The template ID.', 'type' => 'string', 'required' => true, 'example' => '****96e8864746a0b6f3****', 'title' => ''],
],
[
'name' => 'StreamInput',
'in' => 'query',
'schema' => ['description' => 'The URL of the input stream.', 'type' => 'string', 'required' => true, 'example' => 'rtmp://mydomain/app/stream1', 'title' => ''],
],
[
'name' => 'StreamOutput',
'in' => 'query',
'schema' => ['description' => 'The URL of the output stream.', 'type' => 'string', 'required' => true, 'example' => 'rtmp://testdomain/app/stream2', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'JobId' => ['description' => 'The ID of the edge transcoding job.', 'type' => 'string', 'example' => '****20b48fb04483915d4f2cd8ac****', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => 'Parameter error'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
],
403 => [
['errorCode' => 'OperationDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation rejected, please check and try again.'],
],
[
['errorCode' => 'TemplateNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The template does not exist. Please check and try again.'],
],
],
'title' => 'CreateEdgeTranscodeJob',
'summary' => 'Creates an edge transcoding job.',
'description' => '- You can call this operation to create an edge transcoding job.'."\n"
."\n"
.'- Before you call this operation, you must have permission to access the edge transcoding service.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 6,000 calls per minute for each user. If you exceed this limit, API calls are throttled, which can affect your business. Plan your calls accordingly.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateEdgeTranscodeJob'],
],
],
'ramActions' => [
[
'operationType' => '',
'ramAction' => [
'action' => 'live:CreateEdgeTranscodeJob',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"****20b48fb04483915d4f2cd8ac****\\",\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","type":"json"}]',
],
'CreateEventSub' => [
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
'operationType' => 'none',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveK6LRQR'],
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID.', 'type' => 'string', 'required' => true, 'example' => '9qb1****', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['title' => '123333', 'description' => 'The channel ID. You can call the [ListEventSub](~~2628135~~) operation to query the channel ID.'."\n"
."\n"
.'>'."\n"
."\n"
.'- This parameter is required if you specify the Users.N parameter.'."\n"
."\n"
.'- If you set this parameter to \\* or do not specify this parameter, all channels are subscribed to.'."\n"
."\n"
.'- Each application ID allows only one all-channel subscription.', 'type' => 'string', 'required' => false, 'example' => '123333'],
],
[
'name' => 'Users',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'title' => '',
'description' => 'The user whose events you want to subscribe to. If you leave this parameter empty, the events of all users in the channel are subscribed to, including the events of the streamer and viewers. Specify this parameter in the following format:'."\n"
."\n"
.'```'."\n"
.'Users.1=****'."\n"
.'Users.2=****'."\n"
.'......'."\n"
.'```',
'type' => 'array',
'items' => ['description' => 'The user ID.', 'type' => 'string', 'required' => false, 'example' => 'user1', 'title' => ''],
'required' => false,
'maxItems' => 30,
'example' => '',
],
],
[
'name' => 'Events',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'title' => 'ChannelEvent, UserEvent',
'description' => 'Subscribe to events.',
'type' => 'array',
'items' => ['description' => 'The type of the event. Valid values:'."\n"
."\n"
.'- ChannelEvent: channel events.'."\n"
."\n"
.'- UserEvent: user events in the channel.', 'type' => 'string', 'required' => true, 'example' => 'ChannelEvent', 'title' => ''],
'required' => true,
'maxItems' => 5,
'example' => '',
],
],
[
'name' => 'CallbackUrl',
'in' => 'query',
'schema' => ['title' => 'http://****.com/callback', 'description' => 'The callback URL. For more information about the content of the messages that are sent to the callback URL, see the Callback section in this topic.', 'type' => 'string', 'required' => true, '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' => 'The request ID.', 'type' => 'string', 'example' => '760bad53276431c499e30dc36f6b****'],
'SubscribeId' => ['description' => 'The subscription ID.', 'type' => 'string', 'example' => 'ad53276431c****', 'title' => ''],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
['errorCode' => 'QuotaLimitError', 'errorMessage' => '%s.', 'description' => 'For each AppId, a maximum of 20 subscriptions are allowed at the same time, and only one full channel subscription is allowed.'],
['errorCode' => 'ErrorInvalidCallBackUrl', 'errorMessage' => '%s.', 'description' => 'The CallBackURL is invalid, please check and try again.'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'CreateEventSub',
'summary' => 'Creates a callback to subscribe to channel or user events.',
'description' => 'You can call this operation to create a callback to subscribe to channel or user events. When you create a callback, you can configure parameters such as the callback URL and event type.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 100 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.',
'requestParamsDescription' => '## CallBack'."\n"
."\n"
.'Callback messages are sent to the callback URL that is specified by the CallbackUrl parameter. The following sample code provides an example:'."\n"
."\n"
.'```'."\n"
.'Request:'."\n"
."\n"
.'POST /callbackURL'."\n"
."\n"
.'Body'."\n"
.'application/json'."\n"
."\n"
.'{'."\n"
.' "MsgId": "Message ID",'."\n"
.' "MsgTimestamp": 12312324, // The UNIX timestamp when the message was sent.'."\n"
.' "SubscribeID": "Subscription ID",'."\n"
.' "AppId":"", // The ID of the application in which the message was generated.'."\n"
.' "ChannelID":"", // The ID of the channel in which the message was generated.'."\n"
.' "Contents": ['."\n"
.' {'."\n"
.' "Event": "UserEvent",// The type of the event that is subscribed to. In this case, the type is user event.'."\n"
.' "UserEvent": {'."\n"
.' "UserId": "80331631628*****", // The user ID.'."\n"
.' "EventTag": "Publish", // The event. Valid values: Join, Leave, Publish, Unpublish, and Roleupdate.'."\n"
.' "SessionId": "0dr15rrnhkz0jnvz6o8sxo0*****", // The ID of the session in which the event was generated.'."\n"
.' "Timestamp": 1609854786, // The UNIX timestamp when the event occurred.'."\n"
.' "Reason": 1, // The reason for joining or leaving the channel. This parameter is available only if the event is a Join event.'."\n"
.' "Role": 1, // The role of the user. The roles include streamer and viewer.'."\n"
.' "CurrentMedias":"1,2,3"// The types of the streams that were ingested by the user.'."\n"
.' }'."\n"
.' },'."\n"
.' {'."\n"
.' "Event": "ChannelEvent",// The type of the event that is subscribed to. In this case, the type is channel event.'."\n"
.' "ChannelEvent": {'."\n"
.' "ChannelId": "88888****",'."\n"
.' "EventTag": "Open", // The event. Valid values: Open and Close.'."\n"
.' "Timestamp": 1609854530 // The UNIX timestamp when the event occurred.'."\n"
.' }'."\n"
.' }'."\n"
.' ]'."\n"
.'}'."\n"
."\n"
.'Response '."\n"
.'HTTP STATUS 200'."\n"
.'```'."\n"
."\n"
.'## Parameters of a user event'."\n"
."\n"
.'| Parameter | Type | Required | Description |'."\n"
.'| ------------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n"
.'| UserId | string | Yes | The user ID. |'."\n"
.'| SessionId | string | Yes | The session ID. |'."\n"
.'| EventTag | string | Yes | The event. Valid values:Join: The user joined the channel.Leave: The user left the channel.PublishVideo: The user ingested a video stream.PublishAudio: The user ingested an audio stream.PublishScreen: The user ingested a stream for screen sharing.UnpublishVideo: The user stopped ingesting a video stream.UnpublishAudio: The user stopped ingesting an audio stream.UnpublishScreen: The user stopped ingesting a stream for screen sharing.Roleupdate: The role of the user was changed. |'."\n"
.'| Timestamp | number | Yes | The timestamp when the event occurred. |'."\n"
.'| Reason | integer | Yes | The reason for joining or leaving the channel. This parameter is available only if the event is a Join event. Valid values:1: The user joined or left the channel as needed.2: The user reconnected to join the channel again when the user was already in the channel.3: The user performed stream relay across channels.4: The user left the channel due to a timeout.5: The user started a new session and was forced to go offline in the current session.6: The user was kicked out of the channel.7: The channel was closed. |'."\n"
.'| Role | integer | Yes | The role of the user. Valid values:1: streamer2: viewer |'."\n"
.'| CurrentMedias | integer | Yes | The type of the stream. Valid values:1: audio2: video3: screen sharing |'."\n"
."\n"
.'## Parameters of a channel event'."\n"
."\n"
.'| Parameter | Type | Required | Description |'."\n"
.'| --------- | ------ | -------- | ----------------------------------------------------------------------------------- |'."\n"
.'| EventTag | string | Yes | The event. Valid values:Open: The channel was opened.Close: The channel was closed. |'."\n"
.'| Timestamp | number | Yes | The timestamp when the event occurred. |'."\n"
."\n"
.'## Callback authentication'."\n"
."\n"
.'By default, callback authentication is enabled. The following authentication logic applies:'."\n"
."\n"
.'- When ApsaraVideo Live initiates a callback request, it includes the Ali-Rtc-Timestamp and Ali-Rtc-Signature headers in the HTTP or HTTPS request so that the callback message receiving server can authenticate the signature. The value of Ali-Rtc-Timestamp is calculated based on the following formula: Ali-Rtc-Signature=MD5SUM(MD5CONTENT). In the formula, MD5CONTENT is a string in the following format: Callback domain name|Ali-Rtc-Timestamp value|Authentication key. The callback domain name is the domain name in the callback URL. The authentication key is the AppKey of the application.'."\n"
."\n"
.'- After receiving a callback message, the callback message receiving server concatenates the callback domain name, value of the Ali-Rtc-Timestamp header, and authentication key in the preceding format. The server calculates the MD5 value of the string to obtain an encrypted string. Then, the server compares the encrypted string with the value of the Ali-Rtc-Signature header in the HTTP or HTTPS request initiated by Real-Time Communication (RTC). If the two values are different, the request is invalid.'."\n"
."\n"
.'## Callback retry'."\n"
."\n"
.'After Alibaba Cloud initiates a callback request, the callback is considered successful only if the HTTP status code 200 is returned by your business server. If a callback fails, ApsaraVideo Live resends the callback request 7 times at intervals of 1 second, 2 seconds, 5 seconds, 10 seconds, 60 seconds, 120 seconds, and 300 seconds. A callback record is generated each time a callback request is resent.'."\n"
."\n"
.'## Exception handling'."\n"
."\n"
.'A keep-alive mechanism is implemented between clients that have joined a channel or started stream ingest and the Alibaba Cloud server. If the server does not receive heartbeat information from a client for 90 seconds, the server considers that the client timed out and the user left the channel and then fires callbacks. Heartbeats fail to be detected if a network disconnection occurs or the application accidentally exits.',
'changeSet' => [
['createdAt' => '2023-11-21T09:21:45.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2023-11-21T05:55:02.000Z', 'description' => 'Error codes changed, Request parameters changed'],
['createdAt' => '2023-08-31T01:48:03.000Z', 'description' => 'Error codes changed'],
['createdAt' => '2023-08-04T10:33:43.000Z', 'description' => 'Request parameters changed, Response parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateEventSub'],
],
],
'ramActions' => [
[
'operationType' => '',
'ramAction' => [
'action' => 'live:CreateEventSub',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"760bad53276431c499e30dc36f6b****\\",\\n \\"SubscribeId\\": \\"ad53276431c****\\"\\n}","type":"json"}]',
],
'CreateLiveAIStudio' => [
'summary' => 'Creates a lightweight virtual studio template.',
'methods' => ['post', 'get'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '250868',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'StudioName',
'in' => 'query',
'schema' => ['description' => 'The name of the virtual studio template. The name must be unique.', 'type' => 'string', 'required' => true, 'example' => 'stu02', 'title' => ''],
],
[
'name' => 'Description',
'in' => 'query',
'schema' => [
'description' => 'The custom description.',
'enumValueTitles' => [],
'type' => 'string',
'required' => false,
'example' => 'template 1080',
'title' => '',
],
],
[
'name' => 'Width',
'in' => 'query',
'schema' => ['description' => 'The width of the preview screen. Unit: px.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1920', 'title' => ''],
],
[
'name' => 'Height',
'in' => 'query',
'schema' => ['description' => 'The height of the preview screen. Unit: px.'."\n"
."\n"
.'The width × height of the preview screen supports only the following specifications:'."\n"
."\n"
.'- Landscape low definition 360P: 640 × 360'."\n"
.'- Portrait low definition 360P: 360 × 640'."\n"
.'- Landscape standard definition 480P: 854 × 480'."\n"
.'- Portrait standard definition 480P: 480 × 854'."\n"
.'- Landscape high definition 720P: 1280 × 720'."\n"
.'- Portrait high definition 720P: 720 × 1280'."\n"
.'- Landscape ultra-high definition 1080P: 1920 × 1080'."\n"
.'- Portrait ultra-high definition 1080P: 1080 × 1920.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1080', 'title' => ''],
],
[
'name' => 'BackgroundType',
'in' => 'query',
'schema' => [
'description' => 'The type of the background material. Valid values:'."\n"
.'- VOD: video-on-demand video.'."\n"
.'- PIC: image.'."\n"
.'- LIVE: live stream.',
'enumValueTitles' => ['VOD' => 'video-on-demand video.', 'PIC' => 'image.', 'LIVE' => 'live stream.'],
'type' => 'string',
'required' => false,
'enum' => ['VOD', 'LIVE', 'PIC'],
'example' => 'VOD',
'title' => '',
],
],
[
'name' => 'BackgroundResourceId',
'in' => 'query',
'schema' => [
'description' => 'The video-on-demand resource ID of the background material. Obtain this value from the ApsaraVideo VOD console.',
'type' => 'string',
'enum' => [],
'required' => false,
'example' => 'd0eb493192c771efba644531858c0102',
'title' => '',
],
],
[
'name' => 'BackgroundResourceUrl',
'in' => 'query',
'schema' => [
'description' => 'The access URL of the background material. Specify either this parameter or the resource ID.',
'type' => 'string',
'enum' => [],
'required' => false,
'example' => 'https://xxx.com/1.mp4',
'title' => '',
],
],
[
'name' => 'MediaType',
'in' => 'query',
'schema' => [
'description' => 'The type of the multimedia material. Valid values:'."\n"
.'- VOD: video-on-demand video.'."\n"
.'- PIC: image.'."\n"
.'- LIVE: live stream.',
'enumValueTitles' => ['VOD' => 'video-on-demand video.', 'PIC' => 'image.', 'LIVE' => 'live stream.'],
'type' => 'string',
'required' => false,
'enum' => ['VOD', 'LIVE', 'PIC'],
'example' => 'VOD',
'title' => '',
],
],
[
'name' => 'MediaResourceId',
'in' => 'query',
'schema' => [
'description' => 'The video-on-demand resource ID of the multimedia material. Obtain this value from the ApsaraVideo VOD console.',
'type' => 'string',
'enum' => [],
'required' => false,
'example' => 'd0eb493192c771efba644531858c0102',
'title' => '',
],
],
[
'name' => 'MediaResourceUrl',
'in' => 'query',
'schema' => [
'description' => 'The access URL of the multimedia material. Specify either this parameter or the resource ID.',
'type' => 'string',
'enum' => [],
'required' => false,
'example' => 'https://xxx.com/2.mp4',
'title' => '',
],
],
[
'name' => 'MediaLayout',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The layout position information of the multimedia material.',
'type' => 'object',
'properties' => [
'PositionX' => ['description' => 'The x-coordinate of the position. Valid values: **0 to 1**. The position of the material is based on the upper-left corner as the reference point.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0', 'title' => ''],
'PositionY' => ['description' => 'The y-coordinate of the position. Valid values: **0 to 1**. The position of the material is based on the upper-left corner as the reference point.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0', 'title' => ''],
'HeightNormalized' => ['description' => 'The normalized height of the material, which is the ratio of the material height to the background height. Valid values: **0 to 1**.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.5', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
],
[
'name' => 'MattingType',
'in' => 'query',
'schema' => [
'description' => 'The image matting type. Valid values:'."\n"
.'- green: green screen matting.'."\n"
.'- blue: blue screen matting.'."\n"
.'- complex: real-scene matting.',
'enumValueTitles' => ['green' => 'image matting with a green screen.', 'blue' => 'blue screen matting.', 'complex' => 'real-scene matting.'],
'type' => 'string',
'required' => true,
'enum' => ['green', 'blue', 'complex'],
'example' => 'complex',
'title' => '',
],
],
[
'name' => 'MattingLayout',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The layout position information of the source stream after image matting.',
'type' => 'object',
'properties' => [
'PositionX' => ['description' => 'The x-coordinate of the position. Valid values: **0 to 1**. The position of the material is based on the upper-left corner as the reference point.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.3', 'title' => ''],
'PositionY' => ['description' => 'The y-coordinate of the position. Valid values: **0 to 1**. The position of the material is based on the upper-left corner as the reference point.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.3', 'title' => ''],
'HeightNormalized' => ['description' => 'The normalized height of the material, which is the ratio of the material height to the background height. Valid values: **0 to 1**.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.5', 'title' => ''],
],
'required' => true,
'title' => '',
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'The response struct.',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '17D7526C-69AD-5761-8037-071C27358345'],
'StudioId' => ['title' => '', 'description' => 'The studio template ID.', 'type' => 'string', 'example' => '369ced1f-c33a-49e5-91da-bdaae3d6c1c2'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'LiveServiceNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The live service is not enabled. Please check and try again.'],
['errorCode' => 'InvalidParameter.PurchaseTime', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter PurchaseTime is invalid, please check and try again.'],
['errorCode' => 'InvalidParameter.ExpireTime', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ExpireTime is invalid, please check and try again.'],
['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => 'Parameter error'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'InvalidChargeType.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ChargeType is invalid, please check and try again.'],
['errorCode' => 'InvalidChargeType.PostSupport', 'errorMessage' => '%s, please check and try again later.', 'description' => 'ChargeType only supports post-paid, please check and try again.'],
['errorCode' => 'InvalidCasterTemplate.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterTemplate is invalid, please check and try again.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'InvalidParameter.ChargeType', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ChargeType is invalid, please check and try again.'],
['errorCode' => 'InvalidPeriod.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Invalid time interval, please check and try again.'],
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidClientToken.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ClientToken is invalid, please check and try again.'],
['errorCode' => 'IncorrectCasterStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Guide station status error, please check and try again.'],
],
[
['errorCode' => 'CasterNumberExceed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The number of casters exceeds the limit. Please check and try again.'],
],
403 => [
['errorCode' => 'PermissionDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Access denied, please check and try again.'],
],
[
['errorCode' => 'InvalidParameter.NormType', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter NormType is invalid, please check and try again.'],
['errorCode' => 'InvalidConfiguration.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Configuration does not exist, please check and try again.'],
],
408 => [
['errorCode' => 'CreateLiveAIStudio.Timeout', 'errorMessage' => '%s, please try again later.', 'description' => 'Call CreateLiveAIStudio timed out, please try again later.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"17D7526C-69AD-5761-8037-071C27358345\\",\\n \\"StudioId\\": \\"369ced1f-c33a-49e5-91da-bdaae3d6c1c2\\"\\n}","type":"json"}]',
'title' => 'Create a virtual studio template',
'description' => '>The lightweight virtual studio feature is in public preview. Each user can create up to 300 templates. The feature is free of charge during the public preview. After the public preview ends, standard fees will apply. The specific date will be announced separately.>.',
'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' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'CreateLiveDelayConfig' => [
'summary' => 'Adds a stream delay configuration.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveBP94ZY'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'Domain',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'App',
'in' => 'query',
'schema' => ['description' => 'The AppName of the live stream. You can specify an asterisk (\\*) to match all AppNames under the domain name.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'Stream',
'in' => 'query',
'schema' => ['description' => 'The name of the live stream. You can use the wildcard (\\*) to specify all StreamNames under the AppName.', 'type' => 'string', 'required' => true, 'example' => 'liveStream****', 'title' => ''],
],
[
'name' => 'DelayTime',
'in' => 'query',
'schema' => ['description' => 'The duration for which the playback is delayed. The value must be an integer. Valid values: 16 to 3600. Unit: seconds.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '60', 'title' => ''],
],
[
'name' => 'TaskTriggerMode',
'in' => 'query',
'schema' => ['description' => 'The trigger mode. Valid values:'."\n"
."\n"
.'- **PUBLISH\\_ONLY**: Stream delay is triggered only by relevant parameters in the ingest URL.'."\n"
."\n"
.'- **CONFIG\\_ONLY**: Stream delay is triggered only by the configuration. Parameters in the ingest URL are ignored.'."\n"
."\n"
.'- **PUBLISH\\_CONFIG**: Stream delay is triggered by both the configuration and parameters in the ingest URL. Parameters in the ingest URL have a higher priority than the configuration.', 'type' => 'string', 'required' => true, 'example' => 'PUBLISH_ONLY', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameters', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'Invalid parameter:%s.'],
],
],
'title' => 'CreateLiveDelayConfig',
'description' => 'Stream delay differs from latency caused by streaming protocols. Stream delay is a feature that lets you delay the playback of a live stream processed in the cloud.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 60 for each user. If you exceed the limit, API calls are throttled, which may affect your business. Call this operation within the specified limit.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateLiveDelayConfig'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:CreateLiveDelayConfig',
'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"}]',
],
'CreateLiveMessageApp' => [
'summary' => 'Creates an interactive messaging application.',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '198173',
'abilityTreeNodes' => ['FEATUREliveSL6Y07'],
],
'parameters' => [
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The application name. It must be 2 to 16 characters in length.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'testApp'],
],
[
'name' => 'AuditType',
'in' => 'query',
'schema' => [
'title' => '',
'description' => 'The content moderation method. Valid values:'."\n"
."\n"
.'- 0 (default): disables content moderation.'."\n"
.'- 1: Built-in content moderation.'."\n"
.'- 2: Custom content moderation.',
'type' => 'integer',
'format' => 'int32',
'required' => false,
'enum' => ['0', '1', '2'],
'example' => '2',
],
],
[
'name' => 'AuditUrl',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The URL for content moderation. This parameter is required if you set AuditType to 2. The URL must start with http\\:// or https\\:// and cannot contain a private IP address or a port number. For the format of custom content moderation, see the "Custom content moderation" section of this topic.', 'type' => 'string', 'required' => false, 'example' => 'http://demo.aliyundoc.com/exampleaudit'],
],
[
'name' => 'EventCallbackUrl',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The callback URL for events such as client logon, logoff, joining a group, and leaving a group. If you leave this parameter empty, callbacks are disabled. The callback URL must start with http\\:// or https\\:// and cannot contain a private IP address or a port number. For the callback message format and authentication logic, see the "Event callbacks" and "Callback authentication" sections of this topic.', 'type' => 'string', 'required' => false, 'example' => 'http://demo.aliyundoc.com/examplecallback'],
],
[
'name' => 'DataCenter',
'in' => 'query',
'schema' => ['description' => 'The data center. Valid values:'."\n"
."\n"
.'- cn-shanghai (default): the data center in the China (Shanghai) region.'."\n"
.'- ap-southeast-1: the data center in the Singapore region.'."\n"
."\n"
.'> When you call other operations to manage the interactive messaging application, you must specify the same data center in which the application is created.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'cn-shanghai'],
],
[
'name' => 'MsgLifeCycle',
'in' => 'query',
'schema' => ['description' => 'The retention period of group messages in the application. Valid values:'."\n"
."\n"
.'- 0 (default): 30 days.'."\n"
.'- 1: 90 days.'."\n"
.'- 2: 180 days.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'title' => '', 'example' => '1'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'The returned results.',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '65EEDBEB-43FE-1E15-976F-3DDD753A****'],
'AppId' => ['description' => 'The application ID. It can be used in subsequent operations, such as joining a group.', 'type' => 'string', 'title' => '', 'example' => 'demo'],
'AppKey' => ['description' => 'The AppKey. It is used to perform authentication for various operations related to the application ID.', 'type' => 'string', 'title' => '', 'example' => '**********************************'],
'AppSign' => ['description' => 'The application signature. It is required by the interactive messaging SDK.', 'type' => 'string', 'title' => '', 'example' => '**************************************************************************'],
'DataCenter' => ['description' => 'The data center.', 'type' => 'string', 'title' => '', 'example' => 'cn-shanghai'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
['errorCode' => 'ErrorInvalidAppName', 'errorMessage' => '%s.', 'description' => 'The AppName is invalid, please check and try again.'],
['errorCode' => 'ErrorTooManyApps', 'errorMessage' => '%s.', 'description' => 'Under each account, up to 300 apps are allowed to be created at the same time.'],
['errorCode' => 'ErrorInvalidEventCallbackUrl', 'errorMessage' => '%s.', 'description' => 'The EventCallbackUrl is invalid, please check and try again.'],
['errorCode' => 'ErrorInvalidAuditUrl', 'errorMessage' => '%s.', 'description' => 'The AuditUrl is invalid, please check and try again.'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"65EEDBEB-43FE-1E15-976F-3DDD753A****\\",\\n \\"AppId\\": \\"demo\\",\\n \\"AppKey\\": \\"**********************************\\",\\n \\"AppSign\\": \\"**************************************************************************\\",\\n \\"DataCenter\\": \\"cn-shanghai\\"\\n}","type":"json"}]',
'title' => 'CreateLiveMessageApp',
'description' => '- When you call other operations to manage the interactive messaging application, you must specify the same data center in which the application was created.'."\n"
.'- You can create up to 300 interactive messaging applications in an Alibaba Cloud account.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions. We recommend that you consider this limit when calling this operation.',
'requestParamsDescription' => '### Custom content moderation'."\n"
."\n"
.'- Request protocol: HTTP'."\n"
.'- Request method: POST'."\n"
.'- Sample request:'."\n"
."\n"
.'```'."\n"
.'{'."\n"
.' "content": "testaudit"'."\n"
.'}'."\n"
.'```'."\n"
."\n"
.'- Sample response:'."\n"
."\n"
.'```'."\n"
.'{'."\n"
.' "pass": true,'."\n"
.' "reason":"****" | If the value of pass is true, the content passes the moderation. Otherwise, the content fails the moderation. The reason field describes the reason for failure.'."\n"
.'}'."\n"
.'```'."\n"
."\n"
.'> HTTP status code 200 indicates success. If other HTTP status codes are returned, the service is considered unavailable and no content moderation is performed.'."\n"
."\n"
.'### Event callbacks'."\n"
."\n"
.'The HTTP or HTTPS request method is POST. The request body is a JSON string encoded in UTF-8. Sample event callback:'."\n"
."\n"
.'```'."\n"
.'{'."\n"
.' "appid":"demo",'."\n"
.' "eves":[{'."\n"
.' "uid":"uid1",'."\n"
.' "sid":"sessionid",'."\n"
.' "events":[{'."\n"
.' "e": 3, | The event. Valid values: 1 (logon), 2 (logoff), 3 (joining a group), 4 (leaving a group), and 5 (reconnection)'."\n"
.' "r": 1, | The reason for logoff. This field is returned for only the logoff event. Valid values: 1 (normal call), 3 (timeout), and 4 (logon from another device).'."\n"
.' "g": "testgroup", | The group ID. This field is available for joining and leaving a group, but not for logon and logoff events.'."\n"
.' "gs":["testgroupid"] | The list of group IDs, which indicates the information about the groups that the client joins upon reconnection. This field is not returned for other events.'."\n"
.' }]'."\n"
.' }]'."\n"
.'}'."\n"
.'```'."\n"
."\n"
.'> HTTP status code 200 indicates success. If other HTTP status codes are returned, the system tries to send the callback again.'."\n"
."\n"
.'### Callback authentication'."\n"
."\n"
.'When the service initiates a request, it includes the Ali-Live-Timestamp and Ali-Live-Signature fields as HTTP or HTTPS request headers, which are used by the callback receiving server for signature verification. The value of Ali-Live-Signature is calculated based on the following formula: Ali-Live-Signature = sha256(CONTENT), in which CONTENT = Callback domain name|Ali-Live-Timestamp value|Authentication key. The callback domain name is the domain name for which the callback URL is configured, and the authentication key is the AppKey that is generated when you create the application.',
'changeSet' => [
['createdAt' => '2025-02-26T03:17:26.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2025-01-22T10:56:11.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2024-03-13T01:41:50.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2024-01-31T03:42:38.000Z', 'description' => 'Error codes changed, Response parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateLiveMessageApp'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:CreateLiveMessageApp',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'CreateLiveMessageGroup' => [
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'demo', 'title' => ''],
],
[
'name' => 'GroupId',
'in' => 'query',
'schema' => ['description' => 'The ID of the group that you want to create. The group ID must be unique within your business. The ID can be up to 64 bytes in length and can contain letters and digits.'."\n", 'type' => 'string', 'required' => true, 'example' => 'grouptest', 'title' => ''],
],
[
'name' => 'GroupName',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The name of the group. The name can be up to 128 bytes in length.'."\n", 'type' => 'string', 'required' => false, 'example' => 'mytestgroup'],
],
[
'name' => 'GroupInfo',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The additional information about the group. The value can be up to 32 KB in length.'."\n", 'type' => 'string', 'required' => false, 'example' => 'testgroupinfo'],
],
[
'name' => 'Administrators',
'in' => 'query',
'style' => 'simple',
'schema' => [
'title' => '',
'description' => 'The list of administrators.'."\n",
'type' => 'array',
'items' => ['description' => 'The ID of the administrator. The ID can be up to 64 bytes in length and can contain letters and digits. Separate multiple administrator IDs with commas (,). You can specify up to three administrator IDs.'."\n", 'type' => 'string', 'required' => false, 'example' => 'uid1', 'title' => ''],
'required' => false,
'maxItems' => 3,
'example' => '',
],
],
[
'name' => 'CreatorId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The ID of the group creator. The ID can be up to 64 bytes in length and can contain letters and digits.'."\n", 'type' => 'string', 'required' => false, 'example' => 'uid1'],
],
[
'name' => 'DataCenter',
'in' => 'query',
'schema' => ['description' => 'The data center. It must be the same as the data center that was specified when you called the [CreateLiveMessageApp](~~2593195~~) operation to create the interactive messaging application. Valid values: cn-shanghai and ap-southeast-1 (Singapore).'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => '',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'A8C7B033-B339-1A58-B0E0-7B9197BA****'],
'GroupId' => ['description' => 'The ID of the group created.'."\n", 'type' => 'string', 'example' => 'grouptest', 'title' => ''],
'AlreadyExists' => ['title' => '', 'description' => 'Indicates whether the group already exists.'."\n", 'type' => 'boolean', 'example' => 'true'],
'AlreadyDelete' => ['description' => 'Indicates whether the group is deleted. If the group existed and is deleted, the group ID is unavailable. We recommend that you create a new group.'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
['errorCode' => 'ErrorTooManyGroups', 'errorMessage' => '%s.', 'description' => 'For each AppId, a maximum of 5000 groups are allowed to be created at the same time.'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'CreateLiveMessageGroup',
'summary' => 'Creates an interactive messaging group.',
'description' => '* Before you call this operation, make sure that you have called the [CreateLiveMessageApp](~~2848162~~) operation to create an interactive messaging application.'."\n"
.'* You can create up to 5,000 interactive messaging groups in an interactive messaging application.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n",
'changeSet' => [
['createdAt' => '2024-01-31T03:35:28.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [],
],
'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' => 'Creates a Global Accelerator (GA) instance and binds it to an acceleration circuit.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The application name.', 'type' => 'string', 'required' => true, 'example' => 'live', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The stream name.', 'type' => 'string', 'required' => true, 'example' => 'testStream', 'title' => ''],
],
[
'name' => 'VideoCenter',
'in' => 'query',
'schema' => ['description' => 'The live center. Valid values are cn-beijing, cn-shanghai, cn-shenzhen, cn-qingdao, ap-northeast-1, ap-southeast-5, eu-central-1, ap-southeast-1, and ap-south-1. These values represent the live centers located in Beijing, Shanghai, Shenzhen, Qingdao, Japan, Indonesia, Germany, and Singapore.', 'type' => 'string', 'required' => true, 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'AccelerationType',
'in' => 'query',
'schema' => [
'description' => 'The acceleration type. Valid values:'."\n"
."\n"
.'- play: streaming acceleration.'."\n"
."\n"
.'- publish: stream ingest acceleration.',
'type' => 'string',
'required' => true,
'enum' => ['play', 'publish'],
'example' => 'play',
'title' => '',
],
],
[
'name' => 'AccelerationArea',
'in' => 'query',
'schema' => ['description' => 'The acceleration area.', 'type' => 'string', 'required' => true, 'example' => 'ap-southeast-1', 'title' => ''],
],
[
'name' => 'Reuse',
'in' => 'query',
'schema' => [
'description' => 'Specifies whether to reuse an existing acceleration instance. Valid values:'."\n"
."\n"
.'- yes: Reuse an existing acceleration instance.'."\n"
."\n"
.'- no: Create a new acceleration instance.',
'type' => 'string',
'required' => true,
'enum' => ['yes', 'no'],
'example' => 'no',
'title' => '',
],
],
[
'name' => 'MaxBandwidth',
'in' => 'query',
'schema' => ['description' => 'The maximum bandwidth for acceleration. Unit: Mbps. This parameter is required if you set Reuse to no.', 'type' => 'string', 'required' => false, 'example' => '200', 'title' => ''],
],
[
'name' => 'InstanceId',
'in' => 'query',
'schema' => ['description' => 'The ID of the acceleration instance that you want to reuse. This parameter is required if you set Reuse to yes.', 'type' => 'string', 'required' => false, 'example' => 'ga-bp1iovsdpf01ym9su****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned data.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '7908F2FF-44F8-120F-9FD6-85AE4B6C****', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => 'Illegal input parameters'],
['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' => 'CreateLivePrivateLine',
'description' => '- You can call this operation to create a Global Accelerator instance and attach it to a live stream channel. You must specify the start and end points of the acceleration at the stream level.'."\n"
."\n"
.'- The template takes effect only if the AppName and StreamName match the corresponding names in the streaming URL.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 50 per user. Calls that exceed this limit are throttled, which can affect your business. We recommend that you call this operation within this limit.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateLivePrivateLine'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:CreateLivePrivateLine',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"7908F2FF-44F8-120F-9FD6-85AE4B6C****\\"\\n}","type":"json"}]',
],
'CreateLivePullToPush' => [
'summary' => 'Call CreateLivePullToPush to create a pull-to-push task.',
'methods' => ['get', 'post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '240052',
'abilityTreeNodes' => ['FEATURElive9P39J9'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'Region ID.', 'type' => 'string', 'default' => 'cn-shanghai', 'required' => false, 'example' => 'cn-beijing', 'title' => ''],
],
[
'name' => 'Region',
'in' => 'query',
'schema' => [
'description' => 'Specifies the region where the task is launched. Valid values:'."\n"
."\n"
.'- ap-southeast-1 (Singapore)'."\n"
.'- ap-southeast-5 (Indonesia)'."\n"
.'- cn-beijing (Beijing)'."\n"
.'- cn-shanghai (Shanghai)'."\n"
.'- cn-shenzhen (Shenzhen)',
'enumValueTitles' => ['cn-shenzhen' => 'Shenzhen', 'cn-qingdao' => 'Qingdao', 'preregion' => 'Pre-release', 'cn-beijing' => 'Beijing', 'cn-shanghai' => 'Shanghai', 'ap-southeast-1' => 'Singapore', 'eu-central-1' => 'Germany - Frankfurt', 'ap-northeast-1' => 'Japan - Tokyo', 'ap-southeast-5' => 'Indonesia', 'me-central-1' => 'Saudi Arabia - Riyadh'],
'type' => 'string',
'required' => true,
'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'],
'example' => 'cn-shanghai',
'title' => '',
],
],
[
'name' => 'TaskName',
'in' => 'query',
'schema' => ['description' => 'Task name, used to support fuzzy query. Default value: "".', 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'Task start time.'."\n"
."\n"
.'> - Format: yyyy-MM-ddTHH:mm:ssZ (UTC time).', 'type' => 'string', 'required' => true, 'example' => '2024-08-26T10:30:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'Task end time.'."\n"
."\n"
.'> - Format: yyyy-MM-ddTHH:mm:ssZ (UTC time).'."\n"
.'> - EndTime must be later than StartTime.'."\n"
.'> - EndTime must be later than the current time.', 'type' => 'string', 'required' => true, 'example' => '2024-08-27T14:30:00Z', 'title' => ''],
],
[
'name' => 'SourceType',
'in' => 'query',
'schema' => [
'description' => 'Source stream type. Valid values:'."\n"
."\n"
.'- live: live stream.'."\n"
.'- vod: ApsaraVideo VOD resource.'."\n"
.'- url: third-party video file resource.',
'enumValueTitles' => ['vod' => 'ApsaraVideo VOD resource', 'live' => 'Live stream', 'url' => 'Third-party video file resource'],
'type' => 'string',
'required' => true,
'enum' => ['live', 'vod', 'url'],
'example' => 'live',
'title' => '',
],
],
[
'name' => 'SourceProtocol',
'in' => 'query',
'schema' => [
'description' => 'Source stream protocol name.'."\n"
."\n"
.'Valid values:'."\n"
.'- rtmp'."\n"
.'- srt'."\n"
.'- http-flv'."\n"
.'- hls'."\n"
.'> This parameter is **required only when the SourceType parameter is set to live**, and is invalid when the value is vod or url.',
'type' => 'string',
'enum' => [],
'required' => false,
'example' => 'rtmp',
'title' => '',
],
],
[
'name' => 'SourceUrls',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'List of source stream URL addresses.'."\n"
."\n"
.'> - For the live type, only one complete live playback URL is supported.'."\n"
.'> - For the vod and url types, a maximum of 30 URLs can be specified.'."\n"
.'> - The live type supports: rtmp, srt, and http-flv protocols.'."\n"
.'> - For the vod type, specify ApsaraVideo VOD media asset IDs.'."\n"
.'> - The url type supports: mp4 and http-flv protocols.',
'type' => 'array',
'items' => ['description' => 'Source stream URL address.'."\n"
."\n"
.'> - For the live type, only one complete live playback URL is supported.'."\n"
.'> - For the vod and url types, a maximum of 30 URLs can be specified.'."\n"
.'> - The live type supports: rtmp, srt, and http-flv protocols.'."\n"
.'> - For the vod type, specify ApsaraVideo VOD media asset IDs.'."\n"
.'> - The url type supports: mp4 and http-flv protocols.', 'type' => 'string', 'required' => false, 'example' => 'rtmp://pulltest.****.aliyunlive.com/pulltest493/pulltest-w434', 'title' => ''],
'required' => true,
'title' => '',
'example' => '',
],
],
[
'name' => 'DstUrl',
'in' => 'query',
'schema' => ['description' => 'Destination URL address for pushing the stream.'."\n"
."\n"
.'> - The rtmp protocol is supported.'."\n"
.'> - Maximum length is 2000 characters.', 'type' => 'string', 'required' => true, 'example' => 'rtmp://pushtest.********.aliyunlive.com/pulltest493/pulltest-w434', 'title' => ''],
],
[
'name' => 'RepeatNumber',
'in' => 'query',
'schema' => [
'description' => 'Number of times to repeat playback after the initial playback is complete. Valid values:'."\n"
."\n"
.'- 0 (default): no repeat playback.'."\n"
.'- -1: loop indefinitely.'."\n"
.'- Other positive integers: number of times to repeat playback after the initial playback is complete.'."\n"
."\n"
.'> This parameter applies only to VOD or third-party video streams.',
'type' => 'integer',
'format' => 'int32',
'default' => '0',
'enum' => [],
'required' => false,
'example' => '0',
'title' => '',
],
],
[
'name' => 'FileIndex',
'in' => 'query',
'schema' => ['description' => 'File index. Starts playback from the nth file.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
],
[
'name' => 'Offset',
'in' => 'query',
'schema' => ['description' => 'Start offset. The offset value from the beginning of the video file. Unit: seconds. Valid values: greater than 0.'."\n"
."\n"
.'> - Indicates the position to start reading from, relative to the first frame (applies to the first video).'."\n"
.'> - This parameter applies only to VOD or third-party video streams.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2', 'title' => ''],
],
[
'name' => 'CallbackUrl',
'in' => 'query',
'schema' => ['description' => 'HTTP callback URL. Default value: empty.'."\n"
."\n"
.'> - The URL that receives task-related callbacks.'."\n"
.'> - Maximum length is 2000 characters.'."\n"
.'> - If this parameter is not specified, no task event callbacks will be sent.', 'type' => 'string', 'required' => false, 'example' => 'https://callback*****.com', 'title' => ''],
],
[
'name' => 'RetryInterval',
'in' => 'query',
'schema' => ['description' => 'Retry interval, in seconds. Valid values: [60, 300]. Default value: 60 seconds.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '300', 'minimum' => '60', 'default' => '60', 'required' => false, 'example' => '60', 'title' => ''],
],
[
'name' => 'RetryCount',
'in' => 'query',
'schema' => ['description' => 'Number of retries. Default value: 3.', 'type' => 'integer', 'format' => 'int32', 'default' => '3', 'required' => false, 'example' => '3', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'Request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68*****'],
'RetCode' => ['description' => 'Return code.'."\n"
."\n"
.'> - "0" is returned under normal conditions.'."\n"
.'> - For abnormal conditions, refer to the error code list below.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'Description' => ['description' => 'Error description.', 'type' => 'string', 'example' => 'OK', 'title' => ''],
'TaskId' => ['description' => 'Task ID.', 'type' => 'string', 'example' => 'fd245384-4067-4f91-9d75-9666a6bc9****', 'title' => ''],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => 'Parameter error'],
['errorCode' => 'InvalidParam.CodeIllegalDuration', 'errorMessage' => '%s.', 'description' => 'The value of start time should be less than the value of end time .'],
['errorCode' => 'CodeInvalidAliUid', 'errorMessage' => 'This aliuid does not have a live domain name.', 'description' => 'This aluid does not have a live domain name.'],
['errorCode' => 'CodeNotEnoughResource', 'errorMessage' => 'Exceeded configuration limits or insufficient resources.', 'description' => 'Exceeded configuration limits or insufficient resources'],
['errorCode' => 'CodeConfigAlreadyExists', 'errorMessage' => 'Code Config Already Exists', 'description' => ''],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => 'error on the live liveapi server.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68*****\\",\\n \\"RetCode\\": 0,\\n \\"Description\\": \\"OK\\",\\n \\"TaskId\\": \\"fd245384-4067-4f91-9d75-9666a6bc9****\\"\\n}","type":"json"}]',
'title' => 'Create a pull-to-push task',
'description' => '>Pull-to-push is a paid feature. Billing officially starts from 00:00 on December 5, 2025.>'."\n"
.'- For pricing details, see [Pull-to-push pricing](~~2997901~~).'."\n"
.'- Call this operation to create a pull-to-push task.'."\n"
.'- Supports creating live stream pull tasks and VOD pull tasks.'."\n"
.'- After a task is created, it starts running at the specified start time and automatically stops and is deleted at the specified end time.'."\n"
.'- The push destination URL specified in the task must not be used by other tasks. Otherwise, multiple tasks pushing to the same URL simultaneously will cause push failures.'."\n"
.'- Pull-to-push callback events include task running status change callbacks and task exit callbacks. For more information, see [Pull-to-push event callbacks](~~2846768~~).'."\n"
."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this operation is 10 calls per second. If the limit is exceeded, API calls will be throttled, which may affect your business. Please call this operation appropriately.',
'changeSet' => [
['createdAt' => '2025-05-06T02:10:32.000Z', 'description' => 'Error codes changed'],
['createdAt' => '2025-04-27T08:03:58.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateLivePullToPush'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:CreateLivePullToPush',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'CreateLiveRealTimeLogDelivery' => [
'summary' => 'Configures real-time log delivery for a domain name.',
'methods' => ['get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATURElive066BXV'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'Project',
'in' => 'query',
'schema' => ['description' => 'The name of the Simple Log Service (SLS) project for real-time log delivery.', 'type' => 'string', 'required' => true, 'example' => 'test_project', 'title' => ''],
],
[
'name' => 'Logstore',
'in' => 'query',
'schema' => ['description' => 'The name of the Logstore in SLS.', 'type' => 'string', 'required' => true, 'example' => 'test_logstore', 'title' => ''],
],
[
'name' => 'Region',
'in' => 'query',
'schema' => ['description' => 'The region where the SLS project is located.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain name.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'F32C57AA-7BF8-49AE-A2CC-9F42390F****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'Unauthorized', 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', 'description' => ''],
],
404 => [
['errorCode' => 'LogstoreNotExist', 'errorMessage' => 'Logstore does not exist', 'description' => ''],
],
],
'title' => 'CreateLiveRealTimeLogDelivery',
'description' => 'You can call this operation to create a real-time log delivery task for a streaming domain.'."\n"
."\n"
.'Currently, real-time log delivery is supported only for streaming domains. To deliver real-time logs for ingest domains, [submit a ticket](https://workorder.console.aliyun.com/console.htm#/ticket/add?productCode=live\\&commonQuestionId=4545\\&isSmart=true\\&iatraceid=1608439120675-2a5c48de0b84805313c708\\&channel=selfservice).Currently, real-time log delivery is supported only for streaming domains. To deliver real-time logs for ingest domains, [submit a ticket](https://workorder-intl.console.aliyun.com/?spm=5176.12818093.nav-right.dticket.6cb216d07otFWR#/ticket/createIndex).'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 6,000 calls per minute per user. API calls that exceed this limit are throttled. To prevent your business from being affected, call this operation within the limit.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Special error codes'."\n"
."\n"
.'|HTTP status code|Error code|Description|'."\n"
.'|---|---|---|'."\n"
.'|403|Unauthorized|The error message returned because you are not authorized to use Log Service.|'."\n"
.'|404|LogstoreNotExist|The error message returned because the specified Logstore is not found.|',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateLiveRealTimeLogDelivery'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:CreateLiveRealTimeLogDelivery',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F32C57AA-7BF8-49AE-A2CC-9F42390F****\\"\\n}","type":"json"}]',
],
'CreateLiveStreamMonitor' => [
'summary' => 'Creates a monitoring session.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '106895',
'abilityTreeNodes' => ['FEATUREliveSM955S'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'MonitorName',
'in' => 'query',
'schema' => ['description' => 'The name of the monitoring session.', 'type' => 'string', 'required' => true, 'example' => 'liveMonitor****', 'title' => ''],
],
[
'name' => 'OutputTemplate',
'in' => 'query',
'schema' => ['description' => 'The output template for the monitoring session. Valid values:'."\n"
."\n"
.'- **lp\\_ld**: low definition.'."\n"
."\n"
.'- **lp\\_sd**: standard definition.'."\n"
."\n"
.'- **lp\\_hd**: high definition.'."\n"
."\n"
.'- **lp\\_ud**: ultra-high definition.', 'type' => 'string', 'required' => true, 'example' => 'lp_ud', 'title' => ''],
],
[
'name' => 'Domain',
'in' => 'query',
'schema' => ['description' => 'The domain name to monitor.', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com', 'title' => ''],
],
[
'name' => 'App',
'in' => 'query',
'schema' => ['description' => 'The application name for the output stream of the monitoring session. You can specify a custom name. If you do not specify this parameter, **monitor** is used as the application name.', 'type' => 'string', 'required' => false, 'example' => 'monitor****', 'title' => ''],
],
[
'name' => 'Stream',
'in' => 'query',
'schema' => ['description' => 'The name of the output stream for the monitoring session. If you do not specify this parameter, the system generates a random name.', 'type' => 'string', 'required' => false, 'example' => 'monitorStream****', 'title' => ''],
],
[
'name' => 'InputList',
'in' => 'query',
'schema' => ['description' => 'The list of input streams to monitor. For more information, see the **InputConfig** table below.', 'type' => 'string', 'required' => true, 'example' => 'InputConfig', 'title' => ''],
],
[
'name' => 'MonitorConfig',
'in' => 'query',
'schema' => ['description' => 'The alert threshold settings for monitoring. The value must be a JSON string. For more information, see the MonitorConfig table below.', 'type' => 'string', 'required' => false, 'example' => '"{\\"fpsLowThres\\": 0.6,\\"brLowThres\\": 1.1,\\"eofDurationThresSec\\": 10}"', 'title' => ''],
],
[
'name' => 'CallbackUrl',
'in' => 'query',
'schema' => ['description' => 'The webhook address. HTTP and HTTPS are supported.', 'type' => 'string', 'required' => false, 'example' => 'http://guide.aliyundoc.com/notify', 'title' => ''],
],
[
'name' => 'DingTalkWebHookUrl',
'in' => 'query',
'schema' => ['description' => 'The webhook URL of the DingTalk chatbot. To receive alert notifications, configure a DingTalk chatbot and enter its webhook URL, which can be in HTTP or HTTPS format. For more information, see [Custom robot access](https://open.dingtalk.com/document/robots/custom-robot-access).'."\n"
."\n"
.'> Set the custom keyword for the DingTalk chatbot to "Alerting". Otherwise, you cannot receive messages.', 'type' => 'string', 'required' => false, 'example' => 'https://oapi.dingtalk.com/robot/send?access_token=7a7d404056eee1f2fd944ace9bcfc361dc6448583e1d3d3baa****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'MonitorId' => ['description' => 'The ID of the monitoring session.', 'type' => 'string', 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'StreamMonitorExist', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The monitoring room already exists, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidDomainName.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Domain name does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'CreateLiveStreamMonitor',
'description' => 'Call this operation to create a monitoring session. Ensure that the required parameters are configured.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 10 calls per second. If you exceed the limit, your API calls are throttled. This may affect your business. Plan your API calls accordingly.',
'requestParamsDescription' => '**InputConfig**'."\n"
."\n"
.'| Name | Type | Description | Example value |'."\n"
.'| ------------ | ------------ | -------------------------------------------------- | ------------------------------------- |'."\n"
.'| Index | Integer | The index. This parameter is used by the frontend. | 1 |'."\n"
.'| LayoutId | Integer | The layout ID. The value must start from 1. | 1 |'."\n"
.'| StreamName | String | The display name of the monitored stream. | monitorStream**** |'."\n"
.'| InputUrl | String | The URL of the input stream. | demo.aliyundoc.com |'."\n"
.'| LayoutConfig | LayoutConfig | The layout settings. | See the **LayoutConfig** table below. |'."\n"
.'| PlayConfig | PlayConfig | The playback configuration. | See the **PlayConfig** table below. |'."\n"
."\n"
.'**LayoutConfig**'."\n"
."\n"
.'| Name | Type | Description | Example value |'."\n"
.'| ------------------ | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- |'."\n"
.'| FillMode | String | The fill mode. Set this parameter to `none` for the frontend. | none |'."\n"
.'| PositionRefer | String | The reference point for the element\'s position. Valid values: `topLeft` (top-left), `topRight` (top-right), `bottomLeft` (bottom-left), and `bottomRight` (bottom-right). | topLeft |'."\n"
.'| PositionNormalized | Float | The normalized position of the layer\'s padding area, in the `[x,y]` format. The values of x and y range from 0 to 1. For example, `[0.1,0.1]` indicates a horizontal offset of 10% and a vertical offset of 10% from the top-left corner. | \\[0.1, 0.1] |'."\n"
.'| SizeNormalized | Float | The normalized size of the layer, in the `[w,h]` format. The values of w and h range from 0 to 1. Both width and height are normalized. For example, `[0.2,0.3]` indicates a width of 20% and a height of 30%. | \\[0.2, 0.3] |'."\n"
."\n"
.'**PlayConfig**'."\n"
."\n"
.'| Name | Type | Description | Example value |'."\n"
.'| ---------- | ----- | ------------------------------------------------------------------------- | ------------- |'."\n"
.'| VolumeRate | Float | The volume. The value can be from 0 to 1, accurate to two decimal places. | 0.50 |'."\n"
."\n"
.'**MonitorConfig**'."\n"
."\n"
.'| Name | Type | Description | Example value |'."\n"
.'| ------------------- | ----- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- |'."\n"
.'| fpsLowThres | Float | The alert threshold for the video frame rate. This threshold is a coefficient. The value can be from (0.0, 1.0]. The default value is 0.7. An alert is triggered if the video frame rate of the monitored stream is less than (the alert threshold × the original frame rate of the live stream). | 0.7 |'."\n"
.'| brHighThres | Float | The alert threshold for the audio and video bitrate. This threshold is a coefficient. The value can be from (0.0, 100]. The default value is 1.0. An alert is triggered if the audio and video bitrate of the monitored stream is greater than (the alert threshold × the original bitrate of the live stream). | 1.0 |'."\n"
.'| eofDurationThresSec | Float | The threshold for the duration of a stream interruption before an alert is triggered. Unit: seconds. The value can be from (0, 65535]. The default value is 0. - After a stream is interrupted, the connection remains active. The system uses an internal packet-receiving timeout of 5 seconds to detect the interruption. If you set this parameter to a value less than or equal to 5 seconds, the actual detection time is 5 seconds. If you set this parameter to a value greater than 5 seconds, the actual detection time is the value you set. The first 5 seconds of this period are for the internal timeout, and the rest is the time the system waits for the stream to recover. - If the stream recovers before the timeout period ends, no alert is triggered. If you change the monitoring address before the stream times out, the system stops detecting timeouts and triggering alerts for the previous stream. | 10 |',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2024-09-04T07:12:49.000Z', 'description' => 'Request parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateLiveStreamMonitor'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:CreateLiveStreamMonitor',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"MonitorId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b96****\\"\\n}","type":"json"}]',
],
'CreateLiveStreamRecordIndexFiles' => [
'summary' => 'Creates an M3U8 manifest for a specified time range.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '106896',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The AppName of the live stream. The template takes effect only when this name matches the AppName in the ingest URL. Use `*` to match all application names.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The stream name. The template takes effect only when this name matches the StreamName in the ingest URL. Use `*` to match all stream names.', 'type' => 'string', 'required' => true, 'example' => 'liveStream****', 'title' => ''],
],
[
'name' => 'OssEndpoint',
'in' => 'query',
'schema' => ['description' => 'The endpoint of the OSS bucket.', 'type' => 'string', 'required' => true, 'example' => 'cn-oss-****.aliyuncs.com', 'title' => ''],
],
[
'name' => 'OssBucket',
'in' => 'query',
'schema' => ['description' => 'The name of the OSS bucket.', 'type' => 'string', 'required' => true, 'example' => 'liveBucket****', 'title' => ''],
],
[
'name' => 'OssObject',
'in' => 'query',
'schema' => ['description' => 'The path and file name for the recording file in OSS.', 'type' => 'string', 'required' => true, 'example' => '{AppName}/{StreamName}/{Date}/{Hour}/{Minute}_{Second}.m3u8', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time for the manifest. TS segments uploaded after this time will be included. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'required' => true, 'example' => '2017-12-21T08:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time for the manifest. TS segments uploaded before this time will be included. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'required' => true, 'example' => '2017-12-22T08:00:00Z', 'title' => ''],
],
[
'name' => 'EndTimeIncluded',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to include an extra TS segment to cover the EndTime. If set to true, the created manifest will fully cover the StartTime to EndTime range.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '550439A3-F8EC-4CA2-BB62-B9DB43EEEF30', 'title' => ''],
'RecordInfo' => [
'description' => 'The recording information.',
'type' => 'object',
'properties' => [
'RecordUrl' => ['description' => 'The URL of the manifest.', 'type' => 'string', 'example' => 'http://*****/atestObject.m3u8', 'title' => ''],
'StreamName' => ['description' => 'The stream name.', 'type' => 'string', 'example' => 'liveStream****', 'title' => ''],
'CreateTime' => ['description' => 'The creation time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'example' => '2016-05-27T09:40:56Z', 'title' => ''],
'RecordId' => ['description' => 'The ID of the manifest.', 'type' => 'string', 'example' => 'c4d7f0a4-b506-43f9-8de3-07732c3f****', 'title' => ''],
'Height' => ['description' => 'The video height.', 'type' => 'integer', 'format' => 'int32', 'example' => '480', 'title' => ''],
'OssBucket' => ['description' => 'The name of the OSS bucket.', 'type' => 'string', 'example' => 'liveBucket****', 'title' => ''],
'DomainName' => ['description' => 'The main streaming domain.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'OssObject' => ['description' => 'The path and file name of the recording file in OSS.', 'type' => 'string', 'example' => 'liveObject****.m3u8', 'title' => ''],
'EndTime' => ['description' => 'The end time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'example' => '2015-12-01T07:40:00Z', 'title' => ''],
'AppName' => ['description' => 'The AppName of the live stream.', 'type' => 'string', 'example' => 'liveApp****', 'title' => ''],
'StartTime' => ['description' => 'The start time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'example' => '2015-12-01T07:36:00Z', 'title' => ''],
'Width' => ['description' => 'The video width.', 'type' => 'integer', 'format' => 'int32', 'example' => '640', 'title' => ''],
'Duration' => ['description' => 'The recording duration. Unit: seconds.', 'type' => 'number', 'format' => 'float', 'example' => '20', 'title' => ''],
'OssEndpoint' => ['description' => 'The endpoint of the OSS bucket.', 'type' => 'string', 'example' => 'cn-oss-****.aliyuncs.com', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['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' => 'The end time does not match the start time. Make sure that the start and end times match.'],
['errorCode' => 'InvalidOssEndpoint.Malformed', 'errorMessage' => 'Specified OssEndpoint is malformed.', 'description' => ''],
['errorCode' => 'InvalidOssBucket.Malformed', 'errorMessage' => 'Specified OssBucket is malformed.', 'description' => 'Invalid value of OSSBucket. Check whether the OSSBucket parameter that you specified is correct.'],
['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 start end time has changed.'],
['errorCode' => 'NoRecordContent', 'errorMessage' => 'The record content between StartTime and EndTime is empty.', 'description' => ''],
['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' => 'the specified bucket does not belong to the current user.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => ''],
],
],
'title' => 'CreateLiveStreamRecordIndexFiles',
'description' => 'You must have Object Storage Service (OSS) configured. For more information, see [Configure OSS](~~84932~~). ApsaraVideo Live can record live streams in the M3U8 format and store TS segments in OSS. This API generates an M3U8 manifest by performing real-time clipping of recorded TS segments.'."\n"
."\n"
.'> - To create a manifest, the live stream must have been active during the specified period. The operation will fail if the stream was not active or if the stream name is incorrect.'."\n"
.'>'."\n"
.'> - Make sure that the DomainName, AppName, and StreamName are correct. Otherwise, an InvalidStream.NotFound error is returned.'."\n"
.'>'."\n"
.'> - The time interval between StartTime and EndTime must be at least the duration of one TS segment (default is 30 seconds).'."\n"
.'>'."\n"
.'> - EndTime must be later than StartTime, and the interval cannot exceed 4 days.'."\n"
.'>'."\n"
.'> - TS segment information is retained in the system for only 3 months. You can only create M3U8 manifests for recordings within the last 3 months.'."\n"
.'>'."\n"
.'> - TS segment files are stored in OSS. Their retention period is determined by your OSS lifecycle rules. For details, see [Set lifecycle rules](~~31904~~).'."\n"
.'>'."\n"
.'> - Metadata for created M3U8 manifests is retained in the system for 6 months. You can only query information about manifests created within this period.'."\n"
.'>'."\n"
.'> - M3U8 manifests are stored in OSS. Their retention period is determined by your OSS lifecycle rules.'."\n"
.'>'."\n"
.'> - If the M3U8 manifest and TS files are stored in different buckets, the TS paths within the M3U8 manifest will be absolute HTTP URLs.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 45 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2023-01-10T11:01:20.000Z', 'description' => 'Request parameters changed, Response parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateLiveStreamRecordIndexFiles'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:CreateLiveStreamRecordIndexFiles',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'CreateMessageApp' => [
'summary' => 'You can call CreateMessageApp to create an interactive message application.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'create'],
'parameters' => [
[
'name' => 'AppName',
'in' => 'formData',
'schema' => ['description' => 'The name of the interactive message application. The length must be 2 to 16 characters.', 'type' => 'string', 'required' => true, 'example' => 'test', 'title' => ''],
],
[
'name' => 'AppConfig',
'in' => 'formData',
'style' => 'json',
'schema' => [
'description' => 'The application configuration.',
'type' => 'object',
'required' => false,
'additionalProperties' => ['type' => 'string', 'description' => 'The configuration information of the application, which is user-defined content.', 'example' => '"appAlias":"localApp"', 'title' => ''],
'title' => '',
'example' => '',
],
],
[
'name' => 'Extension',
'in' => 'formData',
'style' => 'json',
'schema' => [
'description' => 'The extension field.',
'type' => 'object',
'required' => false,
'additionalProperties' => ['type' => 'string', 'description' => 'The extension field that is passed as needed for additional application properties to be recorded.', 'example' => 'test001', 'title' => ''],
'title' => '',
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'],
'Result' => [
'description' => 'The returned result.',
'type' => 'object',
'properties' => [
'AppId' => ['title' => '', 'description' => 'The ID of the interactive message application.', 'type' => 'string', 'example' => 'VKL3***'],
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"AppId\\": \\"VKL3***\\"\\n }\\n}","type":"json"}]',
'title' => 'CreateMessageApp',
'description' => '## QPS limits'."\n"
."\n"
.'The QPS limit for this API is 100 queries per second (QPS) per user. If the limit is exceeded, API calls will be throttled, which may affect your business. You can call this API at a reasonable rate. For more information, see [QPS limits](~~343507~~).',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateMessageApp'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:CreateMessageApp',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
],
'CreateMessageGroup' => [
'summary' => 'Creates a message group.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'create'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'formData',
'schema' => ['description' => 'The ID of the interactive messaging application.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'a494caec-***-695ef345db77'],
],
[
'name' => 'CreatorId',
'in' => 'formData',
'schema' => ['description' => 'The ID of the creator. The ID can be up to 36 characters in length and can contain only letters and digits.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'as****hs'],
],
[
'name' => 'Extension',
'in' => 'formData',
'style' => 'json',
'schema' => [
'description' => 'The extended field.',
'type' => 'object',
'required' => false,
'additionalProperties' => ['type' => 'string', 'description' => 'The extended field. Specify an additional parameter as needed.', 'title' => '', 'example' => 'test001'],
'title' => '',
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'],
'Result' => [
'description' => 'The returned result.',
'type' => 'object',
'properties' => [
'Extension' => ['description' => 'The extended field.', 'type' => 'object', 'title' => '', 'example' => 'test001'],
'GroupId' => ['title' => '', 'description' => 'The ID of the message group.', 'type' => 'string', 'example' => 'AE35-****-T95F'],
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Extension\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"GroupId\\": \\"AE35-****-T95F\\"\\n }\\n}","type":"json"}]',
'title' => 'CreateMessageGroup',
'description' => '## QPS limits'."\n"
."\n"
.'You can call this operation up to 100 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions. Consider this limit when calling this operation. For more information, see [QPS limits](~~343507~~).',
'changeSet' => [
['createdAt' => '2022-09-08T15:22:52.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateMessageGroup'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:CreateMessageGroup',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'CreateMixStream' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveI16NIW'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'description' => 'The region ID.', 'title' => '', 'example' => 'cn-shanghai'],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The primary streaming domain.'."\n"
."\n"
.'>'."\n"
."\n"
.'Currently, only domain names in the China (Shanghai) and China (Beijing) regions are supported.'."\n"
."\n"
.'', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'example.com'],
],
[
'name' => 'LayoutId',
'in' => 'query',
'schema' => ['description' => 'The layout ID. Valid values:'."\n"
."\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** (If you do not use a preset layout, set this parameter to **USERDEFINED**.)'."\n"
."\n"
.'> For more information, see [Preset stream mix layouts](~~199359~~).', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'MixStreamLayout-1-1'],
],
[
'name' => 'InputStreamList',
'in' => 'query',
'schema' => ['description' => 'The list of input streams. This is a JSON array.'."\n"
."\n"
.'For more information, see **InputStreamConfig** below.', 'type' => 'string', 'required' => true, 'title' => '', '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' => 'The output configuration. This is a JSON string.'."\n"
."\n"
.'For more information, see **OutputConfig** below.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => '{"AppName":"liveApp****","StreamName":"9a78fb3f5c508be0122746f677a3****","MixStreamTemplate":"lp_hd_v","ExpireDuration":"86400"}'],
],
[
'name' => 'CallbackConfig',
'in' => 'query',
'schema' => ['description' => 'The webhook address. This is a JSON array. When an event occurs, the live service sends an HTTP POST request to this address. The request body contains the event details.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '{"CallbackUrl":"http://aliyundoc.com"}'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'MixStreamId' => ['description' => 'The ID of the stream mix task. Use this ID to query or delete the task.', 'type' => 'string', 'title' => '', 'example' => '5b2a046e-74d7-385e-253f-8a5b87e4****'],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '0D715397-2E66-4AE1-694h-C546628AD145'],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
403 => [
['errorCode' => 'MixStreamAlreadyExist', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The confluence task already exists, please check and try again.'],
['errorCode' => 'MixStreamNotExist', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The confluous task does not exist. Please check and try again.'],
['errorCode' => 'UserQuotaExceed', 'errorMessage' => 'Quota exceeded: %s.', 'description' => 'Quota exceeded: %s.'],
],
[
['errorCode' => 'InvalidDomainName.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Domain name does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'CreateMixStream',
'summary' => 'Creates a stream mixing task.',
'description' => '>'."\n"
."\n"
.'Cloud stream mixing is a paid feature. This feature is in public preview and is currently free of charge. Standard fees will apply after the public preview period. The end date of the public preview will be announced at a later date.'."\n"
."\n"
.''."\n"
."\n"
.'You can call this operation to create a stream mixing task. This operation supports both preset and custom layouts.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'A single user can make up to 10 queries per second (QPS). Calls that exceed this limit are throttled. Throttling may affect your business operations. We recommend that you plan your calls accordingly.',
'requestParamsDescription' => '### InputStreamConfig'."\n"
."\n"
.'| Name | Type | Description |'."\n"
.'| ------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |'."\n"
.'| ResourceType | String | The resource type. **live**: A live streaming URL. **url**: A file streaming URL. |'."\n"
.'| ResourceValue | String | The resource URL. If ResourceType is set to live, this is a live streaming URL. The URL can use the RTMP, FLV, or HLS protocol. The Alibaba Real-Time Communication (ARTC) protocol is not supported. If ResourceType is set to url, this is a file streaming URL. |'."\n"
.'| LayoutChildId | String | The ID of the layout pane. This ID also determines the stacking order (z-order) of the streams. |'."\n"
.'| LayoutConfig | LayoutConfig\\[] | A JSON array that specifies the position, fill mode, and other layout information. This parameter is not required if you use a preset layout. If you set this parameter, the preset layout information corresponding to LayoutChildId is ignored. |'."\n"
."\n"
.'### LayoutConfig'."\n"
."\n"
.'| Name | Type | Required | Description |'."\n"
.'| ---------------------- | ------------------------------------ | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n"
.'| FillSizeNormalized | JSON array of floating-point numbers | Yes | The size of the area to fill for this layer element. \\[w,h]: The values of w and h range from 0 to 1. The width and height are normalized. For example, \\[0.2,0.3] indicates that the width is 20% of the total width and the height is 30% of the total height. |'."\n"
.'| FillPositionNormalized | Array of floating-point numbers | Yes | The normalized position of the fill area for this layer element. \\[x,y]: The values of x and y range from 0 to 1. For example, \\[0.1,0.1] indicates a horizontal offset of 10% and a vertical offset of 10% from the top-left corner. |'."\n"
.'| PositionRefer | String | No | The reference point for the element\'s position coordinates. Set this parameter to topLeft. This value indicates the top-left corner. |'."\n"
.'| FillMode | String | No | The fill mode for the element. **none**: No fill. **fit**: Scales the stream to fit the pane. The longest edge reaches the border, and black bars may be added to the shorter edge. **fill**: Scales the stream proportionally based on the larger of the width or height ratio, and then crops the stream to fill the entire pane. Set this parameter to fit. |'."\n"
."\n"
.'### OutputConfig'."\n"
."\n"
.'| Name | Type | Required | Description |'."\n"
.'| ----------------- | ------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |'."\n"
.'| AppName | String | Yes | The name of the output application. Special characters such as # and ? are not supported. |'."\n"
.'| StreamName | String | Yes | The name of the output stream. Special characters such as # and ? are not supported. |'."\n"
.'| MixStreamTemplate | String | Yes | The ID of the output stream mix template. Pass only the template ID, such as lp\\_ld. Valid values: lp\\_ld (resolution: 640 × 360), lp\\_sd (resolution: 854 × 480), lp\\_hd (resolution: 1280 × 720), lp\\_ud (resolution: 1920 × 1080), lp\\_ld\\_v (resolution: 640 × 360), lp\\_sd\\_v (resolution: 854 × 480), lp\\_hd\\_v (resolution: 1280 × 720), lp\\_ud\\_v (resolution: 1920 × 1080) , lp\\_ld\\_v\\_optm (resolution: 640 × 360), lp\\_sd\\_v\\_optm (resolution: 854 × 480), lp\\_hd\\_v\\_optm (resolution: 1280 × 720), lp\\_ud\\_v\\_optm (resolution: 1920 × 1080). \\_v indicates a vertical screen template. \\_optm indicates a low-latency template. The values in parentheses indicate the resolution of the template. |'."\n"
.'| ExpireDuration | Long | No | The expiration time of the task. Unit: seconds. Valid values: **1** to **31536000** (one year). If you do not set this parameter, the task expires and is deleted after seven days. |',
'responseParamsDescription' => ' ',
'extraInfo' => '## Example callbacks for stream mixing'."\n"
."\n"
.'* The stream mixing task is created.'."\n"
."\n"
.''."\n"
."\n"
.' {'."\n"
.' "EventMessage":'."\n"
.' {'."\n"
.' "StreamName":"liveStream****",// The name of the output stream.'."\n"
.' "Message":"",'."\n"
.' "DomainName":"example.com",'."\n"
.' "MixstreamId":"5b2a046e-74d7-385e-253f-8a5b87e4****",// The ID of the stream mixing task.'."\n"
.' "Code":"Success",'."\n"
.' "AppName":"liveApp****"// The name of the application that generates the output stream.'."\n"
.' },'."\n"
.' "EventType":"MixstreamStartCallback",'."\n"
.' "MessageMd5":"7c7b1d9480ae892lkasjdflkasjbd****",'."\n"
.' "CasterId":""}'."\n"
."\n"
.'* The stream mixing task failed to be created.'."\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"
.'### SDK example'."\n"
."\n"
.'For more information, see [Sample code of stream mixing](https://help.aliyun.com/document_detail/199362.html).'."\n",
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:CreateMixStream',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"MixStreamId\\": \\"5b2a046e-74d7-385e-253f-8a5b87e4****\\",\\n \\"RequestId\\": \\"0D715397-2E66-4AE1-694h-C546628AD145\\"\\n}","type":"json"}]',
],
'CreateRTCWhipStreamAddress' => [
'summary' => 'Creates a WHIP ingest URL for an ARTC channel.',
'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' => ['description' => 'An idempotency token used to prevent duplicate requests. It is not recommended to use this parameter for this API.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '58E73333-xxxx-xxxx-xxxx'],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID.', 'type' => 'string', 'required' => true, 'maxLength' => 64, 'minLength' => 1, 'pattern' => '^[0-9a-zA-Z_-]+$', 'title' => '', 'example' => '6a0**6dcc-xxxx-xxxx-xxxx-e**e3exxxxxx '],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'The ID of the channel to join.', 'type' => 'string', 'required' => true, 'maxLength' => 64, 'minLength' => 1, 'pattern' => '^[0-9a-zA-Z_-]+$', 'title' => '', 'example' => ' ch00000****001'],
],
[
'name' => 'UserId',
'in' => 'query',
'schema' => ['description' => 'The user ID. The user ID must be unique among all users in the channel.', 'type' => 'string', 'required' => true, 'maxLength' => 64, 'minLength' => 1, 'pattern' => '^[0-9a-zA-Z_-]+$', 'title' => '', 'example' => 'zb0000****0001'],
],
[
'name' => 'DisplayName',
'in' => 'query',
'schema' => ['description' => 'The display name of the user in the channel.'."\n"
."\n"
.'> Supports characters such as Chinese. It is recommended to keep the name under 32 bytes in size.', 'type' => 'string', 'example' => 'John', 'required' => true, 'maxLength' => 40, 'minLength' => 1, 'title' => ''],
],
[
'name' => 'ExpireTime',
'in' => 'query',
'schema' => ['description' => 'The validity period of the ingest URL. Unit: seconds. The default value is 43200.'."\n"
."\n"
.'> If an active stream exceeds this duration, it will not be affected. However, attempting to start a *new* stream with the expired URL will fail.', 'type' => 'integer', 'format' => 'int32', 'example' => '43200', 'default' => '43200', 'required' => false, 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '58E7**D4-xxxx-xxxx-xxxx-6B5**6Cxxxxx'],
'WhipAddress' => ['description' => 'The WHIP URL.', 'type' => 'string', 'title' => '', 'example' => 'https://xxxxxx.media-sh.xxxxx.com/xxxxxxxxxxxx/3723a3xxxxxxxxx223c606b***5f7a2bc7c56ea5cdd0xxxxe?auth_key=17495xxxxx-xxxx-0-f013003067c78c4053f9cd0xxxxxxx&qqzr=H4sIAAAAAAAC_6pWSlayUkrOMxxxxxxrPyCxQ0lFKQTCLlKyUjM2Nj**NDQ1TEy2Mjc3xxxxxxxxxxqRYAAAD__xxxxx__xxxxxxxx'],
],
'description' => 'Schema of Response',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'CreateRTCWhipStreamAddress',
'description' => '## Use with OBS Studio'."\n"
."\n"
.'1. Call the CreateRTCWhipStreamAddress API to generate a WHIP ingest URL (WhipAddress) for an ARTC channel.'."\n"
."\n"
.'2. Use OBS Studio to ingest streams over the WHIP protocol.'."\n"
."\n"
.' - Launch OBS Studio.'."\n"
."\n"
.' - IFrom the menu bar, select **File** > **Settings**.'."\n"
."\n"
.' - On the Settings page, select **Stream**, configure the following information, and then click **OK**.'."\n"
."\n"
.' | Parameter | Description |'."\n"
.' | ------------ | ---------------------------------------------------- |'."\n"
.' | Service | Select **WHIP**. |'."\n"
.' | Server | Use the `WhipAddress` URL generated by the API call. |'."\n"
.' | Bearer Token | Leave this field empty. |'."\n"
."\n"
.' '."\n"
."\n"
.'3. Once you start streaming from OBS, other users can join the same ARTC channel to watch the stream.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 40 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'live:CreateRTCWhipStreamAddress',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', '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"}]',
'translator' => 'manual',
],
'CreateRoomRealTimeStreamAddress' => [
'summary' => 'Creates a Real-Time Messaging Protocol (RTMP) ingest URL for a channel.',
'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' => 'The ID of the ARTC application. You can specify only one application ID. The ID can be up to 64 characters in length and can contain letters, digits, underscores (\\_), and hyphens (-).', 'type' => 'string', 'required' => true, 'example' => 'yourAppId', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'The ID of the channel. You can specify only one ID. The ID can be up to 64 characters in length and can contain letters, digits, underscores (\\_), and hyphens (-).', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'yourChannelId'],
],
[
'name' => 'UserId',
'in' => 'query',
'schema' => ['description' => 'The ID of the user who ingests the stream over RTMP. The user ID must be different from IDs of other users in the channel. The ID can be up to 64 characters in length and can contain letters, digits, underscores (\\_), and hyphens (-).', 'type' => 'string', 'required' => true, 'maxLength' => 64, 'minLength' => 1, 'title' => '', 'example' => 'rtmp-uuid'],
],
[
'name' => 'DisplayName',
'in' => 'query',
'schema' => ['description' => 'The name of the RTMP stream. The name can be up to 40 characters in length.', 'type' => 'string', 'required' => true, 'maxLength' => 40, 'minLength' => 1, 'title' => '', 'example' => 'rtmp-dname'],
],
[
'name' => 'ExpireTime',
'in' => 'query',
'schema' => ['description' => 'The validity period of the RTMP URL. Unit: seconds. The default value is 36,000 seconds, which is 10 hours.', 'type' => 'integer', 'format' => 'int32', 'example' => '43200', 'default' => '43200', 'title' => '', 'required' => false],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'F8DB7E25-6A35-161A-AA41-B7A658AF****'],
'RtmpAddress' => ['description' => 'The RTMP ingest URL.', 'type' => 'string', 'example' => 'rtmp://rtcpush****.rtmp.alivecdn.com/rtcdev****/H4sIAAAA****_6pWSlayUipJLS5R0lEqRTBTEMwiJSul1CRTMxNjsyQTM****-PUZCMz8yTDZLNkAwMDA6M0I0ulWgA****__wEAAP__a_e7YkkAAAA?auth_key=1700492701-6e33-0-c6d7e3a93dc2dbe3af42f6259ccd****', 'title' => ''],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'CreateRoomRealTimeStreamAddress',
'description' => '### [](#)Usage notes'."\n"
."\n"
.'To use the interactive streaming feature, you must use ApsaraVideo Real-time Communication (ARTC) SDK to join a channel and ingest streams over Real-Time Communication (RTC). In specific scenarios, you can ingest streams over Real-Time Messaging Protocol (RTMP) by using tools such as Open Broadcaster Software (OBS). Then, ApsaraVideo Live automatically converts the RTMP streams to RTC streams and distributes the RTC streams to viewers. You can call this operation to generate an ingest URL in the RTMP format. After you ingest RTMP streams, ApsaraVideo Live automatically converts the streams to RTC streams. Do not call this operation if you require only regular live streaming. To quickly ingest RTMP streams and start live streaming, see [Get started with ApsaraVideo Live](~~198676~~).'."\n"
."\n"
.'## [](#)Procedure'."\n"
."\n"
.'1. Call this operation to generate an ingest URL in the RTMP format.'."\n"
."\n"
.'2. Ingest a stream by using the ingest URL. Other users in the channel can watch the stream.'."\n"
."\n"
.'3. Stop ingesting the stream. Other users in the channel see that the user who ingested the stream leaves the channel.'."\n"
."\n"
.'>'."\n"
."\n"
.'- You can repeat Steps 2 and 3 within the validity period of the ingest URL.'."\n"
."\n"
.'- We recommend that you call the [DescribeChannelParticipants](~~610801~~) operation to query online users in the channel at regular intervals. This way, you can check whether the user who ingests the stream is still in the channel. If the user who ingests the stream is not in the channel, the stream may be interrupted. In this case, we recommend that you stop ingesting the stream and perform Step 2.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 100 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation. For more information, see [QPS limits](~~343507~~).',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateRoomRealTimeStreamAddress'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'live:CreateRoomRealTimeStreamAddress',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'CreateRtcAsrTask' => [
'summary' => 'Creates a real-time subtitle task to transcribe an audio stream into text in real time.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '219527',
'abilityTreeNodes' => ['FEATUREliveK6LRQR', 'FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'Mode',
'in' => 'query',
'schema' => [
'description' => 'The stream mode. Valid values: live and rtc. The value live indicates a standard live stream such as RTMP.',
'enumValueTitles' => ['rtc' => 'rtc mode.', 'live' => 'live mode.'],
'type' => 'string',
'required' => true,
'enum' => ['rtc', 'live'],
'example' => 'live',
'title' => '',
],
],
[
'name' => 'SDKAppID',
'in' => 'query',
'schema' => ['description' => 'The ApsaraVideo Real-time Communication application ID.'."\n"
.'> This parameter is required when Mode is set to rtc. Otherwise, this parameter does not take effect.', 'type' => 'string', 'required' => false, 'example' => 'appId', 'title' => ''],
],
[
'name' => 'ChannelID',
'in' => 'query',
'schema' => ['description' => 'The channel ID.'."\n"
.'> This parameter is required when Mode is set to rtc. Otherwise, this parameter does not take effect.', 'type' => 'string', 'required' => false, 'example' => 'channelId', 'title' => ''],
],
[
'name' => 'RtcUserId',
'in' => 'query',
'schema' => ['description' => 'The stream ingest user ID.'."\n"
.'> This parameter is required when Mode is set to rtc. Only one value can be specified. Otherwise, this parameter does not take effect.', 'type' => 'string', 'required' => false, 'example' => 'user1', 'title' => ''],
],
[
'name' => 'StreamURL',
'in' => 'query',
'schema' => ['description' => 'The streaming URL.'."\n"
.'> This parameter is required when Mode is set to live. Otherwise, this parameter does not take effect.', 'type' => 'string', 'required' => false, 'example' => 'rtmp://xxx', 'title' => ''],
],
[
'name' => 'Language',
'in' => 'query',
'schema' => ['description' => 'The language of the source audio. Valid values:'."\n"
.'- ja: Japanese.'."\n"
.'- yue: Cantonese.'."\n"
.'- fspk: Chinese-English free speech.'."\n"
.'- en: English.'."\n"
.'- cn: Chinese.', 'type' => 'string', 'required' => true, 'example' => 'cn', 'title' => ''],
],
[
'name' => 'CallbackURL',
'in' => 'query',
'schema' => ['description' => 'The callback URL.', 'type' => 'string', 'required' => true, 'example' => 'http://xxx.com', 'title' => ''],
],
[
'name' => 'AuthKey',
'in' => 'query',
'schema' => ['description' => 'The authentication key used to generate the MD5 signature for callback information.'."\n"
.'> Two authentication fields are added to the request header during callback: "SIG-TIME" indicates the current timestamp, and "ASR-SIG" indicates the MD5 authentication field. The "ASR-SIG" field is generated by the rule md5(`${SIG-TIME}/${callbackurl}/${authKey}`).', 'type' => 'string', 'required' => false, 'example' => 'abcd', 'title' => ''],
],
[
'name' => 'TranslateEnabled',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to enable translation.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''],
],
[
'name' => 'TargetLanguages',
'in' => 'query',
'schema' => ['description' => 'The target translation language. Valid values:'."\n"
.'- cn: Chinese.'."\n"
.'- en: English.'."\n"
.'- ja: Japanese.', 'type' => 'string', 'required' => false, 'example' => 'en', 'title' => ''],
],
[
'name' => 'AutoTerminateEnabled',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to automatically close the task when the stream disconnection exceeds the maximum delay. Default value: false.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''],
],
[
'name' => 'AutoTerminateDelay',
'in' => 'query',
'schema' => ['description' => 'The automatic stream disconnection delay, in seconds. Valid values: 1 to 10.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '5', 'title' => ''],
],
[
'name' => 'ReportInterval',
'in' => 'query',
'schema' => ['description' => 'The callback reporting interval, in milliseconds. Valid values: -1 to 500.'."\n"
.'- -1: Does not accept intermediate results. Only full-sentence callbacks are accepted.'."\n"
.'- 0 or not set: Reports callback results in real time.'."\n"
.'- <=500 milliseconds: Reports callback results at periodic intervals.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '5', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'Description' => ['description' => 'The result description. The value success indicates a successful operation. An error message is returned if a fault occurs.', 'type' => 'string', 'example' => 'success', 'title' => ''],
'RequestId' => ['description' => 'The gateway request ID.', 'type' => 'string', 'example' => '7FF5417D-06E9-5A2C-9A70-581F6149E6C1', 'title' => ''],
'RetCode' => ['description' => 'The status code. A value of 2000 indicates success. Other values indicate exceptions.', 'type' => 'integer', 'format' => 'int64', 'example' => '2000', 'title' => ''],
'TaskId' => ['description' => 'The generated task ID.', 'type' => 'string', 'example' => 'asr-a6ac15e0-9118-4b4c-9e64-306163a0****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Description\\": \\"success\\",\\n \\"RequestId\\": \\"7FF5417D-06E9-5A2C-9A70-581F6149E6C1\\",\\n \\"RetCode\\": 2000,\\n \\"TaskId\\": \\"asr-a6ac15e0-9118-4b4c-9e64-306163a0****\\"\\n}","type":"json"}]',
'title' => 'Create real-time speech-to-text or translation',
'description' => 'This operation is currently in maintenance mode. Use intelligent workflows to implement this capability. For more information, see [Intelligent workflow configuration](~~2985843~~).'."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this operation is 20 calls per second. If this limit is exceeded, API calls are throttled, which may affect your business. Call this operation appropriately.',
'requestParamsDescription' => '## Callback example'."\n"
.'The JSON-formatted data is placed in the request body and sent as an HTTP POST request to the specified CallbackUrl. For more information about the callback parameter Content and the callback process, see [Interaction process and implementation](~~2609586~~). Example:'."\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' => 'Request parameters changed'],
],
'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}'],
],
],
],
],
],
'CreateRtcMPUEventSub' => [
'summary' => 'Creates an event subscription for stream mixing and relaying.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '219222',
'abilityTreeNodes' => ['FEATUREliveK6LRQR'],
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the application to subscribe to.'."\n"
.'> The application ID can contain uppercase and lowercase letters, digits, underscores, and hyphens (-), with a maximum of 64 characters.', 'type' => 'string', 'required' => true, 'example' => 'yourAppId', 'title' => ''],
],
[
'name' => 'ChannelIds',
'in' => 'query',
'schema' => ['description' => 'The channel IDs of the stream mixing tasks for which you want to receive callbacks. You can specify multiple channel IDs separated by commas (,).'."\n"
.'>- If you leave this parameter empty, callbacks for all stream mixing and relaying tasks under the specified AppId are received by default.'."\n"
.'- When you specify multiple channel IDs, duplicate channel IDs are not allowed. You can specify up to 20 channel IDs at a time.'."\n"
.'- Each channel ID can contain uppercase and lowercase letters, digits, underscores, and hyphens (-), with a maximum of 64 characters.', 'type' => 'string', 'required' => false, 'example' => 'yourChannelIds', 'title' => ''],
],
[
'name' => 'CallbackUrl',
'in' => 'query',
'schema' => ['description' => 'The callback URL. For the URL format, refer to the callback content specifications below.'."\n"
.'> The callback URL protocol must be HTTP or HTTPS. The URL can contain only the following characters: a-z, A-Z, 0-9, -, _, ?, %, =, #, ., /, and +. The URL cannot exceed 2,083 characters.', 'type' => 'string', 'required' => true, 'example' => 'http://****.com/callback', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******', 'title' => ''],
'SubId' => ['description' => 'The subscription ID.', 'type' => 'string', 'example' => 'Sub-******9799B2C4500******', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => '%s.', 'description' => 'Parameter verification failed'],
['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is missing, please check and try again.'],
['errorCode' => 'InvalidAppId', 'errorMessage' => '%s, please check and try again later.', 'description' => 'AppId is invalid, please check and try again.'],
],
403 => [
['errorCode' => 'OperationDenied', 'errorMessage' => 'Your account has not enabled the Live service', 'description' => ''],
['errorCode' => 'Forbidden', 'errorMessage' => '%s, please check and try again later.', 'description' => 'No permission, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'InternalError', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\",\\n \\"SubId\\": \\"Sub-******9799B2C4500******\\"\\n}","type":"json"}]',
'title' => 'Create a stream mixing and relaying event subscription',
'description' => 'Creates an event subscription for stream mixing and relaying. When you create a subscription, you can configure parameters such as the callback URL, the application to subscribe to, and channel information.'."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this operation is 50 calls per second. If this limit is exceeded, the API call is throttled, which may affect your business. Call this operation appropriately.',
'requestParamsDescription' => '## Callback content example'."\n"
.'The callback content is sent to your business server as an **HTTP/HTTPS POST** request. The character encoding is **UTF-8**, and the request body is a **JSON** structure. The callback is considered successful when your business server responds with an **HTTP status code of 200**. The following is an example of the callback content:'."\n"
."\n"
.'> To determine whether stream mixing and relaying is working properly, use both the callback notifications and the online stream status provided by the corresponding CDN provider.'."\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"
.'### Callback information'."\n"
.'The callback header contains the following fields:'."\n"
."\n"
.'| Field | Description |'."\n"
.'| ------ | ----- |'."\n"
.'| Content-Type | The data type. Fixed value: application/json. |'."\n"
.'| Ali-Rtc-Timestamp | The timestamp. |'."\n"
.'| Ali-Rtc-Signature | The signature value. |'."\n"
."\n"
.'The callback body contains the following fields:'."\n"
.'| Field | Type | Description | Example |'."\n"
.'| ------ | ----- | ----- | -----|'."\n"
.'| EventType | Integer | The callback event type. For stream mixing and relaying callbacks, this is a fixed value: 1. | 1 |'."\n"
.'| MsgId | String | The callback ID that uniquely identifies this callback. | \\*\\*\\*\\*\\*973C-4529-A334\\*\\*\\*\\*\\* |'."\n"
.'| AppId | String | The ID of the subscribed application. | yourAppId |'."\n"
.'| SubId | String | The subscription ID. | Sub-\\*\\*\\*\\*\\*\\*9799B2C4500\\*\\*\\*\\*\\*\\* |'."\n"
.'| TaskId | String | The relay task ID. | yourTaskId |'."\n"
.'| CallbackTs | Integer | The timestamp in milliseconds when the callback request is initiated. | 1712656430476 |'."\n"
.'| Payload | JSON Object | The callback event information. | - |'."\n"
."\n"
.'* Callback event information (Payload)'."\n"
."\n"
.'| Field | Type | Description | Example |'."\n"
.'| ------ | ----- | ----- | -----|'."\n"
.'| DstUrl | String | The destination URL for relaying. | rtmp://domain/app/stream?auth |'."\n"
.'| EventTs | Integer | The timestamp in milliseconds when the callback event occurs. | 1712656430384 |'."\n"
.'| EventCode | Integer | The callback event code. | 1 |'."\n"
.'| ErrorCode | Integer | The error code of the callback event. | 10001 |'."\n"
.' | ErrorMessage | String | The error reason of the callback event. | rtmp server init failed |'."\n"
."\n"
.'## Callback event codes'."\n"
.'| Field | Value | Description | Callback frequency |'."\n"
.'| ------ | ----- | ----- | -----|'."\n"
.'| MPU_STATE_PREPARING | 0 | The relay task is created and triggered. | Called back only once. |'."\n"
.'| MPU_STATE_ESTABLISHING | 1 | The relay task is establishing a connection. | Called back every 5 seconds. |'."\n"
.'| MPU_STATE_RUNNING | 2 | The relay task is running. | Called back only once. |'."\n"
.'| MPU_STATE_RECOVERING | 3 | The relay task is interrupted and recovering. | Called back every 5 seconds. |'."\n"
.'| MPU_STATE_TERMINATED | 4 | The relay task has ended, including normal stop, startup failure, or abnormal exit. The specific reason is indicated by ErrorCode and ErrorMessage. | Called back only once. |'."\n"
."\n"
.'The following figure shows an example of the state transition for callback events:'."\n"
.''."\n"
.'**Note:** '."\n"
.'1. Callback messages may arrive at your business server out of order. You can sort events by EventTs in the Payload. If you only care about the latest state of a callback event, you can ignore subsequently arriving expired events.'."\n"
.'2. For stream mixing and relaying tasks created by calling [CreateMixStreamRelayTask (new)](~~2848199~~), the task automatically stops after all users leave the room for a period of time. An MPU_STATE_TERMINATED callback is sent when the task stops.'."\n"
.'3. Callback configurations affect only incremental tasks, not existing tasks. Specifically:'."\n"
."\n"
.' a. Tasks that are already started before the callback configuration is enabled do not send callbacks.'."\n"
."\n"
.' b. Tasks that are started after the callback configuration is enabled send callbacks.'."\n"
."\n"
.' c. Tasks that are already started before the callback configuration is deleted continue to send callbacks until the tasks end.'."\n"
."\n"
.' d. Tasks that are started after the callback configuration is deleted do not send callbacks.'."\n"
."\n"
.'### Callback error codes'."\n"
.'When a relay task ends, the ErrorCode and ErrorMessage indicate the reason for the termination.'."\n"
."\n"
.'| Error code | Error message | Description |'."\n"
.'| ------ | ----- | ----- |'."\n"
.'| 0 | | The task stopped normally. |'."\n"
.'| 10001 | rtmp server init failed | Connection establishment failed. The task ended abnormally. |'."\n"
.'| 10002 | rtmp server internal error | An internal server error occurred. The task ended abnormally. |'."\n"
.'| 10003 | task idle timeout | The task ended because it was idle for too long. |'."\n"
."\n"
.'## Callback authentication'."\n"
.'Callback event authentication is enabled by default. The authentication logic is as follows:'."\n"
.'- When Alibaba Cloud ApsaraVideo Live initiates a callback request, the HTTP(S) request header contains the Ali-Rtc-Timestamp and Ali-Rtc-Signature fields for the callback message receiving server to perform signature authentication. The Ali-Rtc-Signature value is calculated as follows: Ali-Rtc-Signature=MD5SUM(MD5CONTENT), where MD5CONTENT=Callback URL|Ali-Rtc-Timestamp value|Authentication Key. The callback URL is the complete callback URL that you configured. The authentication key is the AppKey generated when you created the AppId.'."\n"
.'- When the callback message receiving server receives a callback message, it concatenates the callback URL, the Ali-Rtc-Timestamp value, and the authentication key, calculates the MD5 value to obtain an encrypted string, and then compares the encrypted string with the Ali-Rtc-Signature field value in the HTTP(S) request header sent by the Real-Time Communication service. If the values do not match, the request is invalid.'."\n"
.'## Callback exception retry'."\n"
.'When Alibaba Cloud initiates a callback request, the callback is considered successful only when your business server responds with an HTTP status code of 200. If the callback fails, Alibaba Cloud retries 7 times at intervals of 1 second, 2 seconds, 5 seconds, 10 seconds, 1 minute, 2 minutes, and 5 minutes. Each retry generates a corresponding callback record.',
'changeSet' => [
['createdAt' => '2024-07-04T06:14:37.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateRtcMPUEventSub'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:CreateRtcMPUEventSub',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DeleteCaster' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'paid',
'abilityTreeCode' => '106904',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio. Make sure that you specify the correct CasterId.'."\n"
."\n"
.'- If you created a production studio by calling the [CreateCaster](~~2848009~~) operation, obtain the CasterId from the response.'."\n"
."\n"
.'- If you created a production studio in the ApsaraVideo Live console, go to the **ApsaraVideo Live console** > **Production Studio** > **Cloud Production Studio** page to view the ID.'."\n"
."\n"
.'> On the Cloud Production Studio page, the name of a production studio in the list is its ID.', 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'CasterId' => ['description' => 'The ID of the production studio. This ID is used as a request parameter to add video resources, layouts, components, and program lists, or to query the layout list.', 'type' => 'string', 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'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' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'IncorrectCasterStatus.Inuse', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Caster status is inuse, please check and try again later.'],
],
403 => [
['errorCode' => 'PermissionDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Access denied, please check and try again.'],
],
[
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
],
],
'title' => 'DeleteCaster',
'summary' => 'Deletes a production studio.',
'description' => '- A production studio must be shut down before you can delete it. Otherwise, the operation fails.'."\n"
."\n"
.'- When you delete a production studio, its associated scenes, components, and layouts are also deleted.'."\n"
."\n"
.'- You cannot recover a deleted production studio.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 10 for each user. Calls that exceed this limit are throttled, which can affect your business. Plan your calls accordingly.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2024-08-21T03:33:21.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteCaster'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteCaster',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]',
],
'DeleteCasterComponent' => [
'summary' => 'Deletes a component from a production studio.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you create a production studio by calling the [CreateCaster](~~2848009~~) operation, use the CasterId value that is returned in the response.'."\n"
."\n"
.'- If you create a production studio in the ApsaraVideo Live console, find the ID on the **Cloud Production Studio** page. In the ApsaraVideo Live console, choose **Production Studio** > **Cloud Production Studio**.'."\n"
."\n"
.'> The name of the production studio in the list on the Cloud Production Studio page is the production studio ID.', 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
],
[
'name' => 'ComponentId',
'in' => 'query',
'schema' => ['description' => 'The component ID. If you add a component to the production studio by calling the [AddCasterComponent](~~2848030~~) operation, use the ComponentId value that is returned in the response.', 'type' => 'string', 'required' => true, 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'CasterId' => ['description' => 'The ID of the production studio. This ID can be used in subsequent API calls to query the component list, add a program, or modify a component of the production studio.', 'type' => 'string', 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880****', 'title' => ''],
'ComponentId' => ['description' => 'The component ID. This ID can be used in subsequent API calls to query or modify the component.', 'type' => 'string', 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidComponent.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The component to be operated does not exist. Please check and try again.'],
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'DeleteCasterComponent',
'description' => 'Call the [CreateCaster](~~2848009~~) operation to create a production studio. You can then call this operation to delete a component from the production studio.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'This operation is limited to 10 queries per second (QPS) per user. Calls that exceed this limit are throttled, which may affect your business. We recommend that you plan your calls accordingly.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteCasterComponent'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteCasterComponent',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880****\\",\\n \\"ComponentId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]',
],
'DeleteCasterEpisode' => [
'summary' => 'Deletes an episode from a production studio.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The production studio ID.'."\n"
."\n"
.'- If you created the production studio by calling the [CreateCaster](~~2848009~~) operation, use the CasterId value from the response.'."\n"
."\n"
.'- If you created the production studio in the ApsaraVideo Live console, go to the **Production Studio** > **Cloud Production Studio** page to view the ID.'."\n"
."\n"
.'> The production studio name on the Cloud Production Studio page is the production studio ID.', 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
],
[
'name' => 'EpisodeId',
'in' => 'query',
'schema' => ['description' => 'The episode ID. If you added the episode by calling the [AddCasterEpisode](~~2848068~~) operation, use the EpisodeId value from the response.', 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf932738****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'CasterId' => ['description' => 'The production studio ID. You can use this ID as a request parameter to modify the episode.', 'type' => 'string', 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
'EpisodeId' => ['description' => 'The episode ID. You can use this ID as a request parameter to modify the episode.', 'type' => 'string', 'example' => 'a2b8e671-2fe5-4642-a2ec-bf932738****', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'IncorrectStartTime', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter StartTime is invalid, please check and try again.'],
['errorCode' => 'IncorrectEpisodeStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The current status of the program is not operational, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidEpisode.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Episode does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'DeleteCasterEpisode',
'description' => 'Before you call this operation, you must obtain the production studio ID and the episode ID.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 4. API calls that exceed this limit are throttled, which may impact your business. We recommend that you call this operation at a reasonable rate.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteCasterEpisode',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"EpisodeId\\": \\"a2b8e671-2fe5-4642-a2ec-bf932738****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]',
],
'DeleteCasterEpisodeGroup' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'ProgramId',
'in' => 'query',
'schema' => ['description' => 'The ID of the episode list. To obtain the ID, call the [AddCasterEpisodeGroup](~~2848071~~) operation and find the value of the ProgramId parameter in the response.', 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf932738****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'DeleteCasterEpisodeGroup',
'summary' => 'Deletes an episode list in a production studio.',
'description' => 'First, call the [AddCasterEpisodeGroup](~~2848071~~) operation to add an episode list to a production studio. You can then call this operation to delete the episode list.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 4 per user. API calls that exceed this limit are throttled, which may affect your business. Call this operation within the specified limit.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '4', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteCasterEpisodeGroup'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteCasterEpisodeGroup',
'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}","type":"json"}]',
],
'DeleteCasterLayout' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you call the [CreateCaster](~~2848009~~) operation to create a production studio, obtain the CasterId from the response.'."\n"
."\n"
.'- If you create a production studio in the ApsaraVideo Live console, go to the **Production Studio** > **Cloud Production Studio** page to view the ID.'."\n"
."\n"
.'> The ID of the production studio is its name in the list on the Cloud Production Studio page.', 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
],
[
'name' => 'LayoutId',
'in' => 'query',
'schema' => ['description' => 'The layout ID. If you call the [AddCasterLayout](~~2848025~~) operation to add a layout to the production studio, obtain the LayoutId from the response.', 'type' => 'string', 'required' => true, 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'CasterId' => ['description' => 'The ID of the production studio. Use this ID to modify a layout, query layouts, add a component, or query components.', 'type' => 'string', 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
'LayoutId' => ['description' => 'The layout ID. Use this ID to query the list of layouts for the production studio.', 'type' => 'string', 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidLayoutId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The LayoutId is invalid, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidLayout.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'LayoutId does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'DeleteCasterLayout',
'summary' => 'Deletes a layout in a production studio.',
'description' => 'Call the [CreateCaster](~~2848009~~) operation to create a production studio. You can then call this operation to delete a layout in the production studio.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'This operation is limited to 10 queries per second (QPS) for each user. API calls that exceed this limit are throttled, which may affect your business. Call this operation at a reasonable rate.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteCasterLayout',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"LayoutId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","type":"json"}]',
],
'DeleteCasterProgram' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The ID of the region.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you create a production studio by calling the [CreateCaster](~~2848009~~) operation, use the CasterId value returned in the response.'."\n"
."\n"
.'- If you create a production studio in the ApsaraVideo Live console, go to the **Production Studio** > **Cloud Production Studio** page to view the ID.'."\n"
."\n"
.'> The name of a production studio in the list on the Cloud Production Studio page is its ID.', 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'CasterId' => ['description' => 'The ID of the production studio. You can use this ID as a request parameter when you add, delete, or modify episodes for the production studio.', 'type' => 'string', 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'DeleteCasterProgram',
'summary' => 'Deletes the episode list for carousel playback in a production studio.',
'description' => 'First, call the [CreateCaster](~~2848009~~) operation to create a production studio. Then, call this operation to delete the program of the production studio.'."\n"
."\n"
.'## Usage limits'."\n"
."\n"
.'You can call this operation up to 4 queries per second (QPS) per account. If you exceed this limit, API calls are throttled. This can affect your business. Plan your calls accordingly.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '4', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteCasterProgram'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteCasterProgram',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","type":"json"}]',
],
'DeleteCasterSceneConfig' => [
'summary' => 'Deletes the scene configuration of a production studio.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The production studio ID.'."\n"
."\n"
.'- If you created the production studio by calling the [CreateCaster](~~2848009~~) operation, use the CasterId value from the response.'."\n"
."\n"
.'- If you created the production studio in the ApsaraVideo Live console, go to the **ApsaraVideo Live console** > **Production Studio** > **Cloud Production Studios** page to view the ID.'."\n"
."\n"
.'> On the Cloud Production Studios page, the name of the production studio is its ID.', 'type' => 'string', 'required' => true, 'example' => 'b4810848-bcf9-4aef-bd4a-e6bba2d9****', 'title' => ''],
],
[
'name' => 'SceneId',
'in' => 'query',
'schema' => ['description' => 'The scene ID.', 'type' => 'string', 'required' => true, 'example' => 'b5f8c837-ceeb-424f-b30b-68e94e86****', 'title' => ''],
],
[
'name' => 'Type',
'in' => 'query',
'schema' => ['description' => 'The type of scene configuration to delete. Valid values:'."\n"
."\n"
.'- **Component**: The component configuration.'."\n"
."\n"
.'- **Layout**: The layout configuration.'."\n"
."\n"
.'- **All**: Both the component and layout configurations.', 'type' => 'string', 'required' => true, 'example' => 'Component', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB9*********', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'IncorrectSceneStatus.Inuse', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene is on, please check and try again.'],
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'InvalidSceneId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter SceneId is invalid, please check and try again.'],
['errorCode' => 'IncorrectSceneStatus.ConfigError', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene configuration error, please check and try again.'],
['errorCode' => 'IncorrectSceneStatus.Idle', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene status is idle, please check and try again.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidScene.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene does not exist, please check and try again.'],
['errorCode' => 'InvalidResource.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The resource does not exist. Please check and try again.'],
['errorCode' => 'InvalidVideo.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The video resource does not exist. Please check and try again.'],
['errorCode' => 'InvalidLayout.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'LayoutId does not exist, please check and try again.'],
['errorCode' => 'InvalidComponent.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The component to be operated does not exist. Please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'DeleteCasterSceneConfig',
'description' => 'This operation deletes the scene configuration of a production studio. You can delete the component configuration, the layout configuration, or both.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 10 calls per second per user. If you exceed this limit, your calls are throttled, which may affect your business. Plan your calls accordingly.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteCasterSceneConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB9*********\\"\\n}","type":"json"}]',
],
'DeleteCasterVideoResource' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you created the production studio by calling the [CreateCaster](~~2848009~~) operation, use the CasterId value from the response.'."\n"
."\n"
.'- If you created the production studio in the ApsaraVideo Live console, find the ID on the Cloud Production Studio page. The navigation path is **ApsaraVideo Live console** > **Production Studio** > **Cloud Production Studio**.'."\n"
."\n"
.'> You can find the ID of the production studio in the Instance ID/Name column.', 'type' => 'string', 'required' => true, 'example' => '80787064-1c94-4dc1-85ce-9409960a****', 'title' => ''],
],
[
'name' => 'ResourceId',
'in' => 'query',
'schema' => ['description' => 'The resource ID. If you added the video resource by calling the [AddCasterVideoResource](~~2848020~~) operation, use the ResourceId value from the response.', 'type' => 'string', 'required' => true, 'example' => '05ab713c-676e-49c0-96ce-cc408da1****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'CF60DB6A-7FD6-426E-9288-122C*******', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidResource.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The resource does not exist. Please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'DeleteCasterVideoResource',
'summary' => 'Removes an input source from a production studio.',
'description' => 'You must first call the [CreateCaster](~~2848009~~) operation to create a production studio. You can then call this operation to remove a video resource from the production studio.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The limit for this operation is 10 queries per second (QPS) per user. Calls that exceed this limit are throttled, which may impact your business. We recommend that you call this operation at a reasonable rate.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteCasterVideoResource'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteCasterVideoResource',
'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-122C*******\\"\\n}","type":"json"}]',
],
'DeleteChannel' => [
'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' => 'The ID of the application. Only one ID is supported.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'eo85****'],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'The ID of the channel. Only one ID is supported.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'testid'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['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' => ''],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DeleteChannel',
'summary' => 'This operation closes a channel and removes all current members. The channel can be reused later.',
'description' => 'This API is limited to 100 queries per second (QPS) for each user. If you exceed the limit, API calls are throttled. This may impact your business. We recommend that you call this API at a reasonable rate.',
'changeSet' => [
['createdAt' => '2023-08-31T01:48:03.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteChannel'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'live:DeleteChannel',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live:*:{#accountId}:rtc/{#AppId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\"\\n}","type":"json"}]',
],
'DeleteCustomTemplate' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '106913',
'abilityTreeNodes' => ['FEATUREliveI16NIW'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'description' => 'The region ID.', 'title' => '', 'example' => 'cn-shanghai'],
],
[
'name' => 'Template',
'in' => 'query',
'schema' => ['description' => 'The name of the template to delete.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'TestTemplate'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'BC1E78D3-FA8B-4457-DEE2-6093E1232254'],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'CustomTemplateInvalid', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The custom template is invalid, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidDomainName.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Domain name does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'DeleteCustomTemplate',
'summary' => 'Deletes a custom stream mixing template.',
'description' => 'Obtain the name of the custom stream mixing template to delete, and then call this operation.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 10 times per second per user. If you exceed this limit, your API calls are throttled. This may affect your business. Plan your calls accordingly.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteCustomTemplate',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"BC1E78D3-FA8B-4457-DEE2-6093E1232254\\"\\n}","type":"json"}]',
],
'DeleteEdgeTranscodeJob' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveHVN9B2'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'ClusterId',
'in' => 'query',
'schema' => ['description' => 'The data center ID.', 'type' => 'string', 'required' => true, 'example' => '******3b-4d18-395c-8106-ff21a6******', 'title' => ''],
],
[
'name' => 'JobId',
'in' => 'query',
'schema' => ['description' => 'The ID of the edge transcoding job.', 'type' => 'string', 'required' => true, 'example' => '****20b48fb04483915d4f2cd8ac****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
],
403 => [
['errorCode' => 'OperationDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation rejected, please check and try again.'],
['errorCode' => 'Forbidden', 'errorMessage' => '%s, please check and try again later.', 'description' => 'No permission, please check and try again.'],
],
[
['errorCode' => 'JobNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Task does not exist, please check and try again.'],
],
],
'title' => 'DeleteEdgeTranscodeJob',
'summary' => 'Deletes an edge transcoding job.',
'description' => '- This operation deletes an edge transcoding job.'."\n"
."\n"
.'- You must have permission to access the edge transcoding service to call this operation.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 6,000 calls per minute. If you exceed this limit, your API calls are throttled, which may affect your business. Call this operation at a reasonable rate.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteEdgeTranscodeJob'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteEdgeTranscodeJob',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","type":"json"}]',
],
'DeleteEventSub' => [
'summary' => 'Deletes a callback that is used to subscribe to channel or user events.'."\n",
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the application.'."\n", 'type' => 'string', 'required' => true, 'example' => '9qb1****', 'title' => ''],
],
[
'name' => 'SubscribeId',
'in' => 'query',
'schema' => ['description' => 'The subscription ID. You can obtain the ID from the response to the [CreateEventSub](~~2848209~~) operation.'."\n", 'type' => 'string', 'required' => true, 'example' => 'ad53276431c****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '760bad53276431c499e30dc36f6b26be'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"760bad53276431c499e30dc36f6b26be\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 760bad53276431c499e30dc36f6b26be\\n","errorExample":""}]',
'title' => 'DeleteEventSub',
'description' => 'Before you call this operation, make sure that you have called the [CreateEventSubscribe](~~2848209~~) operation to create a callback that is used to subscribe to channel or user events.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 100 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n",
'changeSet' => [
['createdAt' => '2023-11-21T05:55:02.000Z', 'description' => 'Error codes changed, Request parameters changed, Response parameters changed'],
],
'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}'],
],
],
],
],
],
'DeleteLiveAIProduceRules' => [
'summary' => 'Deletes caption rules.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '219079',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'RulesId',
'in' => 'query',
'allowEmptyValue' => false,
'schema' => ['description' => 'The ID of the caption rule.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '445409ec-7eaa-461d -8f29-4bec2eb9****', 'title' => ''],
],
[
'name' => 'SuffixName',
'in' => 'query',
'schema' => ['description' => 'The caption suffix.'."\n"
."\n"
.'> Set this parameter to the value of SubtitleName that you specified for the caption template.', 'type' => 'string', 'required' => false, 'example' => 'et', 'title' => ''],
],
[
'name' => 'Domain',
'in' => 'query',
'schema' => ['description' => 'The primary playback domain name.', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com', 'title' => ''],
],
[
'name' => 'App',
'in' => 'query',
'schema' => ['description' => 'The name of the live streaming application.', 'type' => 'string', 'required' => true, 'example' => 'AppName', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5c6a2a0df228-4a64- af62-20e91b96****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => 'Parameter error'],
['errorCode' => 'IncorrectSubtitleStatus.%s', 'errorMessage' => '%s.', 'description' => 'Abnormal subtitle template status'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'eventInfo' => [
'enable' => false,
'eventNames' => [],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64- af62-20e91b96****\\"\\n}","type":"json"}]',
'title' => 'DeleteLiveAIProduceRules',
'description' => 'This operation deletes the specified caption rules.'."\n"
."\n"
.'>'."\n"
."\n"
.'The real-time caption feature is in invitational preview. Each user can add a maximum of 300 caption templates.'."\n"
."\n"
.'>'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries-per-second (QPS) limit for this operation is 60 calls per second for each user. If you exceed the limit, API calls are throttled. This may affect your business. Call this operation at a reasonable rate.',
'changeSet' => [
['createdAt' => '2024-10-14T03:46:55.000Z', 'description' => 'Request parameters changed'],
],
'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}'],
],
],
],
],
],
'DeleteLiveAIStudio' => [
'methods' => ['post', 'get'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '239775',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'StudioId',
'in' => 'query',
'schema' => ['description' => 'The ID of the template. The ID is returned by the CreateLiveAIStudio operation.', 'type' => 'string', 'required' => true, 'example' => '369ced1f-c33a-49e5-91da-bdaae3d6c1c2', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The ID of the request.', 'type' => 'string', 'example' => '40A4F36D-A7CC-473A-88E7-154F92242566'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'LiveServiceNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The live service is not enabled. Please check and try again.'],
['errorCode' => 'InvalidParameter.PurchaseTime', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter PurchaseTime is invalid, please check and try again.'],
['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => 'Parameter error'],
['errorCode' => 'InvalidParameter.ExpireTime', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ExpireTime is invalid, please check and try again.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'InvalidChargeType.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ChargeType is invalid, please check and try again.'],
['errorCode' => 'InvalidChargeType.PostSupport', 'errorMessage' => '%s, please check and try again later.', 'description' => 'ChargeType only supports post-paid, please check and try again.'],
['errorCode' => 'InvalidCasterTemplate.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterTemplate is invalid, please check and try again.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'InvalidParameter.ChargeType', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ChargeType is invalid, please check and try again.'],
['errorCode' => 'InvalidPeriod.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Invalid time interval, please check and try again.'],
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidClientToken.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ClientToken is invalid, please check and try again.'],
['errorCode' => 'IncorrectStudioStatus.Inuse', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Studio is in use, please check and try again.'],
],
[
['errorCode' => 'CasterNumberExceed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The number of casters exceeds the limit. Please check and try again.'],
],
403 => [
['errorCode' => 'PermissionDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Access denied, please check and try again.'],
],
[
['errorCode' => 'InvalidParameter.NormType', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter NormType is invalid, please check and try again.'],
['errorCode' => 'InvalidConfiguration.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Configuration does not exist, please check and try again.'],
],
408 => [
['errorCode' => 'DeleteLiveAIStudio.Timeout', 'errorMessage' => '%s, please try again later.', 'description' => 'Call DeleteLiveAIStudio timed out, please try again later.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DeleteLiveAIStudio',
'summary' => 'Deletes a virtual studio template.',
'description' => 'Before you delete a virtual studio template, you must detach all associated rules. Otherwise, an error is reported.'."\n"
."\n"
.'>'."\n"
."\n"
.'The lightweight virtual studio feature is in invitational preview. Each user can add a maximum of 300 templates.'."\n"
."\n"
.'>',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:DeleteLiveAIStudio',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"40A4F36D-A7CC-473A-88E7-154F92242566\\"\\n}","type":"json"}]',
],
'DeleteLiveAISubtitle' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '218856',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'SubtitleId',
'in' => 'query',
'allowEmptyValue' => false,
'schema' => ['description' => 'The ID of the caption template.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
],
[
'name' => 'SubtitleName',
'in' => 'query',
'allowEmptyValue' => true,
'schema' => ['description' => 'The name of the caption template. The name can contain only digits, letters, and hyphens (-). A hyphen cannot be the first character.', 'type' => 'string', 'required' => false, 'example' => 'sub01', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5c6a2a0df228-4a64-af62-20e91b96****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => 'Parameter error'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DeleteLiveAISubtitle',
'summary' => 'Deletes a specified subtitle template.',
'description' => 'You can call this operation to delete a specified caption template for a live stream.'."\n"
."\n"
.'>'."\n"
."\n"
.'The real-time caption feature is in invitational preview. Each user can add up to 300 caption templates.'."\n"
."\n"
.'>'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 60 calls per second for each user. API calls that exceed this limit are throttled, which may affect your business. For more information, see [QPS limits](~~343507~~).',
'changeSet' => [
['createdAt' => '2024-12-04T05:54:29.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveAISubtitle'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveAISubtitle',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b96****\\"\\n}","type":"json"}]',
],
'DeleteLiveAppRecordConfig' => [
'summary' => 'Deletes a recording configuration at the AppName level.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveL04ZVK'],
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The AppName of the live stream.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The name of the live stream.', 'type' => 'string', 'required' => false, 'example' => 'liveStream****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '6EBD1AC4-C34D-4AE1-963E-B688A228BE31', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidRegion', 'errorMessage' => 'The current region does not support this operation.', 'description' => 'The current region does not support this operation.'],
['errorCode' => 'Forbidden', 'errorMessage' => 'Ram Permission is forbidden.', 'description' => ''],
],
],
'title' => 'DeleteLiveAppRecordConfig',
'description' => 'Obtain the main streaming domain, then call this operation to delete a recording configuration at the AppName level.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveAppRecordConfig'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveAppRecordConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}","type":"json"}]',
],
'DeleteLiveAppSnapshotConfig' => [
'summary' => 'Deletes the snapshot configuration for live streams in an application. The deletion takes effect after you restart stream ingest.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveMH1XD3'],
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the application to which the live stream belongs. The value of this parameter must be the same as the application name in the ingest URL. Otherwise, the configuration does not take effect. You can view the application name on the [Stream Management](~~197397~~) page of the ApsaraVideo Live console.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [],
'title' => 'DeleteLiveAppSnapshotConfig',
'description' => 'You can call this operation to delete the snapshot configuration for live streams in an application. The deletion takes effect after you restart stream ingest.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 30 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveAppSnapshotConfig'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveAppSnapshotConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]',
],
'DeleteLiveAudioAuditConfig' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveUTGSNT'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The AppName of the live stream.'."\n"
."\n"
.'> Set AppName to an asterisk (\\*) to match all AppNames under the domain.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The stream name.'."\n"
."\n"
.'> Set StreamName to an asterisk (\\*) to match all streams in the AppName.', 'type' => 'string', 'required' => true, 'example' => 'liveStream****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E******', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MalformedParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Invalid parameter, please check and try again.'],
['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is missing, please check and try again.'],
['errorCode' => 'ConfigExisted', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Configuration already exists, please check and try again.'],
['errorCode' => 'ConfigNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Configuration does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'DeleteLiveAudioAuditConfig',
'summary' => 'Deletes an audio moderation configuration.',
'description' => '- You can call this operation to delete the automated audio review configuration for a specified streaming domain.'."\n"
."\n"
.'- The automated review feature is available only in specific regions. For supported regions, see [Service regions](~~193730~~).'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'You can call this operation up to 10 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveAudioAuditConfig'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveAudioAuditConfig',
'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-CB92E******\\"\\n}","type":"json"}]',
],
'DeleteLiveAudioAuditNotifyConfig' => [
'summary' => 'Deletes the callback configuration for automated audio review from a streaming domain.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '106923',
'abilityTreeNodes' => ['FEATUREliveG4SX14', 'FEATUREliveUTGSNT'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '7BF95F2A-3B24-4CDE-9346-7F6FA86697A1', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MalformedParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Invalid parameter, please check and try again.'],
['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is missing, please check and try again.'],
['errorCode' => 'ConfigExisted', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Configuration already exists, please check and try again.'],
['errorCode' => 'ConfigNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Configuration does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'DeleteLiveAudioAuditNotifyConfig',
'description' => 'Only some live centers support automated review. For supported regions, see [Service regions](~~193730~~).'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'You can call this operation up to 10 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveAudioAuditNotifyConfig'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveAudioAuditNotifyConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\"\\n}","type":"json"}]',
],
'DeleteLiveCenterTransfer' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'description' => 'The region ID.', 'title' => '', 'example' => 'cn-shanghai'],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'example.com'],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the application. The value must be the same as that of the live stream that you want to relay. View AppName on the [Stream Management](t2019924.xdita#).', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'testapp'],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The name of the live stream. View StreamName on the [Stream Management](t2019924.xdita#) page.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'teststream'],
],
[
'name' => 'DstUrl',
'in' => 'query',
'schema' => ['description' => 'The third-party URL to which the live stream is relayed.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'rtmp://push.example2.aliyundoc.com/testapp1/teststream2'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '7908F2FF-44F8-120F-9FD6-85A******'],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => 'Illegal input parameters'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''],
],
],
'title' => 'DeleteLiveCenterTransfer',
'summary' => 'Deletes a live center stream relay configuration.',
'description' => 'You can call this operation up to 100 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveCenterTransfer'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveCenterTransfer',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"7908F2FF-44F8-120F-9FD6-85A******\\"\\n}","type":"json"}]',
],
'DeleteLiveDelayConfig' => [
'summary' => 'Deletes a stream delay configuration.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveBP94ZY'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'Domain',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'App',
'in' => 'query',
'schema' => ['description' => 'The AppName of the live stream. You can specify an asterisk (\\*) to match all AppNames under the domain name.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'Stream',
'in' => 'query',
'schema' => ['description' => 'The name of the live stream. You can use the wildcard (\\*) to specify all StreamNames under the AppName.', 'type' => 'string', 'required' => true, 'example' => 'liveStream****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameters', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'Invalid parameter:%s.'],
],
],
'title' => 'DeleteLiveDelayConfig',
'description' => 'The queries per second (QPS) limit for a single user is 60. If you exceed the limit, API calls are throttled. This may impact your business. Plan your API calls accordingly.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveDelayConfig'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveDelayConfig',
'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"}]',
],
'DeleteLiveDetectNotifyConfig' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveUTGSNT'],
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'title' => 'DeleteLiveDetectNotifyConfig',
'summary' => 'Deletes the configuration of callbacks for video moderation results.',
'description' => '## [](#)Usage notes'."\n"
."\n"
.'- Obtain the main streaming domain, and then call this operation to delete the configuration of callbacks for video moderation results.'."\n"
."\n"
.'- Only some live centers support the content moderation feature. For more information, see [Supported regions](~~193730~~).'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 30 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2024-01-30T08:56:50.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveDetectNotifyConfig'],
],
],
'ramActions' => [
[
'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 \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]',
],
'DeleteLiveDomain' => [
'summary' => 'Deletes all records of the specified live streaming domain.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '106925',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The ingest or streaming domain to delete.', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '94E3559F-7B6A-4A5E-AFFD-44E2A208A249', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['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' => ''],
],
],
'eventInfo' => [
'enable' => false,
'eventNames' => [],
],
'title' => 'DeleteLiveDomain',
'description' => '- A successful call to the DeleteLiveDomain operation deletes all records for the specified live streaming domain. Use this operation with caution.'."\n"
."\n"
.'- To prevent the domain name from becoming inaccessible, you must restore its A record with your DNS service provider before you delete the domain name. If your domain name registrar is Alibaba Cloud, log on to the [Alibaba Cloud DNS console](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). Navigate to the **Public Zone** page. Find the domain name, click **Settings**, and change the CNAME record to an A record. If your domain name is registered with another registrar, perform a similar configuration with that registrar.'."\n"
."\n"
.'- If you only need to disable a live streaming domain, call the [StopLiveDomain](~~2847799~~) operation.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 30 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveDomain'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveDomain',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"94E3559F-7B6A-4A5E-AFFD-44E2A208A249\\"\\n}","type":"json"}]',
],
'DeleteLiveDomainMapping' => [
'summary' => 'Deletes the mapping between a streaming domain and an ingest domain.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => [
'operationType' => 'delete',
'abilityTreeCode' => '106927',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'PushDomain',
'in' => 'query',
'schema' => ['description' => 'The ingest domain. The type of the domain name is **liveEdge**.', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com', 'title' => ''],
],
[
'name' => 'PullDomain',
'in' => 'query',
'schema' => ['description' => 'The streaming domain. The type of the domain name is **liveVideo**.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidPushDomain', 'errorMessage' => 'The PushDomain should be liveEdge type.', 'description' => ''],
['errorCode' => 'InvalidPullDomain', 'errorMessage' => 'The PullDomain should be liveVideo type.', 'description' => ''],
],
],
'eventInfo' => [
'enable' => false,
'eventNames' => [],
],
'title' => 'DeleteLiveDomainMapping',
'description' => 'Make sure that the streaming domain has been mapped to the ingest domain before you call this operation to delete the mapping. For more information about how to map a streaming domain to an ingest domain, see [AddLiveDomainMapping](~~88782~~).'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 30 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation. For more information, see [QPS limits](~~343507~~).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveDomainMapping'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveDomainMapping',
'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"}]',
],
'DeleteLiveDomainPlayMapping' => [
'summary' => 'Deletes the mapping between a main streaming domain and a sub-streaming domain.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '106928',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'PlayDomain',
'in' => 'query',
'schema' => ['description' => 'The sub-streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.aliyundoc.com', 'title' => ''],
],
[
'name' => 'PullDomain',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'eventInfo' => [
'enable' => false,
'eventNames' => [],
],
'title' => 'DeleteLiveDomainPlayMapping',
'description' => '## QPS limits'."\n"
."\n"
.'You can call this operation up to 1,000 times per minute per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2024-01-30T08:56:50.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveDomainPlayMapping'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveDomainPlayMapping',
'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"}]',
],
'DeleteLiveEdgeTransfer' => [
'summary' => 'Delete the live stream edge transfer configuration. ',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'Region ID. ', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The ingest domain. You can set only one stream relay configuration for an ingest domain.'."\n", 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => 'Illegal input parameters'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]',
'title' => 'Delete live stream edge transfer configuration ',
'description' => 'Calling DeleteLiveEdgeTransfer only deletes the live stream edge transfer configuration for a specific domain name. It does not affect any ongoing live stream transfers that were already initiated based on that configuration. The following are typical scenario examples:'."\n"
."\n"
.'| Scenario | Analysis | Result |'."\n"
.'| -------------- | -------------- | ------ |'."\n"
.'| 1. After calling SetLiveEdgeTransfer to configure live stream edge transfer and starting stream ingest, call DeleteLiveEdgeTransfer to delete the configuration during the ingest process. | The live stream edge transfer configuration exists at the time of stream ingest. | Stream ingest is unaffected, and live stream edge transfer will not break. |'."\n"
.'| 2. During stream ingest, call DeleteLiveEdgeTransfer to delete the live stream edge transfer configuration, then stop and restart the stream ingest. | The live stream edge transfer configuration no longer exists when stream ingest restarts. | Live stream edge transfer will not start. |'."\n"
.'| 3. Start live stream ingest only after calling DeleteLiveEdgeTransfer. | The live stream edge transfer configuration does not exist at this point. | Live stream edge transfer will not start. |'."\n"
."\n"
.'## Queries per second (QPS) limit '."\n"
.'The per-user QPS limit for this API is 100 queries per second. If you exceed this limit, your API calls will be rate-limited, which may impact your business. Please invoke the API appropriately. ',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveEdgeTransfer'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveEdgeTransfer',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DeleteLiveLazyPullStreamInfoConfig' => [
'summary' => 'Deletes a configuration of triggered stream pulling.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the application.'."\n"
."\n"
.'> To delete configurations of triggered stream pulling for all applications, set it to **ali\\_all\\_app**.', 'type' => 'string', 'required' => true, 'example' => 'ali_all_app', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'title' => 'DeleteLiveLazyPullStreamInfoConfig',
'description' => 'This operation supports deleting only the configurations of triggered stream pulling. If AppName is set to ali\\_all\\_app, such configurations for all applications under the domain name are deleted.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'You can call this operation up to 1,000 times per minute per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'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' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveLazyPullStreamInfoConfig',
'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"}]',
],
'DeleteLiveMessageGroup' => [
'summary' => 'Deletes an interactive messaging group.',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'demo', 'title' => ''],
],
[
'name' => 'GroupId',
'in' => 'query',
'schema' => ['description' => 'The ID of the group that you want to delete.'."\n", 'type' => 'string', 'required' => true, 'example' => 'grouptest', 'title' => ''],
],
[
'name' => 'OperatorId',
'in' => 'query',
'schema' => ['description' => 'The ID of the user who performs the deletion operation. The ID can be up to 64 bytes in length and can contain only letters and digits.'."\n", 'type' => 'string', 'required' => false, 'example' => 'uid1', 'title' => ''],
],
[
'name' => 'DataCenter',
'in' => 'query',
'schema' => ['description' => 'The data center. It must be the same as the data center that was specified when you called the [CreateLiveMessageApp](~~2848162~~) operation to create the interactive messaging application. Valid values: cn-shanghai and ap-southeast-1 (Singapore).'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => '',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'B95BE680-5A6A-1CAD-8AB1-09DFF5D6****'],
'GroupId' => ['description' => 'The ID of the deleted or non-existent group.'."\n", 'type' => 'string', 'example' => 'grouptest', 'title' => ''],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'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' => 'DeleteLiveMessageGroup',
'description' => '* Before you call this operation, make sure that you have called the [CreateLiveMessageGroup](~~2848163~~) operation to create an interactive messaging group.'."\n"
.'* After you delete an interactive messaging group, it is no longer available. Every user in the group is notified that the group is closed.'."\n"
.'* After you delete an interactive messaging group, messages in the group are retained for 30 days.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n",
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveMessageGroup'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveMessageGroup',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'],
],
],
],
],
],
'DeleteLiveMessageGroupMessage' => [
'summary' => 'Deletes a message that was sent to an interactive messaging group.',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'demo', 'title' => ''],
],
[
'name' => 'GroupId',
'in' => 'query',
'schema' => ['description' => 'The group ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'grouptest', 'title' => ''],
],
[
'name' => 'MessageId',
'in' => 'query',
'schema' => ['description' => 'The ID of the message that you want to delete. Set this parameter to the value of MsgTid that you specified when you called the SendLiveMessageGroup operation. The ID must be up to 64 bytes in length and can contain letters and digits.'."\n", 'type' => 'string', 'required' => true, 'example' => 'a74a8fbd3cfe4b2daa8517e4e3******', 'title' => ''],
],
[
'name' => 'DataCenter',
'in' => 'query',
'schema' => ['description' => 'The data center. It must be the same as the data center that was specified when you called the [CreateLiveMessageApp](~~2848162~~) operation to create the interactive messaging application. Valid values: cn-shanghai and ap-southeast-1 (Singapore).'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DeleterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the user who deletes the message. The ID must be up to 64 bytes in length and can contain letters and digits.'."\n", 'type' => 'string', 'required' => false, 'example' => '169830****', 'title' => ''],
],
[
'name' => 'DeleterInfo',
'in' => 'query',
'schema' => ['description' => 'The additional information about the user who performs the deletion operation. The value can be up to 512 bytes in length.'."\n", 'type' => 'string', 'required' => false, 'example' => 'testname', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => '',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'B95BE680-5A6A-1CAD-8AB1-09DFF5D6****'],
'GroupId' => ['description' => 'The group ID.'."\n", 'type' => 'string', 'example' => 'grouptest', 'title' => ''],
'MessageId' => ['description' => 'The ID of the deleted or non-existent message.'."\n", 'type' => 'string', 'example' => 'a74a8fbd3cfe4b2daa8517e4e3******', 'title' => ''],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DeleteLiveMessageGroupMessage',
'description' => 'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n",
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveMessageGroupMessage'],
],
],
'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' => 'Deletes a message that is sent to a user.',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'demo', 'title' => ''],
],
[
'name' => 'ReceiverId',
'in' => 'query',
'schema' => ['description' => 'The ID of the user who received the message to delete. The ID can contain only letters and digits and can be up to 64 bytes in length.'."\n", 'type' => 'string', 'required' => true, 'example' => '169830****', 'title' => ''],
],
[
'name' => 'MessageId',
'in' => 'query',
'schema' => ['description' => 'The ID of the message that you want to delete. Set this parameter to the value of MsgTid that you specified when you called the SendLiveMessageUser operation. The ID can contain only letters and digits and can be up to 64 bytes in length.'."\n", 'type' => 'string', 'required' => true, 'example' => '**********', 'title' => ''],
],
[
'name' => 'DeleterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the user who performs the deletion operation. The ID can contain only letters and digits and can be up to 64 bytes in length.'."\n", 'type' => 'string', 'required' => false, 'example' => '169830****', 'title' => ''],
],
[
'name' => 'DeleterInfo',
'in' => 'query',
'schema' => ['description' => 'The additional information about the user who performs the deletion operation. The value can be up to 512 bytes in length.'."\n", 'type' => 'string', 'required' => false, 'example' => 'username', 'title' => ''],
],
[
'name' => 'DataCenter',
'in' => 'query',
'schema' => ['description' => 'The data center where the interactive messaging application is deployed. Set this parameter to the value of DataCenter that you specified when you called the [CreateLiveMessageApp](~~2593195~~) operation. Valid values: cn-shanghai (Shanghai) and ap-southeast-1 (Singapore).'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => '',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '6CFDE7AB-571A-14EA-B072-989FF753****'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DeleteLiveMessageUserMessage',
'description' => '## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation. For more information, see [QPS limits](~~343507~~).'."\n",
'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' => 'Deletes a live stream encapsulation configuration.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveJAENGU'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The AppName of all live streams. An asterisk (\\*) matches all AppNames.', 'type' => 'string', 'required' => true, 'example' => 'AppName', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The stream name. An asterisk (\\*) matches all streams under the specified AppName.', 'type' => 'string', 'required' => true, 'example' => 'StreamName', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '72ABAD7B-B14C-52DE-B6C6-C639FECAF5AD', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is missing, please check and try again.'],
['errorCode' => 'InvalidParams', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is invalid, please check and try again.'],
['errorCode' => 'InvalidProtocol', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter Protocol is invalid, please check and try again.'],
['errorCode' => 'InvalidSegmentNum', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter SegmentNum is invalid, please check and try again.'],
['errorCode' => 'InvalidSegmentDuration', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter SegmentDuration is invalid, please check and try again.'],
['errorCode' => 'InvalidPartDuration', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter PartDuration is invalid, please check and try again.'],
],
404 => [
['errorCode' => 'ConfigNotFound', 'errorMessage' => '%s, please check and try again.', 'description' => 'Configuration does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalErr', 'errorMessage' => '%s, please try again.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'DeleteLivePackageConfig',
'description' => 'You can call this operation to delete a live stream encapsulation configuration. The change takes effect the next time you ingest the stream.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'You can call this operation up to 300 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLivePackageConfig'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLivePackageConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"72ABAD7B-B14C-52DE-B6C6-C639FECAF5AD\\"\\n}","type":"json"}]',
],
'DeleteLivePrivateLine' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The application name.', 'type' => 'string', 'required' => true, 'example' => 'live', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The live stream name.', 'type' => 'string', 'required' => true, 'example' => 'testStream', 'title' => ''],
],
[
'name' => 'AccelerationType',
'in' => 'query',
'schema' => [
'description' => 'The acceleration type. Valid values:'."\n"
."\n"
.'- play: accelerates stream pulling.'."\n"
."\n"
.'- publish: accelerates stream ingest.',
'type' => 'string',
'required' => true,
'enum' => ['play', 'publish'],
'example' => 'play',
'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '7908F2FF-44F8-120F-9FD6-85AE4******', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => 'Illegal input parameters'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''],
],
],
'title' => 'DeleteLivePrivateLine',
'summary' => 'Detaches a Global Accelerator instance from a live stream link.',
'description' => 'After you detach the instance, your live stream ingest and stream pulling links no longer use Global Accelerator (GA) for origin fetch. The GA instance still exists after it is detached. To release the instance, delete it in the Global Accelerator console.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The QPS limit for this API is 50 calls per second for each user. If you exceed this limit, API calls are throttled, which may affect your business. Plan your API calls accordingly.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLivePrivateLine'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLivePrivateLine',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"7908F2FF-44F8-120F-9FD6-85AE4******\\"\\n}","type":"json"}]',
],
'DeleteLivePullStreamInfoConfig' => [
'summary' => 'Deletes a scheduled stream pulling configuration.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the application to which the live stream belongs. Call [DescribeLivePullStreamConfig](~~2847818~~) to query the application name.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The name of the stream. Call [DescribeLivePullStreamConfig](~~2847818~~) to query the stream name.', 'type' => 'string', 'required' => true, 'example' => 'liveStream****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => 'Illegal input parameters'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''],
],
],
'title' => 'DeleteLivePullStreamInfoConfig',
'description' => 'This operation supports deleting only the configurations of scheduled stream pulling.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 30 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLivePullStreamInfoConfig',
'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"}]',
],
'DeleteLivePullToPush' => [
'summary' => 'Deletes a stream pulling-to-pushing task by calling DeleteLivePullToPush.',
'methods' => ['get'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '238152',
'abilityTreeNodes' => ['FEATURElive9P39J9'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'default' => 'cn-shanghai', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'The task ID.', 'type' => 'string', 'required' => true, 'example' => '3efb43c5-18ff-49eb-92a6-005f6521****', 'title' => ''],
],
[
'name' => 'Region',
'in' => 'query',
'schema' => [
'description' => 'The region where the task is started. Valid values:'."\n"
."\n"
.'- ap-southeast-1 (Singapore)'."\n"
.'- ap-southeast-5 (Indonesia)'."\n"
.'- cn-beijing (Beijing)'."\n"
.'- cn-shanghai (Shanghai).',
'enumValueTitles' => ['cn-shenzhen' => 'Shenzhen.', 'cn-qingdao' => 'Qingdao.', 'preregion' => 'Pre-release.', 'cn-beijing' => 'Beijing.', 'cn-shanghai' => 'Shanghai.', 'ap-southeast-1' => 'Singapore.', 'eu-central-1' => 'Germany (Frankfurt).', 'ap-northeast-1' => 'Japan (Tokyo).', 'ap-southeast-5' => 'Indonesia.', 'me-central-1' => 'Saudi Arabia (Riyadh).'],
'type' => 'string',
'required' => true,
'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'],
'example' => 'cn-shanghai',
'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68*****'],
'RetCode' => ['description' => 'The return code.'."\n"
."\n"
.'> - "0" is returned in normal cases.'."\n"
.'> - For exceptions, refer to the error codes listed below.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'Description' => ['description' => 'The error description.', 'type' => 'string', 'example' => 'OK', 'title' => ''],
],
'example' => '',
],
],
[],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => 'Parameter error'],
['errorCode' => 'CodeInvalidAliUid', 'errorMessage' => 'This aliuid does not have a live domain name.', 'description' => 'This aluid does not have a live domain name.'],
['errorCode' => 'CodeTaskNotExist', 'errorMessage' => 'Task does not exist.', 'description' => 'The task does not exist.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => 'error on the live liveapi server.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68*****\\",\\n \\"RetCode\\": 0,\\n \\"Description\\": \\"OK\\"\\n}","type":"json"}]',
'title' => 'Delete a stream pulling-to-pushing task',
'description' => '- Deletes a stream pulling-to-pushing task.'."\n"
.'- Deleting a task cleans up the task. A running task is stopped immediately and cannot be restarted.'."\n"
."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this operation is 10 calls per second. If the limit is exceeded, API calls are throttled, which may affect your business. Call this operation appropriately.',
'changeSet' => [
['createdAt' => '2025-04-27T08:03:58.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLivePullToPush'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLivePullToPush',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DeleteLiveRealTimeLogLogstore' => [
'summary' => 'Deletes a Logstore for real-time log delivery.',
'methods' => ['get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATURElive066BXV'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'Project',
'in' => 'query',
'schema' => ['description' => 'The name of the Simple Log Service (SLS) project for real-time delivery.', 'type' => 'string', 'required' => true, 'example' => 'project_example', 'title' => ''],
],
[
'name' => 'Logstore',
'in' => 'query',
'schema' => ['description' => 'The name of the SLS Logstore for real-time delivery.', 'type' => 'string', 'required' => true, 'example' => 'logstore_example', 'title' => ''],
],
[
'name' => 'Region',
'in' => 'query',
'schema' => ['description' => 'The region of the SLS project for real-time delivery.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '9732E117-8A37-49FD-A36F-ABBB*******', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'Unauthorized', 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', 'description' => ''],
],
404 => [
['errorCode' => 'LogstoreNotExist', 'errorMessage' => 'Logstore does not exist', 'description' => ''],
],
],
'title' => 'DeleteLiveRealTimeLogLogstore',
'description' => '- You can call this operation to delete a Logstore used for real-time log delivery. Make sure that you set the parameters correctly.'."\n"
."\n"
.'- You can call the [DescribeLiveDomainRealtimeLogDelivery](~~2848121~~) operation to query the Project, Logstore, and Region parameters.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The rate limit for this operation is 6,000 calls per minute for each user. If you exceed the limit, API calls are throttled. This may affect your business. We recommend that you call this operation at a reasonable rate.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Special error codes'."\n"
."\n"
.'|HTTP status code|Error code|Error message|Description|'."\n"
.'|---|---|---|---|'."\n"
.'|403|Unauthorized|RealtimeLogDelivery Service Not Authorized|The error message returned because you are not authorized to use Log Service.|'."\n"
.'|404|LogstoreNotExist|Logstore does not exist|The error message returned because the specified Logstore is not found.|',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveRealTimeLogLogstore',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9732E117-8A37-49FD-A36F-ABBB*******\\"\\n}","type":"json"}]',
],
'DeleteLiveRealtimeLogDelivery' => [
'summary' => 'Deletes a real-time log delivery configuration.',
'methods' => ['get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATURElive066BXV'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain name.'."\n"
."\n"
.'To specify multiple domain names, separate them with commas (,).', 'type' => 'string', 'required' => true, 'example' => 'example.com,example.aliyundoc.com', 'title' => ''],
],
[
'name' => 'Project',
'in' => 'query',
'schema' => ['description' => 'The name of the Simple Log Service (SLS) project to which logs are delivered in real time.', 'type' => 'string', 'required' => true, 'example' => 'project_example', 'title' => ''],
],
[
'name' => 'Logstore',
'in' => 'query',
'schema' => ['description' => 'The name of the SLS Logstore to which logs are delivered in real time.', 'type' => 'string', 'required' => true, 'example' => 'logstore_example', 'title' => ''],
],
[
'name' => 'Region',
'in' => 'query',
'schema' => ['description' => 'The region where the SLS project is located.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '9732E117-8A37-49FD-A36F-ABBB87556CA7', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'Unauthorized', 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', 'description' => ''],
],
404 => [
['errorCode' => 'LogstoreNotExist', 'errorMessage' => 'Logstore does not exist', 'description' => ''],
],
],
'title' => 'DeleteLiveRealtimeLogDelivery',
'description' => ''."\n"
."\n"
.'- Real-time log delivery can be configured only for streaming domains. To configure real-time log delivery for ingest domains, [submit a ticket](https://workorder.console.aliyun.com/console.htm#/ticket/add?productCode=live\\&commonQuestionId=4545\\&isSmart=true\\&iatraceid=1608439120675-2a5c48de0b84805313c708\\&channel=selfservice).'."\n"
."\n"
.'Real-time log delivery can be configured only for streaming domains. To configure real-time log delivery for ingest domains, [submit a ticket](https://workorder-intl.console.aliyun.com/?spm=5176.12818093.nav-right.dticket.6cb216d07otFWR#/ticket/createIndex).'."\n"
."\n"
.'- You can call [DescribeLiveDomainRealtimeLogDelivery](~~2848121~~) to query the Project, Logstore, and Region parameters.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 6,000 calls per minute for each user. API calls that exceed this limit are throttled, which may affect your business. Call this operation at a reasonable rate.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Special error codes'."\n"
."\n"
.'|HTTP status code|Error code|Description|'."\n"
.'|---|---|---|'."\n"
.'|403|Unauthorized|The error message returned because you are not authorized to use Log Service.|'."\n"
.'|404|LogstoreNotExist|The error message returned because the specified Logstore is not found.|',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveRealtimeLogDelivery'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveRealtimeLogDelivery',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9732E117-8A37-49FD-A36F-ABBB87556CA7\\"\\n}","type":"json"}]',
],
'DeleteLiveRecordNotifyConfig' => [
'summary' => 'Deletes the configuration of callbacks for live stream recording under a domain name.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveL04ZVK'],
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'Forbidden', 'errorMessage' => 'Ram Permission is forbidden.', 'description' => ''],
],
404 => [
['errorCode' => 'InvalidConfig.NotFound', 'errorMessage' => 'Config does not exist.', 'description' => ''],
],
],
'title' => 'DeleteLiveRecordNotifyConfig',
'description' => 'Obtain the main streaming domain, and then call this operation to delete the configuration of callbacks for live stream recording under the main streaming domain.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 30 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveRecordNotifyConfig'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveRecordNotifyConfig',
'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"}]',
],
'DeleteLiveRecordVodConfig' => [
'summary' => 'Deletes a Live-to-VOD configuration.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveL04ZVK'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The AppName of the live stream. View AppNames on the [Stream Management](~~197397~~) page.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The name of the stream. View StreamNames on the [Stream Management](~~197397~~) page.', 'type' => 'string', 'required' => false, 'example' => 'liveStream****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => ' 40A4F36D-A7CC-473A-88E7-154F92242566', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''],
],
],
'title' => 'DeleteLiveRecordVodConfig',
'description' => 'You can call this operation to delete the live-to-VOD configuration for a specified streaming domain.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 1,000 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveRecordVodConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\" 40A4F36D-A7CC-473A-88E7-154F92242566\\"\\n}","type":"json"}]',
],
'DeleteLiveSnapshotDetectPornConfig' => [
'summary' => 'Deletes a video moderation configuration.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveUTGSNT'],
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the application to which the live stream belongs. You can call the [DescribeLiveSnapshotDetectPornConfig](~~2847918~~) operation to query the application name.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E6*******', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'title' => 'DeleteLiveSnapshotDetectPornConfig',
'description' => '- Obtain the main streaming domain, and then call this operation to delete a video moderation configuration.'."\n"
."\n"
.'- Only some live centers support the content moderation feature. For more information, see [Supported regions](~~193730~~).'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 30 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2024-01-30T08:56:48.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveSnapshotDetectPornConfig',
'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-CB92E6*******\\"\\n}","type":"json"}]',
],
'DeleteLiveSnapshotNotifyConfig' => [
'summary' => 'Deletes the snapshot callback configuration.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveMH1XD3'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'www.yourdomain***.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '32A96B9A-F203-4EC5-8E43-CB92E68F4I79E', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is missing, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'DeleteLiveSnapshotNotifyConfig',
'description' => 'You can call this operation up to 30 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveSnapshotNotifyConfig'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveSnapshotNotifyConfig',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"32A96B9A-F203-4EC5-8E43-CB92E68F4I79E\\"\\n}","type":"json"}]',
],
'DeleteLiveSpecificStagingConfig' => [
'summary' => 'You can call the DeleteLiveSpecificStagingConfig operation to delete domain name configurations in a grayscale environment.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'developer.aliyundoc.com', 'title' => ''],
],
[
'name' => 'ConfigId',
'in' => 'query',
'schema' => ['description' => 'The configuration ID. To specify multiple IDs, separate them with commas (,). To obtain the configuration ID, see [DescribeLiveDomainStagingConfig](~~2848231~~).', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '6295', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'Invalid%s.ValueNotSupported', 'errorMessage' => 'FunctionName [%s] is not supported.', 'description' => ''],
],
],
'title' => 'DeleteLiveSpecificStagingConfig',
'description' => '## QPS limits'."\n"
."\n"
.'You can call this operation up to 20 times per second per account. If you exceed this limit, API calls are throttled. This may affect your business. Plan your calls accordingly. For more information, see [QPS limits](~~343507~~).'."\n"
."\n"
.'## Queries Per Second (QPS) limits'."\n"
."\n"
.'You can call this operation up to 20 times per second per account. If you exceed this limit, your API calls are throttled, which may impact your business. We recommend that you plan your calls accordingly. For more information, see [QPS limits](~~343507~~).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveSpecificStagingConfig'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveSpecificStagingConfig',
'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"}]',
],
'DeleteLiveStreamBlock' => [
'summary' => 'Deletes blocking configurations for a specific live stream.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveOLG5VH'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The AppName of the live stream. View AppNames on the [Stream Management](~~197397~~) page.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The name of the live stream. View StreamNames on the [Stream Management](~~197397~~) page.', 'type' => 'string', 'required' => true, 'example' => 'liveStream****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'Description' => ['description' => 'The description of the request. A value of ok indicates that the request was successful. An error message is returned if the request failed.', 'type' => 'string', 'example' => 'ok', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'B908FF89-B03C-4831-B55B-48D2A7DA0A68', 'title' => ''],
'Status' => ['description' => 'The status of the operation. Valid values:'."\n"
."\n"
.'- ok: Success.'."\n"
."\n"
.'- fail: Failure.'."\n"
."\n"
.'> The status is ok only if all tasks succeeded.', 'type' => 'string', 'example' => 'ok', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => 'Illegal input parameters'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''],
],
],
'title' => 'DeleteLiveStreamBlock',
'description' => 'You can call this operation to delete a stream-level block configuration.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveStreamBlock'],
],
],
'ramActions' => [
[
'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' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveBLHP6S'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The AppName for the merged stream. View the AppName on the [Primary/Secondary Stream Mixing Settings](~~606583~~) page.', 'type' => 'string', 'required' => true, 'example' => 'app', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The StreamName for the merged stream. View the StreamName on the [Primary/Secondary Stream Mixing Settings](~~606583~~) page.', 'type' => 'string', 'required' => true, 'example' => 'StreamName', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB9*********', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => 'Illegal input parameters'],
['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' => ''],
],
],
'title' => 'DeleteLiveStreamMerge',
'summary' => 'Deletes an active merged stream.',
'description' => 'You can call this operation up to 100 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveStreamMerge'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:DeleteLiveStreamMerge',
'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-CB9*********\\"\\n}","type":"json"}]',
],
'DeleteLiveStreamMonitor' => [
'summary' => 'Deletes a monitoring session.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveSM955S'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The ID of the region.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'MonitorId',
'in' => 'query',
'schema' => ['description' => 'The ID of the monitoring session.'."\n"
."\n"
.'> The **MonitorId** is returned in the response of the [CreateLiveStreamMonitor](~~2848129~~) operation.', 'type' => 'string', 'required' => true, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5c6a2a0d-f228-4a64-af62-20e91b9676b3', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'InvalidMonitorId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter MonitorId is invalid, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'StreamMonitorNotExist', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The monitoring room does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'DeleteLiveStreamMonitor',
'description' => 'Obtain the **MonitorId** from the response of the [CreateLiveStreamMonitor](~~2848129~~) operation. Then, call this operation to delete the monitoring session.'."\n"
."\n"
.'>'."\n"
."\n"
.'You cannot delete a monitoring session that is running. Attempting to do so returns a 400 error.'."\n"
."\n"
.'>'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'This operation is limited to 10 queries per second (QPS) per account. Calls that exceed this limit are throttled, which can affect your business. To avoid interruptions to your business, make sure that you do not exceed this limit.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveStreamMonitor',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b9676b3\\"\\n}","type":"json"}]',
],
'DeleteLiveStreamRecordIndexFiles' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveL04ZVK'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'RecordId',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The array of index file IDs.',
'type' => 'array',
'items' => ['description' => 'The index file ID. You can specify up to 20 IDs.'."\n"
."\n"
.'> To obtain the index file ID, call the [DescribeAllStreamRecordIndexFiles](~~2847890~~) operation.', 'type' => 'string', 'required' => false, 'example' => 'c4d7f0a4-b506-43f9-8de3-07732c3f****', 'title' => ''],
'required' => true,
'example' => 'c4d7f0a4-b506-43f9-8de3-07732c3f****',
'maxItems' => 20,
'title' => '',
],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The AppName of the live stream.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The stream name.', 'type' => 'string', 'required' => true, 'example' => 'liveStream****', 'title' => ''],
],
[
'name' => 'RemoveFile',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to delete the associated OSS objects at the same time. Valid values:'."\n"
."\n"
.'- **true**: Deletes.'."\n"
."\n"
.'- **false**: Does not delete.', 'type' => 'string', 'required' => true, 'example' => 'true', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The data returned.',
'type' => 'object',
'properties' => [
'Code' => ['description' => 'The status code. If an error occurs, see the error codes.', 'type' => 'string', 'example' => 'OK', 'title' => ''],
'Message' => ['description' => 'The status message. If an error occurs, see the error codes.', 'type' => 'string', 'example' => 'OK', 'title' => ''],
'RecordDeleteInfoList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'RecordDeleteInfo' => [
'itemNode' => true,
'description' => 'The deletion details.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'The deletion details.',
'type' => 'object',
'properties' => [
'Message' => ['description' => 'The result of the request to delete each index file. Valid values:'."\n"
."\n"
.'- **OK**: The deletion is successful.'."\n"
."\n"
.'- **AccessDenied**: Access is denied.'."\n"
."\n"
.'- **FileNotFound**: The file is not found.', 'type' => 'string', 'example' => 'OK', 'title' => ''],
'RecordId' => ['description' => 'The ID of the index file that you requested to delete.', 'type' => 'string', 'example' => 'c4d7f0a4-b506-43f9-8de3-07732c3f**', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '939D19EE-59A0-18E9-B458-*****', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParams', 'errorMessage' => 'Failed to parse given parameters.', 'description' => ''],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => ''],
],
],
'title' => 'DeleteLiveStreamRecordIndexFiles',
'summary' => 'Deletes the index files of live stream recordings.',
'description' => 'You can call this operation up to 100 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveStreamRecordIndexFiles',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DeleteLiveStreamTranscode' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveHVN9B2'],
],
'parameters' => [
[
'name' => 'Domain',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'App',
'in' => 'query',
'schema' => ['description' => 'The AppName of the live stream.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'Template',
'in' => 'query',
'schema' => ['description' => 'The transcoding template ID. Valid values:'."\n"
."\n"
.'- Standard transcoding:'."\n"
."\n"
.' - lld: low definition'."\n"
."\n"
.' - lsd: standard definition'."\n"
."\n"
.' - lhd: high definition'."\n"
."\n"
.' - lud : ultra-high definition'."\n"
."\n"
.'- Narrowband HD™ transcoding:'."\n"
."\n"
.' - ld: low definition'."\n"
."\n"
.' - sd: standard definition'."\n"
."\n"
.' - hd: high definition'."\n"
."\n"
.' - ud: ultra-high definition'."\n"
."\n"
.'- Custom transcoding: a custom ID', 'type' => 'string', 'required' => true, 'example' => 'lld', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'title' => 'DeleteLiveStreamTranscode',
'summary' => 'Deletes a transcoding configuration.',
'description' => 'Standard, Narrowband HD™, and custom transcoding templates are supported.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 30 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2024-03-15T07:04:27.000Z', 'description' => 'Error codes changed'],
],
'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' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]',
],
'DeleteLiveStreamWatermark' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveCT0GRQ'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'TemplateId',
'in' => 'query',
'schema' => ['description' => 'The ID of the watermark template.'."\n"
."\n"
.'> The template ID is returned in the response of the [AddLiveStreamWatermark](~~2848096~~) operation.', 'type' => 'string', 'required' => true, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '5c6a2a0df228-4a64-af62-20e91b******', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameters', 'errorMessage' => '%s Please check and try again later.', 'description' => 'Exception parameter exists, please check and try again.'],
],
],
'title' => 'DeleteLiveStreamWatermark',
'summary' => 'Deletes a specified watermark template.',
'description' => 'This operation deletes a live streaming watermark template based on a specified template ID.'."\n"
."\n"
.'## QPS Limits'."\n"
."\n"
.'You can call this operation up to 60 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveStreamWatermark',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b******\\"\\n}","type":"json"}]',
],
'DeleteLiveStreamWatermarkRule' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveCT0GRQ'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'Domain',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.aliyundoc.com', 'title' => ''],
],
[
'name' => 'App',
'in' => 'query',
'schema' => ['description' => 'The AppName of the live stream.', 'type' => 'string', 'required' => false, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'Stream',
'in' => 'query',
'schema' => ['description' => 'The stream name. The following rules apply:'."\n"
."\n"
.'- To match a specific stream, enter the full stream name. Example: liveStreamA.'."\n"
."\n"
.'- Use a wildcard for matching. The asterisk (\\*) matches all streams.'."\n"
."\n"
.'- You can match by prefix or suffix.'."\n"
."\n"
.'> * For wildcard matching, use only one asterisk (\\*) at the beginning or end of the string. Enclose matching items in parentheses. Separate multiple matching items with a vertical bar (|).'."\n"
.'>'."\n"
.'> * Example: `*(t1|t2)` matches all streams ending with `t1` or `t2`. `(abc|123)*` matches all streams starting with `abc` or `123`.', 'type' => 'string', 'required' => false, 'example' => 'liveStreamA', 'title' => ''],
],
[
'name' => 'RuleId',
'in' => 'query',
'schema' => ['description' => 'The ID of the watermark rule.'."\n"
."\n"
.'> Get this ID from the response of the [AddLiveStreamWatermarkRule](~~2848100~~) operation.', 'type' => 'string', 'required' => false, 'example' => '445409ec-7eaa-461d -8f29-4bec2eb9****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5c6a2a0df228-4a64- af62-20e91******', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameters', 'errorMessage' => '%s Please check and try again later.', 'description' => 'Exception parameter exists, please check and try again.'],
],
],
'title' => 'DeleteLiveStreamWatermarkRule',
'summary' => 'Deletes a watermark rule.',
'description' => 'This operation deletes the watermark rule based on the specified rule ID.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 60 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveStreamWatermarkRule'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveStreamWatermarkRule',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64- af62-20e91******\\"\\n}","type":"json"}]',
],
'DeleteLiveStreamsNotifyUrlConfig' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The ingest domain.', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => ' 40A4F36D-A7CC-473A-88E7-154F92242566', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'title' => 'DeleteLiveStreamsNotifyUrlConfig',
'summary' => 'Deletes the callback configuration of stream ingest for an ingest domain.',
'description' => 'After you obtain an ingest domain, you can call this operation to delete the stream ingest callback configuration.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'This operation is limited to 15 queries per second (QPS) for each user. If you exceed the limit, API calls are throttled, which can affect your business. Plan your calls accordingly.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2022-08-17T09:42:34.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveStreamsNotifyUrlConfig'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveStreamsNotifyUrlConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\" 40A4F36D-A7CC-473A-88E7-154F92242566\\"\\n}","type":"json"}]',
],
'DeleteMessageApp' => [
'summary' => 'Call DeleteMessageApp to delete an interactive message application.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'delete'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'formData',
'schema' => ['description' => 'The ID of the interactive message application to be deleted. Only one application ID can be specified.', 'type' => 'string', 'required' => true, 'example' => 'VKL3***', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'],
'Result' => [
'description' => 'The returned results.',
'type' => 'object',
'properties' => [
'Success' => ['description' => 'Indicates whether the deletion was successful. Valid values:'."\n"
."\n"
.'- true: The deletion was successful.'."\n"
.'- false: The deletion failed.', 'type' => 'boolean', 'example' => 'true', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": true\\n }\\n}","type":"json"}]',
'title' => 'DeleteMessageApp',
'description' => '## QPS limits'."\n"
."\n"
.'The QPS limit for this API is 100 queries per second (QPS) per user. API calls that exceed this limit are throttled, which may affect your business. You can call this API at a reasonable rate. For more information, see [QPS limits](~~343507~~).',
'changeSet' => [
['createdAt' => '2022-09-08T15:22:52.000Z', 'description' => 'OpenAPI offline'],
],
'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}'],
],
],
],
],
],
'DeleteMixStream' => [
'summary' => 'Deletes a stream mixing task.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveI16NIW'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'description' => 'The region ID.', 'title' => '', 'example' => 'cn-shanghai'],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The domain name of the output stream.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'example.com'],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the app.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'liveApp****'],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The name of the output stream.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'liveStream****'],
],
[
'name' => 'MixStreamId',
'in' => 'query',
'schema' => ['description' => 'The ID of the stream mixing task. Obtain this ID from the MixStreamId parameter returned by the [CreateMixStream](~~2848087~~) operation.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => '749b7594-86d6-37b1-513b-e1e19845****'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'MixStreamId' => ['description' => 'The ID of the stream mixing task.', 'type' => 'string', 'title' => '', 'example' => '749b7594-86d6-37b1-513b-e1e19845****'],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'BE9407FF-F897-4DBD-338D-98A750AD805F'],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
403 => [
['errorCode' => 'MixStreamAlreadyExist', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The confluence task already exists, please check and try again.'],
['errorCode' => 'MixStreamNotExist', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The confluous task does not exist. Please check and try again.'],
],
[
['errorCode' => 'InvalidDomainName.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Domain name does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'DeleteMixStream',
'description' => 'Before you call this operation, you must create a stream mixing task by calling the [CreateMixStream](~~2848087~~) operation. If you no longer need the mixed stream, you must delete the task. Otherwise, the stream will be continuously ingested.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 10 for each user. API calls that exceed this limit are throttled, which may affect your business. Plan your calls accordingly.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '### SDK example'."\n"
."\n"
.'For more information, see [Sample code of stream mixing](https://help.aliyun.com/document_detail/199362.html).'."\n",
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteMixStream',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"MixStreamId\\": \\"749b7594-86d6-37b1-513b-e1e19845****\\",\\n \\"RequestId\\": \\"BE9407FF-F897-4DBD-338D-98A750AD805F\\"\\n}","type":"json"}]',
],
'DeletePlaylist' => [
'summary' => 'Deletes an entire playlist.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'ProgramId',
'in' => 'query',
'schema' => ['description' => 'The ID of the playlist. You can obtain the playlist ID from the ProgramId parameter in the response of the [AddPlaylistItems](~~2848078~~) operation.', 'type' => 'string', 'required' => true, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'ProgramId' => ['description' => 'The playlist ID. You can use this ID as a request parameter to query, start, or stop the playlist.', 'type' => 'string', 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'IncorrectPlaylistStatus.Inuse', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The Playlist is in use, please check and try again.'],
['errorCode' => 'InvalidProgramId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ProgramId is invalid, please check and try again.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
],
404 => [
['errorCode' => 'PlayListNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'PlayList does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'DeletePlaylist',
'description' => 'After you add items to a playlist by calling the [AddPlaylistItems](~~2848078~~) operation, you can call this operation to delete the entire playlist.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'Each user can make up to 10 queries per second (QPS). If you exceed this limit, API calls are throttled, which can affect your business. We recommend that you call this operation at a reasonable rate.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeletePlaylist',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"ProgramId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b96****\\"\\n}","type":"json"}]',
],
'DeletePlaylistItems' => [
'summary' => 'Deletes items from a playlist.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'ProgramId',
'in' => 'query',
'schema' => ['description' => 'The ID of the playlist. If you add items to the playlist by calling the [AddPlaylistItems](~~2848078~~) operation, you can obtain this ID from the ProgramId parameter in the response.', 'type' => 'string', 'required' => true, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
],
[
'name' => 'ProgramItemIds',
'in' => 'query',
'schema' => ['description' => 'A list of playlist item IDs.', 'type' => 'string', 'required' => true, 'example' => '["c09f3d63-eacf-4fbf-bd48-a07a6ba7****","c10f3d63-eacf-4fbf-bd48-a07a6ba7****"]', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'ProgramId' => ['description' => 'The ID of the playlist. You can use this ID as a request parameter to query playlist items, edit a playlist, delete a playlist, start a playlist, or stop a playlist.', 'type' => 'string', 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidProgramId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ProgramId is invalid, please check and try again.'],
['errorCode' => 'IncorrectPlaylistStatus.Inuse', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The Playlist is in use, please check and try again.'],
['errorCode' => 'PlayListIsEmpty', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Playlist is empty, please check and try again.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
],
404 => [
['errorCode' => 'PlayListNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'PlayList does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'DeletePlaylistItems',
'description' => 'You can call the [AddPlaylistItems](~~2848078~~) operation to add items to a playlist. Then, you can call this operation to delete the items.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 10 calls per second per user. If you exceed this limit, your API calls are throttled, which may affect your business. We recommend that you call this operation at a reasonable rate.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeletePlaylistItems',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"ProgramId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b96****\\"\\n}","type":"json"}]',
],
'DeleteRtcAsrTask' => [
'summary' => 'Call `DeleteRtcAsrTask` to delete a real-time speech-to-text or translation task.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '219798',
'abilityTreeNodes' => ['FEATUREliveK6LRQR'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'The ID of the task. Call the [CreateRtcAsrTask](~~2848217~~) operation to obtain the task ID.', 'type' => 'string', 'required' => true, 'example' => 'asr-51c72******', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'Description' => ['description' => 'The description of the result. If the value is \\`success\\`, the operation is successful. Otherwise, an error message is returned.', 'type' => 'string', 'example' => 'success', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '85F94125-B695-1FB8-A7E7-3BE7CE******', 'title' => ''],
'RetCode' => ['description' => 'The status code. A value of \\`2000\\` indicates that the operation is successful. Other values indicate that an error occurred.', 'type' => 'integer', 'format' => 'int64', 'example' => '2000', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ConfigNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Configuration does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => 'error on the live liveapi server.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DeleteRtcAsrTask',
'description' => 'The call frequency for this API is limited to 20 queries per second (QPS) per user. If you exceed this limit, your API calls are throttled. This may impact your business. Plan your calls accordingly.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteRtcAsrTask'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:DeleteRtcAsrTask',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Description\\": \\"success\\",\\n \\"RequestId\\": \\"85F94125-B695-1FB8-A7E7-3BE7CE******\\",\\n \\"RetCode\\": 2000\\n}","type":"json"}]',
],
'DeleteRtcMPUEventSub' => [
'summary' => 'Deletes a subscription to mixed-stream relay events.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '219225',
'abilityTreeNodes' => ['FEATUREliveK6LRQR'],
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the application.'."\n"
."\n"
.'> The ID can be up to 64 characters in length and can contain letters, digits, underscores (\\_), and hyphens (-).', 'type' => 'string', 'required' => true, 'example' => 'yourAppId', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => '%s.', 'description' => 'Parameter verification failed'],
['errorCode' => 'InvalidAppId', 'errorMessage' => '%s, please check and try again later.', 'description' => 'AppId is invalid, please check and try again.'],
['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is missing, please check and try again.'],
],
403 => [
['errorCode' => 'OperationDenied', 'errorMessage' => 'Your account has not enabled the Live service', 'description' => ''],
['errorCode' => 'Forbidden', 'errorMessage' => '%s, please check and try again later.', 'description' => 'No permission, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'InternalError', 'description' => ''],
],
],
'title' => 'DeleteRtcMPUEventSub',
'description' => '- You can call this operation to delete a subscription to mixed-stream relay events.'."\n"
."\n"
.'- Before you call this operation, make sure that you have called the CreateRtcMPUEventSub operation to create the subscription.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation. For more information, see [QPS limits](~~343507~~).',
'changeSet' => [
['createdAt' => '2024-07-04T06:14:36.000Z', 'description' => 'Error codes changed'],
],
'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' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","type":"json"}]',
],
'DeleteSnapshotCallbackAuth' => [
'summary' => 'Deletes the authentication configuration for snapshot callbacks.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveMH1XD3'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.aliyundoc.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD5', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is missing, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => 'error on the live liveapi server.'],
],
],
'title' => 'DeleteSnapshotCallbackAuth',
'description' => 'After the deletion, callbacks for new streams will no longer be authenticated.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 30 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteSnapshotCallbackAuth',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD5\\"\\n}","type":"json"}]',
],
'DeleteSnapshotFiles' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveMH1XD3'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CreateTimestampList',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'A list of timestamps of the snapshots to delete.',
'type' => 'array',
'items' => ['description' => 'The timestamp, in milliseconds, when the snapshot to delete was generated.'."\n"
."\n"
.'You can obtain this value from the CreateTimestamp parameter in the response of the [DescribeLiveStreamSnapshotInfo](~~2847902~~) operation.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1653641526637', 'title' => ''],
'required' => true,
'example' => '1653641526637',
'maxItems' => 200,
'title' => '',
],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The AppName of the live stream.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The stream name.', 'type' => 'string', 'required' => true, 'example' => 'liveStream****', 'title' => ''],
],
[
'name' => 'RemoveFile',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to also delete the snapshot files from OSS. Valid values:'."\n"
."\n"
.'- **true**: Deletes.'."\n"
."\n"
.'- **false**: Does not delete.'."\n"
."\n"
.'> To delete files from OSS, you must have the required permissions for OSS file operations.', 'type' => 'boolean', 'required' => true, 'example' => 'true', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'FailureCount' => ['description' => 'The number of snapshots that failed to be deleted.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '90F60327-ABEC-5A93-BF1F-****', 'title' => ''],
'SnapshotDeleteInfoList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'SnapshotDeleteInfo' => [
'itemNode' => true,
'description' => 'The snapshot deletion details.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'The snapshot deletion details.',
'type' => 'object',
'properties' => [
'CreateTimestamp' => ['description' => 'The timestamp, in milliseconds, of the snapshot that you requested to delete.', 'type' => 'integer', 'format' => 'int64', 'example' => '1653641526637', 'title' => ''],
'Message' => ['description' => 'The result of the deletion operation for each snapshot. Valid values:'."\n"
."\n"
.'- **OK**: The snapshot was deleted.'."\n"
."\n"
.'- **FileNotFound**: The snapshot file was not found.', 'type' => 'string', 'example' => 'OK', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'SuccessCount' => ['description' => 'The number of snapshots that were deleted.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParams', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is invalid, please check and try again.'],
['errorCode' => 'Cannot find task', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Task does not exist, please check and try again.'],
['errorCode' => 'MissingParams', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is missing, please check and try again.'],
],
403 => [
['errorCode' => 'OSSAccessDenied', 'errorMessage' => 'OSS bucket not authorised', 'description' => ''],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'Server internal error', 'description' => ''],
],
],
'title' => 'DeleteSnapshotFiles',
'summary' => 'Deletes specified snapshot files.',
'description' => 'This operation supports deleting snapshot files generated within a year.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 30 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '|HttpCode|Error code|Error message|Description|'."\n"
.'|---|---|---|---|'."\n"
.'|400|InvalidParams|invalid JSON|The request failed to be parsed.|'."\n"
.'|400|Cannot find task|Stream not found|The stream was not found. Check the snapshot settings such as the domain name and application name and the stream ingest status.|'."\n"
.'|400|InvalidParams|Invalid request: missing|The required parameters are missing.|'."\n"
.'|403|OSSAccessDenied|OSS bucket not authorised|You do not have the permissions on the OSS bucket where the snapshot files are stored.|'."\n"
.'|500|InternalError|Server internal error|An internal error occurred. Check the snapshot settings such as the domain name and application name and the stream ingest status.|',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteSnapshotFiles',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DeleteStudioLayout' => [
'summary' => 'Deletes a layout in a virtual studio.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you created the production studio by calling the [CreateCaster](~~2848009~~) operation, use the CasterId value returned in the response.'."\n"
."\n"
.'- If you created the production studio in the ApsaraVideo Live console, choose **ApsaraVideo Live console** > **Production Studio** > **Cloud Production Studio** to view the ID.'."\n"
."\n"
.'> The name of the production studio in the list is its ID.', 'type' => 'string', 'required' => true, 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****', 'title' => ''],
],
[
'name' => 'LayoutId',
'in' => 'query',
'schema' => ['description' => 'The layout ID. If you added the layout to the production studio by calling the [AddStudioLayout](~~2848062~~) operation, use the LayoutId value returned in the response.', 'type' => 'string', 'required' => true, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5c6a2a0d-f228-4a64-af62-20e9*****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidLayoutId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The LayoutId is invalid, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidLayout.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'LayoutId does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'DeleteStudioLayout',
'description' => 'You can call this operation to delete a layout from a production studio. You can delete only one layout in each call.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 10 calls per second for each user. If the number of calls per second exceeds the limit, throttling is triggered. This may affect your business. Plan your calls accordingly.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteStudioLayout'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteStudioLayout',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e9*****\\"\\n}","type":"json"}]',
],
'DescribeAutoShowListTasks' => [
'summary' => 'Queries scheduled tasks for automatic start and stop.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio whose scheduled tasks you want to query.'."\n"
."\n"
.'> If you create a scheduled task by calling the [InitializeAutoShowListTask](~~2848056~~) operation, use the CasterId value returned by that operation. If you leave this parameter empty, all scheduled tasks under your account are queried by default.', 'type' => 'string', 'required' => false, 'example' => '53200b81-b761-4c10-842a-a0726d97****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'AutoShowListTasks' => ['description' => 'The list of scheduled tasks. The list contains the following parameters:'."\n"
."\n"
.'- Status: The status of the task. A value of 0 indicates that the task is paused. A value of 1 indicates that the task is started.'."\n"
."\n"
.'- LiveTemplate: The list of transcoding configurations.'."\n"
."\n"
.'- TranscodeConfig: The resolution for transcoding the pulled stream.'."\n"
."\n"
.'- CasterId: The ID of the production studio.', 'type' => 'string', 'example' => '{"Status":0,"TranscodeConfig":{"CasterTemplate":"lp_hd", "LiveTemplate":["lhd","lsd"]}, "CasterId":"cce04ef3-2226-4865-8704-f84b8375****"}', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'InvalidVodUrl.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter VodUrl is invalid, please check and try again.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidShowList.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'ShowList does not exist, please check and try again.'],
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'DescribeAutoShowListTasks',
'description' => 'This operation queries information about scheduled tasks for automatic start and stop. When you call this operation, ensure that the parameters meet the requirements.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'A single user can make a maximum of 10 queries per second (QPS). If you exceed this limit, API calls are throttled. This may affect your business. Therefore, call this operation at a reasonable rate.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeAutoShowListTasks',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeCasterChannels' => [
'summary' => 'This operation queries the channels of a production studio.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you call the [CreateCaster](~~2848009~~) operation to create a production studio, use the CasterId returned in the response.'."\n"
."\n"
.'- If you create a production studio in the ApsaraVideo Live console, go to the **ApsaraVideo Live console** > **Production Studio** > **Cloud Production Studio** page to view the ID.'."\n"
."\n"
.'> The name of a production studio in the list on the Cloud Production Studio page is the ID of the production studio.', 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'Channels' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Channel' => [
'itemNode' => true,
'description' => 'The list of channels.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'The list of channels.',
'type' => 'object',
'properties' => [
'ChannelId' => ['description' => 'The ID of the channel slot used in the layout. You can set a maximum of one video source for each slot. The ID must be in the format of RV01 to RV12.'."\n"
."\n"
.'The ID of the channel that is used in the layout. You can set a maximum of one video source for each slot. The ID must be in the format of RV01 to RV12.', 'type' => 'string', 'example' => 'RV01', 'title' => ''],
'FaceBeauty' => ['description' => 'The retouching settings. Valid values: 0 (whole), 1 (skin smoothing), 2 (skin whitening), 3 (dark circle removal), and 4 (nasolabial fold removal).', 'type' => 'string', 'example' => '0', 'title' => ''],
'ResourceId' => ['description' => 'The ID of the video source.', 'type' => 'string', 'example' => '87642866-281E-4AEA-9582-B124879****', 'title' => ''],
'RtmpUrl' => ['description' => 'The RTMP URL.', 'type' => 'string', 'example' => 'rtmp://demo.aliyundoc.com/caster/rtmperf?auth_key=****', 'title' => ''],
'StreamUrl' => ['description' => 'The output URL of the channel.', 'type' => 'string', 'example' => 'http://demo.aliyundoc.com/caster/streamwsx.flv?auth_key=YYYYY', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '83C52866-281E-4AEA-9582-B124********', 'title' => ''],
'Total' => ['description' => 'The total number of entries.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidDomainName.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Domain name does not exist, please check and try again.'],
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'DescribeCasterChannels',
'description' => 'After you create a production studio by calling the [CreateCaster](~~2848009~~) operation, you can call this operation to query its channels.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'This operation is limited to 15 queries per second (QPS) for each user. If you exceed this limit, API calls are throttled, which can affect your business. We recommend that you call this operation at a reasonable rate.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeCasterChannels',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeCasterComponents' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you created the production studio by calling the [CreateCaster](~~2848009~~) operation, obtain the ID from the CasterId parameter in the response.'."\n"
."\n"
.'- If you created the production studio in the LIVE console, go to the Cloud Production Studio page by choosing **LIVE Console** > **Production Studio** > **Cloud Production Studio**.'."\n"
."\n"
.'> The name of the production studio in the list on the Cloud Production Studio page is the production studio ID.', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', 'title' => ''],
],
[
'name' => 'ComponentId',
'in' => 'query',
'schema' => ['description' => 'The component ID. If you added the component by calling the [AddCasterComponent](~~2848030~~) operation, obtain the ID from the ComponentId parameter in the response.', 'type' => 'string', 'required' => false, 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'Components' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Component' => [
'itemNode' => true,
'description' => 'The list of components.',
'title' => '',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'CaptionLayerContent' => [
'description' => 'The properties of the caption element.',
'type' => 'object',
'properties' => [
'BorderColor' => ['description' => 'The color of the text border.'."\n"
."\n"
.'Valid values: 0x000000 to **0xffffff**. The default value is an empty string (""), which means this parameter is not used.', 'type' => 'string', 'example' => '0x000000', 'title' => ''],
'BorderWidthNormalized' => ['description' => 'The normalized width of the text border. The value is calculated based on the font size: BorderWidth/FontSize.'."\n"
."\n"
.'If the calculated value exceeds **16**, the value **16** is used. Default value: **0**.', 'type' => 'number', 'format' => 'float', 'example' => '0', 'title' => ''],
'Color' => ['description' => 'The color of the text. Valid values: 0x000000 to **0xffffff**.', 'type' => 'string', 'example' => '0x000000', 'title' => ''],
'FontName' => ['description' => 'The font. The value must be a preset value. Valid values:'."\n"
."\n"
.'- **KaiTi**: KaiTi'."\n"
."\n"
.'- **AlibabaPuHuiTi-Regular**: Alibaba PuHuiTi Regular'."\n"
."\n"
.'- **AlibabaPuHuiTi-Bold**: Alibaba PuHuiTi Bold'."\n"
."\n"
.'- **NAlibabaPuHuiTi-Light**: Alibaba PuHuiTi Light'."\n"
."\n"
.'- **NotoSansHans-Regular**: Noto Sans CJK Regular'."\n"
."\n"
.'- **NotoSansHans-Bold**: Noto Sans CJK Bold'."\n"
."\n"
.'- **NotoSansHans-Light**: Noto Sans CJK Light'."\n"
."\n"
.'Default value: **KaiTi**.', 'type' => 'string', 'example' => 'KaiTi', 'title' => ''],
'LineSpaceNormalized' => ['description' => 'The line spacing. This parameter specifies the space between two lines of text. Default value: 0.', 'type' => 'number', 'format' => 'float', 'example' => '0', 'title' => ''],
'LocationId' => ['description' => 'If the component type is caption, this parameter specifies the location of the referenced video source (the channel ID).', 'type' => 'string', 'example' => 'RV01', 'title' => ''],
'PtsOffset' => ['description' => 'The value used to correct the drift between the presentation timestamp (PTS) of the caption and the PTS of the audio.'."\n"
."\n"
.'Valid values: -10000 to **+10000**. Default value: **0**.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'ShowSourceLan' => ['description' => 'Specifies whether to display the source language. Valid values:'."\n"
."\n"
.'- **true**: The source language is displayed.'."\n"
."\n"
.'- **false** (default): The source language is not displayed.', 'type' => 'boolean', 'example' => 'false', 'title' => ''],
'SizeNormalized' => ['description' => 'The normalized font size. The font size is set to `[font_size,output_height]`.'."\n"
."\n"
.'If the calculated font size is greater than **1024**, the value **1024** is used. The default value is **-1**, which means this parameter is not used.', 'type' => 'number', 'format' => 'float', 'example' => '0.1', 'title' => ''],
'SourceLan' => ['description' => 'The source language of the video source audio. Valid values:'."\n"
."\n"
.'- **en**: English'."\n"
."\n"
.'- **cn** (default): Chinese'."\n"
."\n"
.'- **es**: Spanish'."\n"
."\n"
.'- **ru**: Russian', 'type' => 'string', 'example' => 'cn', 'title' => ''],
'TargetLan' => ['description' => 'The target language of the video source audio. Valid values:'."\n"
."\n"
.'- **en**: English'."\n"
."\n"
.'- **cn** (default): Chinese'."\n"
."\n"
.'- **es**: Spanish'."\n"
."\n"
.'- **ru**: Russian', 'type' => 'string', 'example' => 'cn', 'title' => ''],
'WordCountPerLine' => ['description' => 'The maximum number of characters to display per line.', 'type' => 'integer', 'format' => 'int32', 'example' => '15', 'title' => ''],
'WordSpaceNormalized' => ['description' => 'The character spacing. This parameter specifies the space between two characters. Default value: **0**.', 'type' => 'number', 'format' => 'float', 'example' => '0', 'title' => ''],
'WordsCount' => ['description' => 'The number of characters to display. You can adjust this value along with the font size.'."\n"
."\n"
.'Valid values: 10 to **50**. Default value: **35**.', 'type' => 'integer', 'format' => 'int32', 'example' => '35', 'title' => ''],
],
'title' => '',
'example' => '',
],
'ComponentId' => ['description' => 'The component ID.', 'type' => 'string', 'example' => '72d2ec7a-4cd7-4a01-974b-7cd53947****', 'title' => ''],
'ComponentLayer' => [
'description' => 'The size, layout, and other information of the component layer.',
'type' => 'object',
'properties' => [
'HeightNormalized' => ['description' => 'The normalized height of the layer element. The width of the element is scaled proportionally based on this height.'."\n"
."\n"
.'The default value is **0**, which means the element is displayed in its original size.', 'type' => 'number', 'format' => 'float', 'example' => '0.5', 'title' => ''],
'PositionNormalizeds' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Position' => [
'description' => 'The normalized coordinates of the layer element, in the format `[x,y]`. Default value: `[0,0]`.'."\n"
."\n"
.'> The values of x and y must be normalized.',
'title' => '',
'type' => 'array',
'items' => ['description' => 'The value.', 'type' => 'number', 'format' => 'float', 'example' => '0.3', 'title' => ''],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'PositionRefer' => ['description' => 'The reference point for the element\'s position. Valid values:'."\n"
."\n"
.'- **topLeft** (default): The top-left corner.'."\n"
."\n"
.'- **topRight**: The top-right corner.'."\n"
."\n"
.'- **bottomLeft**: The bottom-left corner.'."\n"
."\n"
.'- **bottomRight**: The bottom-right corner.', 'type' => 'string', 'example' => 'topLeft', 'title' => ''],
'Transparency' => ['description' => 'The transparency of the layer. Valid values: 0 to 255.'."\n"
."\n"
.'A value of **0** indicates that the layer is fully transparent. A value of **255** (default) indicates that the layer is fully opaque.', 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''],
'WidthNormalized' => ['description' => 'The normalized width of the layer element. The height of the element is scaled proportionally based on this width. The default value is **0**, which means the element is displayed in its original size.'."\n"
."\n"
.'> This parameter conflicts with HeightNormalized. If both are set, only HeightNormalized takes effect. If you set only one, the value set later overrides the previous one.', 'type' => 'number', 'format' => 'float', 'example' => '0.5', 'title' => ''],
],
'title' => '',
'example' => '',
],
'ComponentName' => ['description' => 'The component name. The default value is the component ID.', 'type' => 'string', 'example' => 'component_name', 'title' => ''],
'ComponentType' => ['description' => 'The component type. Valid values:'."\n"
."\n"
.'- **text**: Text component.'."\n"
."\n"
.'- **image**: Image component.'."\n"
."\n"
.'- **caption**: Translated caption component.', 'type' => 'string', 'example' => 'text', 'title' => ''],
'Effect' => ['description' => 'The display effect of the component. Valid values:'."\n"
."\n"
.'- **none**: No effect.'."\n"
."\n"
.'- **animateH**: Horizontal scroll.'."\n"
."\n"
.'- **animateV**: Vertical scroll.', 'type' => 'string', 'example' => 'animateV', 'title' => ''],
'ImageLayerContent' => [
'description' => 'The properties of the image element.',
'type' => 'object',
'properties' => [
'MaterialId' => ['description' => 'The ID of the media asset.', 'type' => 'string', 'example' => '6cf724c6ebfd4a59b5b3cec6f10d****', 'title' => ''],
],
'title' => '',
'example' => '',
],
'LocationId' => ['description' => 'The position of the component.'."\n"
."\n"
.'You can set only one component for each position. The format must be "RC01" to "RC12".', 'type' => 'string', 'example' => 'RC01', 'title' => ''],
'TextLayerContent' => [
'description' => 'The properties of the text element.',
'type' => 'object',
'properties' => [
'BorderColor' => ['description' => 'The color of the text border. Valid values: **0x000000** to **0xffffff**. The default value is an empty string (""), which means this parameter is not used.', 'type' => 'string', 'example' => '0x000000', 'title' => ''],
'BorderWidthNormalized' => ['description' => 'The normalized width of the text border. The value is calculated based on the font size: **BorderWidth/FontSize**.'."\n"
."\n"
.'If the calculated value exceeds **16**, the value **16** is used. Default value: **0**.', 'type' => 'number', 'format' => 'float', 'example' => '0', 'title' => ''],
'Color' => ['description' => 'The color of the text. Valid values: 0x000000 to **0xffffff**.', 'type' => 'string', 'example' => '0xff0000', 'title' => ''],
'FontName' => ['description' => 'The font. The value must be a preset value. Valid values:'."\n"
."\n"
.'- **KaiTi**: KaiTi'."\n"
."\n"
.'- **AlibabaPuHuiTi-Regular**: Alibaba PuHuiTi Regular'."\n"
."\n"
.'- **AlibabaPuHuiTi-Bold**: Alibaba PuHuiTi Bold'."\n"
."\n"
.'- **NAlibabaPuHuiTi-Light**: Alibaba PuHuiTi Light'."\n"
."\n"
.'- **NotoSansHans-Regular**: Noto Sans CJK Regular'."\n"
."\n"
.'- **NotoSansHans-Bold**: Noto Sans CJK Bold'."\n"
."\n"
.'- **NotoSansHans-Light**: Noto Sans CJK Light'."\n"
."\n"
.'Default value: **KaiTi**.', 'type' => 'string', 'example' => 'KaiTi', 'title' => ''],
'SizeNormalized' => ['description' => 'The normalized font size.'."\n"
."\n"
.'The size is set to **font\\_size/output\\_height**. If the calculated font size is greater than **1024**, the value **1024** is used. The default value is **-1**, which means this parameter is not used.', 'type' => 'number', 'format' => 'float', 'example' => '16', 'title' => ''],
'Text' => ['description' => 'The text content.', 'type' => 'string', 'example' => 'hello world', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '3be7ade8-d907-483c-b24a-0dad45******', 'title' => ''],
'Total' => ['description' => 'The total number of records.', 'type' => 'integer', 'format' => 'int32', 'example' => '3', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'DescribeCasterComponents',
'summary' => 'Queries the list of components for a production studio.',
'description' => 'Call the [AddCasterComponent](~~2848030~~) operation to add components to a production studio. You can then call this operation to query the list of components.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 15. If you exceed the limit, API calls are throttled. This may affect your business, so ensure that you call this operation within the limit.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeCasterComponents',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeCasterConfig' => [
'summary' => 'Queries the configuration of a production studio.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '106967',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you create the production studio by calling the [CreateCaster](~~2848009~~) operation, use the CasterId value that is returned in the response.'."\n"
."\n"
.'- If you create the production studio in the console, go to the **LIVE console** > **Production Studio** > **Cloud Production Studio** page to view the ID.'."\n"
."\n"
.'> The name of the production studio in the list on the Cloud Production Studio page is the production studio ID.', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The configuration of the production studio.',
'type' => 'object',
'properties' => [
'AutoSwitchUrgentConfig' => ['description' => 'The configuration for the automatic switchover to the standby video. `eofThres`: The duration in seconds after which the system automatically switches to the standby video if the stream is interrupted.', 'type' => 'string', 'example' => '{"eofThres":3}', 'title' => ''],
'AutoSwitchUrgentOn' => ['description' => 'Indicates whether automatic switchover to the standby video is enabled.'."\n"
."\n"
.'- **true**: Enabled.'."\n"
."\n"
.'- **false**: Disabled.', 'type' => 'string', 'example' => 'true', 'title' => ''],
'CallbackUrl' => ['description' => 'The webhook address.', 'type' => 'string', 'example' => 'http://learn.aliyundoc.com/callBackLive', 'title' => ''],
'CasterId' => ['description' => 'The ID of the production studio.', 'type' => 'string', 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', 'title' => ''],
'CasterName' => ['description' => 'The name of the production studio.', 'type' => 'string', 'example' => 'coco-caster10', 'title' => ''],
'ChannelEnable' => ['description' => 'Indicates whether the channel is enabled. Valid values:'."\n"
."\n"
.'- **0**: Disabled.'."\n"
."\n"
.'- **1**: Enabled.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'Delay' => ['description' => 'The stream delay. Unit: seconds.'."\n"
."\n"
.'- **0**: Delay is disabled.'."\n"
."\n"
.'- A value greater than **0**: Delay is enabled.', 'type' => 'number', 'format' => 'float', 'example' => '0', 'title' => ''],
'DomainName' => ['description' => 'The streaming domain.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'ProgramEffect' => ['description' => 'The carousel flag. Valid values:'."\n"
."\n"
.'- **0**: Not effective.'."\n"
."\n"
.'- **1**: Effective.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'ProgramName' => ['description' => 'The name of the carousel.', 'type' => 'string', 'example' => 'program_name', 'title' => ''],
'RecordConfig' => [
'description' => 'If this parameter is empty, the recording feature is disabled.',
'type' => 'object',
'properties' => [
'OnDemand' => ['description' => 'On-demand recording. Valid values:'."\n"
."\n"
.'- 0: Disabled.'."\n"
."\n"
.'- 1: HTTP callback.'."\n"
."\n"
.'- 2: On-demand recording based on stream ingest parameters.'."\n"
."\n"
.'- 7: Recording is disabled by default.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'OssBucket' => ['description' => 'The storage location.', 'type' => 'string', 'example' => 'liveBucket****', 'title' => ''],
'OssEndpoint' => ['description' => 'The OSS endpoint where the storage location resides.', 'type' => 'string', 'example' => 'oss-cn-shanghai.aliyundoc.com', 'title' => ''],
'RecordFormat' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'RecordFormat' => [
'itemNode' => true,
'description' => 'The recording format configuration.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'The recording length information.',
'type' => 'object',
'properties' => [
'CycleDuration' => ['description' => 'The recording length.', 'type' => 'integer', 'format' => 'int32', 'example' => '3600', 'title' => ''],
'Format' => ['description' => 'The recording format.', 'type' => 'string', 'example' => 'M3U8', 'title' => ''],
'OssObjectPrefix' => ['description' => 'The name of the recording file.', 'type' => 'string', 'example' => 'record/{liveApp****}/{liveStream****}', 'title' => ''],
'SliceOssObjectPrefix' => ['description' => 'The name of the segment.', 'type' => 'string', 'example' => 'record/{liveApp****}/{liveStream****}/{UnixTimestamp****}', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '97df6b7f-3490-47d2-ac50-8833e1b64597', 'title' => ''],
'SideOutputUrl' => ['description' => 'The custom bypass output URL of the production studio.', 'type' => 'string', 'example' => 'rtmp://sophon-developer.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-ac8c628078541d7055a170ec59a5****', 'title' => ''],
'SideOutputUrlList' => ['description' => 'The list of custom bypass output URLs for the production studio.', 'type' => 'string', 'example' => '["rtmp://domain/app1/stream1","rtmp://domain/app2/stream2"]', 'title' => ''],
'SyncGroupsConfig' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'SyncGroup' => [
'itemNode' => true,
'description' => 'The storage configuration.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'The storage configuration.',
'type' => 'object',
'properties' => [
'HostResourceId' => ['description' => 'The resource ID of the production studio.', 'type' => 'string', 'example' => '28768383240243****', 'title' => ''],
'Mode' => ['description' => 'The caching mode for static pages. Valid values:'."\n"
."\n"
.'- 0: Standard mode.'."\n"
."\n"
.'- 1: Strong Mode.'."\n"
."\n"
.'- 2: No caching.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'ResourceIds' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'ResourceId' => [
'description' => 'The list of IDs of the cloud resources whose resource group you want to change. You can specify from 1 to 50 resource IDs.',
'title' => '',
'type' => 'array',
'items' => ['description' => 'The list of IDs of the cloud resources whose resource group you want to change. You can specify from 1 to 50 resource IDs.', 'type' => 'string', 'example' => '1', 'title' => ''],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'TranscodeConfig' => [
'description' => 'The transcoding configuration.',
'type' => 'object',
'properties' => [
'CasterTemplate' => ['description' => 'The transcoding template for the production studio. Valid values:'."\n"
."\n"
.'- **lp\\_ld**: Low definition.'."\n"
."\n"
.'- **lp\\_sd**: Standard definition.'."\n"
."\n"
.'- **lp\\_hd**: High definition.'."\n"
."\n"
.'- **lp\\_ud**: Ultra-high definition.'."\n"
."\n"
.'- **lp\\_ld\\_v**: Vertical low definition.'."\n"
."\n"
.'- **lp\\_sd\\_v**: Vertical standard definition.'."\n"
."\n"
.'- **lp\\_hd\\_v**: Vertical high definition.'."\n"
."\n"
.'- **lp\\_ud\\_v**: Vertical ultra-high definition.', 'type' => 'string', 'example' => 'lp_hd', 'title' => ''],
'LiveTemplateIds' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'LocationId' => [
'itemNode' => true,
'description' => 'The live stream transcoding configuration.',
'title' => '',
'type' => 'array',
'items' => ['description' => 'The live stream transcoding configuration. Valid values:'."\n"
."\n"
.'- **lsd**: Standard definition.'."\n"
."\n"
.'- **lld**: Low definition.'."\n"
."\n"
.'- **lud**: Ultra-high definition.'."\n"
."\n"
.'- **lhd**: High-definition adaptive transcoding template.'."\n"
."\n"
.'- **daobo-lsd**: Standard definition.'."\n"
."\n"
.'- **daobo-lld**: Low definition.'."\n"
."\n"
.'- **daobo-lud**: Ultra-high definition.'."\n"
."\n"
.'- **daobo-lhd**: High definition.', 'type' => 'string', 'example' => 'lld', 'title' => ''],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'CustomParams' => [
'description' => 'Custom configuration',
'type' => 'object',
'properties' => [
'video' => [
'description' => 'Video parameters',
'type' => 'object',
'properties' => [
'fps' => ['description' => 'Video frame rate', 'type' => 'integer', 'format' => 'int32', 'example' => '300', 'title' => ''],
'bitrate' => ['description' => 'Video bitrate', 'type' => 'integer', 'format' => 'int32', 'example' => '300', 'title' => ''],
'width' => ['description' => 'The video width in pixels (px).', 'type' => 'integer', 'format' => 'int32', 'example' => '1080', 'title' => ''],
'height' => ['description' => 'The video height in pixels (px).', 'type' => 'integer', 'format' => 'int32', 'example' => '720', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'UrgentImageId' => ['description' => 'The ID of the standby image asset in the media asset library.', 'type' => 'string', 'example' => 'a089175eb5f4427684fc0715159a****', 'title' => ''],
'UrgentImageUrl' => ['description' => 'The URL of the standby image asset.', 'type' => 'string', 'example' => 'http://learn.aliyundoc.com/AppName/image.jpg', 'title' => ''],
'UrgentLiveStreamUrl' => ['description' => 'The URL of the standby live stream.', 'type' => 'string', 'example' => 'rtmp://demo.aliyundoc.com', 'title' => ''],
'UrgentMaterialId' => ['description' => 'The ID of the standby video asset in the media asset library.', 'type' => 'string', 'example' => '98646538-bcf9-4aef-bd4a-e6bb76588****', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'DescribeCasterConfig',
'description' => 'Call the [CreateCaster](~~2848009~~) operation to create a production studio. Then, call this operation to query its configuration.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'This operation has a queries per second (QPS) limit of 15 calls per user. If you exceed the limit, your API calls are throttled, which can affect your business. Plan your calls accordingly.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2024-12-12T09:10:34.000Z', 'description' => 'Response parameters changed'],
['createdAt' => '2023-11-22T01:24:18.000Z', 'description' => 'Response parameters changed'],
['createdAt' => '2023-03-31T08:26:53.000Z', 'description' => 'Response parameters changed'],
['createdAt' => '2023-03-07T02:04:50.000Z', 'description' => 'Response parameters changed'],
],
'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' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeCasterLayouts' => [
'summary' => 'Queries the layouts of a production studio.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you created the production studio by calling the [CreateCaster](~~2848009~~) operation, use the CasterId value returned in the response.'."\n"
."\n"
.'- If you created the production studio in the LIVE console, find the ID on the **Production Studio** > **Cloud Production Studio** page.'."\n"
."\n"
.'> The name of the production studio in the list on the Cloud Production Studio page is the production studio ID.', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', 'title' => ''],
],
[
'name' => 'LayoutId',
'in' => 'query',
'schema' => ['description' => 'The layout ID.'."\n"
."\n"
.'If you do not provide a value for LayoutId, all layouts of the production studio are returned.', 'type' => 'string', 'required' => false, 'example' => '72d2ec7a-4cd7-4a01-974b-7cd53947****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'Layouts' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Layout' => [
'itemNode' => true,
'description' => 'The layout list.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'The layout list.',
'type' => 'object',
'properties' => [
'AudioLayers' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'AudioLayer' => [
'description' => 'The list of AudioLayer configurations.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'The list of AudioLayer configurations.',
'type' => 'object',
'properties' => [
'FixedDelayDuration' => ['description' => 'The fixed latency for the audio. This can be used for caption synchronization.'."\n"
."\n"
.'Unit: milliseconds (ms). Default value: 0. Valid values: **0** to **5000**.', 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''],
'ValidChannel' => ['description' => 'The sound channels that can be used for audio input. Valid values:'."\n"
."\n"
.'- **leftChannel**: The left sound channel.'."\n"
."\n"
.'- **rightChannel**: The right sound channel.'."\n"
."\n"
.'- **all** (default): Both sound channels.', 'type' => 'string', 'example' => 'all', 'title' => ''],
'VolumeRate' => ['description' => 'The volume rate. A value of 1 indicates the original volume.'."\n"
."\n"
.'> The default value is **0**. This displays the element in its original size.', 'type' => 'number', 'format' => 'float', 'example' => '1', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'BlendList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'LocationId' => [
'description' => 'The list of associated positions. The order is the same as that of VideoLayers.',
'title' => '',
'type' => 'array',
'items' => ['description' => 'The position ID.', 'type' => 'string', 'example' => 'RV01', 'title' => ''],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'LayoutId' => ['description' => 'The layout ID.', 'type' => 'string', 'example' => '72d2ec7a-4cd7-4a01-974b-7cd53947****', 'title' => ''],
'MixList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'LocationId' => [
'description' => 'The list of associated positions. The order is the same as that of AudioLayers.',
'title' => '',
'type' => 'array',
'items' => ['description' => 'The position ID.', 'type' => 'string', 'example' => 'RV01', 'title' => ''],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'VideoLayers' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'VideoLayer' => [
'description' => 'The list of VideoLayer configurations. The default array sequence is used.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'The list of VideoLayer configurations. The default array sequence is used.',
'type' => 'object',
'properties' => [
'FillMode' => ['description' => 'The fill mode of the element. Valid values:'."\n"
."\n"
.'- **none** (default): No fill. The layer is configured based on the video frame.'."\n"
."\n"
.'- **fit**: Fit. The layer is configured based on the fill area. The video frame is scaled with its original aspect ratio to fit the longer edge of the fill area and is centered. If the aspect ratio of the fill area is different from that of the video frame, the layer below is displayed in the unfilled areas. If no layer is configured below, the background is black.', 'type' => 'string', 'example' => 'fit', 'title' => ''],
'FixedDelayDuration' => ['description' => 'The fixed latency set for the video. This can be used for caption synchronization.'."\n"
."\n"
.'Unit: milliseconds (ms). Default value: 0. Valid values: **0** to **5000**.', 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''],
'HeightNormalized' => ['description' => 'The normalized height of the layer element.'."\n"
."\n"
.'- If the fill mode is none, the width of the element is scaled proportionally based on this height. The default value is **0**, which means the video is displayed in its original size.'."\n"
."\n"
.'- If the fill mode is fit, this parameter is required and must be greater than **0**. It represents the normalized height of the fill area.', 'type' => 'number', 'format' => 'float', 'example' => '0.5', 'title' => ''],
'PositionNormalizeds' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Position' => [
'description' => 'The normalized position of the layer element in the format `[x,y]`. The default value is `[0,0]`.'."\n"
."\n"
.'> The x and y coordinates must be normalized.',
'title' => '',
'type' => 'array',
'items' => ['description' => 'The value.', 'type' => 'number', 'format' => 'float', 'example' => '0', 'title' => ''],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'PositionRefer' => ['description' => 'The reference point for the element\'s position. Valid values:'."\n"
."\n"
.'- **topLeft** (default): Top left.'."\n"
."\n"
.'- **topRight**: Top right.'."\n"
."\n"
.'- **bottomLeft**: Bottom left.'."\n"
."\n"
.'- **bottomRight**: Bottom right.'."\n"
."\n"
.'- **center**: Center.'."\n"
."\n"
.'- **topCenter**: Top center.'."\n"
."\n"
.'- **bottomCenter**: Bottom center.'."\n"
."\n"
.'- **leftCenter**: Left center.'."\n"
."\n"
.'- **rightCenter**: Right center.', 'type' => 'string', 'example' => 'topLeft', 'title' => ''],
'WidthNormalized' => ['description' => 'The normalized width of the layer element.'."\n"
."\n"
.'- If the fill mode is none, the height of the element is scaled proportionally based on this width. The default value is **0**, which means the video is displayed in its original size.'."\n"
."\n"
.'- If the fill mode is fit, this parameter is required and must be greater than **0**. It represents the normalized width of the fill area.', 'type' => 'number', 'format' => 'float', 'example' => '0.5', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '3be7ade8-d907-483c-b24a-0dad45****', 'title' => ''],
'Total' => ['description' => 'The total number of records.', 'type' => 'integer', 'format' => 'int32', 'example' => '3', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'DescribeCasterLayouts',
'description' => 'You can call this API operation to query the layouts of a production studio. If you do not specify a layout ID, all layouts of the studio are returned.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for this API operation is 15 calls per second for each user. If you exceed this limit, API calls are throttled. This can affect your business, so you should call this API operation at a reasonable rate.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeCasterLayouts',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeCasterProgram' => [
'summary' => 'Queries the program list of a production studio.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The ID of the region.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you create a production studio by calling the [CreateCaster](~~2848009~~) operation, use the CasterId value that is returned in the response.'."\n"
."\n"
.'- If you create a production studio in the LIVE console, find the ID on the Cloud Production Studio page. To go to this page, choose **LIVE** > **Production Studio** > **Cloud Production Studio**.'."\n"
."\n"
.'> The name of the production studio in the list on the Cloud Production Studio page is its ID.', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', 'title' => ''],
],
[
'name' => 'EpisodeId',
'in' => 'query',
'schema' => ['description' => 'The ID of the program.', 'type' => 'string', 'required' => false, 'example' => '1872639A-F203-4EC5-8E43-CB92E68F****', 'title' => ''],
],
[
'name' => 'EpisodeType',
'in' => 'query',
'schema' => ['description' => 'The type of the node. Valid values:'."\n"
."\n"
.'- **Resource**: video source.'."\n"
."\n"
.'- **Component**: component.', 'type' => 'string', 'required' => false, 'example' => 'Resource', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time. The time must be in the *yyyy-MM-dd*T*HH:mm:ss*Z format and in UTC.', 'type' => 'string', 'required' => false, 'example' => '2016-06-29T09:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. The time must be in the *yyyy-MM-dd*T*HH:mm:ss*Z format and in UTC.', 'type' => 'string', 'required' => false, 'example' => '2016-06-29T10:00:00Z', 'title' => ''],
],
[
'name' => 'PageNum',
'in' => 'query',
'schema' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '5', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of programs on each page.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''],
],
[
'name' => 'Status',
'in' => 'query',
'schema' => ['description' => 'The status of the program. Valid values:'."\n"
."\n"
.'- **0**: not started'."\n"
."\n"
.'- **1**: playing'."\n"
."\n"
.'- **2**: finished', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'CasterId' => ['description' => 'The ID of the production studio.', 'type' => 'string', 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', 'title' => ''],
'Episodes' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Episode' => [
'itemNode' => true,
'description' => 'The nodes.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'A node.',
'type' => 'object',
'properties' => [
'ComponentIds' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'ComponentId' => [
'description' => 'The component IDs.',
'title' => '',
'type' => 'array',
'items' => ['description' => 'A component ID.', 'type' => 'string', 'example' => '["1872639A-F203-4EC5-8E43-CB929282****" ]', 'title' => ''],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'EndTime' => ['description' => 'The end time. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format and in UTC.', 'type' => 'string', 'example' => '2016-06-29T10:02:00Z', 'title' => ''],
'EpisodeId' => ['description' => 'The ID of the program.', 'type' => 'string', 'example' => '1872639A-F203-4EC5-8E43-CB92E68F****', 'title' => ''],
'EpisodeName' => ['description' => 'The name of the program.', 'type' => 'string', 'example' => 'program_name_1', 'title' => ''],
'EpisodeType' => ['description' => 'The type of the node. Valid values:'."\n"
."\n"
.'- **Resource**: video source.'."\n"
."\n"
.'- **Component**: component.', 'type' => 'string', 'example' => 'Resource', 'title' => ''],
'ResourceId' => ['description' => 'The ID of the video source.', 'type' => 'string', 'example' => '1872639A-F203-4EC5-8E43-CB92E837****', 'title' => ''],
'StartTime' => ['description' => 'The start time. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format and in UTC.', 'type' => 'string', 'example' => '2016-06-29T09:00:00Z', 'title' => ''],
'Status' => ['description' => 'The status of the program.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'SwitchType' => ['description' => 'The switch policy. Valid values:'."\n"
."\n"
.'- **TimeFirst**: time-priority. Live programs can use only this policy.'."\n"
."\n"
.'- **ContentFirst**: content-priority.', 'type' => 'string', 'example' => 'TimeFirst', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'ProgramEffect' => ['description' => 'Indicates whether the program list is enabled.'."\n"
."\n"
.'- **0**: disabled'."\n"
."\n"
.'- **1**: enabled', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'ProgramName' => ['description' => 'The name of the program list.', 'type' => 'string', 'example' => 'programs_name', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
'Total' => ['description' => 'The total number of entries returned.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidPageSize.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter PageSize is invalid, please check and try again.'],
['errorCode' => 'InvalidPageNum.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter PageNum is invalid, please check and try again.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
['errorCode' => 'InvalidParameter.Status', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter Status is invalid, please check and try again.'],
],
],
'title' => 'DescribeCasterProgram',
'description' => 'You can call this operation to query the program list of a production studio. This operation supports video source and component nodes.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 4 calls per second. If the limit is exceeded, API calls are throttled. This may affect your business. Plan your calls accordingly.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '4', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeCasterProgram'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeCasterProgram',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeCasterSceneAudio' => [
'summary' => 'Queries the audio configuration of a scenario.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you create a production studio by calling the [CreateCaster](~~2848009~~) operation, obtain the value of CasterId from the response.'."\n"
."\n"
.'- If you create a production studio in the ApsaraVideo Live console, view the ID on the **Production Studio** > **Cloud Production Studio** page.'."\n"
."\n"
.'> The name of a production studio in the list on the Cloud Production Studio page is the ID of the production studio.', 'type' => 'string', 'required' => true, 'example' => '97df6b7f-3490-47d2-ac50-88338765****', 'title' => ''],
],
[
'name' => 'SceneId',
'in' => 'query',
'schema' => ['description' => 'The ID of the scenario.', 'type' => 'string', 'required' => true, 'example' => '97df6b7f-3490-47d2-ac50-88339087****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'AudioLayers' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'AudioLayer' => [
'itemNode' => true,
'description' => 'The list of audio layer configurations.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'The list of audio layer configurations.',
'type' => 'object',
'properties' => [
'FixedDelayDuration' => ['description' => 'The fixed latency. Unit: milliseconds (ms).', 'type' => 'integer', 'format' => 'int32', 'example' => '2000', 'title' => ''],
'ValidChannel' => ['description' => 'The sound channel type. Valid values:'."\n"
."\n"
.'- **left**: left sound channel.'."\n"
."\n"
.'- **right**: right sound channel.'."\n"
."\n"
.'- **all** (default): stereo.', 'type' => 'string', 'example' => 'all', 'title' => ''],
'VolumeRate' => ['description' => 'The audio volume.', 'type' => 'number', 'format' => 'float', 'example' => '1', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'CasterId' => ['description' => 'The ID of the production studio. This ID can be used as a request parameter to start the production studio scenario.', 'type' => 'string', 'example' => '97df6b7f-3490-47d2-ac50-88338765****', 'title' => ''],
'FollowEnable' => ['description' => 'Specifies whether to enable audio follow. By default, audio follow is enabled.'."\n"
."\n"
.'- **0**: mix mode.'."\n"
."\n"
.'- **1**: audio-follows-video mode.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'MixList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'LocationId' => [
'itemNode' => true,
'description' => 'The list of associated locations. The order of locations is the same as the order of audio layers.',
'title' => '',
'type' => 'array',
'items' => ['description' => 'The location ID.', 'type' => 'string', 'example' => 'RV01', 'title' => ''],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '98745637-3490-47d2-ac50-883387567098', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidScene.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'DescribeCasterSceneAudio',
'description' => 'Before you call this operation, you must create a production studio by calling the [CreateCaster](~~2848009~~) operation.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 15 calls per second. API calls that exceed this limit are throttled, which may affect your business. Plan your calls accordingly.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeCasterSceneAudio',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeCasterScenes' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you create a production studio by calling the [CreateCaster](~~2848009~~) operation, use the CasterId value returned in the response.'."\n"
."\n"
.'- If you create a production studio in the ApsaraVideo Live console, find the ID on the **Production Studio** > **Cloud Production Studio** page.'."\n"
."\n"
.'> The name of the production studio in the list on the Cloud Production Studio page is its ID.', 'type' => 'string', 'required' => true, 'example' => '80787064-1c94-4dc1-85ce-9409960a****', 'title' => ''],
],
[
'name' => 'SceneId',
'in' => 'query',
'schema' => ['description' => 'The scene ID.', 'type' => 'string', 'required' => false, 'example' => 'b5f8c837-ceeb-424f-b30b-68e94e86****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1*****', 'title' => ''],
'SceneList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Scene' => [
'itemNode' => true,
'description' => 'The list of scene information.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'The list of scene information.',
'type' => 'object',
'properties' => [
'ComponentIds' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'componentId' => [
'description' => 'The list of component IDs.',
'title' => '',
'type' => 'array',
'items' => ['description' => 'The list of component IDs.', 'type' => 'string', 'example' => '["1506396160-0-0-7de771a77102680861853af862d5****"]', 'title' => ''],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'LayoutId' => ['description' => 'The layout ID.', 'type' => 'string', 'example' => '37cb2f8b-f152-4338-b928-6704f71d****', 'title' => ''],
'OutputType' => ['description' => 'Indicates whether the scene is the one being streamed. Valid values:'."\n"
."\n"
.'- **0**: The scene is used for preview.'."\n"
."\n"
.'- **1**: The scene is being streamed.', 'type' => 'string', 'example' => '0', 'title' => ''],
'SceneId' => ['description' => 'The scene ID. You can use this ID as a request parameter to update the audio configuration of a scene, query the audio configuration of a scene, start a scene, or stop a scene.', 'type' => 'string', 'example' => 'b5f8c837-ceeb-424f-b30b-68e94e86****', 'title' => ''],
'SceneName' => ['description' => 'The scene name.', 'type' => 'string', 'example' => 'scene1', 'title' => ''],
'Status' => ['description' => 'The status of the scene. Valid values:'."\n"
."\n"
.'- **0**: disabled.'."\n"
."\n"
.'- **1**: enabled.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'StreamInfos' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'StreamInfo' => [
'description' => 'The list of playback URLs.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'The list of playback URLs.',
'type' => 'object',
'properties' => [
'OutputStreamUrl' => ['description' => 'The playback URL.', 'type' => 'string', 'example' => 'http://live/caster/example.net', 'title' => ''],
'TranscodeConfig' => ['description' => 'The transcoding configuration. Valid values:'."\n"
."\n"
.'- **sd**: standard definition.'."\n"
."\n"
.'- **lld**: low definition.'."\n"
."\n"
.'- **lud**: ultra-high definition.'."\n"
."\n"
.'- **lhd**: high definition.', 'type' => 'string', 'example' => 'lld', 'title' => ''],
'VideoFormat' => ['description' => 'The format. Valid values:'."\n"
."\n"
.'- **flv**'."\n"
."\n"
.'- **mp4**'."\n"
."\n"
.'- **m3u8**', 'type' => 'string', 'example' => 'flv', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'StreamUrl' => ['description' => 'The output stream URL.', 'type' => 'string', 'example' => 'rtmp://developer.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-ac8c628078541d7055a170ec59a5****', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'Total' => ['description' => 'The total number of records.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'InvalidSceneId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter SceneId is invalid, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidDomainName.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Domain name does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'DescribeCasterScenes',
'summary' => 'Queries the scenes for a production studio.',
'description' => 'After you create a production studio by calling the [CreateCaster](~~2848009~~) operation, you can call this operation to query the scenes for the production studio.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 15 calls per second. If you exceed this limit, your API calls are throttled. Throttling may affect your business. Plan your calls accordingly.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeCasterScenes'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeCasterScenes',
'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-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}","type":"json"}]',
],
'DescribeCasterStreamUrl' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The ID of the region.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio. Make sure that the CasterId is correct.'."\n"
."\n"
.'- If you create a production studio by calling the [CreateCaster](~~2848009~~) operation, obtain the ID from the CasterId parameter in the response.'."\n"
."\n"
.'- If you create a production studio in the ApsaraVideo Live console, go to the **ApsaraVideo Live console** and choose **Production Studio** > **Cloud Production Studio** to view the ID.'."\n"
."\n"
.'> The name of a production studio in the list on the Cloud Production Studio page is its ID.', 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'CasterId' => ['description' => 'The ID of the production studio.', 'type' => 'string', 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
'CasterStreams' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'CasterStream' => [
'itemNode' => true,
'description' => 'A list of production studio streams.',
'title' => '',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'OutputType' => ['description' => 'Indicates whether the stream is for final output.'."\n"
."\n"
.'- **0**: The stream is for preview.'."\n"
."\n"
.'- **1**: The stream is for final output.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'RtmpUrl' => ['description' => 'The RTMP URL.', 'type' => 'string', 'example' => 'rtmp://live/caster/example.edu', 'title' => ''],
'SceneId' => ['description' => 'The ID of the scenario.', 'type' => 'string', 'example' => '23ca74e0-aca3-4e7a-8561-9d96f525****', 'title' => ''],
'StreamInfos' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'StreamInfo' => [
'description' => 'A list of playback URLs.',
'title' => '',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'OutputStreamUrl' => ['description' => 'The playback URL.', 'type' => 'string', 'example' => 'http://out/caster/example.net', 'title' => ''],
'TranscodeConfig' => ['description' => 'The transcoding configuration. Valid values:'."\n"
."\n"
.'- **lsd**: standard definition'."\n"
."\n"
.'- **lld**: low definition'."\n"
."\n"
.'- **lud**: ultra-high definition'."\n"
."\n"
.'- **lhd**: high definition', 'type' => 'string', 'example' => 'lld', 'title' => ''],
'VideoFormat' => ['description' => 'The format. Valid values:'."\n"
."\n"
.'- **flv**'."\n"
."\n"
.'- **rtmp**'."\n"
."\n"
.'- **m3u8**'."\n"
."\n"
.'- **artc**'."\n"
."\n"
.'> The streaming domain for the production studio must have the Real-Time Streaming (RTS) feature enabled to return a URL that uses the ARTC protocol. For more information about how to enable the feature, see [Enable Real-Time Streaming (RTS)](~~427722~~).', 'type' => 'string', 'example' => 'flv', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'StreamUrl' => ['description' => 'The output stream URL.', 'type' => 'string', 'example' => 'http://live/caster/example.org', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E6******', 'title' => ''],
'Total' => ['description' => 'The total number of entries.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidScene.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene does not exist, please check and try again.'],
['errorCode' => 'InvalidDomainName.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Domain name does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'DescribeCasterStreamUrl',
'summary' => 'Queries the stream URL of a production studio.',
'description' => 'Before you call this operation, call the [CreateCaster](~~2848009~~) operation to create a production studio. If a production studio has not been created, the InvalidScene.NotFound error is returned.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 5 for each user. Calls that exceed this limit are throttled. This may affect your business. Plan your calls accordingly.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeCasterStreamUrl',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeCasterVideoResources' => [
'summary' => 'Queries the video sources of a production studio.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The ID of the region.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you create the production studio by calling the [CreateCaster](~~2848009~~) operation, use the value of CasterId that is returned.'."\n"
."\n"
.'- If you create the production studio in the LIVE console, go to the Cloud Production Studio page to view the ID. To go to the page, choose **LIVE Console** > **Production Studio** > **Cloud Production Studio**.'."\n"
."\n"
.'> The name of the production studio in the list on the Cloud Production Studio page is the production studio ID.', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7', 'title' => ''],
'Total' => ['description' => 'The total number of records.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''],
'VideoResources' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'VideoResource' => [
'itemNode' => true,
'description' => 'A list of resources.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'A list of resources.',
'type' => 'object',
'properties' => [
'BeginOffset' => ['description' => 'The start offset of the video file. This parameter is valid only for video files. Unit: milliseconds.'."\n"
."\n"
.'**Greater than 0**: The read operation starts from a point in time that is relative to the first frame.', 'type' => 'integer', 'format' => 'int32', 'example' => '1000', 'title' => ''],
'EndOffset' => ['description' => 'The end offset of the video file. This parameter is valid only for video files. Unit: milliseconds.'."\n"
."\n"
.'- Greater than **0**: The read operation ends at a point in time that is relative to the first frame.'."\n"
."\n"
.'- Less than **0**: The read operation ends at a point in time that is relative to the last frame.', 'type' => 'integer', 'format' => 'int32', 'example' => '10000', 'title' => ''],
'FlvUrl' => ['description' => 'The stream pulling URL.', 'type' => 'string', 'example' => 'http://guide.aliyundoc.com/example.org', 'title' => ''],
'ImageId' => ['description' => 'The ID of the image in the material library.', 'type' => 'string', 'example' => 'a089175eb5f4427684fc0715159a****', 'title' => ''],
'ImageUrl' => ['description' => 'The URL of the image.', 'type' => 'string', 'example' => 'http://learn.aliyundoc.com/AppName/image.jpg', 'title' => ''],
'LiveStreamUrl' => ['description' => 'The URL of the live stream.', 'type' => 'string', 'example' => 'rtmp://abcLive/appName/b5447c21fcfe444c9e9b6f7ba208****', 'title' => ''],
'LocationId' => ['description' => 'The location of the video source.', 'type' => 'string', 'example' => 'RV01', 'title' => ''],
'MaterialId' => ['description' => 'The ID of the material.', 'type' => 'string', 'example' => 'd2c429cd907742ee8f6e76465ad3****', 'title' => ''],
'PtsCallbackInterval' => ['description' => 'The callback interval for video-on-demand files. If this parameter is set to 0, no callbacks are sent.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'RepeatNum' => ['description' => 'This parameter is valid only for video files. It specifies the number of times the video is replayed after the playback is complete.'."\n"
."\n"
.'- **0** (default): The video is not replayed.'."\n"
."\n"
.'- **-1**: The video is replayed in a loop.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'ResourceId' => ['description' => 'The ID of the resource.', 'type' => 'string', 'example' => 'b5f8c837-ceeb-424f-b30b-68e94e86****', 'title' => ''],
'ResourceName' => ['description' => 'The name of the resource.', 'type' => 'string', 'example' => 'resource-Name1', 'title' => ''],
'VodUrl' => ['description' => 'The URL of the video-on-demand file.'."\n"
."\n"
.'This parameter is used only when the resource is a video file that is not imported to the material library. The video file must be in the MP4, FLV, or TS format.', 'type' => 'string', 'example' => 'http://developer.aliyundoc.com/caster1.flv', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'DescribeCasterVideoResources',
'description' => 'Call the [CreateCaster](~~2848009~~) operation to create a production studio. You can then call this operation to query the video sources of the production studio.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'This operation is limited to 15 queries per second (QPS) for each user. If you exceed this limit, your API calls are throttled. Throttling may affect your business. We recommend that you call this operation at a reasonable rate.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2023-03-31T08:26:53.000Z', 'description' => 'Response parameters changed'],
],
'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' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeCasters' => [
'summary' => 'Queries the list of production studios.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '106972',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The production studio ID.'."\n"
."\n"
.'- If you created the production studio by calling the [CreateCaster operation](~~2848012~~), check the CasterId parameter returned by the CreateCaster operation.'."\n"
."\n"
.'- If you created the production studio in the ApsaraVideo Live console, go to **ApsaraVideo Live console > Production Studios > Cloud Production Studio** to view the ID.'."\n"
."\n"
.'> - The production studio name in the production studio list on the Cloud Production Studio page is the production studio ID.'."\n"
.'> - If this parameter is left empty, the merged data of all production studios is returned by default.', 'type' => 'string', 'required' => false, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', 'title' => ''],
],
[
'name' => 'CasterName',
'in' => 'query',
'schema' => ['description' => 'The name of the production studio.', 'type' => 'string', 'required' => false, 'example' => 'liveCaster****', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'required' => false, 'example' => '2016-06-29T09:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'required' => false, 'example' => '2016-06-29T11:00:00Z', 'title' => ''],
],
[
'name' => 'PageNum',
'in' => 'query',
'schema' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries per page. Default value: 100.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100', 'title' => ''],
],
[
'name' => 'Status',
'in' => 'query',
'schema' => ['description' => 'The status. Valid values:'."\n"
."\n"
.'- 0: idle. '."\n"
."\n"
.'- 1: streaming.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
],
[
'name' => 'ChargeType',
'in' => 'query',
'schema' => ['description' => 'The billing method. Valid values:'."\n"
."\n"
.'- 0: PrePaid (subscription).'."\n"
."\n"
.'- 1: PostPaid (pay-as-you-go).', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
],
[
'name' => 'OrderByModifyAsc',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to sort the production studios in ascending order by modification time.'."\n"
."\n"
.'Valid values: true (ascending order by modification time) | false (descending order by modification time, which is the default value).'."\n"
."\n"
.'> If this parameter is not specified, the default value is "false".', 'type' => 'string', 'required' => false, 'example' => 'false', 'title' => ''],
],
[
'name' => 'NormType',
'in' => 'query',
'schema' => ['description' => 'The specification type of the production studio. Valid values:'."\n"
."\n"
.'- 1: general mode.'."\n"
."\n"
.'- 3: lightweight playlist mode.'."\n"
."\n"
.'- 4: virtual studio mode.'."\n"
."\n"
.'- 6: playlist mode (new playlist mode production studio).', 'type' => 'string', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'ResourceGroupId',
'in' => 'query',
'schema' => ['description' => 'The resource group ID. For more information about resource groups, see [What is a resource group](~~2381067~~).', 'type' => 'string', 'required' => false, 'example' => 'rg-aekzw******', 'title' => ''],
],
[
'name' => 'Tag',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The list of tags.',
'type' => 'array',
'items' => [
'description' => 'The list of tags.',
'type' => 'object',
'properties' => [
'Key' => ['description' => 'The tag key.', 'type' => 'string', 'required' => false, 'example' => 'TestKey', 'title' => ''],
'Value' => ['description' => 'The tag value.', 'type' => 'string', 'required' => false, 'example' => 'TestValue', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 100,
'title' => '',
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The query result of the production studio list.',
'type' => 'object',
'properties' => [
'CasterList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Caster' => [
'description' => 'The list of production studios.',
'type' => 'array',
'items' => [
'description' => 'The production studio information.',
'type' => 'object',
'properties' => [
'CasterId' => ['description' => 'The production studio ID. This ID can be used as a request parameter for querying production studio stream URLs, starting a production studio, adding video resources to a production studio, adding layouts to a production studio, querying the layout list of a production studio, adding components to a production studio, and adding a program list to a production studio.', 'type' => 'string', 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', 'title' => ''],
'CasterName' => ['description' => 'The name of the production studio.', 'type' => 'string', 'example' => 'liveCaster****', 'title' => ''],
'CasterTemplate' => ['description' => 'The resolution configuration of the production studio. This parameter is required when the billing method is subscription. '."\n"
."\n"
.'- lp_ld: low definition.'."\n"
."\n"
.'- lp_sd: standard definition.'."\n"
."\n"
.'- lp_hd: high definition.'."\n"
."\n"
.'- lp_ud: ultra-high definition.'."\n"
."\n"
.'- lp_ld_v: portrait low definition.'."\n"
."\n"
.'- lp_sd_v: portrait standard definition.'."\n"
."\n"
.'- lp_hd_v: portrait high definition.'."\n"
."\n"
.'- lp_ud_v: portrait ultra-high definition.', 'type' => 'string', 'example' => 'lp_ld', 'title' => ''],
'ChannelEnable' => ['description' => 'Indicates whether Channel is enabled.'."\n"
."\n"
.'- 0: disabled.'."\n"
."\n"
.'- 1: enabled.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'ChargeType' => ['description' => 'The billing method. '."\n"
."\n"
.'- PrePaid: subscription.'."\n"
."\n"
.'- PostPaid: pay-as-you-go.', 'type' => 'string', 'example' => 'PrePaid', 'title' => ''],
'CreateTime' => ['description' => 'The creation time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'example' => '2017-08-30T12:02:57Z', 'title' => ''],
'Duration' => ['description' => 'The duration. Format: hh:mm:ss (hours:minutes:seconds).', 'type' => 'string', 'example' => '1:02:33', 'title' => ''],
'ExpireTime' => ['description' => 'The expiration time of the production studio. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'example' => '2018-08-30T12:02:57Z', 'title' => ''],
'LastModified' => ['description' => 'The time when the production studio was last modified. For example, the time when the production studio was recently started, stopped, or had its configuration modified. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'example' => '2021-12-01T05:08:45Z', 'title' => ''],
'NormType' => ['description' => 'The specification type of the production studio. Valid values: '."\n"
."\n"
.'- 0: playlist mode.'."\n"
."\n"
.'- 1: general mode.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'PurchaseTime' => ['description' => 'The time when the production studio was purchased. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'example' => '2017-08-30T12:02:57Z', 'title' => ''],
'StartTime' => ['description' => 'The time when the production studio was started. This parameter is returned only when the production studio is in the streaming state. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'example' => '2017-08-30T18:02:57Z', 'title' => ''],
'Status' => ['description' => 'The status. Valid values:'."\n"
."\n"
.'- 0: idle.'."\n"
."\n"
.'- 1: streaming.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'ClientTokenId' => ['description' => 'The request token generated by the user to ensure the idempotence of the request. The value of this parameter is custom but must be unique across different requests. The maximum length is 64 ASCII characters.', 'type' => 'string', 'example' => '53200b81-b761-4c10-842a-a0726d97****'."\n", 'title' => ''],
'Tags' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'tag' => [
'description' => 'The list of tags.',
'type' => 'array',
'items' => [
'description' => 'The tag.',
'type' => 'object',
'properties' => [
'TagKey' => ['description' => 'The tag key.', 'type' => 'string', 'example' => 'TestKey', 'title' => ''],
'TagValue' => ['description' => 'The tag value.', 'type' => 'string', 'example' => 'TestValue', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'ResourceGroupId' => ['description' => 'The resource group ID. For more information about resource groups, see [What is a resource group](~~2381067~~).', 'type' => 'string', 'example' => 'rg-acfmz******', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5c6a2a0df228-4a64- af62-20e91b******', 'title' => ''],
'Total' => ['description' => 'The total number of production studios.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'InvalidParameter.Status', 'errorMessage' => '%s, please check and try again.', 'description' => 'Status is invalid, please check and try again.'],
['errorCode' => 'InvalidParameter.StartTime', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter StartTime is invalid, please check and try again.'],
['errorCode' => 'InvalidParameter.EndTime', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter EndTime is invalid, please check and try again.'],
['errorCode' => 'LiveServiceNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The live service is not enabled. Please check and try again.'],
['errorCode' => 'InvalidParameter.PageSize', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter PageSize is invalid, please check and try again.'],
['errorCode' => 'InvalidParameter.PageNum', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter PageNum is invalid, please check and try again.'],
],
403 => [
['errorCode' => 'PermissionDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Access denied, please check and try again.'],
],
],
'eventInfo' => [
'enable' => false,
'eventNames' => [],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query production studio list',
'description' => 'Create a production studio by calling the CreateCaster operation, and then call this operation to query the list of production studios. A production studio can be in the idle or streaming state.'."\n"
."\n"
.'> '."\n"
.'> - The account that calls this operation must have [ApsaraVideo Live activated](https://live.console.aliyun.com/#/overview).'."\n"
."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this operation is 15 calls per second. If this limit is exceeded, the API calls are throttled, which may affect your business. Call this operation as needed.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2024-09-27T02:16:13.000Z', 'description' => 'Request parameters changed, Response parameters changed'],
['createdAt' => '2024-08-21T03:33:21.000Z', 'description' => 'Error codes changed, Request parameters changed, Response parameters changed'],
],
'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' => [
'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' => 'The ID of the application. You can specify only one application ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'aec****', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'The ID of the channel. You can specify only one channel ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'testId', 'title' => ''],
],
[
'name' => 'PageNum',
'in' => 'query',
'schema' => ['description' => 'The number of the page to return. Default value: 1.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries to return on each page. Default value: 10.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''],
],
[
'name' => 'Order',
'in' => 'query',
'schema' => ['description' => 'The sort order. Valid values:'."\n"
."\n"
.'* **asc**: ascending order.'."\n"
.'* **desc**: descending order. This is the default value.'."\n", 'type' => 'string', 'required' => false, 'example' => 'asc', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Schema of Response'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '6159ba01-6687-4fb2-a831-f0cd8d1******'],
'Times' => ['description' => 'The time elapsed until the result was returned. Unit: seconds. The value is a UNIX timestamp.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1557909133', 'title' => ''],
'TotalNum' => ['description' => 'The number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '3', 'title' => ''],
'TotalPage' => ['title' => '', 'description' => 'The page number of the returned page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1'],
'UserList' => [
'description' => 'The list of user IDs.'."\n",
'type' => 'array',
'items' => ['description' => 'The IDs of the users in the channel. Multiple user IDs are separated by commas (,).', 'type' => 'string', 'example' => '27f9****,bb87****,df82****', 'title' => ''],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DescribeChannelParticipants',
'summary' => 'Queries online users in a channel.'."\n",
'description' => 'You can call this operation to query online users in a channel. The returned result does not include details about the users.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 100 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n",
'changeSet' => [
['createdAt' => '2024-06-13T01:19:46.000Z', 'description' => 'Response parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeChannelParticipants'],
],
],
'ramActions' => [
[
'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' => 'Queries the details of online users in a channel.'."\n",
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. You can specify only one application ID in a request.'."\n", 'type' => 'string', 'required' => true, 'example' => 'aec****', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'The channel ID. You can specify only one channel ID in a request.'."\n", 'type' => 'string', 'required' => true, 'example' => 'testId', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Schema of Response'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'AD86847D-1F36-18C8-A995-5EEA34******', 'title' => ''],
'Timestamp' => ['description' => 'The UTC timestamp when the response is returned.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1691027655', 'title' => ''],
'IsChannelExists' => ['description' => 'Indicates whether the channel exists. Valid values:'."\n"
."\n"
.'* **true**'."\n"
.'* **false**'."\n"
."\n"
.'> After all users leave the channel, the system requires a few seconds to clear the cache. If you call the operation during this period, the value of this parameter is true, and the value of InteractiveUserNumber and LiveUserNumber is 0.'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''],
'InteractiveUserNumber' => ['description' => 'The number of co-streamers.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'LiveUserNumber' => ['description' => 'The number of viewers.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'InteractiveUserList' => [
'description' => 'The list of streamers/co-streamers.'."\n",
'type' => 'array',
'items' => ['description' => 'Interactive user list.', 'type' => 'string', 'example' => 'aaa', 'title' => ''],
'title' => '',
'example' => '',
],
'LiveUserList' => [
'description' => 'The list of viewers.'."\n",
'type' => 'array',
'items' => ['description' => 'Viewer list, up to 1000 people returned.', 'type' => 'string', 'example' => 'bbb', 'title' => ''],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => '400', 'errorMessage' => 'InvalidInput', 'description' => ''],
],
[
['errorCode' => '401', 'errorMessage' => 'InvalidAuth', 'description' => ''],
],
404 => [
['errorCode' => '404', 'errorMessage' => 'AppOrChannelNotExists', 'description' => ''],
],
500 => [
['errorCode' => '500', 'errorMessage' => 'SystemError, Please Check App And Channel Exists, RETRY', 'description' => ''],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DescribeChannelUsers',
'description' => 'You can call this operation to query information about online users in a channel, such as the total number of users during live streaming.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 100 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n",
'changeSet' => [
['createdAt' => '2023-08-31T01:48:03.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [],
],
'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' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '106980',
'abilityTreeNodes' => ['FEATURElive9P39J9'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The ID of the region.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The live streaming domain name.'."\n"
."\n"
.'- You can query a single domain name or multiple domain names. To query multiple domain names, separate them with commas (,).'."\n"
."\n"
.'- If you leave this parameter empty, the operation returns the merged data for all your live streaming domain names.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.', 'type' => 'string', 'required' => true, 'example' => '2015-12-10T20:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. Specify the time in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.'."\n"
."\n"
.'The end time must be later than the start time. The time range cannot exceed **31** days.', 'type' => 'string', 'required' => true, 'example' => '2015-12-10T21:00:00Z', 'title' => ''],
],
[
'name' => 'Type',
'in' => 'query',
'schema' => [
'description' => 'The type of usage data to query.'."\n"
."\n"
.'If **Field** is set to **bps** or **traf**, valid values are:'."\n"
."\n"
.'- **rts**: Real-Time Streaming (RTS) bandwidth or traffic.'."\n"
."\n"
.'- **quic**: QUIC bandwidth or traffic.'."\n"
."\n"
.'If **Field** is set to **req\\_traf** or **req\\_bps**, valid values are:'."\n"
."\n"
.'- **push**: Stream ingest bandwidth or traffic.'."\n"
."\n"
.'- **push\\_proxy**: Relayed stream ingest bandwidth or traffic.',
'type' => 'string',
'required' => false,
'default' => 'all',
'enum' => ['static', 'dynamic', 'quic', 'rts', 'push', 'normal', 'all', 'push_proxy'],
'example' => 'all',
'title' => '',
],
],
[
'name' => 'Field',
'in' => 'query',
'schema' => ['description' => 'The type of usage data to query. Valid values:'."\n"
."\n"
.'- **bps**: Playback bandwidth.'."\n"
."\n"
.'- **traf**: Traffic.'."\n"
."\n"
.'- req\\_traf: Stream ingest traffic if Type is set to push, or relayed stream ingest traffic if Type is set to **push\\_proxy**.'."\n"
."\n"
.'- req\\_bps: Stream ingest bandwidth if Type is set to push, or relayed stream ingest bandwidth if Type is set to **push\\_proxy**.', 'type' => 'string', 'required' => true, 'example' => 'traf', 'title' => ''],
],
[
'name' => 'Area',
'in' => 'query',
'schema' => ['description' => 'The region. Valid values:'."\n"
."\n"
.'- **CN**: The Chinese mainland.'."\n"
."\n"
.'- **OverSeas**: Regions outside the Chinese mainland.'."\n"
."\n"
.'- **AP1**: Asia Pacific 1.'."\n"
."\n"
.'- **AP2**: Asia Pacific 2.'."\n"
."\n"
.'- **AP3**: Asia Pacific 3.'."\n"
."\n"
.'- **NA**: North America.'."\n"
."\n"
.'- **SA**: South America.'."\n"
."\n"
.'- **EU**: Europe.'."\n"
."\n"
.'- **MEAA**: Middle East and Africa.'."\n"
."\n"
.'- **all**: All regions.'."\n"
."\n"
.'> If you do not specify this parameter, the default value is CN. The regions are defined as follows:Asia Pacific 1: Hong Kong (China), Macao (China), Taiwan (China), Japan, and Southeast Asian countries excluding Vietnam and Indonesia.Asia Pacific 2: Indonesia, South Korea, and Vietnam.Asia Pacific 3: Australia and New Zealand.North America: United States and Canada.South America: Brazil.Europe: Ukraine, United Kingdom, France, Netherlands, Spain, Italy, Sweden, and Germany.Middle East and Africa: South Africa, Oman, United Arab Emirates, and Kuwait.', 'type' => 'string', 'required' => false, 'default' => 'CN', 'example' => 'CN', 'title' => ''],
],
[
'name' => 'DataProtocol',
'in' => 'query',
'schema' => ['description' => 'The protocol of the data to query. Valid values:'."\n"
."\n"
.'- **http**: HTTP.'."\n"
."\n"
.'- **https**: HTTPS.'."\n"
."\n"
.'- **quic**: QUIC.'."\n"
."\n"
.'- **all** (default): All of the preceding protocols.', 'type' => 'string', 'required' => false, 'default' => 'all', 'example' => 'all', 'title' => ''],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => ['description' => 'The time granularity of the data to query, in seconds. This forces the operation to return data with a specific granularity. Valid values: **300** (5 minutes), **3600** (1 hour), and **86400** (1 day).', 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'EndTime' => ['description' => 'The end of the time range. The time is in UTC and the format is *yyyy-MM-dd*T*HH:mm:ss*Z.', 'type' => 'string', 'example' => '2015-12-10T21:00Z', 'title' => ''],
'Type' => ['description' => 'The type of usage data.', 'type' => 'string', 'example' => 'all', 'title' => ''],
'StartTime' => ['description' => 'The start of the time range. The time is in UTC and the format is *yyyy-MM-dd*T*HH:mm:ss*Z.', 'type' => 'string', 'example' => '2015-12-10T20:00Z', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', 'title' => ''],
'Area' => ['description' => 'The usage region.', 'type' => 'string', 'example' => 'CN', 'title' => ''],
'DomainName' => ['description' => 'The live streaming domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'DataInterval' => ['description' => 'The time interval between data records, in seconds.', 'type' => 'string', 'example' => '300', 'title' => ''],
'UsageDataPerInterval' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DataModule' => [
'itemNode' => true,
'description' => 'The usage data for each record.',
'title' => '',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Value' => ['description' => 'The usage value.'."\n"
."\n"
.'- If Field is set to traf or req\\_traf, the unit is bytes.'."\n"
."\n"
.'- If Field is set to bps or req\\_bps, the unit is bps.'."\n"
."\n"
.'- If Field is set to acc, the unit is counts.', 'type' => 'string', 'example' => '423304182', 'title' => ''],
'TimeStamp' => ['description' => 'The start time of the time slice. The time is in UTC and the format is *yyyy-MM-dd*T*HH:mm:ss*Z.', 'type' => 'string', 'example' => '2015-12-10T20:00:00Z', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvaildParameter', 'errorMessage' => 'Invalid Parameter', 'description' => 'Invalid request parameter.'],
['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' => 'The value specified for the StartTime parameter is invalid.'],
['errorCode' => 'InvalidTime.Malformed', 'errorMessage' => 'Specified Time is malformed.', 'description' => 'Invalid time. Check whether the time that you specified is correct.'],
['errorCode' => 'InvalidParameterField', 'errorMessage' => 'The specified Field is invalid.', 'description' => 'The Field parameter is set to an invalid value.'],
['errorCode' => 'InvalidParameterType', 'errorMessage' => 'The specified Type is invalid.', 'description' => 'The Type parameter is set to an invalid value.'],
['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => 'The end time does not match the start time. Make sure that the start and end times match.'],
['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => 'The time span exceeds the limit. Please refer to the API documentation to specify a reasonable time span.'],
],
],
'title' => 'DescribeDomainUsageData',
'summary' => 'Call the DescribeDomainUsageData operation to query usage data for one or more domain names in a specific billing region.',
'description' => '- This operation supports batch queries for domain names. To query multiple domain names, separate them with commas (,). You can query up to 100 domain names at a time. If you do not specify the DomainName parameter, the operation returns data for all domain names that are associated with your account.'."\n"
."\n"
.'- Usage data includes traffic, bandwidth, and the number of requests. The units are bytes, bps, and counts, respectively.'."\n"
."\n"
.'- If you do not specify the Interval parameter, you can query data that was generated within the last year. The maximum time range for a single query is 31 days. If the time range is from 1 to 3 days, data is returned with hourly granularity. If the time range is longer than 3 days, data is returned with daily granularity.'."\n"
."\n"
.'- If you specify the Interval parameter, the maximum time range for a single query, the queryable historical data range, and the data latency are as follows:'."\n"
."\n"
.'| Time granularity | Maximum time range for a single query | Queryable historical data range | Data latency |'."\n"
.'| ---------------- | ------------------------------------- | ------------------------------- | ----------------------- |'."\n"
.'| 5 minutes | 3 days | 93 days | 15 minutes |'."\n"
.'| 1 hour | 31 days | 186 days | 4 hours |'."\n"
.'| 1 day | 90 days | 366 days | 4:00 AM on the next day |'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 10. If you exceed this limit, API calls are throttled. This may affect your business. Plan your calls accordingly.',
'requestParamsDescription' => '> When you query data for a specific time T, the stable data for that time becomes available two hours later. '."\n"
.'> For example, if you query data for 1:00 PM on December 21, you can retrieve stable data for 1:00 PM and earlier at 3:00 PM on December 21.',
'responseParamsDescription' => '\\## Special error codes | Error code | Error message | HTTP status code | Description | | --- | --- | --- | --- | | Throttling | Request denied due to throttling. | 503 | The request was denied because the request rate exceeded the allowed limit. | | IllegalOperation | Operation not permitted for this domain. | 403 | The specified domain name is invalid. | | OperationDenied | ApsaraVideo Live is not activated. | 403 | ApsaraVideo Live is not activated for your account. | | OperationDenied | Your ApsaraVideo Live service is suspended. | 403 | Your ApsaraVideo Live service is suspended. | | InvalidDomain.NotFound | The specified domain was not found. | 404 | The specified domain name does not exist or does not belong to your account. | | InvalidDomain.Offline | The specified domain is disabled. | 404 | The specified domain name is disabled. | | ServiceBusy | The domain is being configured. Try again later. | 403 | The specified domain name is being configured. You can try again later. | | InvalidDomain.Configure\\_failed | Failed to configure the domain. | 500 | Configuration of the specified domain name failed. | | InvalidParameter | Invalid parameter. | 400 | One or more parameters are invalid. | | InvalidParameterProduct | Invalid Product parameter. | 400 | The value of the Product parameter is invalid. | | InvalidParameterArea | Invalid Area parameter. | 400 | The value of the Area parameter is invalid. | | InvalidParameterField | Invalid Field parameter. | 400 | The value of the Field parameter is invalid. | | InvalidParameterStartTime | Invalid StartTime parameter. | 400 | The value of the StartTime parameter is invalid. | | InvalidParameterEndTime | Invalid EndTime parameter. | 400 | The value of the EndTime parameter is invalid. | | InvalidTimeRange | The time range cannot exceed 31 days. | 400 | The time range specified by the StartTime and EndTime parameters exceeds 31 days. | | InvalidParameterInterval | Invalid Interval parameter. | 400 | The value of the Interval parameter is invalid. |',
'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' => 'Error codes changed, Request parameters changed'],
],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeDomainUsageData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeDomainWithIntegrity' => [
'summary' => 'Obtains the integrity of a domain name.',
'methods' => ['get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '112159',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time to query data. The date format follows the ISO 8601 standard. Use UTC time.', 'type' => 'string', 'required' => true, 'example' => '2017-10-10T20:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time must be later than the start time. The date format follows the ISO 8601 standard. Use UTC time.', 'type' => 'string', 'required' => true, 'example' => '2017-10-10T20:00:00Z', 'title' => ''],
],
[
'name' => 'Integrity',
'in' => 'query',
'schema' => ['description' => 'The integrity value for verification.', 'type' => 'number', 'format' => 'float', 'required' => true, 'example' => '0.95', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', 'title' => ''],
'Content' => [
'description' => 'The verification content.',
'type' => 'array',
'items' => [
'description' => 'The verification content.',
'type' => 'object',
'properties' => [
'Name' => ['description' => 'The table name.', 'type' => 'string', 'example' => '1637825700000', 'title' => ''],
'Points' => [
'description' => 'The data points.',
'type' => 'array',
'items' => ['description' => 'The value of the corresponding column.', 'type' => 'string', 'example' => '1637825700000', 'title' => ''],
'title' => '',
'example' => '',
],
'Columns' => [
'description' => 'The column names.',
'type' => 'array',
'items' => ['description' => 'The column name.', 'type' => 'string', 'example' => 'time', 'title' => ''],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'title' => 'DescribeDomainWithIntegrity',
'description' => 'You can call this operation to obtain the integrity of a domain name.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 10 calls per second for each user. If you exceed this limit, API calls are throttled, which can affect your business. We recommend that you call this operation at a reasonable rate. For more information, see [QPS limit](~~343507~~).',
'changeSet' => [
['createdAt' => '2024-09-29T03:08:53.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDomainWithIntegrity'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeDomainWithIntegrity',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'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"}]',
],
'DescribeLiveAIProduceRules' => [
'summary' => 'Queries a list of caption rules.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '219166',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'Domain',
'in' => 'query',
'schema' => ['description' => 'The primary playback domain name.', 'type' => 'string', 'required' => false, 'example' => 'demo.aliyundoc.com', 'title' => ''],
],
[
'name' => 'App',
'in' => 'query',
'schema' => ['description' => 'The name of the application to which the stream belongs.', 'type' => 'string', 'required' => false, 'example' => 'AppName', 'title' => ''],
],
[
'name' => 'SuffixName',
'in' => 'query',
'schema' => ['description' => 'The caption suffix.'."\n"
."\n"
.'> Set this parameter to the value of SubtitleName that is specified for the caption template.', 'type' => 'string', 'required' => false, 'example' => 'sub01', 'title' => ''],
],
[
'name' => 'RulesId',
'in' => 'query',
'schema' => ['description' => 'The ID of the caption rule.', 'type' => 'string', 'required' => false, 'example' => '445409ec-7eaa-461d-8f29-4bec****', 'title' => ''],
],
[
'name' => 'PageNumber',
'in' => 'query',
'schema' => ['description' => 'The page number. Valid values: 1 to 100.', 'type' => 'string', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries per page. Valid values: 1 to 100.', 'type' => 'string', 'required' => false, 'example' => '100', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5c6a2a0df228-4a64- af62-20e91b96****', 'title' => ''],
'RuleInfoList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'RuleInfo' => [
'itemNode' => true,
'description' => 'The list of caption rules.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'The caption rule object.',
'type' => 'object',
'properties' => [
'Domain' => ['description' => 'The streaming domain.', 'type' => 'string', 'example' => 'demo.aliyundoc.com', 'title' => ''],
'App' => ['description' => 'The name of the application to which the stream belongs.', 'type' => 'string', 'example' => 'App Name', 'title' => ''],
'SubtitleName' => ['description' => 'The name of the caption template.', 'type' => 'string', 'example' => 'sub1', 'title' => ''],
'IsLazy' => ['description' => 'Indicates whether the rule is triggered by stream pulling.', 'type' => 'boolean', 'example' => 'true', 'title' => ''],
'RulesId' => ['description' => 'The ID of the caption rule.', 'type' => 'string', 'example' => '72fba656-2cc2-40fd-923c-2a10c3b9****', 'title' => ''],
'LiveTemplate' => ['description' => 'The specifications of the output captions.', 'type' => 'string', 'example' => 'lp_ld', 'title' => ''],
'GmtModifyTime' => ['description' => 'The last modification time. This is a UNIX timestamp.', 'type' => 'string', 'example' => '1715594344000', 'title' => ''],
'SuffixName' => ['description' => 'The caption suffix.', 'type' => 'string', 'example' => 'test0506', 'title' => ''],
'StudioName' => ['description' => 'The name of the virtual background template.', 'type' => 'string', 'example' => 'test0708', 'title' => ''],
'Description' => ['description' => 'The description of the rule.', 'type' => 'string', 'example' => 'live AI subtitle template', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => 'Parameter error'],
['errorCode' => 'IncorrectSubtitleStatus.%s', 'errorMessage' => '%s.', 'description' => 'Abnormal subtitle template status'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'eventInfo' => [
'enable' => false,
'eventNames' => [],
],
'title' => 'DescribeLiveAIProduceRules',
'description' => 'This operation queries a list of caption rules. Before you call this operation, ensure that the parameters are correctly configured.'."\n"
."\n"
.'>'."\n"
."\n"
.'The real-time caption feature is in invitational preview. Each user can add a maximum of 300 caption templates.'."\n"
."\n"
.'>'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 60. Exceeding this limit results in API call throttling, which can affect your business. We recommend that you call this operation at a reasonable rate.',
'changeSet' => [
['createdAt' => '2024-10-14T03:46:55.000Z', 'description' => 'Response parameters changed'],
['createdAt' => '2024-07-04T02:57:17.000Z', 'description' => 'Response parameters changed'],
],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveAIProduceRules',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveAIStudio' => [
'methods' => ['post', 'get'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '239765',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'StudioId',
'in' => 'query',
'schema' => ['description' => 'The ID of the template to filter. This parameter is optional.', 'type' => 'string', 'required' => false, 'example' => 'dbe61b87-db9a-448f-8757-a875edb3f944', 'title' => ''],
],
[
'name' => 'StudioName',
'in' => 'query',
'schema' => ['description' => 'The name of the virtual studio template.', 'type' => 'string', 'required' => false, 'example' => 'sub02', 'title' => ''],
],
[
'name' => 'PageNumber',
'in' => 'query',
'schema' => ['description' => 'The current page number. The default value is **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries to return on each page. Default value: 10. Valid values: 1 to 50.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'The response schema.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'title' => '', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'],
'Total' => ['description' => 'The total number of templates.', 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => ''],
'PageNumber' => ['description' => 'The current page number.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'PageSize' => ['description' => 'The number of entries returned on each page. Default value: 10. Valid values: 1 to 50.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''],
'StudioConfigs' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'SubtitleConfig' => [
'itemNode' => true,
'description' => 'The information about the virtual studio template.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'The information about the virtual studio template.',
'type' => 'object',
'properties' => [
'MediaType' => ['description' => 'The type of the media asset. Valid values: VOD, PIC, and LIVE.'."\n"
."\n"
.'- VOD: a video-on-demand file.'."\n"
."\n"
.'- PIC: an image.'."\n"
."\n"
.'- LIVE: a live stream.', 'type' => 'string', 'example' => 'VOD', 'title' => ''],
'MediaLayout' => ['description' => 'The layout information of the media asset.', 'type' => 'string', 'example' => '"{\\"positionY\\":\\"0.0\\",\\"positionX\\":\\"0.0\\",\\"heightNormalized\\":\\"0.5\\"}"', 'title' => ''],
'MediaResourceUrl' => ['description' => 'The URL of the media asset.', 'type' => 'string', 'example' => 'https://testbucket.xx.com/2.jpg', 'title' => ''],
'MediaResourceId' => ['description' => 'The ID of the VOD resource for the media asset.', 'type' => 'string', 'example' => ' '."\n"
.'d0eb493192c771efba644531858c0102'."\n", 'title' => ''],
'BackgroundType' => ['description' => 'The type of the background material. Valid values: VOD, PIC, and LIVE.'."\n"
."\n"
.'- VOD: a video-on-demand file.'."\n"
."\n"
.'- PIC: an image.'."\n"
."\n"
.'- LIVE: a live stream.', 'type' => 'string', 'example' => 'VOD', 'title' => ''],
'BackgroundResourceUrl' => ['description' => 'The public URL of the background material. The URL must be accessible over the Internet. Specify this parameter or \\`BackgroundResourceId\\`.', 'type' => 'string', 'example' => 'https://testbucket.xx.com/2.jpg', 'title' => ''],
'BackgroundResourceId' => ['description' => 'The ID of the background material resource.', 'type' => 'string', 'example' => 'd0eb493192c771efba644531858c0102', 'title' => ''],
'Description' => ['description' => 'The description of the virtual studio template.', 'type' => 'string', 'example' => 'user defined description', 'title' => ''],
'TemplateId' => ['description' => 'The ID of the virtual studio template.', 'type' => 'string', 'example' => '24654384-f5ac-40ea-823b-74e85a61dd9f', 'title' => ''],
'TemplateName' => ['description' => 'The name of the virtual studio template. This parameter is the same as the \\`StudioName\\` parameter in the AddLiveAiStudio operation.', 'type' => 'string', 'example' => 'studio1', 'title' => ''],
'MattingLayout' => ['description' => 'The layout of the keyed-out portrait.', 'type' => 'string', 'example' => '"{\\"positionY\\":\\"0.0\\",\\"positionX\\":\\"0.0\\",\\"heightNormalized\\":\\"0.5\\"}"', 'title' => ''],
'MattingType' => ['description' => 'The chroma keying type for the source stream. This is used to process the ingested stream.'."\n"
."\n"
.'- green: chroma keying for a portrait against a green screen background.'."\n"
."\n"
.'- blue: chroma keying for a portrait against a blue screen background.'."\n"
."\n"
.'- complex: chroma keying for a portrait against a real-world background.', 'type' => 'string', 'example' => 'complex', 'title' => ''],
'Height' => ['description' => 'The height of the preview image, in pixels.'."\n"
."\n"
.'The resolution of the preview image (width × height) must be one of the following:'."\n"
."\n"
.'- Landscape low definition (360p): 640 × 360'."\n"
."\n"
.'- Portrait low definition (360p): 360 × 640'."\n"
."\n"
.'- Landscape standard definition (480p): 854 × 480'."\n"
."\n"
.'- Portrait standard definition (480p): 480 × 854'."\n"
."\n"
.'- Landscape high definition (720p): 1280 × 720'."\n"
."\n"
.'- Portrait high definition (720p): 720 × 1280'."\n"
."\n"
.'- Landscape ultra-high definition (1080p): 1920 × 1080'."\n"
."\n"
.'- Portrait ultra-high definition (1080p): 1080 × 1920', 'type' => 'string', 'example' => '1080', 'title' => ''],
'Width' => ['description' => 'The width of the preview image.', 'type' => 'string', 'example' => '1920', 'title' => ''],
'RuleIds' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'ruleId' => [
'description' => 'The rule IDs.',
'title' => '',
'type' => 'array',
'items' => ['description' => 'The rule ID.', 'type' => 'string', 'example' => '2414378f-541a-48d3-be0c-535212f9a6b4', 'title' => ''],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'LiveServiceNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The live service is not enabled. Please check and try again.'],
['errorCode' => 'InvalidParameter.PurchaseTime', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter PurchaseTime is invalid, please check and try again.'],
['errorCode' => 'InvalidParameter.ExpireTime', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ExpireTime is invalid, please check and try again.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'InvalidChargeType.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ChargeType is invalid, please check and try again.'],
['errorCode' => 'InvalidChargeType.PostSupport', 'errorMessage' => '%s, please check and try again later.', 'description' => 'ChargeType only supports post-paid, please check and try again.'],
['errorCode' => 'InvalidCasterTemplate.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterTemplate is invalid, please check and try again.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'InvalidParameter.ChargeType', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ChargeType is invalid, please check and try again.'],
['errorCode' => 'InvalidPeriod.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Invalid time interval, please check and try again.'],
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidClientToken.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ClientToken is invalid, please check and try again.'],
['errorCode' => 'IncorrectCasterStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Guide station status error, please check and try again.'],
],
[
['errorCode' => 'CasterNumberExceed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The number of casters exceeds the limit. Please check and try again.'],
],
403 => [
['errorCode' => 'PermissionDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Access denied, please check and try again.'],
],
[
['errorCode' => 'InvalidParameter.NormType', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter NormType is invalid, please check and try again.'],
['errorCode' => 'InvalidConfiguration.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Configuration does not exist, please check and try again.'],
],
408 => [
['errorCode' => 'DescribeLiveAIStudio.Timeout', 'errorMessage' => '%s, please try again later.', 'description' => 'Call DescribeLiveAIStudio timed out, please try again later.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DescribeLiveAIStudio',
'summary' => 'Queries the virtual studio templates in your account.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveAIStudio',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', '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' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '218857',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'SubtitleId',
'in' => 'query',
'schema' => ['description' => 'The ID of the caption template.', 'type' => 'string', 'required' => false, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
],
[
'name' => 'SubtitleName',
'in' => 'query',
'schema' => ['description' => 'The name of the caption template. The name can contain only digits, uppercase letters, lowercase letters, and hyphens (-). The name cannot start with a hyphen.', 'type' => 'string', 'required' => false, 'example' => 'sub01', 'title' => ''],
],
[
'name' => 'PageNumber',
'in' => 'query',
'schema' => ['description' => 'The page number. Valid values: 1 to 100.', 'type' => 'string', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of templates on each page. Valid values: 1 to 100.', 'type' => 'string', 'required' => false, 'example' => '100', 'title' => ''],
],
[
'name' => 'IsDefault',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to query the default caption templates. Valid values:'."\n"
."\n"
.'- true: queries the default caption templates.'."\n"
."\n"
.'- false: does not query the default caption templates.'."\n"
."\n"
.'> Default templates are built-in parameter sets. You can use them by specifying the copyFrom parameter in the AddLiveAISubtitle operation.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5c6a2a0df228-4a64- af62-20e91b96****', 'title' => ''],
'SubtitleConfigs' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'SubtitleConfig' => [
'description' => 'A list of caption template information.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'The caption template object.',
'type' => 'object',
'properties' => [
'DstLanguage' => ['description' => 'The destination language for translation.', 'type' => 'string', 'example' => 'zh-CN', 'title' => ''],
'SrcLanguage' => ['description' => 'The source language.', 'type' => 'string', 'example' => 'zh-CN', 'title' => ''],
'FontColor' => ['description' => 'The font color.', 'type' => 'string', 'example' => '0xFFFFFF', 'title' => ''],
'FontName' => ['description' => 'The font.', 'type' => 'string', 'example' => 'AlibabaPuHuiTi-Regular', 'title' => ''],
'ShowSourceLan' => ['description' => 'Specifies whether to display the source language.', 'type' => 'integer', 'format' => 'int32', 'example' => 'true', 'title' => ''],
'MaxLines' => ['description' => 'The number of lines to display.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''],
'WordPerline' => ['description' => 'The number of characters per line.', 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''],
'PositionNormalized' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Position' => [
'description' => 'The information about the caption position.',
'title' => '',
'type' => 'array',
'items' => ['description' => 'The position of the captions.', 'type' => 'number', 'format' => 'float', 'example' => '[0.3,0.35]', 'title' => ''],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'BgColor' => ['description' => 'The background color of the captions.', 'type' => 'string', 'example' => '0xFF0000', 'title' => ''],
'BgWidthNormalized' => ['description' => 'The size of the caption background.', 'type' => 'number', 'format' => 'float', 'example' => '0.09', 'title' => ''],
'BorderWidthNormalized' => ['description' => 'The font weight.', 'type' => 'number', 'format' => 'float', 'example' => '0.05', 'title' => ''],
'Width' => ['description' => 'The width of the preview window.', 'type' => 'string', 'example' => '1280', 'title' => ''],
'Height' => ['description' => 'The height of the preview window.', 'type' => 'string', 'example' => '720', 'title' => ''],
'SubtitleName' => ['description' => 'The name of the caption template.', 'type' => 'string', 'example' => 'sub1', 'title' => ''],
'SubtitleId' => ['description' => 'The ID of the caption template.', 'type' => 'string', 'example' => '597991f3-6ef9-4100-9238-82951de1****', 'title' => ''],
'RulesRefer' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'RulesId' => [
'description' => 'The information about the caption rule.',
'title' => '',
'type' => 'array',
'items' => ['description' => 'The ID of the caption rule.', 'type' => 'string', 'example' => '1419783e-0dd2-4485-a298-6e4a0e4e****', 'title' => ''],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'FontSizeNormalized' => ['description' => 'The font size.', 'type' => 'string', 'example' => '0.037', 'title' => ''],
'Description' => ['description' => 'The description.', 'type' => 'string', 'example' => 'live AI subtitle template', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => 'Parameter error'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DescribeLiveAISubtitle',
'summary' => 'You can call the DescribeLiveAISubtitle operation to query a list of caption templates.',
'description' => 'This operation supports paging. You can specify paging parameters to query a list of caption templates. When you call this operation, ensure that the parameter settings are valid.'."\n"
."\n"
.'>'."\n"
."\n"
.'The real-time captioning feature is in invitational preview. Each user can add a maximum of 300 caption templates.'."\n"
."\n"
.'>'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 60. If the number of calls per second exceeds the limit, throttling is triggered, which may affect your business. We recommend that you take note of the limit when you call this operation. For more information, see [QPS limits](~~343507~~).',
'changeSet' => [
['createdAt' => '2024-12-04T05:54:29.000Z', 'description' => 'Error codes changed'],
['createdAt' => '2024-06-11T03:32:56.000Z', 'description' => 'Request parameters changed'],
],
'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' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveAudioAuditConfig' => [
'summary' => 'Queries the audio moderation configurations.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveUTGSNT'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The AppName of the live stream.', 'type' => 'string', 'required' => false, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The name of the stream.', 'type' => 'string', 'required' => false, 'example' => 'liveStream****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '7BF95F2A-3B24-4CDE-9346-7F6FA86697A1', 'title' => ''],
'LiveAudioAuditConfigList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'LiveAudioAuditConfig' => [
'itemNode' => true,
'description' => 'The list of audio moderation configurations.',
'title' => '',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'AppName' => ['description' => 'The AppName of the live stream.', 'type' => 'string', 'example' => 'liveApp****', 'title' => ''],
'DomainName' => ['description' => 'The main streaming domain.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'StreamName' => ['description' => 'The stream name.', 'type' => 'string', 'example' => 'liveStream****', 'title' => ''],
'BizType' => ['description' => 'The business type. This parameter can be used to select a model. The default value is the domain name.', 'type' => 'string', 'example' => 'example.edu', 'title' => ''],
'Scenes' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'scene' => [
'description' => 'The detection scenarios.',
'title' => '',
'type' => 'array',
'items' => ['description' => 'The detection scenario.', 'type' => 'string', 'example' => 'antispam', 'title' => ''],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MalformedParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Invalid parameter, please check and try again.'],
['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is missing, please check and try again.'],
['errorCode' => 'ConfigExisted', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Configuration already exists, please check and try again.'],
['errorCode' => 'ConfigNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Configuration does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'DescribeLiveAudioAuditConfig',
'description' => '- You can call this API operation to query the audio moderation configurations for a specific streaming domain.'."\n"
."\n"
.'- Automated review is supported only in some live centers. For supported regions, see [Service regions](~~193730~~).'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 10 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'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' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveAudioAuditNotifyConfig' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveUTGSNT'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'B908FF89-B03C-4831-B55B-48D2A******', 'title' => ''],
'LiveAudioAuditNotifyConfigList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'LiveAudioAuditNotifyConfig' => [
'description' => 'A list of callback configurations.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'CallbackTemplate' => ['description' => 'The callback template. The value can contain the following variables:'."\n"
."\n"
.'- **{DomainName}**: The streaming domain.'."\n"
."\n"
.'- **{AppName}**: The AppName of the live stream.'."\n"
."\n"
.'- **{StreamName}**: The stream name.'."\n"
."\n"
.'- **{Timestamp}**: The UNIX timestamp of the callback. Unit: seconds.'."\n"
."\n"
.'- **{Result}**: The review result.', 'type' => 'string', 'example' => '{\\"domain\\":{DomainName},\\"app\\":{AppName},\\"stream\\":{StreamName},\\"timestamp\\":{Timestamp},\\"result\\":{Result}}', 'title' => ''],
'DomainName' => ['description' => 'The main streaming domain.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'Callback' => ['description' => 'The callback URL.', 'type' => 'string', 'example' => 'http://guide.aliyundoc.com/callback', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MalformedParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Invalid parameter, please check and try again.'],
['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is missing, please check and try again.'],
['errorCode' => 'ConfigExisted', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Configuration already exists, please check and try again.'],
['errorCode' => 'ConfigNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Configuration does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'DescribeLiveAudioAuditNotifyConfig',
'summary' => 'Queries the callback configuration for audio moderation.',
'description' => '- You can call this operation to query the callback configuration for audio moderation for a specified streaming domain.'."\n"
."\n"
.'- Automated review is available only in some live centers. For supported regions, see [Service regions](~~193730~~).'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 10 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveAudioAuditNotifyConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveCenterStreamRateData' => [
'methods' => ['get', 'post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'none',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '214643',
'abilityTreeNodes' => ['FEATUREliveYUZBM3'],
],
'parameters' => [
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the application to which the live stream belongs. You can view the application name on the [Stream Management](~~197397~~) page of the ApsaraVideo Live console.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The ingest domain.', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The name of the live stream. You can view the stream name on the [Stream Management](~~197397~~) page of the ApsaraVideo Live console.', 'type' => 'string', 'required' => true, 'example' => 'liveStream****', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => true, 'example' => '2024-03-05T18:00:53Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => true, 'example' => '2024-03-05T18:01:03Z', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
'RateDatas' => [
'description' => 'The list of frame rates and bitrates.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'AudioFps' => ['description' => 'The audio frame rate.', 'type' => 'string', 'example' => '47', 'title' => ''],
'AudioRate' => ['description' => 'The audio bitrate.', 'type' => 'string', 'example' => '600', 'title' => ''],
'Time' => ['description' => 'The time when the data was collected. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2024-03-05T18:00:53Z', 'title' => ''],
'VideoFps' => ['description' => 'The video frame rate.', 'type' => 'string', 'example' => '30', 'title' => ''],
'VideoRate' => ['description' => 'The video bitrate.', 'type' => 'string', 'example' => '1953584', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'B6E125BE-E9B8-1103-8684-A35*******'],
],
'example' => '',
],
],
],
'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' => 'DescribeLiveCenterStreamRateData',
'summary' => 'Queries the audio and video frame rates and bitrates of a stream in a live center.',
'description' => 'The time granularity for the returned data is 5 seconds. The maximum time range to query is 3 hours. You can query data in the last 30 days.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveCenterStreamRateData'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'live:DescribeLiveCenterStreamRateData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveCenterTransfer' => [
'summary' => 'Queries the live center stream relay configuration by calling DescribeLiveCenterTransfer.',
'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' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the live stream application. The AppName you enter must match the AppName of the live stream to be relayed for the configuration to take effect. You can view the AppName on the [Stream Management](~~197397~~) page.', 'type' => 'string', 'required' => false, 'example' => 'testapp', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The name of the live stream. You can view the StreamName on the [Stream Management](~~197397~~) page.', 'type' => 'string', 'required' => false, 'example' => 'teststream', 'title' => ''],
],
[
'name' => 'DstUrl',
'in' => 'query',
'schema' => ['description' => 'The third-party live streaming URL to which the stream is relayed.', 'type' => 'string', 'required' => false, 'example' => 'rtmp://push.example2.aliyunlive.com/testapp1/teststream2', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'LiveCenterTransferInfoList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'LiveCenterTransferInfo' => [
'description' => 'The list of live stream relay services.',
'type' => 'array',
'items' => [
'description' => 'The list of live stream relay services.',
'type' => 'object',
'properties' => [
'AppName' => ['description' => 'The name of the live stream application.', 'type' => 'string', 'example' => 'teststream', 'title' => ''],
'DomainName' => ['description' => 'The streaming domain.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'DstUrl' => ['description' => 'The third-party live streaming URL to which the stream is relayed.', 'type' => 'string', 'example' => 'rtmp://push.example2.aliyunlive.com/testapp1/teststream2', 'title' => ''],
'EndTime' => ['description' => 'The end time of the stream relay. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC+0.', 'type' => 'string', 'example' => '2022-04-29T15:16:00Z', 'title' => ''],
'StartTime' => ['description' => 'The start time of the stream relay. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC+0.', 'type' => 'string', 'example' => '2022-04-28T15:16:00Z', 'title' => ''],
'StreamName' => ['description' => 'The name of the live stream.', 'type' => 'string', 'example' => 'teststream', 'title' => ''],
'TransferArgs' => ['description' => 'The validity period of the stream relay. Valid values:'."\n"
."\n"
.'- **always**: permanently effective.'."\n"
."\n"
.'- **time**: effective within the specified time range.', 'type' => 'string', 'example' => 'time', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'C4865B85-664B-19D3-BB16-C62FB83C8226', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => 'Illegal input parameters'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query live center stream relay',
'description' => 'The queries per second (QPS) limit for a single user on this operation is 100. Requests that exceed this limit are throttled, which may affect your business. Call this operation appropriately.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'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' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'CertName',
'in' => 'query',
'schema' => ['description' => 'The name of the certificate.', 'type' => 'string', 'required' => true, 'example' => 'Cert-****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'CertName' => ['description' => 'The name of the certificate.', 'type' => 'string', 'example' => 'Cert-****', 'title' => ''],
'Cert' => ['description' => 'The content of the certificate.', 'type' => 'string', 'example' => '-----BEGIN CERTIFICATE-----****-----END CERTIFICATE-----', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'C7C69682-7F88-40DD-A198-10D0309E439B', 'title' => ''],
'CertId' => ['description' => 'The ID of the certificate.', 'type' => 'integer', 'format' => 'int64', 'example' => '23451111', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
404 => [
['errorCode' => 'CertNameNotFound', 'errorMessage' => 'The cert name is not found.', 'description' => 'The certificate name does not exist.'],
],
],
'title' => 'DescribeLiveCertificateDetail',
'summary' => 'Queries the details of a certificate.',
'description' => 'Before you call this operation, get the certificate name from the [Certificates](~~2584962~~) page in the ApsaraVideo Live console.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions. For more information, see [](t2136805.xdita#).',
'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' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"CertName\\": \\"Cert-****\\",\\n \\"Cert\\": \\"-----BEGIN CERTIFICATE-----****-----END CERTIFICATE-----\\",\\n \\"RequestId\\": \\"C7C69682-7F88-40DD-A198-10D0309E439B\\",\\n \\"CertId\\": 23451111\\n}","type":"json"}]',
],
'DescribeLiveCertificateList' => [
'summary' => 'Queries the certificates of one or more specified domain names or all certificates within your Alibaba Cloud account.',
'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' => 'The ingest domain or streaming domain. Separate multiple domain names with commas (,).', 'type' => 'string', 'required' => false, 'example' => 'demo.aliyundoc.com,example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
'CertificateListModel' => [
'description' => 'The details.',
'type' => 'object',
'properties' => [
'Count' => ['description' => 'The number of certificates.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''],
'CertList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Cert' => [
'description' => 'The certificates.',
'type' => 'array',
'items' => [
'description' => 'The information about the certificate.',
'type' => 'object',
'properties' => [
'LastTime' => ['description' => 'The time when the certificate was issued. Unit: seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1512388659', 'title' => ''],
'Fingerprint' => ['description' => 'The fingerprint of the certificate.', 'type' => 'string', 'example' => '****', 'title' => ''],
'CertName' => ['description' => 'The name of the certificate.', 'type' => 'string', 'example' => 'Cert-****', 'title' => ''],
'Issuer' => ['description' => 'The certificate authority (CA) that issued the certificate.', 'type' => 'string', 'example' => '*****', 'title' => ''],
'CertId' => ['description' => 'The ID of the certificate.', 'type' => 'integer', 'format' => 'int64', 'example' => '123456', 'title' => ''],
'Common' => ['description' => 'The Common Name (CN) attribute of the certificate.', 'type' => 'string', 'example' => 'example.net', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [],
'title' => 'DescribeLiveCertificateList',
'description' => 'If you specify one or more domain names in the request, the certificates of the domain names are returned. If you do not specify a domain name in the request, all certificates within your Alibaba Cloud account are returned.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveCertificateList'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveCertificateList',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveDelayConfig' => [
'summary' => 'Calls DescribeLiveDelayConfig to query the stream delay configuration.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveBP94ZY'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'description' => 'The region ID.', 'title' => '', 'example' => 'cn-shanghai'],
],
[
'name' => 'Domain',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'example.com'],
],
[
'name' => 'App',
'in' => 'query',
'schema' => ['description' => 'The application name. You can use a wildcard character (\\*) to represent all applications under the domain name.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'liveApp****'],
],
[
'name' => 'Stream',
'in' => 'query',
'schema' => ['description' => 'The stream name. You can use a wildcard character (\\*) to represent all streams under the application.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'liveStream****'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'App' => ['description' => 'The application name.', 'type' => 'string', 'title' => '', 'example' => 'liveApp****'],
'DelayTime' => ['description' => 'The playback latency of the stream.', 'type' => 'string', 'title' => '', 'example' => '60'],
'Domain' => ['description' => 'The streaming domain.', 'type' => 'string', 'title' => '', 'example' => 'example.com'],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'A3136B58-5876-4168-83CA-B562781981A0'],
'Stream' => ['description' => 'The stream name.', 'type' => 'string', 'title' => '', 'example' => 'liveStream****'],
'TaskTriggerMode' => ['description' => 'The trigger mode for the task. Valid values:'."\n"
."\n"
.'- **PUBLISH\\_ONLY**: The task is triggered only when stream ingest parameters for delayed playback are specified.'."\n"
.'- **CONFIG\\_ONLY**: The task is triggered only by the configuration. Stream ingest parameters are ignored.'."\n"
.'- **PUBLISH\\_CONFIG**: The task can be triggered by both stream ingest parameters and the configuration. Stream ingest parameters have a higher priority than the configuration.', 'type' => 'string', 'title' => '', 'example' => 'PUBLISH_ONLY'],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameters', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'Invalid parameter:%s.'],
],
],
'title' => 'DescribeLiveDelayConfig',
'description' => 'The number of queries per second (QPS) for this operation is limited to 60 per user. Calls that exceed this limit are throttled. This may affect your business. Plan your calls accordingly.',
'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' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveDelayedStreamingUsage' => [
'summary' => 'Calls DescribeLiveDelayedStreamingUsage to query delayed streaming duration usage data.',
'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' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain name to query.'."\n"
.'- You can specify a single domain name or multiple domain names. Separate multiple domain names with commas (,).'."\n"
.'- If this parameter is left empty, the aggregated data of all live streaming domain names is returned by default.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time must be in UTC. By default, data of the last seven days is returned.', 'type' => 'string', 'required' => false, 'example' => '2022-10-10T20:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. The end time must be later than the start time. The time span cannot exceed 10 hours. Specify the time in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2022-10-10T21:00:00Z', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The stream name. Separate multiple stream names with commas (,). By default, the data of all stream names is aggregated.', 'type' => 'string', 'required' => false, 'example' => 'liveStream****', 'title' => ''],
],
[
'name' => 'Region',
'in' => 'query',
'schema' => ['description' => 'The live center to query. You can specify multiple regions. Separate multiple regions with commas (,). Valid values:'."\n"
.'- cn-beijing: Beijing'."\n"
.'- cn-shanghai: Shanghai'."\n"
.'- cn-shenzhen: Shenzhen'."\n"
.'- cn-qingdao: Qingdao'."\n"
.'- ap-southeast-1: Singapore'."\n"
.'- eu-central-1: Germany'."\n"
.'- ap-northeast-1: Tokyo'."\n"
.'- ap-southeast-5: Jakarta'."\n"
."\n"
.'If this parameter is left empty, the aggregated data of all regions is returned by default.', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'SplitBy',
'in' => 'query',
'schema' => ['description' => 'The grouping key. If this parameter is left empty, user data is aggregated. Valid values:'."\n"
.'- domain: domain name. If the SplitBy (grouping key) parameter is set to domain, the Domain response parameter takes effect.'."\n"
.'- region: live center region. If the SplitBy (grouping key) parameter is set to region, the Region response parameter takes effect.'."\n"
.'- stream: stream name. If the SplitBy (grouping key) parameter is set to stream, the stream response parameter takes effect.'."\n"
."\n"
.'> You can query data only when the parameter corresponding to the grouping key is not empty. Otherwise, an error is returned. For example, when DomainName is empty, you cannot specify domain as the grouping key.', 'type' => 'string', 'required' => false, 'example' => 'domain', 'title' => ''],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => ['description' => 'The time granularity of the queried data. Unit: seconds. Valid values:'."\n"
.'- 300'."\n"
.'- 3600'."\n"
.'- 86400'."\n"
."\n"
.'If this parameter is left empty or set to an unsupported value, the default value 3600 is used.', 'type' => 'string', 'required' => false, 'example' => '3600', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
'DelayData' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DelayDataItem' => [
'description' => 'The delayed streaming duration usage data.',
'type' => 'array',
'items' => [
'description' => 'The delayed streaming duration usage data.',
'type' => 'object',
'properties' => [
'DomainName' => ['description' => 'The domain name for the usage data. This parameter is returned when SplitBy is set to domain.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'Duration' => ['description' => 'The delayed streaming usage.', 'type' => 'integer', 'format' => 'int64', 'example' => '84', 'title' => ''],
'Region' => ['description' => 'The live center. This parameter is returned when SplitBy is set to region.', 'type' => 'string', 'example' => 'cn-shanghai', 'title' => ''],
'StreamName' => ['description' => 'The stream name. This parameter is returned when SplitBy is set to stream.', 'type' => 'string', 'example' => 'liveStream****', 'title' => ''],
'TimeStamp' => ['description' => 'The beginning of the time interval. Specify the time in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2022-10-10T20:00:00Z', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'EndTime' => ['description' => 'The end time. Specify the time in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2022-10-10T21:00:00Z', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '4B460F8B-993C-4F48-B98A-91081******', 'title' => ''],
'StartTime' => ['description' => 'The start time. Specify the time in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2022-10-10T20:00:00Z', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['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' => 'Invalid time. Check whether the time that you specified is correct.'],
['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => 'The end time does not match the start time. Make sure that the start and end times match.'],
['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => 'The time span exceeds the limit. Please refer to the API documentation to specify a reasonable time span.'],
['errorCode' => 'LiveServiceNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The live service is not enabled. Please check and try again.'],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query delayed streaming duration data',
'description' => '- Queries user delayed streaming service usage data. The default granularity is 1 hour.'."\n"
.'- Maximum query time span: 31 days.'."\n"
.'- Minimum query time granularity: 1 hour.'."\n"
.'- Maximum query time range: 31 days.'."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this API is 5 queries per second. If the limit is exceeded, API calls are throttled, which may affect your business. We recommend that you call this API at a reasonable frequency.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDelayedStreamingUsage',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
],
'DescribeLiveDetectNotifyConfig' => [
'summary' => 'Queries the configuration of callbacks for video moderation results.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveUTGSNT'],
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E6******', 'title' => ''],
'LiveDetectNotifyConfig' => [
'description' => 'The callback configuration.',
'type' => 'object',
'properties' => [
'DomainName' => ['description' => 'The main streaming domain.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'NotifyUrl' => ['description' => 'The callback URL.', 'type' => 'string', 'example' => 'http://aliyundoc.com', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
404 => [
['errorCode' => 'InvalidConfig.NotFound', 'errorMessage' => 'Config does not exist.', 'description' => ''],
],
],
'title' => 'DescribeLiveDetectNotifyConfig',
'description' => '- Obtain the main streaming domain, and then call this operation to query the configuration of callbacks for video moderation results.'."\n"
."\n"
.'- Only some live centers support the automated review feature. For more information, see [Supported regions](~~193730~~).'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation. For more information, see [QPS limit on an API operation in ApsaraVideo Live](https://www.alibabacloud.com/help/en/apsaravideo-live/latest/qps-limit-on-an-api-operation-in-apsaravideo-live).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDetectNotifyConfig'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDetectNotifyConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E6******\\",\\n \\"LiveDetectNotifyConfig\\": {\\n \\"DomainName\\": \\"example.com\\",\\n \\"NotifyUrl\\": \\"http://aliyundoc.com\\"\\n }\\n}","type":"json"}]',
],
'DescribeLiveDetectPornData' => [
'summary' => 'You can call the DescribeLiveDetectPornData operation to query usage data for live stream moderation.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveYUZBM3'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain to query.'."\n"
."\n"
.'- You can query one or more domain names. To query multiple domain names, separate them with commas (,).'."\n"
."\n"
.'- If you do not specify this parameter, the service returns the merged data for all streaming domains.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start of the time range to query. Specify the time in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.'."\n"
."\n"
.'> - You can query data from the last 90 days.'."\n"
."\n"
.'- The minimum data granularity is 5 minutes. If you leave this parameter empty, the service queries data from the last 24 hours by default.', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T08:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. Specify the time in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T09:00:00Z', 'title' => ''],
],
[
'name' => 'App',
'in' => 'query',
'schema' => ['description' => 'The name of the application to which the stream belongs.', 'type' => 'string', 'required' => false, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'Stream',
'in' => 'query',
'schema' => ['description' => 'The stream name.', 'type' => 'string', 'required' => false, 'example' => 'liveStream****', 'title' => ''],
],
[
'name' => 'Fee',
'in' => 'query',
'schema' => ['description' => 'You have a daily free quota for image scans. Valid values:'."\n"
."\n"
.'- **free**'."\n"
."\n"
.'- **charge**', 'type' => 'string', 'required' => false, 'example' => 'free', 'title' => ''],
],
[
'name' => 'Scene',
'in' => 'query',
'schema' => ['description' => 'The detection scenario. Valid values:'."\n"
."\n"
.'- **porn** (default): pornography detection.'."\n"
."\n"
.'- **terrorism**: terrorism and political content detection.'."\n"
."\n"
.'- **ad**: ad and text violation detection.'."\n"
."\n"
.'- **live**: undesirable live streaming scenario detection.'."\n"
."\n"
.'- **logo**: logo detection.', 'type' => 'string', 'required' => false, 'example' => 'porn', 'title' => ''],
],
[
'name' => 'Region',
'in' => 'query',
'schema' => ['description' => 'The region where the domain name is located.', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'SplitBy',
'in' => 'query',
'schema' => ['description' => 'The list of grouping fields. Separate multiple fields with commas (,).'."\n"
."\n"
.'> If you leave this parameter empty, the service returns only TimeStamp and Count.', 'type' => 'string', 'required' => false, 'example' => 'liveApp****,liveStream****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', 'title' => ''],
'DetectPornData' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DataModule' => [
'description' => 'The moderation data for each time interval.',
'type' => 'array',
'items' => [
'description' => 'The moderation data for each time interval.',
'type' => 'object',
'properties' => [
'Domain' => ['description' => 'The streaming domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'Region' => ['description' => 'The region where the domain name is located.', 'type' => 'string', 'example' => 'cn-shanghai', 'title' => ''],
'App' => ['description' => 'The name of the application to which the stream belongs.', 'type' => 'string', 'example' => 'liveApp****', 'title' => ''],
'Stream' => ['description' => 'The stream name.', 'type' => 'string', 'example' => 'liveStream****', 'title' => ''],
'TimeStamp' => ['description' => 'The start time of the time slice. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format and in UTC.', 'type' => 'string', 'example' => '2017-12-10T15:00:05Z', 'title' => ''],
'Count' => ['description' => 'The number of moderated items.', 'type' => 'integer', 'format' => 'int64', 'example' => '2', 'title' => ''],
'Scene' => ['description' => 'The detection scenario. Valid values:'."\n"
."\n"
.'- **porn** (default): pornography detection.'."\n"
."\n"
.'- **terrorism**: terrorism and political content detection.'."\n"
."\n"
.'- **ad**: ad and text violation detection.'."\n"
."\n"
.'- **live**: undesirable live streaming scenario detection.'."\n"
."\n"
.'- **logo**: logo detection.', 'type' => 'string', 'example' => 'porn', 'title' => ''],
'Fee' => ['description' => 'You have a daily free quota for image scans. Valid values:'."\n"
."\n"
.'- **free**'."\n"
."\n"
.'- **charge**', 'type' => 'string', 'example' => 'free', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'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' => 'The end time does not match the start time. Make sure that the start and end times match.'],
['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => 'The value specified for the StartTime parameter is invalid.'],
],
],
'title' => 'DescribeLiveDetectPornData',
'description' => '- The minimum data granularity is 5 minutes. If the `StartTime` parameter is empty, the service queries data from the last 24 hours by default.'."\n"
."\n"
.'- You can query data from the last 90 days.'."\n"
."\n"
.'- You can query network bandwidth data for each time interval.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 10. If you exceed this limit, API calls are throttled. This may affect your business. Plan your calls accordingly.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Special error codes'."\n"
."\n"
.'|Error code|Error message|HTTP status code|Description|'."\n"
.'|---|---|---|---|'."\n"
.'|Throttling|Request was denied due to request throttling.|503|The error message returned because the request was denied due to traffic throttling.|'."\n"
.'|InvalidDomain.NotFound|The domain provided does not belong to you.|404|The error message returned because the specified domain name does not exist or does not belong to the current account.|',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDetectPornData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveDomainBpsData' => [
'summary' => 'Queries the network bandwidth monitoring data of a live streaming domain.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '107009',
'abilityTreeNodes' => ['FEATUREliveYUZBM3'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain. You can specify a single domain name or multiple domain names. Separate multiple domain names with commas (,).'."\n"
.'If this parameter is left empty, the merged data of all live streaming domains is returned by default.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format (UTC).', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T08:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. The end time must be later than the start time. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format (UTC).', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T09:00:00Z', 'title' => ''],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => ['description' => 'The time granularity of the queried data. Unit: seconds. Valid values:'."\n"
.'- **300** (default)'."\n"
.'- **3600**'."\n"
.'- **86400**'."\n"
."\n"
.'> - If this parameter is not specified or set to an unsupported value, the default value **300** is used.'."\n"
.'- When the time granularity is **300**, the returned bps value is the average number of bits transmitted per second within the 300-second interval.'."\n"
.'- When the time granularity is **3600** or **86400**, the returned bps value is the peak value among all 300-second data points within the query period.', 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''],
],
[
'name' => 'IspNameEn',
'in' => 'query',
'schema' => ['description' => 'The name of the Internet service provider (ISP) in English. You can call the [DescribeCdnRegionAndIsp](~~91077~~) operation to obtain the ISP name.', 'type' => 'string', 'required' => false, 'example' => 'alibaba', 'title' => ''],
],
[
'name' => 'LocationNameEn',
'in' => 'query',
'schema' => ['description' => 'The name of the region in English. You can call the [DescribeCdnRegionAndIsp](~~91077~~) operation to obtain the region name.', 'type' => 'string', 'required' => false, 'example' => 'tianjin', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'EndTime' => ['description' => 'The end time. The time is in the yyyy-MM-ddTHH:mm:ssZ format (UTC).', 'type' => 'string', 'example' => '2017-12-10T09:00:00Z', 'title' => ''],
'StartTime' => ['description' => 'The start time. The time is in the yyyy-MM-ddTHH:mm:ssZ format (UTC).', 'type' => 'string', 'example' => '2017-12-10T08:00:00Z', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', 'title' => ''],
'DomainName' => ['description' => 'The streaming domain.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'DataInterval' => ['description' => 'The time granularity of the queried data. Unit: seconds.', 'type' => 'string', 'example' => '300', 'title' => ''],
'BpsDataPerInterval' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DataModule' => [
'description' => 'The network bandwidth data for each time interval.',
'type' => 'array',
'items' => [
'description' => 'The network bandwidth data for each time interval.',
'type' => 'object',
'properties' => [
'BpsValue' => ['description' => 'The bps value. Unit: bit/second.', 'type' => 'string', 'example' => '11288111', 'title' => ''],
'TimeStamp' => ['description' => 'The start time of the time interval. The time is in the yyyy-MM-ddTHH:mm:ssZ format (UTC).', 'type' => 'string', 'example' => '2017-12-10T08:00:05Z', 'title' => ''],
'HttpsBpsValue' => ['description' => 'The HTTPS bps value. Unit: bit/second.', 'type' => 'string', 'example' => '2000', 'title' => ''],
'HttpBpsValue' => ['description' => 'The HTTP bps value. Unit: bit/second.', 'type' => 'string', 'example' => '11286111', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'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' => 'The end time does not match the start time. Make sure that the start and end times match.'],
['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => 'The value specified for the StartTime parameter is invalid.'],
],
],
'eventInfo' => [
'enable' => false,
'eventNames' => [],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"EndTime\\": \\"2017-12-10T09:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T08:00:00Z\\",\\n \\"RequestId\\": \\"B955107D-E658-4E77-B913-E0AC3D31693E\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"BpsDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"BpsValue\\": \\"11288111\\",\\n \\"TimeStamp\\": \\"2017-12-10T08:00:05Z\\",\\n \\"HttpsBpsValue\\": \\"2000\\",\\n \\"HttpBpsValue\\": \\"11286111\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
'title' => 'Query network bandwidth monitoring data of a domain name',
'description' => '- If you do not specify StartTime or EndTime, data of the last 24 hours is returned by default. You can also query data for a specific time range by specifying both StartTime and EndTime.'."\n"
.'- If you specify only StartTime without EndTime, data within 1 hour from StartTime is returned.'."\n"
.'- If you specify only EndTime without StartTime, data within 1 hour before EndTime is returned.'."\n"
.'- You can query data of up to the last 90 days.'."\n"
.'- This is a monitoring data API. The data collection and processing method differs from that used for billing. Do not use this API to calculate usage for billing reconciliation.'."\n"
."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this API is 100 calls per second. If this limit is exceeded, the API calls are throttled, which may affect your business. Call this API at a reasonable frequency.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainBpsData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeLiveDomainBpsDataByLayer' => [
'summary' => 'Queries bandwidth and traffic data of a domain name by protocol by calling 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' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain. You can specify multiple domain names separated by commas (,). If this parameter is left empty, the aggregated data of all domain names is returned by default.', 'type' => 'string', 'required' => false, 'example' => 'pull.aliyundoc.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query, in the format of yyyy-MM-ddTHH:mm:ssZ (UTC).'."\n"
.'>If this parameter is not specified, data for the last 24 hours is returned by default. The minimum data granularity is 5 minutes.', 'type' => 'string', 'required' => false, 'example' => '2022-03-15T16:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query, in the format of yyyy-MM-ddTHH:mm:ssZ (UTC). The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2022-03-16T16:59:59Z', 'title' => ''],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => ['description' => 'The time granularity of the data to query. Unit: seconds. Valid values:'."\n"
."\n"
.'- **300**'."\n"
."\n"
.'- **3600**'."\n"
."\n"
.'- **86400**'."\n"
.'> - Time range ≤ 3 days: Valid data timestamp granularity values are 300, 3600, and 86400.'."\n"
.'> - 3 days < time range ≤ 31 days: Valid data timestamp granularity values are 3600 and 86400.'."\n"
.'> - Time range > 31 days: The only valid value is 86400.'."\n"
.'> - If this parameter is not specified or the specified value is not supported, the default value 300 is used.', 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''],
],
[
'name' => 'IspNameEn',
'in' => 'query',
'schema' => ['description' => 'The name of the Internet service provider (ISP) in English. If this parameter is not specified, data for all ISPs is returned.'."\n"
.'>You can call the [DescribeLiveRegionAndIsp](~~91077~~) operation to query the English names of regions and ISPs.', 'type' => 'string', 'required' => false, 'example' => 'tele***', 'title' => ''],
],
[
'name' => 'LocationNameEn',
'in' => 'query',
'schema' => ['description' => 'The name of the region in English. If this parameter is not specified, data for all regions is returned.'."\n"
.'>You can call the [DescribeLiveRegionAndIsp](~~91077~~) operation to query the English names of regions and ISPs.', 'type' => 'string', 'required' => false, 'example' => 'hangzhou', 'title' => ''],
],
[
'name' => 'Layer',
'in' => 'query',
'schema' => ['description' => 'The query dimension. Valid values:'."\n"
."\n"
.'- Network layer (IPv4, IPv6)'."\n"
."\n"
.'- Application layer (http, https, quic)'."\n"
."\n"
.'- all (default)'."\n"
."\n"
.'Valid values: all | IPv4 | IPv6 | http | https | quic (case-sensitive).', 'type' => 'string', 'required' => false, 'example' => 'all', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'BpsDataInterval' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DataModule' => [
'description' => 'The bandwidth data (bps) for each time interval.',
'type' => 'array',
'items' => [
'description' => 'The bandwidth data (bps) for each time interval.',
'type' => 'object',
'properties' => [
'TimeStamp' => ['description' => 'The beginning of the time interval. The value is in the yyyy-MM-ddTHH:mm:ssZ format (UTC).', 'type' => 'string', 'example' => '2022-03-15T16:00:00Z', 'title' => ''],
'TrafficValue' => ['description' => 'The total traffic. Unit: bytes.', 'type' => 'string', 'example' => '331', 'title' => ''],
'Value' => ['description' => 'The peak bandwidth. Unit: bit/s.', 'type' => 'string', 'example' => '0.56', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'DataInterval' => ['description' => 'The time interval between data entries. Unit: seconds.', 'type' => 'string', 'example' => '300', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'BEA5625F-8FCF-48F4-851B-2A48566EA967', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['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' => 'The end time does not match the start time. Make sure that the start and end times match.'],
['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'Specified end time does not math the specified start time,And the time range does not exceed 90 days.', 'description' => 'The start time and the end time do not match. The start time cannot be later than the end time, and the interval between the start time and the end time cannot exceed 90 days.'],
],
],
'eventInfo' => [
'enable' => false,
'eventNames' => [],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query domain name bandwidth and traffic data by protocol',
'description' => 'The storage duration of data is up to 90 days.'."\n"
.'You can query data for multiple domain names at a time. Separate multiple domain names with commas (,). A maximum of 500 domain names are supported. Data for multiple domain names is returned as aggregation results.'."\n"
.'The time granularity of returned data varies based on the time range specified by **StartTime** and **EndTime**:'."\n"
."\n"
.'- Time range ≤ 3 days: The time granularity is 5 minutes.'."\n"
."\n"
.'- 3 days < time range ≤ 31 days: The time granularity is 1 hour.'."\n"
."\n"
.'- Time range > 31 days: The time granularity is 1 day.'."\n"
."\n"
.'>If neither **StartTime** nor **EndTime** is specified, data for the last 24 hours is returned by default.'."\n"
."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this operation is 20 calls per second. If the limit is exceeded, API calls are throttled, which may affect your business. Invoke this operation appropriately.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainBpsDataByLayer'],
],
],
'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' => 'Retrieves accelerated domain names based on certificate information.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '191820',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'SSLPub',
'in' => 'query',
'schema' => ['description' => 'The public key of the certificate. The public key must be Base64 encoding and then URL-encoded (encodeURIComponent). The PEM format is supported.', 'type' => 'string', 'required' => true, 'example' => '******', 'title' => ''],
],
[
'name' => 'SSLStatus',
'in' => 'query',
'schema' => ['description' => 'Specifies whether the returned domain name list includes only domain names with HTTPS enabled or disabled.'."\n"
.'- **true**: HTTPS is enabled.'."\n"
.'- **false**: HTTPS is disabled.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
'CertInfos' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'CertInfo' => [
'description' => 'The list of certificate information.',
'type' => 'array',
'items' => [
'description' => 'The details of the list.',
'type' => 'object',
'properties' => [
'CertCaIsLegacy' => ['description' => 'The legacy status of the certificate CA. Valid values:'."\n"
.'- **yes**: The certificate CA is deprecated.'."\n"
.'- **no**: The certificate CA is normal and not deprecated.', 'type' => 'string', 'example' => 'yes', 'title' => ''],
'CertExpireTime' => ['description' => 'The expiration time of the certificate. The time follows the yyyy-MM-dd HH:mm:ss format in UTC+8.', 'type' => 'string', 'example' => '2024-12-03 09:46:02', 'title' => ''],
'CertExpired' => ['description' => 'The expiration status of the certificate. Valid values:'."\n"
.'- **yes**: The certificate has expired.'."\n"
.'- **no**: The certificate has not expired.', 'type' => 'string', 'example' => 'yes', 'title' => ''],
'CertStartTime' => ['description' => 'The start time of the certificate. The time follows the yyyy-MM-dd HH:mm:ss format in UTC+8.', 'type' => 'string', 'example' => '2023-11-02 09:46:03', 'title' => ''],
'CertSubjectCommonName' => ['description' => 'The name of the certificate owner.', 'type' => 'string', 'example' => 'owner', 'title' => ''],
'CertType' => ['description' => 'The type of the certificate. Valid values: **RSA**, **DSA**, and **ECDSA**.', 'type' => 'string', 'example' => 'RSA', 'title' => ''],
'DomainList' => ['description' => 'If this value is not empty, the list is matched against the certificate. Multiple values are separated by commas (,).', 'type' => 'string', 'example' => 'example.com,aliyundoc.com', 'title' => ''],
'DomainNames' => ['description' => 'The domain names that match the certificate (DNS field). Multiple domain names are separated by commas (,).', 'type' => 'string', 'example' => '*.example.com,aliyundoc.com', 'title' => ''],
'Issuer' => ['description' => 'The certificate issue authority.', 'type' => 'string', 'example' => 'C=US, O=Symantec Corporation, OU=Symantec Trust Network, OU=Domain Validated SSL, CN=Symantec Basic DV SSL CA - G1', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'ASAF2FDS-12SADSA-DDSAE3D-DSADCD4C-CDADS2D', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['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' => ''],
],
],
'eventInfo' => [
'enable' => false,
'eventNames' => [],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query domain names that match a certificate',
'description' => 'Calls this operation to query accelerated domain names that match the specified certificate information.'."\n"
.'## QPS limit'."\n"
.'The QPS limit for a single user is 100 calls per second. If the limit is exceeded, API calls are throttled, which may affect your business. Call this operation at a reasonable frequency.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainByCertificate'],
],
],
'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',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '107011',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain or ingest domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5C1E43DC-9E51-4771-82C0-7D5ECEB547A1', 'title' => ''],
'CertInfos' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'CertInfo' => [
'description' => 'The certificate information.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Status' => ['description' => 'The status of the free certificate that is used for testing. Valid values:'."\n"
."\n"
.'- **success**: The certificate is effective.'."\n"
."\n"
.'- **checking**: The system is checking whether the domain name is mapped to the CNAME that is assigned by ApsaraVideo Live.'."\n"
."\n"
.'- **cname\\_error**: The domain name is not mapped to the CNAME that is assigned by ApsaraVideo Live.'."\n"
."\n"
.'- **domain\\_invalid**: The domain name contains invalid characters.'."\n"
."\n"
.'- **unsupport\\_wildcard**: The domain name is a wildcard domain name, which is not supported.'."\n"
."\n"
.'- **applying**: The certificate is in the application progress.'."\n"
."\n"
.'- **failed**: The application for the certificate failed.'."\n"
."\n"
.'> The **Status** parameter is valid only if the certificate is a free certificate for testing. Otherwise, an empty value is returned.', 'type' => 'string', 'example' => 'success', 'title' => ''],
'CertLife' => ['description' => 'The validity period of the certificate.', 'type' => 'string', 'example' => '3 months', 'title' => ''],
'CertExpireTime' => ['description' => 'The expiration time of the certificate. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2018-06-03T22:03:39Z', 'title' => ''],
'SSLPub' => ['description' => 'The public key of the certificate.', 'type' => 'string', 'example' => 'yourSSLPub', 'title' => ''],
'SSLProtocol' => ['description' => 'Indicates whether HTTPS is enabled. Valid values:'."\n"
."\n"
.'- **on**: Enabled.'."\n"
."\n"
.'- **off**: Disabled.', 'type' => 'string', 'example' => 'on', 'title' => ''],
'CertType' => ['description' => 'The type of the certificate. Valid values:'."\n"
."\n"
.'- **free**: a free certificate (for testing)'."\n"
."\n"
.'- **cas**: a certificate purchased from Certificate Management Service'."\n"
."\n"
.'- **upload**: a custom certificate that you uploaded', 'type' => 'string', 'example' => 'cas', 'title' => ''],
'CertDomainName' => ['description' => 'The streaming domain or ingest domain that matches the certificate.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'CertName' => ['description' => 'The certificate name.', 'type' => 'string', 'example' => 'Cert-****', 'title' => ''],
'CertOrg' => ['description' => 'The certificate authority (CA).', 'type' => 'string', 'example' => 'Let\'s Encrypt', 'title' => ''],
'DomainName' => ['description' => 'The streaming domain or ingest domain.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'eventInfo' => [
'enable' => false,
'eventNames' => [],
],
'title' => 'DescribeLiveDomainCertificateInfo',
'summary' => 'Retrieves the certificate information for a specified domain name.',
'description' => 'You must specify a domain name whose certificate information you want to query.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 100 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'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' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainCertificateInfo',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveDomainConfigs' => [
'summary' => 'Queries one or more configurations of a domain name.',
'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' => 'The ingest domain or streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com', 'title' => ''],
],
[
'name' => 'FunctionNames',
'in' => 'query',
'schema' => ['description' => 'The names of the features. Separate multiple features with commas (,). For more information, see the **Features specified by the Functions parameter** section in this topic.', 'type' => 'string', 'required' => true, 'example' => 'set_req_host_header,set_hashkey_args', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED', 'title' => ''],
'DomainConfigs' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DomainConfig' => [
'description' => 'The configurations of the domain name.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Status' => ['description' => 'The configuration status. Valid values:'."\n"
."\n"
.'- **success**'."\n"
."\n"
.'- **testing**'."\n"
."\n"
.'- **failed**'."\n"
."\n"
.'- **configuring**', 'type' => 'string', 'example' => 'success', 'title' => ''],
'ConfigId' => ['description' => 'The configuration ID.', 'type' => 'string', 'example' => '5003576', 'title' => ''],
'FunctionName' => ['description' => 'The name of the feature.', 'type' => 'string', 'example' => 'set_req_host_header', 'title' => ''],
'FunctionArgs' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'FunctionArg' => [
'description' => 'The attributes of the feature.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'ArgName' => ['description' => 'The name of the attribute.', 'type' => 'string', 'example' => 'domain_name', 'title' => ''],
'ArgValue' => ['description' => 'The attribute value.', 'type' => 'string', 'example' => 'developer.aliyundoc.com', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'Invalid%s.ValueNotSupported', 'errorMessage' => 'FunctionName [%s] is not supported.', 'description' => ''],
],
404 => [
['errorCode' => 'InvalidUser', 'errorMessage' => 'The user\'s account is invalid.', 'description' => ''],
],
],
'title' => 'DescribeLiveDomainConfigs',
'description' => 'You can call this operation to query multiple configurations at a time.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 100 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.',
'requestParamsDescription' => '## Features specified by the Functions parameter'."\n"
."\n"
.'**Note** All parameter values are of the string type. Some features, such as **filetype\\_based\\_ttl\\_set**, support multiple configuration records. To update one of the configuration records, use the **configId** field to specify the record.'."\n"
."\n"
.'| Name | Parameter |'."\n"
.'| -------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |'."\n"
.'| **referer_white_list_set**: the Referer whitelist. | **refer_domain_allow_list**: the Referers to be added to the whitelist. Separate multiple Referers with commas (,).**allow_empty**: specifies whether an empty Referer is allowed. Valid values: **on** and **off**. |'."\n"
.'| **referer_black_list_set**: the Referer blacklist. | **refer_domain_deny_list**: the Referers to be added to the blacklist. Separate multiple Referers with commas (,).**allow_empty**: specifies whether an empty Referer is allowed. Valid values: **on** and **off**. |'."\n"
.'| **filetype_based_ttl_set**: the time period after which a file expires. | **ttl**: the cache duration. Unit: seconds.**file_type**: the file type. Separate multiple file types with commas (,).**weight**: the weight of the file type. Valid values: **1 to 99**. |'."\n"
.'| **path_based_ttl_set**: the time period after which a directory expires. | **ttl**: the cache duration. Unit: seconds.**path**: the directory, which must start with a forward slash (/).**weight**: the weight of the directory. Valid values: **1 to 99**. |'."\n"
.'| **oss_auth**: authenticates access to an Object Storage Service (OSS) bucket. | **oss_bucket_id**: the name of your OSS bucket. |'."\n"
.'| **ip_black_list_set**: the IP address blacklist. | **ip_list**: the IP addresses to be added to the blacklist. Separate multiple IP addresses with commas (,). |'."\n"
.'| **ip_allow_list_set**: the IP address whitelist. | **ip_list**: the IP addresses to be added to the whitelist. Separate multiple IP addresses with commas (,). |'."\n"
.'| **ip_white_list_set**: the IP address whitelist for rate limiting. | **ip_list**: the IP addresses to be added to the whitelist. Separate multiple IP addresses with commas (,). |'."\n"
.'| **error_page**: redirects an error page to a specified page. | **error_code**: the error code.**rewrite_page**: the page to which the error page is redirected. |'."\n"
.'| **set_req_host_header**: modifies the Host header of back-to-origin requests. | **domain_name**: the Host header of back-to-origin requests. |'."\n"
.'| **set_hashkey_args**: ignores the specified URL parameters. | **hashkey_args**: the parameters to be reserved. Separate multiple parameters with commas (,).**disable**: specifies whether to ignore all parameters. Valid values: on and off. A value of on specifies that all parameters are ignored. A value of off specifies that none of the parameters are ignored. |'."\n"
.'| **aliauth**: configures Alibaba Cloud authentication. | **auth_type**: the authentication type. Valid values: **type_a** and **no_auth**. A value of type_a specifies that authentication type A is enabled. A value of no_auth specifies that authentication is disabled.**auth_key1**: the primary authentication key. The authentication key must be 16 to 32 characters in length and can contain uppercase letters, lowercase letters, and digits.**auth_key2**: the secondary authentication key.**ali_auth_delta**: the custom buffer time for authentication. Unit: seconds. We recommend that you set the value to at least 60 seconds. |'."\n"
.'| **remote_auth**: configures remote authentication for live streaming. | **enable**: specifies whether to enable remote authentication. This attribute is required. Valid values: on and off.**remote_auth_path**: the address of the authentication server. This attribute is required.**remote_auth_pattern**: the authentication mode. The following fields are available:- **param**: specifies whether to pass parameters in the ingest URL to the authentication server. Valid values: pass (default) and fail.- **args_white**: the parameter that you want to pass. Separate multiple parameters with commas (,).- **args_black**: the parameter that you do not want to pass. Separate multiple parameters with commas (,).- **code**: the HTTP status code. A value in the form of code=XXX is returned by the authentication server to ApsaraVideo Live upon successful authentication. Example: code=200. A value in the form of code=~XXX is returned by the authentication server to ApsaraVideo Live upon failed authentication. Example: code=~403.- **delta**: the timeout duration for authentication.- **retry**: the number of retries upon authentication timeout.- **timeout**: the action to perform upon authentication timeout. Valid values: **pass** and **fail**. **pass**: ApsaraVideo Live passes the request. **fail**: ApsaraVideo Live returns the HTTP status code 403 that indicates failure.- **async**: specifies whether to enable asynchronous authentication. Valid values: **on** and **off** (default). |'."\n"
.'| **set_resp_header**: configures a response header. To verify the configuration, you can check the response message in a browser. | **key**: the name of the response header.**value**: the content of the response header. If you want to delete the header, enter null. |'."\n"
.'| **https_force**: configures force redirection to HTTPS. | **enable**: specifies whether to enable the feature. Valid values: **on** and **off**. The https_force and http_force features are mutually exclusive. You cannot configure them both. If you have configured one of the features, you must delete it before you can configure the other feature. |'."\n"
.'| **http_force**: configures force redirection to HTTP. | **enable**: specifies whether to enable the feature. Valid values: **on** and **off**. The https_force and http_force features are mutually exclusive. You cannot configure them both. If you have configured one of the features, you must delete it before you can configure the other feature. |'."\n"
.'| **l2_oss_key**: configures private key authentication for back-to-origin requests from L2 nodes to private OSS buckets. | **private_oss_auth**: specifies whether to authenticate access to a private OSS bucket. Valid values: **on** and **off**. |'."\n"
.'| **green_manager**: configures pornography detection. | **enable**: specifies whether to enable pornography detection. Valid values: **on** and **off**. |'."\n"
.'| **tmd_signature**: configures custom rate limiting rules. | **name**: the name of the rule, which must be globally unique.**path**: the uniform resource identifier (URI). You can specify duplicate URIs. However, you must verify their validity.**pathType**: the matching rule. Valid values: **0** and **1**. A value of 0 specifies a prefix match. A value of 1 specifies an exact match.**interval**: the interval at which data is monitored. Unit: seconds. The interval must be greater than or equal to 10 seconds.**count**: the number of visits from an IP address.**action**: the action to perform after the specified conditions are met. Valid values: **0** and **1**. A value of 0 specifies that access is blocked. A value of 1 specifies that bot detection is performed.**ttl**: the time period during which access is blocked. Unit: seconds. |'."\n"
.'| **forward_scheme**: configures adaptive back-to-origin. | **enable**: specifies whether to enable the feature. Valid values: on and off.**scheme_origin**: the protocol of the origin. Valid values: http, https, and follow.**scheme_origin_port**: the port number of the origin. Valid values: 80, 443, and 80:443. |'."\n"
.'| **video_seek**: configures video seeking. | **enable**: specifies whether to enable video seeking. Valid values: on and off. |'."\n"
.'| **gzip**: configures Gzip compression. | **enable**: specifies whether to enable Gzip compression. Valid values: on and off. |'."\n"
.'| **tesla**: configures page optimization to accelerate access. | **enable**: specifies whether to enable the feature. Valid values: on and off. |'."\n"
.'| **ali_ua**: configures User-Agent-based access control. | **ua**: the User-Agent **type**. Valid values: black and white. |'."\n"
.'| **host_redirect**: configures URL rewrite. | **regex**: the URL to be rewritten, for example, ^/$.**replacement**: the final URL, for example, /go/act/sale/tbzlsy.php.**flag**: the flag. Valid values: redirect and break. |'."\n"
.'| **ipv6** :configures IPv6. | **switch**: specifies whether to enable IPv6. This attribute is required. Valid values: on and off. If you want to disable this feature after this feature is enabled, deselect the feature in the console. Do not delete the configuration. Otherwise, the feature is still enabled.**region**: the region in which you want to enable IPv6. Valid values: cn-beijing (Beijing), cn-shanghai (Shanghai), cn-shenzhen (Shenzhen), cn-qingdao (Qingdao), apsoutheast-1 (Singapore), eu-central-1 (Germany), ap-northeast-1 (Tokyo), and ap-southeast-5 (Jakarta). |'."\n"
.'| **ali_location**: configures region-based access control. | **location**: the regions. |'."\n"
.'| **type**: the type of the list. | Valid values: black and white. |'."\n"
.'| **enable**: specifies whether to enable the feature. | Valid values: on and off. |'."\n"
.'| **live_forbid_flv**: specifies whether to prohibit the playback of Flash Videos (FLVs). | Valid values: on and off. |'."\n"
.'| **live_forbid_rtmp**: specifies whether to prohibit the playback of Real-Time Messaging Protocol (RTMP) videos. | Valid values: on and off. |'."\n"
.'| **live_forbid_hls**: specifies whether to prohibit the playback of HTTP Live Streaming (HLS) videos. | Valid values: on and off. |'."\n"
.'| **https_option**: configures HTTP settings. | **http2**: specifies whether to enable HTTP/2. Default value: **off**. Valid values: **on** and **off**.**live_http2**: specifies whether to enable live_http2. Default value: **off**. Valid values: **on** and **off**. |',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainConfigs'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainConfigs',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveDomainDetail' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '107014',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The ingest domain or streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'DomainDetail' => [
'description' => 'The details of the domain configuration.',
'type' => 'object',
'properties' => [
'CertName' => ['description' => 'The name of the certificate.', 'type' => 'string', 'example' => 'liveCert****', 'title' => ''],
'Cname' => ['description' => 'The canonical name (CNAME). A CNAME is generated for the live streaming domain. You must add a CNAME record at your DNS provider to map the live streaming domain to this CNAME.'."\n"
."\n"
.'> Local DNS records are cached. After you add the CNAME record, it may take up to 10 minutes to take effect. For more information, see [FAQ about CNAME records](~~362010~~).', 'type' => 'string', 'example' => 'learn.developer.aliyundoc.com', 'title' => ''],
'Description' => ['description' => 'The description of the domain name.', 'type' => 'string', 'example' => 'test', 'title' => ''],
'DomainName' => ['description' => 'The ingest domain or streaming domain.', 'type' => 'string', 'example' => 'demo.aliyundoc.com', 'title' => ''],
'DomainStatus' => ['description' => 'The status of the domain. Valid values:'."\n"
."\n"
.'- **online**: enabled.'."\n"
."\n"
.'- **offline**: disabled.'."\n"
."\n"
.'- **configuring**: being configured.', 'type' => 'string', 'example' => 'online', 'title' => ''],
'GmtCreated' => ['description' => 'The time when the domain was added. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2018-07-27T06:51:25Z', 'title' => ''],
'GmtModified' => ['description' => 'The time when the domain was last modified. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2018-08-07T06:51Z', 'title' => ''],
'LiveDomainType' => ['description' => 'The type of the domain name. Valid values:'."\n"
."\n"
.'- **liveVideo**: streaming domain.'."\n"
."\n"
.'- **liveEdge**: ingest domain.', 'type' => 'string', 'example' => 'liveVideo', 'title' => ''],
'Region' => ['description' => 'The region where the domain name is added.', 'type' => 'string', 'example' => 'cn-shanghai', 'title' => ''],
'SSLProtocol' => ['description' => 'Indicates whether SSL is enabled. Valid values:'."\n"
."\n"
.'- **on**: enabled.'."\n"
."\n"
.'- **off**: disabled.', 'type' => 'string', 'example' => 'on', 'title' => ''],
'SSLPub' => ['description' => 'The public key of the certificate.', 'type' => 'string', 'example' => 'Public Key', 'title' => ''],
'Scope' => ['description' => 'The acceleration region. Valid values:'."\n"
."\n"
.'- **domestic**: the Chinese mainland.'."\n"
."\n"
.'- **overseas**: regions outside the Chinese mainland.'."\n"
."\n"
.'- **global**: global.', 'type' => 'string', 'example' => 'domestic', 'title' => ''],
'ResourceGroupId' => ['description' => 'The ID of the resource group.', 'type' => 'string', 'example' => 'rg-**k3bpq2yjw22**', 'title' => ''],
],
'title' => '',
'example' => '',
],
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '09ABE829-6CD3-4FE0-AFEE-556113E29727', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'eventInfo' => [
'enable' => false,
'eventNames' => [],
],
'title' => 'DescribeLiveDomainDetail',
'summary' => 'Queries the basic configuration information of a specified ingest domain or streaming domain.',
'description' => 'This operation queries the basic configuration information of a specified ingest domain or streaming domain. The configuration of a newly added domain name takes several minutes to complete. You can query it after the configuration is complete.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2024-09-25T07:00:46.000Z', 'description' => 'Response parameters changed'],
['createdAt' => '2022-08-31T08:13:45.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainDetail'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainDetail',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', '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' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveYUZBM3'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The ingest domain.'."\n"
."\n"
.'> Make sure that the domain name added to ApsaraVideo Live and that you have the permissions to manage the domain name.', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com', 'title' => ''],
],
[
'name' => 'QueryTime',
'in' => 'query',
'schema' => ['description' => 'The time to query. The time is in UTC. Format: *yyyy-MM-dd*T*HH:mm:ss*Z.', 'type' => 'string', 'required' => true, 'example' => '2019-02-21T08:00:00Z', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'C3F2C2C4-59BB-4B62-81FF-345BE557E3E3', 'title' => ''],
'FrameRateAndBitRateInfos' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'FrameRateAndBitRateInfo' => [
'description' => 'The frame rate and bitrate information.',
'type' => 'array',
'items' => [
'description' => 'The frame rate and bitrate information.',
'type' => 'object',
'properties' => [
'VideoFrameRate' => ['description' => 'The video frame rate. Unit: frames per second (FPS).', 'type' => 'number', 'format' => 'float', 'example' => '24.9', 'title' => ''],
'StreamUrl' => ['description' => 'The URL of the live stream.', 'type' => 'string', 'example' => 'rtmp://demo.aliyundoc.com/test/liveStream****_3_4', 'title' => ''],
'AudioFrameRate' => ['description' => 'The audio frame rate of the live stream. Unit: FPS.', 'type' => 'number', 'format' => 'float', 'example' => '42.9', 'title' => ''],
'BitRate' => ['description' => 'The bitrate of the live stream. Unit: Bps.', 'type' => 'number', 'format' => 'float', 'example' => '30693.96', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''],
['errorCode' => 'InvalidQueryTime.Exceed', 'errorMessage' => 'QueryTime exceed three month.', 'description' => 'The query time is more than three months from the current time.'],
['errorCode' => 'InvalidQueryTime.Malformed', 'errorMessage' => 'Specified QueryTime is malformed.', 'description' => 'The specified query time is invalid.'],
],
],
'title' => 'DescribeLiveDomainFrameRateAndBitRateData',
'summary' => 'Queries the frame rate and bitrate data of streams for an ingest domain.',
'description' => 'You can call this API to query the real-time bitrate and frame rate of a stream. This helps you monitor the quality of stream ingest. Data collection and statistics are subject to a delay. Query data that is at least 5 minutes old.'."\n"
."\n"
.'> Use this API to replace the deprecated DescribeLiveStreamsFrameRateAndBitRateData API.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'You can call this operation up to 100 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainFrameRateAndBitRateData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveDomainLimit' => [
'summary' => 'Queries the maximum numbers of ingested and transcoded streams for a streaming domain.',
'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' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'A list of stream ingest and transcoding limits.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'A3136B58-5876-4168-83CA-B562********', 'title' => ''],
'LiveDomainLimitList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'LiveDomainLimit' => [
'description' => 'A list of stream ingest and transcoding limits.',
'type' => 'array',
'items' => [
'description' => 'A list of stream ingest and transcoding limits.',
'type' => 'object',
'properties' => [
'LimitTranscodeNum' => ['description' => 'The maximum number of transcoded streams.', 'type' => 'integer', 'format' => 'int32', 'example' => '50', 'title' => ''],
'CurrentTranscodeNum' => ['description' => 'The current number of active transcoded streams.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''],
'LimitNum' => ['description' => 'The maximum number of ingested streams.', 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => ''],
'LimitTransferNum' => ['description' => 'The maximum number of streams relayed from the live center.', 'type' => 'integer', 'format' => 'int32', 'example' => '50', 'title' => ''],
'CurrentNum' => ['description' => 'The current number of ingested streams.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''],
'CurrentTransferNum' => ['description' => 'The current number of streams relayed from the live center.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''],
'DomainName' => ['description' => 'The queried main streaming domain.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => 'Illegal input parameters'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''],
],
],
'title' => 'DescribeLiveDomainLimit',
'description' => 'This operation supports only main streaming domains.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 5 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions. For more information, see [QPS limit](~~343507~~).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Special error codes'."\n"
.'| Error code | Error message | HTTP status code |Description|'."\n"
.'|--------|--------|--------|--------|'."\n"
.'|Missing DomainName|DomainName is mandatory for this action.|400|One or more required parameters are not specified. |'."\n"
.'|InvalidParam|Parameter invalid.|400|One or more specified parameters are invalid. |'."\n"
.'|InvalidDomain.NotFound|The domain provided does not exist in our records.|404|The domain name is not found within your Alibaba Cloud account. |',
'changeSet' => [
['createdAt' => '2024-01-23T07:50:24.000Z', 'description' => 'Response parameters changed'],
],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainLimit',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveDomainLog' => [
'summary' => 'Retrieves the download URLs of raw access logs for a specified domain name in ApsaraVideo Live.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => [
'operationType' => 'get',
'abilityTreeCode' => '107021',
'abilityTreeNodes' => ['FEATURElive066BXV'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain or ingest domain.'."\n"
.'> - When you specify DomainName, make sure that the domain name is a live streaming domain name and that the user calling this operation has the required permissions on the specified domain name.'."\n"
.'> - Only a single domain name can be queried at a time.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The page size. Valid values:'."\n"
."\n"
.'- Any integer from **1** to **1000**.'."\n"
.'- Default value: **300**.'."\n"
.'- Maximum value: **1000**.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'default' => '300', 'example' => '20', 'title' => ''],
],
[
'name' => 'PageNumber',
'in' => 'query',
'schema' => ['description' => 'The page number.'."\n"
.'Valid values: [1, 9223372036854775807].'."\n"
.'> If you do not specify PageNumber, the first page of data is returned by default.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'default' => '1', 'example' => '1', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format (UTC).', 'type' => 'string', 'required' => false, 'example' => '2016-10-20T04:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format (UTC).'."\n"
."\n"
.'The end time must be later than the start time. The interval between the start time and end time cannot exceed 31 days.', 'type' => 'string', 'required' => false, 'example' => '2016-10-20T05:00:00Z', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'DomainName' => ['description' => 'The streaming domain or ingest domain.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
'DomainLogDetails' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DomainLogDetail' => [
'description' => 'The data composed of DomainLogDetail entries.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'LogCount' => ['description' => 'The total number of entries returned on the current page.', 'type' => 'integer', 'format' => 'int64', 'example' => '10', 'title' => ''],
'LogInfos' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'LogInfoDetail' => [
'description' => 'The data composed of LogInfoDetail entries.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'EndTime' => ['description' => 'The end time. The time is in the yyyy-MM-ddTHH:mm:ssZ format (UTC).', 'type' => 'string', 'example' => '2016-10-20T05:00:00Z', 'title' => ''],
'LogSize' => ['description' => 'The log size.', 'type' => 'integer', 'format' => 'int64', 'example' => '10', 'title' => ''],
'StartTime' => ['description' => 'The start time. The time is in the yyyy-MM-ddTHH:mm:ssZ format (UTC).', 'type' => 'string', 'example' => '2016-10-20T04:00:00Z', 'title' => ''],
'LogName' => ['description' => 'The log name.', 'type' => 'string', 'example' => 'developer.aliyundoc.com_2016_10_20_040000_050000.gz', 'title' => ''],
'LogPath' => ['description' => 'The log path.', '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', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'PageInfos' => [
'description' => 'The page information.',
'type' => 'object',
'properties' => [
'PageIndex' => ['description' => 'The page number of the returned data.', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
'PageSize' => ['description' => 'The page size.', 'type' => 'integer', 'format' => 'int64', 'example' => '20', 'title' => ''],
'Total' => ['description' => 'The total number of log entries.', 'type' => 'integer', 'format' => 'int64', 'example' => '20', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'eventInfo' => [
'enable' => false,
'eventNames' => [],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query log download uRLs',
'description' => '- Each API call supports querying offline logs for only a single domain name.'."\n"
.'- The optional parameters StartTime and EndTime must be specified together. After you specify the start time and end time, logs within the specified time range are queried.'."\n"
.'- If you do not specify StartTime and EndTime, log data from the past 24 hours is returned by default.'."\n"
."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this operation is 100 calls per second. If this limit is exceeded, the API calls are throttled, which may affect your business. Call this operation appropriately.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2024-09-29T03:51:17.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainLog'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainLog',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeLiveDomainMapping' => [
'summary' => 'Retrieves the mapping between ingest domains, main streaming domains, and sub-streaming domains.',
'methods' => ['get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'description' => 'The region ID.', 'title' => '', 'example' => 'cn-shanghai'],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The domain that you want to query. Valid types:'."\n"
."\n"
.'- Ingest domain'."\n"
."\n"
.'- Main streaming domain'."\n"
."\n"
.'- Sub-streaming domain', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'example.com'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F6CD8'],
'LiveDomainModels' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'LiveDomainModel' => [
'itemNode' => true,
'description' => 'The mapping of the queried domain.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'The mapping of the queried domain.',
'type' => 'object',
'properties' => [
'Type' => ['description' => 'The type of the queried domain. Valid values:'."\n"
."\n"
.'- **vhost**: main streaming domain'."\n"
."\n"
.'- **publish**: ingest domain'."\n"
."\n"
.'- **play**: sub-streaming domain', 'type' => 'string', 'title' => '', 'example' => 'play'],
'DomainName' => ['description' => 'The mapped domain.', 'type' => 'string', 'title' => '', 'example' => 'example.aliyundoc.com'],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'eventInfo' => [
'enable' => false,
'eventNames' => [],
],
'title' => 'DescribeLiveDomainMapping',
'description' => 'Before you call this operation, identify the ingest or streaming domain that you want to query.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'You can call this operation up to 500 times per minute per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2024-09-29T03:51:17.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainMapping'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainMapping',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveDomainMonitoringUsageData' => [
'summary' => 'Queries the monitoring usage data of a domain name by calling DescribeLiveDomainMonitoringUsageData.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '195294',
'abilityTreeNodes' => ['FEATUREliveSM955S'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain to query.'."\n"
."\n"
.'- You can specify a single domain name or multiple domain names. Separate multiple domain names with commas (,).'."\n"
.'- If this parameter is left empty, the merged data of all live streaming domain names is returned by default.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time. Specify the time in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time must be in UTC.'."\n"
.'- The minimum data granularity is 1 hour.'."\n"
.'- If this parameter is not specified, data of the last 24 hours is returned by default.', 'type' => 'string', 'required' => false, 'example' => '2022-12-10T20:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. The end time must be later than the start time. Specify the time in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2022-12-10T22:00:00Z', 'title' => ''],
],
[
'name' => 'Region',
'in' => 'query',
'schema' => ['description' => 'The live center region. If this parameter is left empty, the merged data of all regions is returned by default. You can specify multiple regions. Separate multiple regions with commas (,).', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'InstanceId',
'in' => 'query',
'schema' => ['description' => 'The monitoring session ID. If this parameter is left empty, the merged data of all monitoring sessions is returned by default. You can specify multiple IDs. Separate multiple IDs with commas (,).', 'type' => 'string', 'required' => false, 'example' => 'e62af24d-a354-3b0c-9f1f-da592c4b****', 'title' => ''],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => ['description' => 'The time granularity for the query. Valid values: **3600** (hour) and **86400** (day).', 'type' => 'string', 'required' => false, 'example' => '3600', 'title' => ''],
],
[
'name' => 'SplitBy',
'in' => 'query',
'schema' => ['description' => 'The grouping key. Default value: **resolution**, which indicates grouping by resolution. Valid values: **domain**, **region**, **instance**, and **resolution**. You can specify multiple values. Separate multiple values with commas (,).', 'type' => 'string', 'required' => false, 'default' => 'resolution', 'example' => 'resolution', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
'DomainName' => ['description' => 'The domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'EndTime' => ['description' => 'The end time of the query. The time is in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is in UTC.', 'type' => 'string', 'example' => '2022-12-10T22:00:00Z', 'title' => ''],
'InstanceId' => ['description' => 'The monitoring session ID.', 'type' => 'string', 'example' => 'e62af24d-a354-3b0c-9f1f-da592c4b****', 'title' => ''],
'MonitoringData' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'MonitoringDataItem' => [
'description' => 'The monitoring usage details.',
'type' => 'array',
'items' => [
'description' => 'The details.',
'type' => 'object',
'properties' => [
'DomainName' => ['description' => 'The domain name. This parameter is valid only when **Split** includes domain.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'Duration' => ['description' => 'The duration, in minutes.', 'type' => 'integer', 'format' => 'int32', 'example' => '2000', 'title' => ''],
'InstanceId' => ['description' => 'The monitoring session ID. This parameter is valid only when **Split** includes instance.', 'type' => 'string', 'example' => 'e62af24d-a354-3b0c-9f1f-da592c4b****', 'title' => ''],
'Region' => ['description' => 'The live center region. This parameter is valid only when **Split** includes Region.', 'type' => 'string', 'example' => 'cn-shanghai', 'title' => ''],
'Resolution' => ['description' => 'The resolution. This parameter is valid only when **Split** includes resolution.', 'type' => 'string', 'example' => '720P', 'title' => ''],
'TimeStamp' => ['description' => 'The start time of the time interval. The time is in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is in UTC.', 'type' => 'string', 'example' => '2022-12-10T20:00:00Z', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'Region' => ['description' => 'The live center region.', 'type' => 'string', 'example' => 'cn-shanghai', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3******', 'title' => ''],
'StartTime' => ['description' => 'The start time of the query. The time is in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is in UTC.', 'type' => 'string', 'example' => '2022-12-10T20:00:00Z', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'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' => 'The end time does not match the start time. Make sure that the start and end times match.'],
['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => 'The time span exceeds the limit. Please refer to the API documentation to specify a reasonable time span.'],
['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => 'The value specified for the StartTime parameter is invalid.'],
],
],
'eventInfo' => [
'enable' => false,
'eventNames' => [],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query domain name monitoring usage',
'description' => '- You can query multiple domain names at a time. Separate multiple domain names with commas (,).'."\n"
.'- You can query data of up to the last 90 days.'."\n"
.'- The time granularity for querying data is hour or day.'."\n"
.'- The maximum query time span is 31 days.'."\n"
.'## QPS limit'."\n"
.'The QPS limit for a single user on this operation is 20 calls per second. If the limit is exceeded, API calls are throttled, which may affect your business. Call this operation appropriately.',
'extraInfo' => '## Special error codes'."\n"
.'| Error code | Description | HTTP status code | Meaning |'."\n"
.'|-------------|-------|-----------------|-------|'."\n"
.'| Throttling | Request was denied due to request throttling. | 503 | The request is throttled. |'."\n"
.'| InvalidDomain.NotFound | The domain provided does not belong to you. | 404 | The domain name does not exist or does not belong to the current user. |.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainMonitoringUsageData'],
],
],
'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' => 'Queries the configuration status of dual-stream disaster recovery.',
'methods' => ['get'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '250493',
'abilityTreeNodes' => ['FEATURElive9P39J9'],
],
'parameters' => [
[
'name' => 'Domain',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'pliveplay.gstv.com.cn', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'F486A44F-6B35-5A96-BF2C-************'],
'Switch' => [
'description' => 'Indicates whether the dual-stream disaster recovery feature is enabled. Valid values:'."\n"
."\n"
.'- **on**: enabled'."\n"
.'- **off**: disabled',
'type' => 'string',
'enumValueTitles' => ['off' => 'off', 'on' => 'on'],
'example' => 'on',
'title' => '',
],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => 'Parameter error'],
['errorCode' => 'CodeGetPushbackDomainError', 'errorMessage' => 'Unable to get the push domain name, please check the domain name mapping configuration.', 'description' => 'Unable to get the push domain name, please check the domain name mapping configuration.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => 'error on the live liveapi server.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DescribeLiveDomainMultiStreamConfig',
'changeSet' => [
['createdAt' => '2025-04-27T04:00:13.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainMultiStreamConfig'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainMultiStreamConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F486A44F-6B35-5A96-BF2C-************\\",\\n \\"Switch\\": \\"on\\"\\n}","type":"json"}]',
],
'DescribeLiveDomainOnlineUserNum' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '107024',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'QueryTime',
'in' => 'query',
'schema' => ['description' => 'The point of time to query. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2018-12-27T13:09:21Z', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '3A3A8C3D-F8B2-4FBF-9319-771A11B855FA', 'title' => ''],
'UserCount' => ['description' => 'The total number of online users at the specified point in time on the specified domain.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'StreamCount' => ['description' => 'The number of streams.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'OnlineUserInfo' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'LiveStreamOnlineUserNumInfo' => [
'description' => 'The information about the streams.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'StreamName' => ['description' => 'The stream name.', 'type' => 'string', 'example' => 'rtmp://example.com/test/liveStream****_3_1', 'title' => ''],
'Infos' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Info' => [
'description' => 'The stream statistics.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'UserNumber' => ['description' => 'The number of viewers watching the transcoded stream or the original stream.', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
'TranscodeTemplate' => ['description' => 'The transcoding template. A value of origin indicates that the stream is an original, non-transcoded stream.', 'type' => 'string', 'example' => 'origin', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''],
['errorCode' => 'InvalidQueryTime.Exceed', 'errorMessage' => 'QueryTime exceed three month.', 'description' => 'The query time is more than three months from the current time.'],
['errorCode' => 'InvalidQueryTime.Malformed', 'errorMessage' => 'Specified QueryTime is malformed.', 'description' => 'The specified query time is invalid.'],
],
],
'title' => 'DescribeLiveDomainOnlineUserNum',
'summary' => 'Retrieves the number of online viewers for all live streams on a specified domain.',
'description' => 'This API only supports viewer counts for FLV, RTS, and RTMP streams. HLS streams are not supported. The data collection has a delay. For accuracy, query for data that is at least 5 minutes old.'."\n"
."\n"
.'> This API replaces the deprecated `DescribeLiveStreamOnlineUserNum` endpoint.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'You can call this operation up to 200 times per minute per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainOnlineUserNum',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveDomainPublishErrorCode' => [
'summary' => 'Queries the stream ingest status codes for an ingest domain within a specified time range.',
'methods' => ['get', 'post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '204356',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The ingest domain. You can specify multiple ingest domains. Separate multiple domain names with commas (,).'."\n"
."\n"
.'> This parameter is required.', 'type' => 'string', 'required' => false, 'example' => 'example1.aliyundoc.com,example2.aliyundoc.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'Filters and aggregates data by AppName. If you specify AppName, you must set DomainName to a specific ingest domain.', 'type' => 'string', 'required' => false, 'example' => 'AppName', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format (UTC).'."\n"
."\n"
.'> If you do not set this parameter, data from the last hour is queried by default.', 'type' => 'string', 'required' => false, 'example' => '2016-06-29T09:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format (UTC).'."\n"
."\n"
.'> If you do not set this parameter, data from the last hour is queried by default.', 'type' => 'string', 'required' => false, 'example' => '2016-06-29T09:10:00Z', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'DataInterval' => ['description' => 'The time granularity of the queried data. Unit: seconds. Default value: 60.', 'type' => 'string', 'example' => '60', 'title' => ''],
'DomainName' => ['description' => 'The ingest domain.', 'type' => 'string', 'example' => 'example1.aliyundoc.com,example2.aliyundoc.com', 'title' => ''],
'EndTime' => ['description' => 'The end time. The time is in the yyyy-MM-ddTHH:mm:ssZ format (UTC).', 'type' => 'string', 'example' => '2016-06-29T09:10:00Z', 'title' => ''],
'RealTimeCodeData' => [
'description' => 'The status code distribution data for each time interval.',
'type' => 'array',
'items' => [
'description' => 'The status code distribution data for each time interval.',
'type' => 'object',
'properties' => [
'CodeData' => [
'description' => 'The list of status code distribution data.',
'type' => 'array',
'items' => [
'description' => 'The list of status code distribution data.',
'type' => 'object',
'properties' => [
'Code' => ['description' => 'The response code. Valid values:'."\n"
.'- 3: read data timeout.'."\n"
.'- 4: write data error.'."\n"
.'- 6: write data timeout.'."\n"
.'- 200: success.'."\n"
.'- 500: internal system unknown error.'."\n"
.'- 501: stream ingest exception.'."\n"
.'- 502: signaling took too long.'."\n"
.'- 401: stream ingest parameter exception.'."\n"
.'- 403: stream ingest authentication failed.', 'type' => 'string', 'example' => '200', 'title' => ''],
'Count' => ['description' => 'The number of responses.', 'type' => 'string', 'example' => '20', 'title' => ''],
'Proportion' => ['description' => 'The proportion of responses.', 'type' => 'string', 'example' => '66.04', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'TimeStamp' => ['description' => 'The start time of the time interval. The time is in the yyyy-MM-ddTHH:mm:ssZ format (UTC).', 'type' => 'string', 'example' => '2016-06-29T09:01:00Z', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'BC858082-736F-4A25-867B-E5B67C******', 'title' => ''],
'StartTime' => ['description' => 'The start time. The time is in the yyyy-MM-ddTHH:mm:ssZ format (UTC).', 'type' => 'string', 'example' => '2016-06-29T09:00:00Z', 'title' => ''],
],
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query ingest domain stream ingest status codes',
'description' => '- This operation is a monitoring data API. The data collection and processing method differs from billing and cannot be used to calculate usage for reconciliation purposes.'."\n"
.'- You can query data from the last 90 days.'."\n"
.'- Data is delayed by 3 to 5 minutes.'."\n"
.'## QPS limit'."\n"
.'The QPS limit for a single user is 10 calls per second. If the limit is exceeded, API calls are throttled, which may affect your business. Call this operation appropriately.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainPublishErrorCode'],
],
],
'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' => 'Queries the network bandwidth monitoring data for stream ingest on an ingest domain by calling DescribeLiveDomainPushBpsData.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveYUZBM3'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The ingest domain.'."\n"
.'Batch domain name queries are supported. Separate multiple domain names with commas (,).'."\n"
.'If this parameter is left empty, the merged data of all ingest domains is returned by default.', 'type' => 'string', 'required' => false, 'example' => 'demo.aliyundoc.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format (UTC).'."\n"
.'If you do not specify this parameter, data from the last 24 hours is returned by default.', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T20:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format (UTC).'."\n"
.'The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T21:00:00Z', 'title' => ''],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => ['description' => 'The time granularity of the queried data. Unit: seconds. Valid values:'."\n"
."\n"
.'- **300**'."\n"
.'- **3600**'."\n"
.'- **86400**'."\n"
."\n"
.'If you do not specify this parameter or the specified value is not supported, the default value 300 is used.', 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''],
],
[
'name' => 'IspNameEn',
'in' => 'query',
'schema' => ['description' => 'The name of the Internet service provider (ISP) in English.'."\n"
.'You can call the [DescribeCdnRegionAndIsp](~~91077~~) operation to obtain ISP names. If you do not specify this parameter, data for all ISPs is returned.', 'type' => 'string', 'required' => false, 'example' => 'alibaba', 'title' => ''],
],
[
'name' => 'LocationNameEn',
'in' => 'query',
'schema' => ['description' => 'The name of the region in English.'."\n"
.'You can call the [DescribeCdnRegionAndIsp](~~91077~~) operation to obtain region names. If you do not specify this parameter, data for all regions is returned.', 'type' => 'string', 'required' => false, 'example' => 'tianjin', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'EndTime' => ['description' => 'The end of the time range. The time is in the yyyy-MM-ddTHH:mm:ssZ format (UTC).', 'type' => 'string', 'example' => '2017-12-10T21:00:00Z', 'title' => ''],
'StartTime' => ['description' => 'The beginning of the time range. The time is in the yyyy-MM-ddTHH:mm:ssZ format (UTC).', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F', 'title' => ''],
'DomainName' => ['description' => 'The ingest domain that was queried.', 'type' => 'string', 'example' => 'demo.aliyundoc.com', 'title' => ''],
'DataInterval' => ['description' => 'The time granularity of the queried data.', 'type' => 'string', 'example' => '300', 'title' => ''],
'BpsDataPerInterval' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DataModule' => [
'description' => 'The network bandwidth data for each time interval.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'BpsValue' => ['description' => 'The bandwidth value. Unit: bit/s.', 'type' => 'string', 'example' => '11288111', 'title' => ''],
'TimeStamp' => ['description' => 'The start time of the time interval. The time is in the yyyy-MM-ddTHH:mm:ssZ format (UTC).', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'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' => 'The end time does not match the start time. Make sure that the start and end times match.'],
['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => 'The value specified for the StartTime parameter is invalid.'],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query network bandwidth monitoring data for stream ingest on an ingest domain',
'description' => '- The bandwidth data is measured in bit/s.'."\n"
.'- Batch domain name queries are supported. Separate multiple domain names with commas (,).'."\n"
.'- If you do not specify StartTime or EndTime, data from the last 24 hours is returned by default. You can also query data for a specific time range by specifying both StartTime and EndTime.'."\n"
.'- You can query data from the last 90 days.'."\n"
."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this operation is 100 calls per second. If the limit is exceeded, API calls are throttled, which may affect your business. Call this operation appropriately.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainPushBpsData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeLiveDomainPushTrafficData' => [
'summary' => 'Queries the push traffic monitoring data of an ingest domain by calling DescribeLiveDomainPushTrafficData.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveYUZBM3'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The ingest domain.'."\n"
.'Batch domain name queries are supported. Separate multiple domain names with commas (,).'."\n"
.'If this parameter is left empty, the merged data of all ingest domains is returned by default.', 'type' => 'string', 'required' => false, 'example' => 'demo.aliyundoc.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format (UTC).'."\n"
.'If you do not specify this parameter, data of the last 24 hours is returned by default.', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T20:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format (UTC).', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T21:00:00Z', 'title' => ''],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => ['description' => 'The time granularity of the queried data. Unit: seconds. Valid values:'."\n"
."\n"
.'- **300**'."\n"
.'- **3600**'."\n"
.'- **86400**'."\n"
."\n"
.'If you do not specify this parameter or the specified value is not supported, the default value 300 is used.', 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''],
],
[
'name' => 'IspNameEn',
'in' => 'query',
'schema' => ['description' => 'The name of the Internet service provider (ISP) in English.'."\n"
.'You can call the [DescribeCdnRegionAndIsp](~~91077~~) operation to obtain ISP names. If you do not specify this parameter, data of all ISPs is returned.', 'type' => 'string', 'required' => false, 'example' => 'alibaba', 'title' => ''],
],
[
'name' => 'LocationNameEn',
'in' => 'query',
'schema' => ['description' => 'The name of the region in English.'."\n"
.'You can call the [DescribeCdnRegionAndIsp](~~91077~~) operation to obtain region names. If you do not specify this parameter, data of all regions is returned.', 'type' => 'string', 'required' => false, 'example' => 'tianjin', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'EndTime' => ['description' => 'The end time. The time is in the yyyy-MM-ddTHH:mm:ssZ format (UTC).', 'type' => 'string', 'example' => '2017-12-10T21:00:00Z', 'title' => ''],
'StartTime' => ['description' => 'The start time. The time is in the yyyy-MM-ddTHH:mm:ssZ format (UTC).', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F', 'title' => ''],
'DomainName' => ['description' => 'The ingest domain.', 'type' => 'string', 'example' => 'demo.aliyundoc.com', 'title' => ''],
'DataInterval' => ['description' => 'The data time granularity.', 'type' => 'string', 'example' => '300', 'title' => ''],
'TrafficDataPerInterval' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DataModule' => [
'description' => 'The traffic data for each time interval.',
'type' => 'array',
'items' => [
'description' => 'The traffic data time granularity.',
'type' => 'object',
'properties' => [
'TrafficValue' => ['description' => 'The traffic value. Unit: bytes.', 'type' => 'string', 'example' => '1288111', 'title' => ''],
'TimeStamp' => ['description' => 'The start time of the time interval. The time is in the yyyy-MM-ddTHH:mm:ssZ format (UTC).', 'type' => 'string', 'example' => '2017-12-10T20:05:00Z', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'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' => 'The end time does not match the start time. Make sure that the start and end times match.'],
['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => 'The value specified for the StartTime parameter is invalid.'],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query ingest domain push traffic monitoring data',
'description' => '- The unit of the traffic monitoring data is bytes.'."\n"
.'- Batch domain name queries are supported. Separate multiple domain names with commas (,).'."\n"
.'- If you do not specify StartTime or EndTime, data of the last 24 hours is returned by default. You can also query data for a specific time range by specifying both StartTime and EndTime.'."\n"
.'- You can query data of the last 90 days.'."\n"
."\n"
.'## QPS limit'."\n"
.'The QPS limit for a single user on this operation is 100 calls per second. If the limit is exceeded, API calls are throttled, which may affect your business. Call this operation as appropriate.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainPushTrafficData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeLiveDomainPvUvData' => [
'summary' => 'Queries the page view (PV) and unique visitor (UV) data for a specified streaming domain.',
'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' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.'."\n"
."\n"
.'> - Make sure that the specified domain name is a streaming domain and that you have the required permissions to operate on it.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time. The format is *yyyy-MM-dd*T*HH:mm:ssZ* (UTC).', 'type' => 'string', 'required' => false, 'example' => '2018-03-17T16:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. The time must be later than the start time. The format is *yyyy-MM-dd*T*HH:mm:ssZ* (UTC).', 'type' => 'string', 'required' => false, 'example' => '2018-03-20T16:00:00Z', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The PV and UV data of the streaming domain.',
'type' => 'object',
'properties' => [
'EndTime' => ['description' => 'The end time. The format is *yyyy-MM-dd*T*HH:mm:ssZ* (UTC).', 'type' => 'string', 'example' => '2018-03-20T16:00:00Z', 'title' => ''],
'StartTime' => ['description' => 'The start time. The format is *yyyy-MM-dd*T*HH:mm:ssZ* (UTC).', 'type' => 'string', 'example' => '2018-03-17T16:00:00Z', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'E9D3257A-1B7C-414C-90C1-8D07AC47BCAC', 'title' => ''],
'DomainName' => ['description' => 'The streaming domain.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'DataInterval' => ['description' => 'The time interval for each record. Unit: seconds. The value is fixed at 3600.', 'type' => 'string', 'example' => '3600', 'title' => ''],
'PvUvDataInfos' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'PvUvDataInfo' => [
'itemNode' => true,
'description' => 'A list of PV and UV data.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'A list of PV and UV data.',
'type' => 'object',
'properties' => [
'PV' => ['description' => 'The PV data.', 'type' => 'string', 'example' => '3036', 'title' => ''],
'TimeStamp' => ['description' => 'The start time of the time slice. The format is *yyyy-MM-dd*T*HH:mm:ssZ* (UTC).', 'type' => 'string', 'example' => '2018-03-19T16:00:00Z', 'title' => ''],
'UV' => ['description' => 'The UV data.', 'type' => 'string', 'example' => '2', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'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' => 'The value specified for the StartTime parameter is invalid.'],
['errorCode' => 'InvalidTime.ValueNotSupported', 'errorMessage' => 'Specified Time is malformed.', 'description' => 'The specified time is invalid.'],
],
],
'eventInfo' => [
'enable' => false,
'eventNames' => [],
],
'title' => 'DescribeLiveDomainPvUvData',
'description' => '- You can call this operation to view the geographic distribution of your video viewers, check access rankings for your accelerated domain names, and count the number of unique IP addresses that send requests to the domain name within a specific period.'."\n"
."\n"
.'- If you do not specify the StartTime and EndTime parameters, data from the last 24 hours is queried by default. You can also query data for a specified time range.'."\n"
."\n"
.'- You can query only one domain name at a time.'."\n"
."\n"
.'- You can query data from the last 90 days.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 100. If you exceed this limit, API calls are throttled. This may affect your business. We recommend that you call this operation at a reasonable frequency.',
'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天或时间参数错误。|',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainPvUvData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveDomainRealTimeBpsData' => [
'methods' => ['get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '107032',
'abilityTreeNodes' => ['FEATUREliveYUZBM3'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.'."\n"
."\n"
.'Separate multiple domain names with commas (,).', 'type' => 'string', 'required' => true, 'example' => 'example1.aliyundoc.com,example2.aliyundoc.com', 'title' => ''],
],
[
'name' => 'IspNameEn',
'in' => 'query',
'schema' => ['description' => 'The English name of the carrier.'."\n"
."\n"
.'For more information, see [DescribeCdnRegionAndIsp](~~91077~~).', 'type' => 'string', 'required' => false, 'example' => 'alibaba', 'title' => ''],
],
[
'name' => 'LocationNameEn',
'in' => 'query',
'schema' => ['description' => 'The English name of the region.'."\n"
."\n"
.'For more information, see [DescribeCdnRegionAndIsp](~~91077~~).', 'type' => 'string', 'required' => false, 'example' => 'tianjin', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time. The format is *yyyy-MM-dd*T*HH:mm:ss*Z (UTC).', 'type' => 'string', 'required' => false, 'example' => '2015-11-30T05:39:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. It must be later than the start time. The format is *yyyy-MM-dd*T*HH:mm:ss*Z (UTC).'."\n"
."\n"
.'> If you do not specify this parameter, data within one hour of the start time is queried by default.', 'type' => 'string', 'required' => false, 'example' => '2015-11-30T05:40:00Z', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'EndTime' => ['description' => 'The end of the time range. The format is *yyyy-MM-dd*T*HH:mm:ss*Z (UTC).', 'type' => 'string', 'example' => '2015-11-30T05:40:00Z', 'title' => ''],
'StartTime' => ['description' => 'The start of the time range. The format is *yyyy-MM-dd*T*HH:mm:ss*Z (UTC).', 'type' => 'string', 'example' => '2015-11-30T05:33:00Z', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'BC858082-736F-4A25-867B-E5B6******', 'title' => ''],
'DomainName' => ['description' => 'The streaming domain name.', 'type' => 'string', 'example' => 'example1.aliyundoc.com,example2.aliyundoc.com', 'title' => ''],
'DataInterval' => ['description' => 'The time granularity of the queried data.', 'type' => 'string', 'example' => '60', 'title' => ''],
'RealTimeBpsDataPerInterval' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DataModule' => [
'itemNode' => true,
'description' => 'The bandwidth data of the domain name at a 1-minute granularity.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'The bandwidth data of the domain name at a 1-minute granularity.',
'type' => 'object',
'properties' => [
'Value' => ['description' => 'The bandwidth data. Unit: bit/second.', 'type' => 'string', 'example' => '59392614.8', 'title' => ''],
'TimeStamp' => ['description' => 'The data timestamp.', 'type' => 'string', 'example' => '2015-11-30T05:39:00Z', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidTime.Malformed', 'errorMessage' => 'Specified StartTime or EndTime is malformed.', 'description' => ''],
['errorCode' => 'InvalidDomainName.Malformed', 'errorMessage' => 'Specified domain name is malformed.', 'description' => 'Specified domain name is malformed.'],
],
],
'eventInfo' => [
'enable' => false,
'eventNames' => [],
],
'title' => 'DescribeLiveDomainRealTimeBpsData',
'summary' => 'Call the DescribeLiveDomainRealTimeBpsData operation to retrieve bandwidth data for a domain name at a 1-minute granularity.',
'description' => '- You can call this operation to query the traffic and bandwidth usage of a specified domain name.'."\n"
."\n"
.'- You can query data from the last 7 days. The time range of a single query cannot exceed 24 hours.'."\n"
."\n"
.'- If you do not specify StartTime and EndTime, data for the last hour is returned by default.'."\n"
."\n"
.'- This operation provides monitoring data. The data collection and processing methods are different from those used for billing. You cannot use the data from this operation for billing reconciliation.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 10. If you exceed this limit, your API calls are throttled. This may affect your business. We recommend that you call this operation at a reasonable rate.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainRealTimeBpsData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveDomainRealTimeHttpCodeData' => [
'summary' => 'Retrieves the proportions of HTTP status codes for an accelerated domain name at a 1-minute granularity.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '107034',
'abilityTreeNodes' => ['FEATUREliveYUZBM3'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.'."\n"
.'> - When you specify DomainName, make sure that the domain name is a live streaming domain and that the caller has the required permissions on the domain name.'."\n"
.'> - Separate multiple domain names with commas (,).', 'type' => 'string', 'required' => true, 'example' => 'example.com,example.aliyundoc.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format (UTC).'."\n"
."\n"
.'> If both StartTime and EndTime are left empty, data within the last **1** hour from the current time is returned by default.', 'type' => 'string', 'required' => false, 'example' => '2015-11-30T05:39:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. The end time must be later than the start time. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format (UTC).'."\n"
.'> If both StartTime and EndTime are left empty, data within the last **1** hour from the current time is returned by default.', 'type' => 'string', 'required' => false, 'example' => '2015-11-30T05:40:00Z', 'title' => ''],
],
[
'name' => 'IspNameEn',
'in' => 'query',
'schema' => ['description' => 'The name of the Internet service provider (ISP) in English.'."\n"
."\n"
.'You can call the [DescribeCdnRegionAndIsp](~~448109~~) operation to obtain the ISP name.', 'type' => 'string', 'required' => false, 'example' => 'alibaba', 'title' => ''],
],
[
'name' => 'LocationNameEn',
'in' => 'query',
'schema' => ['description' => 'The name of the region in English.'."\n"
."\n"
.'You can call the [DescribeCdnRegionAndIsp](~~448109~~) operation to obtain the region name.', 'type' => 'string', 'required' => false, 'example' => 'tianjin', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'EndTime' => ['description' => 'The end time. The time is in the yyyy-MM-ddTHH:mm:ssZ format (UTC).', 'type' => 'string', 'example' => '2015-11-30T05:40:00Z', 'title' => ''],
'StartTime' => ['description' => 'The start time. The time is in the yyyy-MM-ddTHH:mm:ssZ format (UTC).', 'type' => 'string', 'example' => '2015-11-30T05:33:00Z', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'BC858082-736F-4A25-867B-E5B67C85ACF7', 'title' => ''],
'DomainName' => ['description' => 'The streaming domain.', 'type' => 'string', 'example' => 'example.com,example.aliyundoc.com', 'title' => ''],
'DataInterval' => ['description' => 'The time interval between consecutive data entries. Unit: seconds. Default value: 60.', 'type' => 'string', 'example' => '60', 'title' => ''],
'RealTimeHttpCodeData' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'UsageData' => [
'description' => 'The HTTP status code proportion data for each time interval.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'TimeStamp' => ['description' => 'The start time of the time interval. The time is in the yyyy-MM-ddTHH:mm:ssZ format (UTC).', 'type' => 'string', 'example' => '2015-11-30T05:39:00Z', 'title' => ''],
'Value' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'RealTimeCodeProportionData' => [
'description' => 'The proportion data for each HTTP status code.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Code' => ['description' => 'The HTTP status code.', 'type' => 'string', 'example' => '200', 'title' => ''],
'Proportion' => ['description' => 'The proportion of responses with this status code.', 'type' => 'string', 'example' => '66.046511627907', 'title' => ''],
'Count' => ['description' => 'The number of responses.', 'type' => 'string', 'example' => '20', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['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' => ''],
],
],
'eventInfo' => [
'enable' => false,
'eventNames' => [],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query real-time HTTP status code proportions for live streaming domains',
'description' => 'The following table describes the data timestamp granularity supported by this operation:'."\n"
.'|Time granularity|Maximum time range per query|Historical data available|Data latency|'."\n"
.'|-----|------|-------|-------|'."\n"
.'|1 minute|1 hour|7 days|5 minutes|'."\n"
.'|5 minutes|3 days|93 days|15 minutes|'."\n"
.'|1 hour|31 days|186 days|Typically 4 hours|'."\n"
.'|1 day|Unlimited|366 days|After 04:00 on the next day|'."\n"
."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this operation is 10 calls per second. If the limit is exceeded, API calls are throttled, which may affect your business. Invoke this operation as needed.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainRealTimeHttpCodeData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeLiveDomainRealTimeTrafficData' => [
'summary' => 'Queries real-time traffic monitoring data for live streaming domain names.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '107036',
'abilityTreeNodes' => ['FEATUREliveYUZBM3'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The ID of the region.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain name.'."\n"
."\n"
.'To specify multiple domain names, separate them with commas (,).', 'type' => 'string', 'required' => true, 'example' => 'example.com,example.aliyundoc.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.'."\n"
."\n"
.'> If you do not specify this parameter, data in the last hour is queried.', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T15:00:00Z', 'title' => ''],
],
[
'name' => 'IspNameEn',
'in' => 'query',
'schema' => ['description' => 'The name of the carrier.'."\n"
."\n"
.'You can call the [DescribeCdnRegionAndIsp](~~91077~~) operation to obtain the carrier name.', 'type' => 'string', 'required' => false, 'example' => 'alibaba', 'title' => ''],
],
[
'name' => 'LocationNameEn',
'in' => 'query',
'schema' => ['description' => 'The name of the region.'."\n"
."\n"
.'You can call the [DescribeCdnRegionAndIsp](~~91077~~) operation to obtain the region name.', 'type' => 'string', 'required' => false, 'example' => 'tianjin', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. The end time must be later than the start time. Specify the time in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T15:01:00Z', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'EndTime' => ['description' => 'The end of the time range. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is in UTC.', 'type' => 'string', 'example' => '2015-12-10T15:01:00Z', 'title' => ''],
'StartTime' => ['description' => 'The start of the time range. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is in UTC.', 'type' => 'string', 'example' => '2015-12-10T15:00:00Z', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'A666D44F-19D6-490E-97CF-1A64AB962C57', 'title' => ''],
'DomainName' => ['description' => 'The streaming domain name.', 'type' => 'string', 'example' => 'example.com,example.aliyundoc.com', 'title' => ''],
'DataInterval' => ['description' => 'The time interval between data points. Unit: second.', 'type' => 'string', 'example' => '60', 'title' => ''],
'RealTimeTrafficDataPerInterval' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DataModule' => [
'itemNode' => true,
'description' => 'The traffic data returned for each time interval.',
'title' => '',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Value' => ['description' => 'The traffic. Unit: byte.', 'type' => 'string', 'example' => '0', 'title' => ''],
'TimeStamp' => ['description' => 'The start of the time segment. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is in UTC.', 'type' => 'string', 'example' => '2015-12-10T15:01:00Z', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['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' => 'The end time does not match the start time. Make sure that the start and end times match.'],
['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => 'The value specified for the StartTime parameter is invalid.'],
['errorCode' => 'Abs.DomainName.Malformed', 'errorMessage' => 'The size of DomainName is too big.', 'description' => ''],
['errorCode' => 'InvalidInterval.Malformed', 'errorMessage' => 'Specified Interval is malformed.', 'description' => ''],
],
],
'eventInfo' => [
'enable' => false,
'eventNames' => [],
],
'title' => 'DescribeLiveDomainRealTimeTrafficData',
'description' => '- Call this operation to query the real-time traffic and bandwidth of a streaming domain name for a specific region, carrier, and time period.'."\n"
."\n"
.'- If you do not specify the StartTime and EndTime parameters, data from the last hour is queried by default. To query data for a specific time range, you must specify both the StartTime and EndTime parameters.'."\n"
."\n"
.'- This operation returns monitoring data. This data is collected and processed differently from the data used for billing. Therefore, you cannot use the returned data for billing reconciliation.'."\n"
."\n"
.'- You can query data from the last 90 days.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'This operation has no queries per second (QPS) limit for a single user. You can call this operation as needed.',
'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' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveDomainRealtimeLogDelivery' => [
'summary' => 'Queries the information about real-time log delivery for a domain name.',
'methods' => ['get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '107035',
'abilityTreeNodes' => ['FEATURElive066BXV'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'Status' => ['description' => 'The status of real-time log delivery. Valid values:'."\n"
."\n"
.'- online: Real-time log delivery is enabled.'."\n"
."\n"
.'- offline: Real-time log delivery is disabled.', 'type' => 'string', 'example' => 'online', 'title' => ''],
'Logstore' => ['description' => 'The name of the Logstore in Simple Log Service (SLS) for real-time log delivery.', 'type' => 'string', 'example' => 'logstore_example', 'title' => ''],
'Project' => ['description' => 'The name of the SLS project for real-time log delivery.', 'type' => 'string', 'example' => 'project_example', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '2F8F3852-912F-42AC-80EB-F1CF4284DE93', 'title' => ''],
'Region' => ['description' => 'The region where the SLS project is located.', 'type' => 'string', 'example' => 'cn-shanghai', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'Unauthorized', 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', 'description' => ''],
],
404 => [
['errorCode' => 'Domain.NotFound', 'errorMessage' => 'Domain not found', 'description' => ''],
],
],
'eventInfo' => [
'enable' => false,
'eventNames' => [],
],
'title' => 'DescribeLiveDomainRealtimeLogDelivery',
'description' => 'You can call this operation to query the status of real-time log delivery for a domain name. Ensure that the parameter settings are valid.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'This operation is limited to 6,000 queries per second (QPS) per user. Calls that exceed this limit are throttled, which can affect your business. Plan your calls accordingly.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Special error codes'."\n"
."\n"
.'|HTTP status code|Error code|Description|'."\n"
.'|---|---|---|'."\n"
.'|404|Domain.NotFound|The error message returned because Log Service is not activated for the domain name.|',
'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' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Status\\": \\"online\\",\\n \\"Logstore\\": \\"logstore_example\\",\\n \\"Project\\": \\"project_example\\",\\n \\"RequestId\\": \\"2F8F3852-912F-42AC-80EB-F1CF4284DE93\\",\\n \\"Region\\": \\"cn-shanghai\\"\\n}","type":"json"}]',
],
'DescribeLiveDomainRecordUsageData' => [
'summary' => 'Queries the number of concurrent recording streams and container format conversion usage for ApsaraVideo Live.',
'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' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain name to query.'."\n"
."\n"
.'- Supports single or batch domain queries. Separate multiple domain names with commas (,).'."\n"
.'- If this parameter is left empty, the merged data of all live streaming domain names is returned by default.'."\n"
.'- When you specify DomainName, make sure that the specified domain name is a live streaming domain name and that the caller has the required permissions on the domain name.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format in UTC.'."\n"
."\n"
.'- The minimum data granularity is 5 minutes.'."\n"
.'- If this parameter is not specified, data of the last 24 hours is returned by default.'."\n"
."\n"
.'>The start time can be set to a point in time within the last 90 days from the current time, accurate to the second.', 'type' => 'string', 'required' => false, 'example' => '2021-05-10T20:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format in UTC. Requirements:'."\n"
."\n"
.'- The end time must be later than the start time (StartTime).'."\n"
.'- The maximum time span between the end time and the start time is 31 days. Requests that exceed 31 days fail and return an error.', 'type' => 'string', 'required' => false, 'example' => '2021-05-10T21:00:00Z', 'title' => ''],
],
[
'name' => 'Region',
'in' => 'query',
'schema' => ['description' => 'The region. Valid values:'."\n"
."\n"
.'- **cn-beijing**: Beijing.'."\n"
."\n"
.'- **cn-shanghai**: Shanghai.'."\n"
."\n"
.'- **cn-shenzhen**: Shenzhen.'."\n"
."\n"
.'- **cn-qingdao**: Qingdao.'."\n"
."\n"
.'- **ap-southeast-1**: Singapore.'."\n"
."\n"
.'- **eu-central-1**: Germany.'."\n"
."\n"
.'- **ap-northeast-1**: Tokyo.'."\n"
."\n"
.'- **ap-southeast-5**: Jakarta.', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'SplitBy',
'in' => 'query',
'schema' => ['description' => 'The grouping key. Valid values:'."\n"
."\n"
.'- **domain**: groups query results by domain name.'."\n"
.'- **record_fmt**: groups query results by recording type.'."\n"
."\n"
.'> You can specify one or more values. Separate multiple values with commas (,). Default value: `domain,record_fmt`. If this parameter is set to empty or `null`, the results are not grouped by the preceding keys.', 'type' => 'string', 'required' => false, 'default' => 'record_fmt,domain', 'example' => 'domain,record_fmt', 'title' => ''],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => ['description' => 'The time granularity of the queried data. Unit: seconds. Valid values:'."\n"
."\n"
.'- 60.'."\n"
."\n"
.'- 300.'."\n"
."\n"
.'- 3600.'."\n"
."\n"
.'- 86400.'."\n"
."\n"
.'>If this parameter is not specified or an unsupported value is specified, the default time granularity is 300 seconds for query spans within 31 days and 86400 seconds for query spans longer than 31 days.', 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'EndTime' => ['description' => 'The end time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'example' => '2021-05-10T21:00:00Z', 'title' => ''],
'StartTime' => ['description' => 'The start time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'example' => '2021-05-10T20:00:00Z', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '4B460F8B-993C-4F48-B98A-910811DEBFEB', 'title' => ''],
'RecordUsageData' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DataModule' => [
'description' => 'The recording usage data for each time interval.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Type' => ['description' => 'The recording file type.'."\n"
.'This field is valid only when the SplitBy request parameter includes `record_fmt`.', 'type' => 'string', 'example' => 'MP4', 'title' => ''],
'Domain' => ['description' => 'The streaming domain name.'."\n"
.'This field is returned only when the SplitBy request parameter includes `domain`.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'Region' => ['description' => 'The region.', 'type' => 'string', 'example' => 'cn-shanghai', 'title' => ''],
'TimeStamp' => ['description' => 'The start time of the interval. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'example' => '2021-05-10T20:00:00Z', 'title' => ''],
'Duration' => ['description' => 'The recording length usage. Unit: seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '3560', 'title' => ''],
'Count' => ['description' => 'The peak number of concurrent streams.', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['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' => 'The end time does not match the start time. Make sure that the start and end times match.'],
['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => 'The time span exceeds the limit. Please refer to the API documentation to specify a reasonable time span.'],
['errorCode' => 'InvalidRecordFmt.NotSupported', 'errorMessage' => 'The RecordFmt parameter is not supported.', 'description' => ''],
['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => 'The value specified for the StartTime parameter is invalid.'],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query live recording streams and container format conversion usage',
'description' => '- Collects statistics on daily concurrent recording streams and sampling data at different time intervals. You can use this operation to query the peak number of daily or monthly concurrent recording streams.'."\n"
.'- Time shifting streams are not counted as recording streams.'."\n"
.'- Supports domain-level queries and batch domain queries. Separate multiple domain names with commas (,).'."\n"
."\n"
.'- Data granularity: 1 minute. Maximum query span: 24 hours. Maximum data retention: 60 days.'."\n"
."\n"
.'- Data granularity: 1 hour. Maximum query span: 31 days. Maximum data retention: 180 days.'."\n"
."\n"
.'- Data granularity: 1 day. Maximum query span: 90 days. Maximum data retention: 366 days.'."\n"
."\n\n"
."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this operation is 10 calls per second. If the limit is exceeded, the API call is throttled, which may affect your business. Call this operation appropriately.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Special error codes'."\n"
.'| Error code | Description | HTTP status code | Meaning |'."\n"
.'|------------|--------|---------|------|'."\n"
.'| Throttling | Request was denied due to request throttling. | 503 | The request is throttled.|'."\n"
.'| InvalidDomain.NotFound | The domain provided does not belong to you. | 404 | The domain name does not exist or does not belong to the current user. |.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainRecordUsageData'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainRecordUsageData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeLiveDomainSnapshotData' => [
'summary' => 'Queries the number of snapshots captured for a live streaming domain.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveMH1XD3'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The ingest domain name to query.'."\n"
.'- You can specify a single domain name or multiple domain names. Separate multiple domain names with commas (,).'."\n"
.'- If this parameter is left empty, the merged data of all live streaming domain names is returned by default.', 'type' => 'string', 'required' => false, 'example' => 'example.aliyundoc.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format in UTC.'."\n"
.'>You can query data from the last **90** days.', 'type' => 'string', 'required' => true, 'example' => '2018-01-01T00:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. The end time must be later than the start time. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format in UTC.', 'type' => 'string', 'required' => true, 'example' => '2018-01-02T00:00:00Z', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'B955107D-E658-4E77-B913-E0AC3D*****', 'title' => ''],
'SnapshotDataInfos' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'SnapshotDataInfo' => [
'description' => 'The daily statistics on the number of live streaming snapshots.',
'type' => 'array',
'items' => [
'description' => 'The details of the live streaming snapshot count.',
'type' => 'object',
'properties' => [
'Date' => ['description' => 'The date, accurate to the day. Format: yyyyMMdd.', 'type' => 'string', 'example' => '20180209', 'title' => ''],
'Total' => ['description' => 'The total number of snapshots captured on the day.', 'type' => 'integer', 'format' => 'int32', 'example' => '110', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['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' => 'Parameter is invalid, please check and try again.'],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"B955107D-E658-4E77-B913-E0AC3D*****\\",\\n \\"SnapshotDataInfos\\": {\\n \\"SnapshotDataInfo\\": [\\n {\\n \\"Date\\": \\"20180209\\",\\n \\"Total\\": 110\\n }\\n ]\\n }\\n}","type":"json"}]',
'title' => 'Query snapshot count data for a live streaming domain',
'description' => '- You can use this operation to obtain the total number of snapshots captured per day.'."\n"
.'- You can query data from the last 90 days.'."\n"
."\n\n"
.'## QPS limit'."\n"
.'This operation does not have a per-user QPS limit. Call this operation as needed.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainSnapshotData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeLiveDomainStagingConfig' => [
'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' => 'The ID of the region.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'required' => true, 'example' => 'developer.aliyundoc.com', 'title' => ''],
],
[
'name' => 'FunctionNames',
'in' => 'query',
'schema' => ['description' => 'The names of the features. Separate multiple feature names with commas (,).', 'type' => 'string', 'required' => true, 'example' => 'aliauth', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'C80705BF-0F76-41FA-BAD1-5B59296A4E59', 'title' => ''],
'DomainConfigs' => [
'description' => 'The domain name configurations.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Status' => ['description' => 'The status of the configuration. Valid values:'."\n"
."\n"
.'- **success**: Successful.'."\n"
."\n"
.'- **testing**: The configuration is being verified.'."\n"
."\n"
.'- **failed**: Failed.'."\n"
."\n"
.'- **configuring**: The configuration is in progress.', 'type' => 'string', 'example' => 'success', 'title' => ''],
'ConfigId' => ['description' => 'The ID of the configuration.', 'type' => 'string', 'example' => '6295', 'title' => ''],
'FunctionName' => ['description' => 'The name of the feature.', 'type' => 'string', 'example' => 'aliauth', 'title' => ''],
'FunctionArgs' => [
'description' => 'The configurations of the feature.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'ArgName' => ['description' => 'The name of the configuration parameter.', 'type' => 'string', 'example' => 'auth_type', 'title' => ''],
'ArgValue' => ['description' => 'The value of the configuration parameter.', 'type' => 'string', 'example' => 'req_auth', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'Invalid%s.ValueNotSupported', 'errorMessage' => 'FunctionName [%s] is not supported.', 'description' => ''],
],
],
'title' => 'DescribeLiveDomainStagingConfig',
'summary' => 'Queries the feature configurations of an accelerated domain name in the canary release environment.',
'description' => '## Usage notes'."\n"
."\n"
.'You can call this operation to query the staging environment configuration of a specified accelerated domain name.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The single-user limit for this API operation is 30 queries per second (QPS). If you exceed this limit, API calls are throttled. This may affect your business. Pace your calls to stay within the limit. For more information, see [QPS limits](~~343507~~).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainStagingConfig'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainStagingConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveDomainStreamTranscodeData' => [
'summary' => 'Queries transcoding usage data for a domain name by calling DescribeLiveDomainStreamTranscodeData.',
'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' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The ingest domain to query.'."\n"
."\n"
.'- You can specify a single domain name or multiple domain names. Separate multiple domain names with commas (,).'."\n"
.'- If this parameter is left empty, the merged data of all live streaming domain names is returned by default.'."\n"
.'- When you specify a value for DomainName, make sure that the domain name is a live streaming domain name and that the user calling this operation has the required permissions on the specified domain name.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format in UTC.'."\n"
."\n"
.'- The minimum data time granularity is 1 hour.'."\n"
.'- If this parameter is not specified, data for the last 24 hours is read by default.', 'type' => 'string', 'required' => true, 'example' => '2017-12-10T20:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format in UTC.', 'type' => 'string', 'required' => true, 'example' => '2017-12-10T22:00:00Z', 'title' => ''],
],
[
'name' => 'Precision',
'in' => 'query',
'schema' => [
'description' => 'The time precision of the query. Valid values:'."\n"
.'- **min** (default): in minutes.'."\n"
.'- **sec**: in seconds.',
'enumValueTitles' => ['sec' => 'in seconds.', 'min' => 'in minutes.'],
'type' => 'string',
'required' => false,
'default' => 'min',
'enum' => ['min', 'sec'],
'example' => 'min',
'title' => '',
],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => [
'description' => 'The time granularity of the query. Unit: seconds. Valid values:'."\n"
."\n"
.'- **3600**: by hour.'."\n"
.'- **86400**: by day.'."\n"
."\n"
.'> If this parameter is not specified, the default granularity is by hour.',
'enumValueTitles' => [3600 => 'by hour.', 86400 => 'by day.'],
'type' => 'string',
'required' => false,
'enum' => ['3600', '86400'],
'example' => '3600',
'title' => '',
],
],
[
'name' => 'Split',
'in' => 'query',
'schema' => ['description' => 'The grouping key. Valid values:'."\n"
."\n"
.'- **domain**: domain name. If the Split parameter is set to domain, the Domain response parameter takes effect.'."\n"
.'- **region**: live center region. If the Split parameter is set to region, the Region response parameter takes effect.'."\n"
.'- **transcode_type**: transcoding type. If the Split parameter is set to transcode_type, the TanscodeType response parameter takes effect.'."\n"
.'- **resolution**: resolution. If the Split parameter is set to resolution, the Resolution response parameter takes effect.'."\n"
.'- **fps**: frame rate. If the Split parameter is set to fps, the Fps response parameter takes effect.'."\n"
."\n"
.'You can specify one or more values. Separate multiple values with commas (,).'."\n"
."\n"
.'Default value: `domain,region,transcode_type,resolution,fps`, which means all grouping keys are applied.', 'type' => 'string', 'required' => false, 'default' => 'domain,region,transcode_type,resolution,fps', 'example' => 'domain', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B******', 'title' => ''],
'TranscodeDataList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'TranscodeData' => [
'description' => 'The network bandwidth data for each time interval.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'TanscodeType' => ['description' => 'The transcoding type. Valid values:'."\n"
."\n"
.'> This response parameter takes effect only when the Split request parameter is set to transcode_type.'."\n"
."\n\n"
.''."\n"
."\n"
.'- **H264STD**: H.264 default transcoding.'."\n"
.'- **H265STD**: H.265 default transcoding.'."\n"
."\n"
.''."\n"
."\n"
.'- **H264NBHD**: H.264 Narrowband HD™ transcoding.'."\n"
.'- **H265NBHD**: H.265 Narrowband HD™ transcoding.'."\n"
.'- **AUDIO**: audio transcoding.', 'type' => 'string', 'example' => 'H264STD', 'title' => ''],
'Domain' => ['description' => 'The streamer streaming domain.'."\n"
."\n"
.'> This response parameter takes effect only when the Split request parameter is set to domain.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'Region' => ['description' => 'The region to which the domain name belongs. Valid values:'."\n"
."\n"
.'> This response parameter takes effect only when the Split request parameter is set to region.'."\n"
.'- **cn-beijing**: Beijing.'."\n"
.'- **cn-shanghai**: Shanghai.'."\n"
.'- **cn-qingdao**: Qingdao.'."\n"
.'- **cn-shenzhen**: Shenzhen.'."\n"
.'- **ap-northeast-1**: Japan.'."\n"
.'- **ap-southeast-1**: Singapore.'."\n"
.'- **ap-southeast-5**: Indonesia.'."\n"
.'- **eu-central-1**: Germany.', 'type' => 'string', 'example' => 'cn-beijing', 'title' => ''],
'Duration' => ['description' => 'The duration. Unit: minutes.', 'type' => 'integer', 'format' => 'int32', 'example' => '2000', 'title' => ''],
'TimeStamp' => ['description' => 'The beginning of the time interval. The time is in the yyyy-MM-ddTHH:mm:ssZ format in UTC.', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z', 'title' => ''],
'Fps' => ['description' => 'The frame rate.'."\n"
."\n"
.'> This response parameter takes effect only when the Split request parameter is set to fps.', 'type' => 'string', 'example' => 'normal', 'title' => ''],
'Resolution' => ['description' => 'The resolution. Valid values:'."\n"
."\n"
.'> This response parameter takes effect only when the Split request parameter is set to resolution.'."\n"
."\n"
.'- **2K**'."\n"
.'- **4K**'."\n"
.'- **LD**: low definition.'."\n"
.'- **SD**: standard definition.'."\n"
.'- **HD**: high definition.'."\n"
.'- **def**: audio.', 'type' => 'string', 'example' => 'HD', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['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' => 'The Precision parameter is invalid. Check the value of the StartTime, EndTime, or Precision parameter.'],
['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => 'The end time does not match the start time. Make sure that the start and end times match.'],
['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => 'The time span exceeds the limit. Please refer to the API documentation to specify a reasonable time span.'],
['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => 'The value specified for the StartTime parameter is invalid.'],
],
],
'eventInfo' => [
'enable' => false,
'eventNames' => [],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query domain name transcoding usage data',
'description' => '- You can use this operation to query network bandwidth data for each time interval.'."\n"
.'- Batch domain name queries are supported. Separate multiple domain names with commas (,).'."\n"
.'- You can query data for up to the last 90 days.'."\n"
.'- The data time granularity is hour or day.'."\n"
.'- For the billing tiers that correspond to different transcoding types and transcoding resolutions, see the billing tier description for different instance specifications in the transcoding bill section of [Live stream transcoding billing](~~90424~~).'."\n"
."\n"
.'## QPS limit'."\n"
.'The QPS limit for a single user on this operation is 20 calls per second. If this limit is exceeded, the API calls are throttled, which may affect your business. Invoke this operation appropriately.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Special fault codes'."\n"
.'|ErrorCode|Fault message|HTTP Status|Description|'."\n"
.'| ------------- |------------ | ----- | ----- |'."\n"
.'|Throttling |Request was denied due to request throttling. |503 |The request is throttled.|'."\n"
.'|InvalidDomain.NotFound |The domain provided does not belong to you. |404 |The domain name does not exist or does not belong to the current user.|',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainStreamTranscodeData'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainStreamTranscodeData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeLiveDomainTimeShiftData' => [
'summary' => 'Queries time shifting usage data for live streaming.',
'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' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain to query.'."\n"
."\n"
.'> '."\n"
.'> - When you specify DomainName, make sure that the specified domain is a live streaming domain and that the user calling this operation has permissions on the specified domain.'."\n"
.'> - You can specify a single domain or multiple domains. Separate multiple domains with commas (,).'."\n"
.'> - If this parameter is left empty, the merged data of all live streaming domains is returned by default.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format in UTC.'."\n"
."\n"
.'> - The minimum data granularity is 5 minutes.'."\n"
.'> - If you do not specify this parameter, data of the last 24 hours is returned by default.', 'type' => 'string', 'required' => false, 'example' => '2021-03-03T00:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. The end time must be later than the start time. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format in UTC.', 'type' => 'string', 'required' => false, 'example' => '2021-03-03T02:00:00Z', 'title' => ''],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => ['description' => 'The time granularity of the queried data. Unit: seconds. Valid values:'."\n"
."\n"
.'- 300.'."\n"
.'- 3600.'."\n"
.'- 86400.'."\n"
."\n"
.'If you do not specify this parameter or specify an unsupported value, the default value 300 is used.', 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '8AE1CB3A-6510-442E-A6B9-EF03D05B3E09', 'title' => ''],
'TimeShiftData' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DataModule' => [
'description' => 'The time shifting usage data for each time interval.',
'type' => 'array',
'items' => [
'description' => 'The time shifting usage data for each time interval.',
'type' => 'object',
'properties' => [
'Type' => ['description' => 'The time shifting type, such as HLS_D1 or HLS_D7.', 'type' => 'string', 'example' => 'HLS_D7', 'title' => ''],
'TimeStamp' => ['description' => 'The start time of the time interval. The time is in the yyyy-MM-ddTHH:mm:ssZ format in UTC.', 'type' => 'string', 'example' => '2021-03-03T00:00:00Z', 'title' => ''],
'Size' => ['description' => 'The time shifting storage usage. Unit: bytes.', 'type' => 'string', 'example' => '1664165660', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'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' => 'The end time does not match the start time. Make sure that the start and end times match.'],
['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => 'The value specified for the StartTime parameter is invalid.'],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query time shifting usage data for live streaming',
'description' => '- Queries time shifting usage data for each time interval.'."\n"
.'- Retrieves data for up to the last 90 days.'."\n"
.'- The data interval is fixed at 1 hour.'."\n"
.'- The maximum data timestamp span for a single query is 31 days.'."\n"
."\n\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this operation is 10 calls per second. If the limit is exceeded, the API invoke is throttled, which may affect your business. Invoke this operation as needed.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '### Special error codes'."\n"
.'| Error code | Description | HTTP status code | Meaning |'."\n"
.'|------------|--------|---------|------|'."\n"
.'| Throttling | Request was denied due to request throttling. | 503 | The request is throttled.|'."\n"
.'| InvalidDomain.NotFound | The domain provided does not belong to you. | 404 | The domain does not exist or does not belong to the current user.|.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainTimeShiftData'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainTimeShiftData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeLiveDomainTrafficData' => [
'summary' => 'Queries network traffic monitoring data for live streaming domains.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain. You can specify a single domain name or multiple domain names. Separate multiple domain names with commas (,). If this parameter is left empty, the merged data of all live streaming domains is returned by default.'."\n"
.'> - When you specify DomainName, make sure that the specified domain names are live streaming domains and that you have the required permissions to operate on the specified domain names.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format in UTC.'."\n"
.'>You can query data from the past **90** days.', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T14:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. The end time must be later than the start time. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format in UTC.', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T15:00:00Z', 'title' => ''],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => ['description' => 'The time granularity for querying data. Unit: seconds. Valid values:'."\n"
.'- **300** (default).'."\n"
.'- **3600**.'."\n"
.'- **86400**.'."\n"
."\n"
.'> If you do not set this parameter or set it to an unsupported value, the default value **300** seconds is used.', 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''],
],
[
'name' => 'IspNameEn',
'in' => 'query',
'schema' => ['description' => 'The name of the Internet service provider (ISP) in English. You can call the [DescribeCdnRegionAndIsp](~~91077~~) operation to obtain the ISP name. If you do not set this parameter, data of all ISPs is returned.', 'type' => 'string', 'required' => false, 'example' => 'alibaba', 'title' => ''],
],
[
'name' => 'LocationNameEn',
'in' => 'query',
'schema' => ['description' => 'The name of the region in English. You can call the [DescribeCdnRegionAndIsp](~~91077~~) operation to obtain the region name. If you do not set this parameter, data of all regions is returned.', 'type' => 'string', 'required' => false, 'example' => 'tianjin', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'EndTime' => ['description' => 'The end time. The time is in the yyyy-MM-ddTHH:mm:ssZ format in UTC.', 'type' => 'string', 'example' => '2017-12-10T15:00:00Z', 'title' => ''],
'StartTime' => ['description' => 'The start time. The time is in the yyyy-MM-ddTHH:mm:ssZ format in UTC.', 'type' => 'string', 'example' => '2017-12-10T14:00:00Z', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', 'title' => ''],
'DomainName' => ['description' => 'The streaming domain.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'DataInterval' => ['description' => 'The time granularity for querying data.', 'type' => 'string', 'example' => '300', 'title' => ''],
'TrafficDataPerInterval' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DataModule' => [
'description' => 'The traffic data for each time interval.',
'type' => 'array',
'items' => [
'description' => 'The traffic data for each time interval.',
'type' => 'object',
'properties' => [
'TrafficValue' => ['description' => 'The total traffic. Unit: bytes.', 'type' => 'string', 'example' => '454680793', 'title' => ''],
'HttpTrafficValue' => ['description' => 'The HTTP traffic. Unit: bytes.', 'type' => 'string', 'example' => '0', 'title' => ''],
'TimeStamp' => ['description' => 'The start time of the time interval. The time is in the yyyy-MM-ddTHH:mm:ssZ format in UTC.', 'type' => 'string', 'example' => '2017-12-10T15:00:05Z', 'title' => ''],
'HttpsTrafficValue' => ['description' => 'The HTTPS traffic. Unit: bytes.', 'type' => 'string', 'example' => '454680793', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'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' => 'The end time does not match the start time. Make sure that the start and end times match.'],
['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => 'The value specified for the StartTime parameter is invalid.'],
],
],
'eventInfo' => [
'enable' => false,
'eventNames' => [],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query traffic data for live streaming domains',
'description' => '- If you do not specify StartTime or EndTime, data from the past 24 hours is returned by default.'."\n"
.'- This is a monitoring data API. The data collection and processing method differs from that used for billing. Do not use this API to calculate usage for billing reconciliation.'."\n"
."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this API is 100 calls per second. If this limit is exceeded, the API calls are throttled, which may affect your business. Call this API at a reasonable frequency.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainTrafficData'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainTrafficData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeLiveDrmUsageData' => [
'summary' => 'Queries DRM usage data within a specified time range.',
'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' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The live streaming domain name.'."\n"
.'- You can specify a single domain name or multiple domain names. Separate multiple domain names with commas (,).'."\n"
.'- If this parameter is left empty, the merged data of all live streaming domain names is returned by default.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time must be in UTC. The minimum data granularity is 5 minutes.', 'type' => 'string', 'required' => true, 'example' => '2021-05-01T16:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. The end time must be later than the start time. Specify the time in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => true, 'example' => '2021-05-02T16:00:00Z', 'title' => ''],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => [
'description' => 'The time granularity of the queried data. Unit: seconds. Valid values:'."\n"
.'- 300'."\n"
.'- 3600'."\n"
.'- 86400'."\n"
."\n"
.'If you do not set this parameter or set it to an unsupported value, the default value 3600 is used.',
'enumValueTitles' => [300 => '300 seconds.', 3600 => '3600 seconds.', 86400 => '86400 seconds.'],
'type' => 'string',
'required' => false,
'default' => '3600',
'enum' => ['300', '3600', '86400'],
'example' => '3600',
'title' => '',
],
],
[
'name' => 'SplitBy',
'in' => 'query',
'schema' => ['description' => 'The grouping key. Default value: domain,region,drm_type. You can specify one or more of the following values: domain, region, and drm_type. Separate multiple values with commas (,). Set this parameter to an empty string or null to disable grouping by these keys.', 'type' => 'string', 'required' => false, 'example' => 'domain,region,drm_type', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'DrmUsageData' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DataModule' => [
'description' => 'The DRM usage data for each time interval.',
'type' => 'array',
'items' => [
'description' => 'The DRM usage data for each time interval.',
'type' => 'object',
'properties' => [
'Count' => ['description' => 'The number of calls.', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
'Domain' => ['description' => 'The domain name. This field is returned when domain is specified in SplitBy.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'DrmType' => ['description' => 'The DRM type. This field is returned when drm_type is specified in SplitBy.', 'type' => 'string', 'example' => 'Widevine', 'title' => ''],
'Region' => ['description' => 'The live center. This field is returned when region is specified in SplitBy.', 'type' => 'string', 'example' => 'cn-beijing', 'title' => ''],
'TimeStamp' => ['description' => 'The beginning of the time interval. The time is in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2021-05-01T16:00:00Z', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '91FC2D9D-B042-4634-8A5C-7B8E7482C22D', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'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' => 'The end time does not match the start time. Make sure that the start and end times match.'],
['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => 'The value specified for the StartTime parameter is invalid.'],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query live DRM usage data',
'description' => '### Operation description'."\n"
.'- You can query data from the last 90 days.'."\n"
.'- The maximum time span is 31 days.'."\n"
.'### QPS limit'."\n"
.'Each user can make up to 20 queries per second (QPS). If the limit is exceeded, API calls are throttled, which may affect your business. Call this operation properly. For more information, see [QPS limit](~~343507~~).',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDrmUsageData'],
],
],
'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' => 'Retrieves the configuration of edge stream relay.',
'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' => ['type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'description' => 'The region ID.', 'title' => '', 'example' => 'cn-shanghai'],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The ingest domain.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'demo.aliyundoc.com'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'HttpDns' => ['description' => 'The URL of the HTTPDNS service used to resolve the addresses of the target domains.', 'type' => 'string', 'title' => '', 'example' => 'http://developer.aliyundoc.com/****'],
'AppName' => ['description' => 'The name of the application to which the live stream belongs.', 'type' => 'string', 'title' => '', 'example' => 'liveApp****'],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '53FCB985-C67C-467B-B2B3-398430A21E14'],
'TransferArgs' => ['description' => 'Indicates whether the query parameters from the original ingest URL are passed through to the target URL.'."\n"
."\n"
.'- **yes**: The parameters are passed through.'."\n"
."\n"
.'- **no**: The parameters are not passed through.', 'type' => 'string', 'title' => '', 'example' => 'yes'],
'StreamName' => ['description' => 'The name of the ingested live stream.', 'type' => 'string', 'title' => '', 'example' => 'liveStream****'],
'TargetDomainList' => ['description' => 'A comma-separated list of the target domains where the stream is forwarded.', 'type' => 'string', 'title' => '', 'example' => 'learn.aliyundoc.com,guide.aliyundoc.com'],
'DomainName' => ['description' => 'The ingest domain.', 'type' => 'string', 'title' => '', 'example' => 'demo.aliyundoc.com'],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => 'Illegal input parameters'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''],
],
],
'title' => 'DescribeLiveEdgeTransfer',
'description' => 'Get the ingest domain, then call this operation to query the configuration of edge stream relay.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 100 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveEdgeTransfer'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveEdgeTransfer',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveGrtnDuration' => [
'summary' => 'Call DescribeLiveGrtnDuration to query co-hosting call duration usage data.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'none',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATURElive9P39J9'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'Region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time for data retrieval. The date format follows the ISO 8601 notation and uses UTC time in the format: YYYY-MM-DDThh:mm:ssZ.', 'type' => 'string', 'required' => true, 'example' => '2022-10-10T20:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time must be later than the start time. The query granularity must be ≥ 5 minutes and ≤ 31 days. The date format follows the ISO 8601 notation and uses UTC time in the format: YYYY-MM-DDThh:mm:ssZ.', 'type' => 'string', 'required' => true, 'example' => '2022-10-10T21:00:00Z', 'title' => ''],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'Application ID. You can query multiple application IDs separated by commas (half-width). A maximum of 30 IDs can be queried. By default, aggregated data for all applications is returned.', 'type' => 'string', 'required' => false, 'example' => '4346289a-a790-4869-9e23-22766d5e****', 'title' => ''],
],
[
'name' => 'Area',
'in' => 'query',
'schema' => ['description' => 'The area code. Valid values:'."\n"
.'- CN: Chinese mainland.'."\n"
.'- OverSeas: Overseas regions.'."\n"
.'- AP1: Asia Pacific 1, including Hong Kong (China), Macao (China), Taiwan (China), Japan, and Southeast Asian countries except Vietnam and Indonesia.'."\n"
.'- AP2: Asia Pacific 2, including Indonesia, South Korea, and Vietnam.'."\n"
.'- AP3: Asia Pacific 3, including Australia and New Zealand.'."\n"
.'- NA: North America, including the United States and Canada.'."\n"
.'- SA: South America, specifically Brazil.'."\n"
.'- EU: Europe, including Ukraine, the United Kingdom, France, the Netherlands, Spain, Italy, Sweden, and Germany.'."\n"
.'- MEAA: Middle East and Africa, including South Africa, Oman, the United Arab Emirates, and Kuwait.'."\n"
."\n"
.'If not specified, aggregated data for all areas is returned by default.', 'type' => 'string', 'required' => false, 'example' => 'CN', 'title' => ''],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => ['description' => 'The time granularity for querying data. Unit: seconds. Valid values:'."\n"
."\n"
.'- 300'."\n"
.'- 3600'."\n"
.'- 86400'."\n"
."\n"
.'If not specified or an unsupported value is passed, the default value of 3600 seconds is used.', 'type' => 'string', 'required' => false, 'example' => '3600', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '4B460F8B-993C-4F48-B98A-910811DEBFEB', 'title' => ''],
'StreamDetailData' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'StreamData' => [
'description' => 'The details of co-hosting usage data.',
'type' => 'array',
'items' => [
'description' => 'The details of co-hosting usage data.',
'type' => 'object',
'properties' => [
'AppId' => ['description' => 'The application ID.', 'type' => 'string', 'example' => '4346289a-a790-4869-9e23-22766d5e****', 'title' => ''],
'Duration' => ['description' => 'The co-hosting duration. Unit: minutes.', 'type' => 'integer', 'format' => 'int64', 'example' => '30', 'title' => ''],
'MediaProfile' => ['description' => 'The media profile. Valid values:'."\n"
."\n"
.'- 0: Audio-only duration. Basic profile.'."\n"
.'- 480P: Standard definition duration. Video resolution is 640 × 480 or lower.'."\n"
.'- 720P: High definition duration. Video resolution is 1280 × 720 or lower.'."\n"
.'- 1080P: Full high definition duration. Video resolution is 1920 × 1080 or lower.', 'type' => 'string', 'example' => '480P', 'title' => ''],
'MediaType' => ['description' => 'The media type. Valid values:'."\n"
."\n"
.'- audio: Audio.'."\n"
.'- video: Video.', 'type' => 'string', 'example' => 'audio', 'title' => ''],
'TimeStamp' => ['description' => 'The beginning of the time slice. The date format follows the ISO 8601 notation and uses UTC time in the format: YYYY-MM-DDThh:mm:ssZ.', 'type' => 'string', 'example' => '2022-12-10T20:00:00Z', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['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' => 'The specified Area parameter is invalid. Specify a correct region code.'],
['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => 'The end time does not match the start time. Make sure that the start and end times match.'],
['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => 'The time span exceeds the limit. Please refer to the API documentation to specify a reasonable time span.'],
['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' => 'The specified time is invalid.'],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query co-hosting call duration usage data',
'description' => '- Maximum query span: 31 days.'."\n"
.'- Minimum query granularity: 5 minutes.'."\n"
.'- Maximum query range: Data from the last 90 days.'."\n"
."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this API is 10 requests per second. If the limit is exceeded, API calls will be throttled, which may affect your business. Please call this API appropriately.',
'extraInfo' => '### Special error codes'."\n"
.'|Error code|Description|HTTP status code|Meaning|'."\n"
.'|----|----|------|-----|'."\n"
.'|Throttling|Request was denied due to request throttling.|503|The request is throttled.|'."\n"
.'|IllegalOperation|Illegal domain, operation is not permitted.|403|Illegal domain name. The operation cannot be performed.'."\n"
.'|OperationDenied|Your account does not open LIVE service yet.|403|The LIVE service is not activated.|'."\n"
.'|OperationDenied|Your LIVE service is suspended.|403|The LIVE service has been suspended.|'."\n"
.'|InvalidStartTime.Malformed|Specified StartTime is malformed.|400|Invalid parameter.|'."\n"
.'|InvalidEndTime.Malformed|Specified EndTime is malformed.|400|Invalid time format.|'."\n"
.'|InvalidTime.Malformed|Specified StartTime or EndTime is malformed.|400|The start time or end time format is invalid.|'."\n"
.'|InvalidEndTime.Mismatch|Specified end time does not math the specified start time.|400|The start time and end time do not match.|'."\n"
.'|InvalidTimeSpan|The time span exceeds the limit.|400|Invalid query span.|'."\n"
.'|InvalidAppIdParameter|The specified AppId parameter is invalid.|400|Invalid AppId parameter.|'."\n"
.'|InvalidParameterInterval|Invalid Parameter Interval.|400|Invalid Interval parameter.|',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'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' => 'Queries all configured certificate information for the certificate service of a user.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '191821',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'PageNumber',
'in' => 'query',
'schema' => ['description' => 'The page number to return. Valid values: **[1,10000]**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '1', 'example' => '5', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries per page. Default value: **20**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '20', 'example' => '20', 'title' => ''],
],
[
'name' => 'Keyword',
'in' => 'query',
'schema' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'required' => false, 'example' => 'demo.aliyun.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
'CertInfos' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'CertInfo' => [
'description' => 'The list of certificate information.',
'type' => 'array',
'items' => [
'description' => 'The details of the list.',
'type' => 'object',
'properties' => [
'CertCommonName' => ['description' => 'The primary domain name of the certificate.', 'type' => 'string', 'example' => 'example.org', 'title' => ''],
'CertExpireTime' => ['description' => 'The expiration time of the certificate. The date is in the yyyy-MM-dd HH:mm:ss format and displayed in UTC+8.', 'type' => 'string', 'example' => '2018-12-26 14:45:09', 'title' => ''],
'CertName' => ['description' => 'The certificate name.', 'type' => 'string', 'example' => 'test', 'title' => ''],
'CertStartTime' => ['description' => 'The start time of the certificate. The date is in the yyyy-MM-dd HH:mm:ss format and displayed in UTC+8.', 'type' => 'string', 'example' => '2018-11-26 14:45:09', 'title' => ''],
'CertStatus' => ['description' => 'The certificate status. Valid values:'."\n"
.'- **ok**: Normal.'."\n"
.'- **mismatch**: The domain name does not match the certificate.'."\n"
.'- **expired**: Expired.'."\n"
.'- **expire_soon**: About to expire.', 'type' => 'string', 'example' => 'mismatch', 'title' => ''],
'CertType' => ['description' => 'The certificate type. Valid values:'."\n"
.'- **cas**: China Security certificate.'."\n"
.'- **upload**: Custom upload.', 'type' => 'string', 'example' => 'cas', 'title' => ''],
'CertUpdateTime' => ['description' => 'The time when the certificate was last updated. The date is in the yyyy-MM-dd HH:mm:ss format and displayed in UTC+8.', 'type' => 'string', 'example' => '2019-01-08 18:33:16', 'title' => ''],
'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'F5E8DF64-7175-4186-9B06-F002C0BBD0C5', 'title' => ''],
'TotalCount' => ['description' => 'The total number of entries returned.', 'type' => 'integer', 'format' => 'int32', 'example' => '16', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'NoHttpsDomain', 'errorMessage' => 'Your account doesn\'t have https domain.', 'description' => ''],
],
],
'eventInfo' => [
'enable' => false,
'eventNames' => [],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query certificate service list',
'description' => 'Calls this operation to query all configured certificates and domain name information for the user in the certificate service.'."\n"
."\n"
.'Before calling this operation, make sure that at least one live streaming domain under the account has HTTPS certificates enabled through SetLiveDomainCertificate. Otherwise, the error NoHttpsDomain(400) is returned.'."\n"
."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this operation is 100 calls per second. If the limit is exceeded, the API call is throttled, which may affect your business. Call this operation appropriately.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'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' => 'Queries metric data for ApsaraVideo Real-time Communication (ARTC).',
'methods' => ['get', 'post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'none',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '193672',
'abilityTreeNodes' => ['FEATUREliveYUZBM3'],
],
'parameters' => [
[
'name' => 'MetricType',
'in' => 'query',
'schema' => ['description' => 'The metric type. Valid values:'."\n"
."\n"
.'- `JoinChannelSucRate`: the success rate of joining a channel within 5 seconds.'."\n"
."\n"
.'- `VideoStuckRate`: the video stuttering rate.'."\n"
."\n"
.'- `AudioStuckRate`: the audio stuttering rate.'."\n"
."\n"
.'- `FirstFrameCost`: the time to first frame.', 'type' => 'string', 'required' => true, 'example' => 'FirstFrameCost', 'title' => ''],
],
[
'name' => 'BeginTs',
'in' => 'query',
'schema' => ['description' => 'The start time of the query, specified as a UNIX timestamp in milliseconds.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1698195600000', 'title' => ''],
],
[
'name' => 'EndTs',
'in' => 'query',
'schema' => ['description' => 'The end time of the query, specified as a UNIX timestamp in milliseconds.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1698201013000', 'title' => ''],
],
[
'name' => 'Os',
'in' => 'query',
'schema' => ['description' => 'The operating system. Valid values: `iOS` and `Android`.', 'type' => 'string', 'required' => false, 'example' => 'Android', 'title' => ''],
],
[
'name' => 'TerminalType',
'in' => 'query',
'schema' => ['description' => 'The terminal type. Valid values: `web` and `mobile`.', 'type' => 'string', 'required' => false, 'example' => 'mobile', 'title' => ''],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ARTC application ID.', 'type' => 'string', 'required' => true, 'example' => 'e4d7f08a-01fe-41b5-a091-fe41060a****', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'The channel ID.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '770513'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
'Nodes' => [
'description' => 'An array of data points.',
'type' => 'array',
'items' => [
'description' => 'A data point.',
'type' => 'object',
'properties' => [
'Timestamp' => ['description' => 'The timestamp of the data point, specified as a UNIX timestamp in milliseconds.', 'type' => 'string', 'example' => '1548670257000', 'title' => ''],
'Value' => ['description' => 'The value of the metric.', 'type' => 'string', 'example' => '66.670000', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'RequestId' => ['title' => 'Id', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'A01C98C5-25AE-124A-83FE-514DF5C5BE36'],
'SummaryData' => ['description' => 'The summarized data for the query time range.', 'type' => 'string', 'example' => '2000', 'title' => ''],
],
'example' => '',
],
],
],
'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' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Nodes\\": [\\n {\\n \\"Timestamp\\": \\"1548670257000\\",\\n \\"Value\\": \\"66.670000\\"\\n }\\n ],\\n \\"RequestId\\": \\"A01C98C5-25AE-124A-83FE-514DF5C5BE36\\",\\n \\"SummaryData\\": \\"2000\\"\\n}","type":"json"}]',
'title' => 'DescribeLiveInteractionMetricData',
'description' => '- You can query data from the past 30 days. The query time range for a single request is limited to 24 hours.'."\n"
."\n"
.'- The data granularity is 5 minutes.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The QPS limit for this operation is 50 requests per second per account. Exceeding this limit triggers throttling, which can disrupt your services.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'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' => 'Checks whether a specified IP address belongs to an Alibaba Cloud point of presence (POP).',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '107056',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'IP',
'in' => 'query',
'schema' => ['description' => 'The IP address that you want to check. You can specify only one IP address in each call.', 'type' => 'string', 'required' => true, 'example' => '192.168.0.1', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'IspEname' => ['description' => 'The English name of the Internet service provider (ISP).', 'type' => 'string', 'example' => 'telecom', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '1B1D0EE7-9559-489D-BC4E-279495EB8FB8', 'title' => ''],
'RegionEname' => ['description' => 'The English name of the IP region.', 'type' => 'string', 'example' => 'China-Guizhou-guiyang', 'title' => ''],
'ISP' => ['description' => 'The Chinese name of the ISP.', 'type' => 'string', 'example' => '电信', 'title' => ''],
'Region' => ['description' => 'The Chinese name of the IP region.', 'type' => 'string', 'example' => '中国-贵州省-贵阳市', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'CdnIP.NotFound', 'errorMessage' => 'Cannot find this ip in alicdn', 'description' => ''],
],
],
'title' => 'DescribeLiveIpInfo',
'description' => '### QPS limit'."\n"
."\n"
.'You can call this operation up to 30 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveIpInfo'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveIpInfo',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"IspEname\\": \\"telecom\\",\\n \\"RequestId\\": \\"1B1D0EE7-9559-489D-BC4E-279495EB8FB8\\",\\n \\"RegionEname\\": \\"China-Guizhou-guiyang\\",\\n \\"ISP\\": \\"电信\\",\\n \\"Region\\": \\"中国-贵州省-贵阳市\\"\\n}","type":"json"}]',
],
'DescribeLiveLazyPullStreamConfig' => [
'summary' => 'Retrieves the configurations of triggered stream pulling for a streaming domain.',
'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' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The application name of the stream.', 'type' => 'string', 'required' => false, 'example' => 'liveApp****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The stream pulling configurations.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'A3136B58-5876-4168-83CA-B562781981A0', 'title' => ''],
'LiveLazyPullConfigList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'LiveLazyPullConfig' => [
'itemNode' => true,
'description' => 'The stream pulling configurations.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'The stream pulling configuration.',
'type' => 'object',
'properties' => [
'AppName' => ['description' => 'The application name.', 'type' => 'string', 'example' => 'liveApp****', 'title' => ''],
'PullArgs' => ['description' => 'A string of key-value parameters for the origin pull.', 'type' => 'string', 'example' => 'k=v', 'title' => ''],
'PullAppName' => ['description' => 'The application name on the origin. If this is empty, the AppName from the streaming URL is used.', 'type' => 'string', 'example' => 'livePullApp****', 'title' => ''],
'PullProtocol' => ['description' => 'The protocol to use for the origin pull. Valid values:'."\n"
."\n"
.'- **rtmp**'."\n"
."\n"
.'- **httpflv**'."\n"
."\n"
.'- **hls**', 'type' => 'string', 'example' => 'RTMP', 'title' => ''],
'PullDomainName' => ['description' => 'The origin domain from which the stream is pulled.', 'type' => 'string', 'example' => 'guide.aliyundoc.com', 'title' => ''],
'DomainName' => ['description' => 'The main streaming domain.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'TranscodeLazy' => ['description' => 'Indicates if a request for a transcoded stream also triggers the pull. Valid values:'."\n"
."\n"
.'- **yes**'."\n"
."\n"
.'- **no**'."\n"
."\n"
.'Default value: no.', 'type' => 'string', 'example' => 'no', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'title' => 'DescribeLiveLazyPullStreamConfig',
'description' => 'This operation supports retrieving only the configurations of triggered stream pulling.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 1,000 times per minute per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Special error codes'."\n"
.'| Error code | Error message | Error message| Description|'."\n"
.'| ------------- |------------ | ----- | ----- |'."\n"
.'| Missing DomainName | DomainName is mandatory for this action.| 400 |One or more required parameters are not specified.|'."\n"
.'| InvalidDomain.NotFound |The domain provided does not exist in our records. |404 |The domain name is not found within your Alibaba Cloud account. |',
'changeSet' => [
['createdAt' => '2024-01-23T08:48:29.000Z', 'description' => 'Response parameters changed, Error codes changed'],
],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveLazyPullStreamConfig',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveMessageApp' => [
'summary' => 'Query Interactive Message App',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '193804',
'abilityTreeNodes' => ['FEATUREliveSL6Y07'],
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The ID of the interactive messaging application to query.'."\n", 'type' => 'string', 'required' => true, 'example' => 'demo'],
],
[
'name' => 'DataCenter',
'in' => 'query',
'schema' => ['description' => 'The data center. It must be the same as the data center that was specified when you called the [CreateLiveMessageApp](~~2848162~~) operation to create the interactive messaging application. Valid values: cn-shanghai and ap-southeast-1 (Singapore).'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '9FB68B5B-ED07-18F0-A3CF-083F4E74****', 'title' => ''],
'AppId' => ['description' => 'The ID of the interactive messaging application.'."\n", 'type' => 'string', 'example' => 'demo', 'title' => ''],
'AppName' => ['description' => 'The name of the interactive messaging application.'."\n", 'type' => 'string', 'example' => 'testApp', 'title' => ''],
'AppKey' => ['description' => 'The AppKey of the interactive messaging application. It is used to authorize operations related to the application ID.'."\n", 'type' => 'string', 'example' => '**********************************', 'title' => ''],
'AppSign' => ['description' => 'The signature of the interactive messaging application. It is required by the interactive messaging SDK.'."\n", 'type' => 'string', 'example' => '**************************************************************************', 'title' => ''],
'AuditType' => ['description' => 'The content moderation method. Valid values:'."\n"
."\n"
.'* 0: Content moderation is disabled.'."\n"
.'* 1: Built-in content moderation is used.'."\n"
.'* 2: Custom content moderation is used.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''],
'AuditUrl' => ['description' => 'The URL for content moderation. This parameter is returned when the value of AuditType is 2.'."\n", 'type' => 'string', 'example' => 'http://example.aliyundoc.com/exampleaudit', 'title' => ''],
'EventCallbackUrl' => ['description' => 'The callback URL for events such as user logon, logoff, joining a group, and leaving a group. An empty value indicates that callbacks are disabled.'."\n", 'type' => 'string', 'example' => 'http://example.aliyundoc.com/examplecallback', 'title' => ''],
'Disable' => ['description' => 'Indicates whether the interactive messaging application is disabled.'."\n", 'type' => 'boolean', 'example' => 'false', 'title' => ''],
'CreateTime' => ['description' => 'The time when the interactive messaging application was created. The value is a UNIX timestamp. Unit: seconds.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1698305471', 'title' => ''],
'ModifyTime' => ['description' => 'The time when the interactive messaging application was modified. The value is a UNIX timestamp. Unit: seconds.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1698305471', 'title' => ''],
'MsgLifeCycle' => ['description' => 'The retention period of group messages in the application. Valid values:'."\n"
."\n"
.'* 0 (default): 30 days'."\n"
.'* 1: 90 days'."\n"
.'* 2: 180 days'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'DataCenter' => ['description' => 'The data center.'."\n", 'type' => 'string', 'example' => 'cn-shanghai', 'title' => ''],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'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' => 'DescribeLiveMessageApp',
'description' => 'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n",
'changeSet' => [
['createdAt' => '2025-03-26T02:53:05.000Z', 'description' => 'Response parameters changed'],
['createdAt' => '2025-01-23T12:00:01.000Z', 'description' => 'Response parameters changed'],
['createdAt' => '2024-08-01T02:18:29.000Z', 'description' => 'Response parameters changed'],
['createdAt' => '2024-02-22T06:01:33.000Z', 'description' => 'Response parameters changed'],
['createdAt' => '2024-01-09T03:34:27.000Z', 'description' => 'Response parameters changed'],
],
'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}'],
],
],
],
],
],
'DescribeLiveMessageGroup' => [
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '194284',
'abilityTreeNodes' => ['FEATUREliveSL6Y07'],
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'demo', 'title' => ''],
],
[
'name' => 'GroupId',
'in' => 'query',
'schema' => ['description' => 'The ID of the interactive messaging group whose information you want to query.'."\n", 'type' => 'string', 'required' => true, 'example' => 'grouptest', 'title' => ''],
],
[
'name' => 'DataCenter',
'in' => 'query',
'schema' => ['description' => 'The data center. It must be the same as the data center that was specified when you called the [CreateLiveMessageApp](~~2848162~~) operation to create the interactive messaging application. Valid values: cn-shanghai and ap-southeast-1 (Singapore).'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'The response parameters.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '1815A27D-BAE2-10E6-89FD-D477951C****'],
'GroupId' => ['description' => 'The group ID.'."\n", 'type' => 'string', 'example' => 'grouptest', 'title' => ''],
'CreatorId' => ['description' => 'The ID of the group creator.'."\n", 'type' => 'string', 'example' => 'uid1', 'title' => ''],
'AdminList' => [
'description' => 'The list of the group administrators.'."\n",
'type' => 'array',
'items' => ['description' => 'The ID of the administrator.'."\n", 'type' => 'string', 'example' => '["uid1","uid2"]', 'title' => ''],
'title' => '',
'example' => '',
],
'Createtime' => ['description' => 'The time when the group was created. The value is a UNIX timestamp. Unit: seconds.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1698305471', 'title' => ''],
'GroupName' => ['description' => 'The name of the group.'."\n", 'type' => 'string', 'example' => 'mytestgroup', 'title' => ''],
'GroupInfo' => ['description' => 'Additional information about the group.'."\n", 'type' => 'string', 'example' => 'testgroupinfo', 'title' => ''],
'Delete' => ['description' => 'Indicates whether the group was deleted.'."\n", 'type' => 'boolean', 'example' => 'false', 'title' => ''],
'TotalTimes' => ['description' => 'The total number of sessions. This parameter is returned only if the group exists.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '50', 'title' => ''],
'OnlineUserCounts' => ['description' => 'The number of online users in the group. This parameter is returned only if the group exists.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '2', 'title' => ''],
'MsgAmount' => [
'description' => 'The categorized message statistics. This parameter is returned only if the group exists.'."\n",
'type' => 'object',
'additionalProperties' => ['type' => 'integer', 'format' => 'int64', 'example' => '{1 : 20, 2 : 30}', 'description' => 'Number of messages.', 'title' => ''],
'title' => '',
'example' => '',
],
'Deletatime' => ['description' => 'The time when the group was deleted. This parameter is returned only if the group was deleted.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1698299827', 'title' => ''],
'Deletor' => ['description' => 'The ID of the user who deleted the group. This parameter is returned only if the group was deleted.'."\n", 'type' => 'string', 'example' => 'uid1', 'title' => ''],
'SuperLargeGroup' => ['description' => 'Indicates whether the group is a super group. Valid values:'."\n"
."\n"
.'* True'."\n"
.'* False'."\n", 'type' => 'boolean', 'example' => 'False', 'title' => ''],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DescribeLiveMessageGroup',
'summary' => 'Queries the information about an interactive messaging group.',
'description' => 'Before you call this operation, make sure that you have called the [CreateLiveMessageGroup](~~2848162~~) operation to create an interactive messaging group.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n",
'changeSet' => [
['createdAt' => '2025-03-26T02:50:33.000Z', 'description' => 'Response parameters changed'],
],
'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}'],
],
],
],
],
'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-D477951C67C7\\n grouptest1\\n uid1\\n uid1\\n 1698305471\\n mytestgroup\\n testgroupinfo\\n false\\n 50\\n 2\\n 1698299827\\n uid1\\n","errorExample":""}]',
],
'DescribeLiveMessageGroupBand' => [
'summary' => 'Queries the mute status of users.'."\n",
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'demo', 'title' => ''],
],
[
'name' => 'GroupId',
'in' => 'query',
'schema' => ['description' => 'The ID of the interactive messaging group.'."\n", 'type' => 'string', 'required' => true, 'example' => 'grouptest', 'title' => ''],
],
[
'name' => 'DataCenter',
'in' => 'query',
'schema' => ['description' => 'The data center. It must be the same as the data center that was specified when you called the [CreateLiveMessageApp](~~2848162~~) operation to create the interactive messaging application. Valid values: cn-shanghai and ap-southeast-1 (Singapore).'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'The response parameters.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '021D1FE7-2E87-16AC-9364-4E7EA47C****'],
'GroupId' => ['description' => 'The group ID.'."\n", 'type' => 'string', 'example' => 'grouptest', 'title' => ''],
'BannedUserList' => [
'description' => 'The list of users that were muted separately, but not by muting the entire group.'."\n",
'type' => 'array',
'items' => ['description' => 'The ID of the users.'."\n", 'type' => 'string', 'example' => '["uid1","uid2"]', 'title' => ''],
'title' => '',
'example' => '',
],
'UnbannedUserList' => [
'description' => 'The list of users who were not muted when the entire group was muted.'."\n",
'type' => 'array',
'items' => ['description' => 'The ID of the users.'."\n", 'type' => 'string', 'example' => '["uid3"]', 'title' => ''],
'title' => '',
'example' => '',
],
'IsbannedAll' => ['description' => 'Indicates whether all users in the interactive messaging group are muted.'."\n", 'type' => 'boolean', 'example' => 'false', 'title' => ''],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'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' => 'DescribeLiveMessageGroupBand',
'description' => 'Before you call this operation, make sure that you have called the [CreateLiveMessageGroup](~~2848163~~) operation to create an interactive messaging group.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n",
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveMessageGroupBand'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveMessageGroupBand',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'],
],
],
],
],
],
'DescribeLivePackageConfig' => [
'summary' => 'Queries the live packaging configuration under a streaming domain.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveJAENGU'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The live streaming domain (primary playback domain).', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The app name. Leave empty to match all names.', 'type' => 'string', 'required' => false, 'example' => 'AppName', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The live stream name. Leave empty to match all stream names.', 'type' => 'string', 'required' => false, 'example' => 'StreamName', 'title' => ''],
],
[
'name' => 'PageNum',
'in' => 'query',
'schema' => ['description' => 'The current page number. Default value: 1.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '1', 'example' => '1', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The page size. Default value: 10. Valid values: 5 to 30.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '30', 'minimum' => '5', 'default' => '10', 'example' => '10', 'title' => ''],
],
[
'name' => 'Order',
'in' => 'query',
'schema' => [
'description' => 'The sort order. Valid values:'."\n"
."\n"
.'- **asc** (default): ascending order.'."\n"
."\n"
.'- **desc**: descending order.',
'enumValueTitles' => ['asc' => 'Ascending', 'desc' => 'Descending'],
'type' => 'string',
'required' => false,
'default' => 'asc',
'enum' => ['asc', 'desc'],
'example' => 'asc',
'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The packaging configuration information.',
'type' => 'object',
'properties' => [
'LivePackageConfigList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'LivePackageConfig' => [
'description' => 'The packaging configuration list.',
'type' => 'array',
'items' => [
'description' => 'The packaging configuration list.',
'type' => 'object',
'properties' => [
'AppName' => ['description' => 'The app name.', 'type' => 'string', 'example' => 'AppName', 'title' => ''],
'DomainName' => ['description' => 'The live streaming domain (primary playback domain).', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'IgnoreTranscode' => ['description' => 'Specifies whether to ignore transcoded streams. Valid values:'."\n"
."\n"
.'- **true** (default): ignores transcoded streams.'."\n"
."\n"
.'- **false**: does not ignore transcoded streams.', 'type' => 'boolean', 'example' => 'true', 'title' => ''],
'PartDuration' => ['description' => 'The part segment duration, in milliseconds.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'Protocol' => ['description' => 'The live streaming protocol and packaging format.', 'type' => 'string', 'example' => 'HLS_CMAF', 'title' => ''],
'SegmentDuration' => ['description' => 'The segment duration, in seconds.', 'type' => 'integer', 'format' => 'int32', 'example' => '5', 'title' => ''],
'SegmentNum' => ['description' => 'The number of M3U8 segments for live streaming.', 'type' => 'integer', 'format' => 'int32', 'example' => '3', 'title' => ''],
'StreamName' => ['description' => 'The live stream name.', 'type' => 'string', 'example' => 'StreamName', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'Order' => ['description' => 'The sort order. Valid values:'."\n"
."\n"
.'- **asc** (default): ascending order.'."\n"
."\n"
.'- **desc**: descending order.', 'type' => 'string', 'example' => 'asc', 'title' => ''],
'PageNum' => ['description' => 'The current page number.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'PageSize' => ['description' => 'The page size.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '1FEDCFD8-4C5D-5CB3-A5A1-0B59E5AE57B0', 'title' => ''],
'TotalNum' => ['description' => 'The total number of records.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'TotalPage' => ['description' => 'The total number of pages.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is missing, please check and try again.'],
['errorCode' => 'InvalidParams', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is invalid, please check and try again.'],
['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => '%s Please check and try again later.', 'description' => 'Configuration already exists, please check and try again.'],
['errorCode' => 'InvalidProtocol', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter Protocol is invalid, please check and try again.'],
['errorCode' => 'InvalidSegmentNum', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter SegmentNum is invalid, please check and try again.'],
['errorCode' => 'InvalidSegmentDuration', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter SegmentDuration is invalid, please check and try again.'],
['errorCode' => 'InvalidPartDuration', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter PartDuration is invalid, please check and try again.'],
],
500 => [
['errorCode' => 'InternalErr', 'errorMessage' => '%s, please try again.', 'description' => 'Internal error, please try again later.'],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query live packaging configuration',
'description' => 'Obtain the primary streaming domain first, and then call this operation to query the live packaging configuration under the streaming domain.'."\n"
."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this operation is 300 calls per minute. If the limit is exceeded, API calls will be throttled, which may affect your business. Please call this operation as appropriate.',
'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}'],
],
],
],
],
],
'DescribeLivePrivateLineAreas' => [
'summary' => 'Queries the available origin points for Global Accelerator links.',
'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' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain for ingest.', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The data returned.',
'type' => 'object',
'properties' => [
'LiveAreasList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'LiveArea' => [
'description' => 'The list of region details.',
'type' => 'array',
'items' => [
'description' => 'The details of the region.',
'type' => 'object',
'properties' => [
'RegionType' => ['description' => 'The type of the region. Valid values:'."\n"
."\n"
.'- domestic: the Chinese mainland.'."\n"
."\n"
.'- overseas: countries and regions outside the Chinese mainland.', 'type' => 'string', 'example' => 'domestic', 'title' => ''],
'Regions' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Region' => [
'description' => 'The list of regions.',
'type' => 'array',
'items' => [
'description' => 'The information about the region.',
'type' => 'object',
'properties' => [
'LocalName' => ['description' => 'The name of the region.', 'type' => 'string', 'example' => '深圳', 'title' => ''],
'RegionId' => ['description' => 'The region ID.', 'type' => 'string', 'example' => 'cn-shenzhen', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'C4865B85-664B-19D3-BB16-C62FB83C8226', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => 'Illegal input parameters'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''],
],
],
'title' => 'DescribeLivePrivateLineAreas',
'description' => 'You can call this operation to query available Global Accelerator regions before you call the CreateLivePrivateLine operation. These regions can be used as origin points for acceleration.'."\n"
."\n"
.'## Limits'."\n"
."\n"
.'You can make up to 50 queries per second (QPS) per user. If you exceed this limit, API calls are throttled, which may affect your business. We recommend that you call this operation at a reasonable rate.',
'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}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLivePrivateLineAvailGA' => [
'summary' => 'Queries the binding information between an Alibaba Cloud Global Accelerator (GA) instance and a live channel.',
'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' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The application name.', 'type' => 'string', 'required' => false, 'example' => 'live', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The stream name.', 'type' => 'string', 'required' => false, 'example' => 'testStream', 'title' => ''],
],
[
'name' => 'AccelerationArea',
'in' => 'query',
'schema' => ['description' => 'The acceleration channel.', 'type' => 'string', 'required' => false, 'example' => 'ap-southeast-1', 'title' => ''],
],
[
'name' => 'VideoCenter',
'in' => 'query',
'schema' => ['description' => 'The live center. Valid values: cn-beijing (Beijing), cn-shanghai (Shanghai), cn-shenzhen (Shenzhen), cn-qingdao (Qingdao), ap-northeast-1 (Tokyo), ap-southeast-5 (Jakarta), eu-central-1 (Frankfurt), ap-southeast-1 (Singapore), and ap-south-1 (Mumbai).', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'IsGaInstance',
'in' => 'query',
'schema' => [
'description' => 'Specifies whether to query a GA instance. Valid values:'."\n"
."\n"
.'- yes: queries the status of the GA instance.'."\n"
."\n"
.'- no: queries the binding details between the GA instance and the live channel.',
'type' => 'string',
'required' => true,
'enum' => ['yes', 'no'],
'example' => 'no',
'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response.',
'type' => 'object',
'properties' => [
'LivePrivateLineAvailGAs' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'LivePrivateLineAvailGA' => [
'itemNode' => true,
'description' => 'The configuration details of the GA instance.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'The configuration details of the GA instance.',
'type' => 'object',
'properties' => [
'AccelerationArea' => ['description' => 'The acceleration channel.', 'type' => 'string', 'example' => 'ap-southeast-1', 'title' => ''],
'AccelerationType' => ['description' => 'The acceleration type. Valid values:'."\n"
."\n"
.'- play: stream playback acceleration.'."\n"
."\n"
.'- publish: stream ingest acceleration.', 'type' => 'string', 'example' => 'play', 'title' => ''],
'AppName' => ['description' => 'The application name.', 'type' => 'string', 'example' => 'live', 'title' => ''],
'BindingStatus' => ['description' => 'Indicates whether the instance is attached to a live channel. Valid values:'."\n"
."\n"
.'- yes: The instance is attached.'."\n"
."\n"
.'- no: The instance is not attached.', 'type' => 'string', 'example' => 'yes', 'title' => ''],
'DomainName' => ['description' => 'The streaming domain.', 'type' => 'string', 'example' => 'demo.aliyundoc.com', 'title' => ''],
'IP' => ['description' => 'The accelerated IP address.', 'type' => 'string', 'example' => '127.0.0.1', 'title' => ''],
'InstanceId' => ['description' => 'The ID of the GA instance.', 'type' => 'string', 'example' => 'ga-bp1iovsdpf01ym9su****', 'title' => ''],
'Status' => ['description' => 'The status of the instance. Valid values:'."\n"
."\n"
.'- active: The instance is active.'."\n"
."\n"
.'- inactive: The instance is inactive.', 'type' => 'string', 'example' => 'active', 'title' => ''],
'StreamName' => ['description' => 'The stream name.', 'type' => 'string', 'example' => 'testStream', 'title' => ''],
'Uid' => ['description' => 'The UID.', 'type' => 'string', 'example' => '1833220971116****', 'title' => ''],
'VideoCenter' => ['description' => 'The live center.', 'type' => 'string', 'example' => 'cn-shanghai', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'C4865B85-664B-19D3-BB16-C62FB83C8226', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => 'Illegal input parameters'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''],
],
],
'title' => 'DescribeLivePrivateLineAvailGA',
'description' => 'Set the IsGaInstance parameter to yes to query the status of the GA instance. Set the parameter to no to query the binding details between the GA instance and the live channel.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'Each user can make up to 50 queries per second (QPS). If you exceed this limit, API calls are throttled, which may affect your business. We recommend that you call this API at a reasonable rate.',
'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' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveProducerUsageData' => [
'summary' => 'Calls DescribeLiveProducerUsageData to query producer studio usage data.',
'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' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'Region',
'in' => 'query',
'schema' => ['description' => 'The region to which the domain name belongs. If this parameter is left empty, merged data of all regions is returned by default. Batch query is supported. Separate multiple regions with commas (,).', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain name of the cloud producer studio.'."\n"
."\n"
.'- Supports single or batch domain name queries. Separate multiple domain names with commas (,) for batch queries.'."\n"
.'- If this parameter is left empty, merged data of all live streaming domain names is returned by default.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'Instance',
'in' => 'query',
'schema' => ['description' => 'The instance to query. Batch query is supported. Separate multiple instances with commas (,).'."\n"
."\n"
.'> If this parameter is left empty, merged data of all instances is returned by default.', 'type' => 'string', 'required' => false, 'example' => 'a17d0184-462d-4630-b2a6-8c26dde2****', 'title' => ''],
],
[
'name' => 'Type',
'in' => 'query',
'schema' => ['description' => 'The producer type. Batch query is supported. Separate multiple types with commas (,). Valid values:'."\n"
."\n"
.'- **slidelive**: playlist-based.'."\n"
."\n"
.'- **universal**: general-purpose.'."\n"
."\n"
.'> If this parameter is left empty, merged data of all producer types is returned by default.', 'type' => 'string', 'required' => false, 'example' => 'slidelive', 'title' => ''],
],
[
'name' => 'SplitBy',
'in' => 'query',
'schema' => ['description' => 'The grouping key. You can specify one or more of the following: domain, region, instance, or type. Separate multiple values with commas (,). The specified fields will be grouped in the output.'."\n"
."\n\n"
.'> If this parameter is left empty, only aggregated data is returned.', 'type' => 'string', 'required' => false, 'example' => 'type', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2018-09-30T16:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n"
."\n"
.'> The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2018-10-31T15:59:59Z', 'title' => ''],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => ['description' => 'The time granularity of the queried data. Valid values: 3600 (1 hour) and 86400 (1 day). Unit: seconds.', 'type' => 'string', 'required' => false, 'example' => '3600', 'title' => ''],
],
[
'name' => 'app',
'in' => 'query',
'schema' => ['description' => 'The name of the application to which the stream belongs.', 'type' => 'string', 'required' => false, 'example' => 'liveApp****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'BillProducerData' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'BillProducerDataItem' => [
'description' => 'The usage data of the producer studio.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'DomainName' => ['description' => 'The domain name for usage data. Grouped in the output when SplitBy is set to domain.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'Instance' => ['description' => 'The usage instance. Grouped in the output when SplitBy is set to instance.', 'type' => 'string', 'example' => 'a17d0184-462d-4630-b2a6-8c26dde2****', 'title' => ''],
'OutputHdDuration' => ['description' => 'The duration of high-definition (HD) resolution output. Unit: minutes.', 'type' => 'integer', 'format' => 'int64', 'example' => '6000', 'title' => ''],
'OutputLdDuration' => ['description' => 'The duration of low-definition (LD) resolution output. Unit: minutes.', 'type' => 'integer', 'format' => 'int64', 'example' => '1001', 'title' => ''],
'OutputSdDuration' => ['description' => 'The duration of standard-definition (SD) resolution output. Unit: minutes.', 'type' => 'integer', 'format' => 'int64', 'example' => '500', 'title' => ''],
'Region' => ['description' => 'The region for usage data. Grouped in the output when SplitBy is set to region.', 'type' => 'string', 'example' => 'cn-shanghai', 'title' => ''],
'TimeStamp' => ['description' => 'The start time of the time interval. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2018-09-30T00:00:00Z', 'title' => ''],
'TranHdDuration' => ['description' => 'The transcoding duration of high-definition (HD) resolution. Unit: minutes.', 'type' => 'integer', 'format' => 'int64', 'example' => '6777', 'title' => ''],
'TranLdDuration' => ['description' => 'The transcoding duration of low-definition (LD) resolution. Unit: minutes.', 'type' => 'integer', 'format' => 'int64', 'example' => '111', 'title' => ''],
'TranSdDuration' => ['description' => 'The transcoding duration of standard-definition (SD) resolution. Unit: minutes.', 'type' => 'integer', 'format' => 'int64', 'example' => '666', 'title' => ''],
'Type' => ['description' => 'The producer type. Grouped in the output when SplitBy is set to type.', 'type' => 'string', 'example' => 'slidelive', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'EndTime' => ['description' => 'The end time. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2018-09-30T16:00:00Z', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'C370DAF1-C838-4288-A1A0-9A87633D248E', 'title' => ''],
'StartTime' => ['description' => 'The start time. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2018-10-31T15:59:59Z', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['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' => 'The end time does not match the start time. Make sure that the start and end times match.'],
['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => 'The time span exceeds the limit. Please refer to the API documentation to specify a reasonable time span.'],
['errorCode' => 'InvalidTime.ValueNotSupported', 'errorMessage' => 'Specified Time is malformed.', 'description' => 'The specified time is invalid.'],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query producer studio usage data',
'description' => 'The minimum data query granularity is 1 hour. The maximum query time span is 31 days. The maximum historical query range is the last 90 days.'."\n"
."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this API operation is 5 calls per second. If the limit is exceeded, API calls are throttled, which may affect your business. Call this operation properly.',
'extraInfo' => '## Example 2: splitBy=type'."\n"
."\n"
.'Request example'."\n"
."\n"
.'```'."\n"
.'http://live.aliyuncs.com?Action=DescribeLiveProducerUsageData '."\n"
.'&StartTime=2018-09-30T16:00:00Z '."\n"
.'&EndTime=2018-10-31T15:59:59Z '."\n"
.'&SplitBy=type '."\n"
.'&'."\n"
.'```'."\n"
.'Normal response examples'."\n"
."\n"
.'`XML` format'."\n"
."\n"
.'```'."\n"
.''."\n"
.' C370DAF1-C838-4288-A1A0-9A87633D248E'."\n"
.' 2018-09-30T16:00:00Z'."\n"
.' 2018-10-31T15:59:59Z'."\n"
.' '."\n"
.' '."\n"
.' universal'."\n"
.' 1001'."\n"
.' 500'."\n"
.' 6000'."\n"
.' 111'."\n"
.' 666'."\n"
.' 6777'."\n"
.' 2018-09-30T00:00:00Z'."\n"
.' '."\n"
.' '."\n"
.' slidelive'."\n"
.' 1001'."\n"
.' 500'."\n"
.' 6000'."\n"
.' 111'."\n"
.' 666'."\n"
.' 6777'."\n"
.' 2018-09-30T00:00:00Z'."\n"
.' '."\n"
.' '."\n"
.' universal'."\n"
.' 1001'."\n"
.' 500'."\n"
.' 6000'."\n"
.' 111'."\n"
.' 666'."\n"
.' 6777'."\n"
.' 2018-10-01T00:00:00Z'."\n"
.' '."\n"
.' '."\n"
.' slidelive'."\n"
.' 1001'."\n"
.' 500'."\n"
.' 6000'."\n"
.' 111'."\n"
.' 666'."\n"
.' 6777'."\n"
.' 2018-10-01T00:00:00Z'."\n"
.' '."\n"
.' '."\n"
.' universal'."\n"
.' 1001'."\n"
.' 500'."\n"
.' 6000'."\n"
.' 111'."\n"
.' 666'."\n"
.' 6777'."\n"
.' 2018-10-02T00:00:00Z'."\n"
.' '."\n"
.' '."\n"
.' slidelive'."\n"
.' 1001'."\n"
.' 500'."\n"
.' 6000'."\n"
.' 111'."\n"
.' 666'."\n"
.' 6777'."\n"
.' 2018-10-02T00:00:00Z'."\n"
.' '."\n"
.' '."\n"
.''."\n"
.'```'."\n"
.'`JSON` format'."\n"
."\n"
.'```'."\n"
.'{'."\n"
.' "RequestId": "C370DAF1-C838-4288-A1A0-9A87633D248E",'."\n"
.' "EndTime": "2018-09-30T16:00:00Z",'."\n"
.' "StartTime": "2018-10-31T15:59:59Z",'."\n"
.' "BillProducerData": {'."\n"
.' "BillProducerDataItem": ['."\n"
.' {'."\n"
.' "Type": "universal",'."\n"
.' "OutputLdDuration": 1001,'."\n"
.' "OutputSdDuration": 500,'."\n"
.' "OutputHdDuration": 6000,'."\n"
.' "TranLdDuration": 111,'."\n"
.' "TranSdDuration": 666,'."\n"
.' "TranHdDuration": 6777,'."\n"
.' "TimeStamp": "2018-09-30T00:00:00Z"'."\n"
.' }, {'."\n"
.' "Type": "slidelive",'."\n"
.' "OutputLdDuration": 1001,'."\n"
.' "OutputSdDuration": 500,'."\n"
.' "OutputHdDuration": 6000,'."\n"
.' "TranLdDuration": 111,'."\n"
.' "TranSdDuration": 666,'."\n"
.' "TranHdDuration": 6777,'."\n"
.' "TimeStamp": "2018-09-30T00:00:00Z"'."\n"
.' },{'."\n"
.' "Type": "universal",'."\n"
.' "OutputLdDuration": 1001,'."\n"
.' "OutputSdDuration": 500,'."\n"
.' "OutputHdDuration": 6000,'."\n"
.' "TranLdDuration": 111,'."\n"
.' "TranSdDuration": 666,'."\n"
.' "TranHdDuration": 6777,'."\n"
.' "TimeStamp": "2018-10-01T00:00:00Z"'."\n"
.' },{'."\n"
.' "Type": "slidelive",'."\n"
.' "OutputLdDuration": 1001,'."\n"
.' "OutputSdDuration": 500,'."\n"
.' "OutputHdDuration": 6000,'."\n"
.' "TranLdDuration": 111,'."\n"
.' "TranSdDuration": 666,'."\n"
.' "TranHdDuration": 6777,'."\n"
.' "TimeStamp": "2018-10-01T00:00:00Z"'."\n"
.' },{'."\n"
.' "Type": "universal",'."\n"
.' "OutputLdDuration": 1001,'."\n"
.' "OutputSdDuration": 500,'."\n"
.' "OutputHdDuration": 6000,'."\n"
.' "TranLdDuration": 111,'."\n"
.' "TranSdDuration": 666,'."\n"
.' "TranHdDuration": 6777,'."\n"
.' "TimeStamp": "2018-10-02T00:00:00Z"'."\n"
.' },{'."\n"
.' "Type": "slidelive",'."\n"
.' "OutputLdDuration": 1001,'."\n"
.' "OutputSdDuration": 500,'."\n"
.' "OutputHdDuration": 6000,'."\n"
.' "TranLdDuration": 111,'."\n"
.' "TranSdDuration": 666,'."\n"
.' "TranHdDuration": 6777,'."\n"
.' "TimeStamp": "2018-10-02T00:00:00Z"'."\n"
.' }]'."\n"
.' }'."\n"
.'}'."\n"
.'```',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveProducerUsageData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
],
'DescribeLivePullStreamConfig' => [
'summary' => 'Retrieves the scheduled stream pulling configurations for a domain name.',
'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' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'A3136B58-5876-4168-83CA-B562781981A0', 'title' => ''],
'LiveAppRecordList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'LiveAppRecord' => [
'itemNode' => true,
'description' => 'The stream pulling configurations.',
'title' => '',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'EndTime' => ['description' => 'The end time. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2016-05-20T01:33:00Z', 'title' => ''],
'AppName' => ['description' => 'The name of the application.', 'type' => 'string', 'example' => 'liveApp****', 'title' => ''],
'SourceUrl' => ['description' => 'The origin URL for stream pulling.', 'type' => 'string', 'example' => 'guide.aliyundoc.com', 'title' => ''],
'StartTime' => ['description' => 'The start time. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2016-05-15T01:30:00Z', 'title' => ''],
'StreamName' => ['description' => 'The name of the pulled stream.', 'type' => 'string', 'example' => 'liveStream****', 'title' => ''],
'SourceUsing' => ['description' => 'The origin URL that is currently active and being used to pull the stream.', 'type' => 'string', 'example' => 'guide.aliyundoc.com', 'title' => ''],
'DomainName' => ['description' => 'The streaming domain where the ingested stream is hosted.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => 'Illegal input parameters'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''],
],
],
'title' => 'DescribeLivePullStreamConfig',
'description' => 'This operation supports retrieving only the configurations of scheduled stream pulling.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLivePullStreamConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLivePullToPush' => [
'summary' => 'Calls DescribeLivePullToPush to query a pull-to-push streaming task.',
'methods' => ['get'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '238179',
'abilityTreeNodes' => ['FEATURElive9P39J9'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'default' => 'cn-shanghai', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'The task ID.', 'type' => 'string', 'required' => true, 'example' => 'fd245384-4067-4f91-9d75-9666a6bc****', 'title' => ''],
],
[
'name' => 'Region',
'in' => 'query',
'schema' => [
'description' => 'The region where the task is launched. Valid values:'."\n"
.'- ap-southeast-1 (Singapore)'."\n"
.'- ap-southeast-5 (Indonesia)'."\n"
.'- cn-beijing (Beijing)'."\n"
.'- cn-shanghai (Shanghai)',
'enumValueTitles' => ['cn-shenzhen' => 'Shenzhen', 'cn-qingdao' => 'Qingdao', 'preregion' => 'Pre-release', 'cn-beijing' => 'Beijing', 'cn-shanghai' => 'Shanghai', 'ap-southeast-1' => 'Singapore', 'eu-central-1' => 'Germany (Frankfurt)', 'ap-northeast-1' => 'Japan (Tokyo)', 'ap-southeast-5' => 'Indonesia', 'me-central-1' => 'Saudi Arabia (Riyadh)'],
'type' => 'string',
'required' => true,
'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'],
'example' => 'cn-shanghai',
'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'a05e6b15-15af-405b-a4a2-0152245d****'],
'RetCode' => ['description' => 'The return code.'."\n"
.'> - "0" is returned under normal circumstances.'."\n"
.'> - For abnormal cases, refer to the error code list below.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'Description' => ['description' => 'The error description.', 'type' => 'string', 'example' => 'OK', 'title' => ''],
'TaskId' => ['description' => 'The newly created task ID.', 'type' => 'string', 'example' => 'fb0d4ac7-c7e3-4978-9743-0bf2f6e8****', 'title' => ''],
'TaskStatus' => ['description' => 'The current task status:'."\n"
.'- 0: Not started (the start time has not been reached).'."\n"
.'- 1: Running normally (pull streaming and push streaming are normal).'."\n"
.'- 2: Running abnormally.'."\n"
.'- 3: Stopped (pull streaming or push streaming is abnormal, or the task was actively stopped by calling the API).'."\n"
.'- -1: Exited.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'TaskInvalidReason' => ['description' => 'The reason why the task stopped running:'."\n"
."\n"
.'- PullStreamFailed: Source stream pull exception, retrying.'."\n"
.'- PushStreamFailed: Destination stream push exception, retrying.'."\n"
.'- UnknownError: Unknown exception.'."\n"
."\n"
.'> Only returned when the task is in stopped state.', 'type' => 'string', 'example' => 'PullStreamFailed', 'title' => ''],
'TaskExitTime' => ['description' => 'The task exit time, in Unix seconds timestamp.'."\n"
.'> Only returned when the task is in exited state.', 'type' => 'integer', 'format' => 'int32', 'example' => '1726354625', 'title' => ''],
'TaskExitReason' => ['description' => 'The reason for task exit:'."\n"
."\n"
.'- TriggerByUser: Actively ended by the user.'."\n"
.'- OverEndTime: Exceeded the preset end time.'."\n"
."\n"
.'> Only returned when the task is in exited state.', 'type' => 'string', 'example' => 'TriggerByUser', 'title' => ''],
'CurrentOffset' => ['description' => 'The currently effective video playback offset.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'CurrentFileIndex' => ['description' => 'The currently effective playlist sequence offset.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'TaskInfo' => [
'description' => 'The task information.',
'type' => 'object',
'properties' => [
'TaskId' => ['description' => 'The task ID.', 'type' => 'string', 'example' => 'fd245384-4067-4f91-9d75-9666a6bc9****', 'title' => ''],
'TaskName' => ['description' => 'The task name.', 'type' => 'string', 'example' => 'test', 'title' => ''],
'StartTime' => ['description' => 'The task start time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC time).', 'type' => 'string', 'example' => '2024-08-26T10:30:00Z', 'title' => ''],
'EndTime' => ['description' => 'The task end time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC time).', 'type' => 'string', 'example' => '2024-08-27T14:30:00Z', 'title' => ''],
'SourceType' => ['description' => 'The source stream type. Valid values:'."\n"
."\n"
.'- live: Live stream.'."\n"
.'- vod: Alibaba Cloud VOD resource.'."\n"
.'- url: Third-party video file resource.', 'type' => 'string', 'example' => 'vod', 'title' => ''],
'SourceProtocol' => ['description' => 'The source stream protocol name.', 'type' => 'string', 'example' => 'RTMP', 'title' => ''],
'SourceUrls' => [
'description' => 'The source stream URL addresses.',
'type' => 'array',
'items' => ['description' => 'The source stream URL address.', 'type' => 'string', 'example' => 'rtmp://pulltest.****.aliyunlive.com/pulltest493/pulltest-w434', 'title' => ''],
'example' => 'rtmp://pulltest.****.aliyunlive.com/pulltest493/pulltest-w434',
'title' => '',
],
'DstUrl' => ['description' => 'The push stream destination address.', 'type' => 'string', 'example' => 'rtmp://pushtest.********.aliyunlive.com/pulltest493/pulltest-w434', 'title' => ''],
'CallbackURL' => ['description' => 'The HTTP callback URL.', 'type' => 'string', 'example' => 'https://callback*****.com', 'title' => ''],
'Offset' => ['description' => 'The start offset, which is the starting offset value for the video file. Unit: seconds. Value: greater than 0.'."\n"
.'> - Indicates starting to read from a position offset relative to the first frame.'."\n"
.'> - Only valid for VOD resources or video files.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'FileIndex' => ['description' => 'The file index, starting playback from the nth file.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'RetryCount' => ['description' => 'The number of retries.', 'type' => 'integer', 'format' => 'int32', 'example' => '3', 'title' => ''],
'RetryInterval' => ['description' => 'The retry interval, in seconds.', 'type' => 'integer', 'format' => 'int32', 'example' => '60', 'title' => ''],
'RepeatNumber' => ['description' => 'The number of times to repeat playback after completion. Valid values:'."\n"
.'- 0 (default): No repeat playback.'."\n"
.'- -1: Loop indefinitely.'."\n"
.'- Other positive integers: The number of times to repeat playback after completion.'."\n"
."\n"
.'> This parameter only applies to VOD or third-party video streams.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => 'Parameter error'],
['errorCode' => 'CodeInvalidAliUid', 'errorMessage' => 'This aliuid does not have a live domain name.', 'description' => 'This aluid does not have a live domain name.'],
['errorCode' => 'CodeTaskNotExist', 'errorMessage' => 'Task does not exist.', 'description' => 'The task does not exist.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => 'error on the live liveapi server.'],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query pull-to-push streaming task',
'description' => '- Call this API operation to query a pull-to-push streaming task.'."\n"
.'- Supports querying the configuration information and status information of a task with a specified ID.'."\n"
."\n"
.'## QPS Limit'."\n"
.'The single-user QPS limit for this API is 10 calls per second. Exceeding the limit will result in API throttling, which may affect your business. Please call this API appropriately.',
'changeSet' => [
['createdAt' => '2025-04-27T08:03:58.000Z', 'description' => 'Error codes changed'],
['createdAt' => '2025-04-01T03:46:19.000Z', 'description' => 'Response parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLivePullToPush'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLivePullToPush',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeLivePullToPushList' => [
'summary' => 'Fuzzy query for stream pulling and pushing tasks.',
'methods' => ['get'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '257040',
'abilityTreeNodes' => ['FEATURElive9P39J9'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'Region ID.', 'type' => 'string', 'default' => 'cn-shanghai', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'Region',
'in' => 'query',
'schema' => [
'description' => 'Specifies the live center for query. Valid values:'."\n"
.'- ap-southeast-1 (Singapore)'."\n"
.'- ap-southeast-5 (Indonesia)'."\n"
.'- cn-beijing (Beijing)'."\n"
.'- cn-shanghai (Shanghai)',
'enumValueTitles' => ['cn-shenzhen' => 'Shenzhen', 'cn-qingdao' => 'Qingdao', 'preregion' => 'Pre-release', 'cn-beijing' => 'Beijing', 'cn-shanghai' => 'Shanghai', 'ap-southeast-1' => 'Singapore', 'eu-central-1' => 'Germany-Frankfurt', 'ap-northeast-1' => 'Japan-Tokyo', 'ap-southeast-5' => 'Indonesia', 'me-central-1' => 'Saudi Arabia-Riyadh'],
'type' => 'string',
'required' => true,
'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'],
'example' => 'cn-shanghai',
'title' => '',
],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'Task ID. Fuzzy search based on task ID.'."\n"
.'> The task ID consists of uppercase and lowercase letters, digits, underscores, and hyphens (-), with a maximum of 55 characters.', 'type' => 'string', 'required' => false, 'example' => '861009', 'title' => ''],
],
[
'name' => 'TaskName',
'in' => 'query',
'schema' => ['description' => 'Task name. Fuzzy search based on task name.', 'type' => 'string', 'required' => false, 'example' => 'task', 'title' => ''],
],
[
'name' => 'DstUrl',
'in' => 'query',
'schema' => ['description' => 'Destination push stream URL. Fuzzy search based on destination push stream URL.', 'type' => 'string', 'required' => false, 'example' => 'rtmp://qd', 'title' => ''],
],
[
'name' => 'PageNumber',
'in' => 'query',
'schema' => ['description' => 'Page number.'."\n"
.'> The value of this parameter must be greater than 0 and cannot exceed the maximum value of Integer data type. Default value: 1.', 'type' => 'integer', 'format' => 'int32', 'default' => '1', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'Number of records displayed per page.'."\n"
.'> Default value: 10. Value range: [1, 100].', 'type' => 'integer', 'format' => 'int32', 'maximum' => '100', 'minimum' => '1', 'default' => '10', 'required' => false, 'example' => '10', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'Request ID.', 'type' => 'string', 'example' => 'a05e6b15-15af-405b-a4a2-0152245*****'],
'Total' => ['description' => 'Total number of query results.', 'type' => 'integer', 'format' => 'int32', 'example' => '3', 'title' => ''],
'PageNumber' => ['description' => 'Page number.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'PageSize' => ['description' => 'Number of query records per page.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''],
'TaskList' => [
'description' => 'Task information list.',
'type' => 'array',
'items' => [
'description' => 'Task information list.',
'type' => 'object',
'properties' => [
'TaskId' => ['description' => 'Task ID.', 'type' => 'string', 'example' => 'fb0d4ac7-c7e3-4978-9743-0bf2f6e8****', 'title' => ''],
'TaskStatus' => ['description' => 'Current task status:'."\n"
.'- 0: Not started (start time has not been reached).'."\n"
.'- 1: Running normally (stream pulling and pushing are normal).'."\n"
.'- 2: Running abnormally.'."\n"
.'- 3: Stopped (stream pulling or pushing is abnormal, or the task was actively stopped by calling the API).'."\n"
.'- -1: Exited.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'TaskInvalidReason' => ['description' => 'Reason for task stopping:'."\n"
."\n"
.'- PullStreamFailed: Source stream pulling exception, retrying.'."\n"
.'- PushStreamFailed: Destination stream pushing exception, retrying.'."\n"
.'- UnknownError: Unknown exception.'."\n"
."\n"
.'> Only returned when the task is in stopped state.', 'type' => 'string', 'example' => 'PullStreamFailed', 'title' => ''],
'TaskExitTime' => ['description' => 'Task exit time, Unix timestamp in seconds.'."\n"
.'> Only returned when the task is in exited state.', 'type' => 'integer', 'format' => 'int32', 'example' => '1726354625', 'title' => ''],
'TaskExitReason' => ['description' => 'Task exit reason:'."\n"
."\n"
.'- TriggerByUser: Actively ended by user.'."\n"
.'- OverEndTime: Exceeded the preset end time.'."\n"
."\n"
.'> Only returned when the task is in exited state.', 'type' => 'string', 'example' => 'TriggerByUser', 'title' => ''],
'CurrentOffset' => ['description' => 'Currently effective video playback offset.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'CurrentFileIndex' => ['description' => 'Currently effective playlist sequence offset.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'TaskInfo' => [
'description' => 'Task information.',
'type' => 'object',
'properties' => [
'TaskId' => ['description' => 'Task ID.', 'type' => 'string', 'example' => 'fb0d4ac7-c7e3-4978-9743-0bf2f6e8****', 'title' => ''],
'TaskName' => ['description' => 'Task name.', 'type' => 'string', 'example' => 'taskname', 'title' => ''],
'StartTime' => ['description' => 'Task start time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC time).', 'type' => 'string', 'example' => '2024-12-04T09:16:00Z', 'title' => ''],
'EndTime' => ['description' => 'Task end time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC time).', 'type' => 'string', 'example' => '2024-12-30T14:30:00Z', 'title' => ''],
'SourceType' => ['description' => 'Source stream type. Valid values:'."\n"
."\n"
.'- live: Live stream.'."\n"
.'- vod: Alibaba Cloud Video on Demand resource.'."\n"
.'- url: Third-party video file resource.', 'type' => 'string', 'example' => 'vod', 'title' => ''],
'SourceProtocol' => ['description' => 'Source stream protocol name.', 'type' => 'string', 'example' => 'flv', 'title' => ''],
'SourceUrls' => [
'description' => 'Source stream URL addresses.',
'type' => 'array',
'items' => ['description' => 'Source stream URL address.', 'type' => 'string', 'example' => 'rtmp://118.178.***.*5:****/wwtestlive1/pulltest.jiugong.aliyunlive.com_livelight2?vhost=pulltest.jiugong.aliyun*******', 'title' => ''],
'title' => '',
'example' => '',
],
'DstUrl' => ['description' => 'Destination push stream URL.', 'type' => 'string', 'example' => 'rtmp://qd.push.lgg.alivecdn.com/testhsc/streamhsc?live_rtmp_*******', 'title' => ''],
'CallbackURL' => ['description' => 'HTTP callback URL.', 'type' => 'string', 'example' => 'hahaha.com', 'title' => ''],
'Offset' => ['description' => 'Start offset, the starting offset value of the video file. Unit: seconds. Value: greater than 0.'."\n"
.'> - Indicates the position to start reading from, relative to the first frame.'."\n"
.'> - Only valid for VOD resources or video files.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'FileIndex' => ['description' => 'File index, starts playback from the nth file.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'RetryCount' => ['description' => 'Number of retries.', 'type' => 'integer', 'format' => 'int32', 'example' => '3', 'title' => ''],
'RetryInterval' => ['description' => 'Retry interval, in seconds.', 'type' => 'integer', 'format' => 'int32', 'example' => '60', 'title' => ''],
'RepeatNumber' => ['description' => 'Number of times to repeat playback after completion. Valid values:'."\n"
.'- 0 (default): No repeat playback.'."\n"
.'- -1: Loop indefinitely.'."\n"
.'- Other positive integers: Number of times to repeat playback after completion.'."\n"
."\n"
.'> This parameter only applies to VOD or third-party video streams.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => 'Parameter error'],
['errorCode' => 'LiveServiceNotFound', 'errorMessage' => 'Your account does not open Live service yet', 'description' => 'Your account has not yet activated ApsaraVideo Live.'],
['errorCode' => 'CodeInvalidAliUid', 'errorMessage' => 'This aliuid does not have a live domain name.', 'description' => 'This aluid does not have a live domain name.'],
['errorCode' => 'CodeTaskNotExist', 'errorMessage' => 'Task does not exist.', 'description' => 'The task does not exist.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => 'error on the live liveapi server.'],
],
],
'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' => 'Fuzzy Query for Pull-to-Push Tasks',
'description' => '- Call this API to query the list of stream pulling and pushing tasks.'."\n"
.'- Supports paginated query of the task list, and supports fuzzy search by task ID, task name, and destination push stream URL.'."\n"
."\n"
.'## QPS Limit'."\n"
.'The single-user QPS limit for this API is 10 calls per second. Exceeding the limit will result in API throttling, which may affect your business. Please call this API appropriately.',
'changeSet' => [
['createdAt' => '2025-04-27T08:03:58.000Z', 'description' => 'Error codes changed'],
['createdAt' => '2025-04-01T03:46:19.000Z', 'description' => 'Response parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLivePullToPushList'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLivePullToPushList',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeLivePushProxyLog' => [
'summary' => 'Retrieves the download URLs of offline logs for live stream relay by calling DescribeLivePushProxyLog.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATURElive066BXV'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The ingest domain. Multi-domain queries are not supported.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The page size. Valid values: \\[1, 1000\\]. Default value: 300.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'default' => '300', 'example' => '300', 'title' => ''],
],
[
'name' => 'PageNumber',
'in' => 'query',
'schema' => ['description' => 'The page number. Default value: 1. Valid values: [1, 9223372036854775807].', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'default' => '1', 'example' => '2', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query logs.'."\n"
."\n"
.'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2023-09-20T08:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query logs.'."\n"
."\n"
.'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2023-09-20T09:00:00Z', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
'DomainLogDetails' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DomainLogDetail' => [
'description' => 'The data that consists of DomainLogDetail entries.',
'type' => 'array',
'items' => [
'description' => 'The data that consists of DomainLogDetail entries.',
'type' => 'object',
'properties' => [
'LogCount' => ['description' => 'The total number of entries returned on the current page.', 'type' => 'integer', 'format' => 'int64', 'example' => '10', 'title' => ''],
'LogInfos' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'LogInfoDetail' => [
'description' => 'The data that consists of LogInfoDetail entries.',
'type' => 'array',
'items' => [
'description' => 'The data that consists of LogInfoDetail entries.',
'type' => 'object',
'properties' => [
'EndTime' => ['description' => 'The end time.'."\n"
."\n"
.'The value is a UNIX timestamp.', 'type' => 'string', 'example' => '1695189600', 'title' => ''],
'LogName' => ['description' => 'The log name.', 'type' => 'string', 'example' => 'example.com'."\n"
.'_2023_09_20_160000_170000.****.gz', 'title' => ''],
'LogPath' => ['description' => 'The log path.', 'type' => 'string', 'example' => '****.aliyuncs.com/push_proxy/****/example.com/2023_09_20/1600/example.com'."\n"
.'_2023_09_20_160000_170000.****.gz', 'title' => ''],
'LogSize' => ['description' => 'The log size.', 'type' => 'integer', 'format' => 'int64', 'example' => '512', 'title' => ''],
'StartTime' => ['description' => 'The start time.'."\n"
."\n"
.'The value is a UNIX timestamp.', 'type' => 'string', 'example' => '1695193200', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'PageInfos' => [
'description' => 'The data that consists of PageInfoDetail entries.',
'type' => 'object',
'properties' => [
'PageIndex' => ['description' => 'The page number of the returned data.', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
'PageSize' => ['description' => 'The page size.', 'type' => 'integer', 'format' => 'int64', 'example' => '20', 'title' => ''],
'Total' => ['description' => 'The total number of entries.', 'type' => 'integer', 'format' => 'int64', 'example' => '20', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'DomainName' => ['description' => 'The ingest domain.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'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' => 'The value specified for the StartTime parameter is invalid.'],
['errorCode' => 'Invalid Parameter', 'errorMessage' => 'The specified Invalid Parameter', 'description' => ''],
['errorCode' => 'Internal Error', 'errorMessage' => 'Internal Error contact admin', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query download uRLs of offline relay logs',
'description' => '- Data time granularity: 1 hour.'."\n"
.'- Maximum query range: data from the last 31 days.'."\n"
.'- If you do not specify StartTime or EndTime, this operation reads data from the last 24 hours by default. If you specify StartTime and EndTime, data is queried based on the specified time range.'."\n"
."\n"
.'## QPS limit'."\n"
.'The QPS limit for a single user on this operation is 100 calls per second. If the limit is exceeded, API invocations are throttled, which may affect your business. Invoke this operation as needed.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLivePushProxyLog'],
],
],
'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' => 'Queries the usage data of live center relay by calling DescribeLivePushProxyUsageData.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveYUZBM3'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'Region',
'in' => 'query',
'schema' => ['description' => 'The live center to query. You can specify multiple regions separated by commas (,). Valid values:'."\n"
.'- cn-beijing: Beijing'."\n"
.'- cn-shanghai: Shanghai'."\n"
.'- cn-shenzhen: Shenzhen'."\n"
.'- cn-qingdao: Qingdao'."\n"
.'- ap-southeast-1: Singapore'."\n"
.'- eu-central-1: Germany'."\n"
.'- ap-northeast-1: Tokyo'."\n"
.'- ap-southeast-5: Jakarta'."\n"
."\n"
.'If this parameter is left empty, the aggregated data of all regions is returned by default.', 'type' => 'string', 'required' => false, 'example' => 'cn-beijing', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The ingest domain name of the streamer to query.'."\n"
.'- You can specify a single domain name or multiple domain names separated by commas (,).'."\n"
.'- If this parameter is left empty, the aggregated data of all live streaming domain names is returned by default.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time must be in UTC. By default, data from the last seven days is returned.', 'type' => 'string', 'required' => false, 'example' => '2022-10-10T20:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. The end time must be later than the start time. Specify the time in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2022-10-10T21:00:00Z', 'title' => ''],
],
[
'name' => 'SplitBy',
'in' => 'query',
'schema' => ['description' => 'The grouping key. If this parameter is left empty, the default value is region, and the aggregated data is returned. You can specify multiple values separated by commas (,). Valid values:'."\n"
.'- domain: the domain name. If SplitBy is set to domain, the Domain field in the response takes effect.'."\n"
.'- region (default): the live center region. If SplitBy is set to region, the Region field in the response takes effect.', 'type' => 'string', 'required' => false, 'default' => 'region', 'example' => 'region', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
'EndTime' => ['description' => 'The end time. The time is in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is in UTC.', 'type' => 'string', 'example' => '2022-10-10T21:00:00Z', 'title' => ''],
'PushProxyData' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'PushProxyDataItem' => [
'description' => 'The live center relay usage data.',
'type' => 'array',
'items' => [
'description' => 'The live center relay usage data.',
'type' => 'object',
'properties' => [
'DomainName' => ['description' => 'The domain name for usage. This field is returned when SplitBy is set to domain.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'Region' => ['description' => 'The live center. This field is returned when SplitBy is set to region.', 'type' => 'string', 'example' => 'cn-beijing', 'title' => ''],
'StreamCount' => ['description' => 'The peak number of concurrent relay streams in the live center. Unit: streams.', 'type' => 'integer', 'format' => 'int64', 'example' => '8', 'title' => ''],
'TimeStamp' => ['description' => 'The start time of the time interval. The time is in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is in UTC.', 'type' => 'string', 'example' => '2022-10-10T20:00:00Z', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '4B460F8B-993C-4F48-B98A-910811DEBFEB', 'title' => ''],
'StartTime' => ['description' => 'The start time. The time is in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is in UTC.', 'type' => 'string', 'example' => '2022-10-10T20:00:00Z', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['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' => 'The end time does not match the start time. Make sure that the start and end times match.'],
['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => 'The time span exceeds the limit. Please refer to the API documentation to specify a reasonable time span.'],
['errorCode' => 'InvalidTime.ValueNotSupported', 'errorMessage' => 'Specified Time is malformed.', 'description' => 'The specified time is invalid.'],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query live center relay usage data',
'description' => '- Queries the usage data of live center relay.'."\n"
.'- Maximum query span: 31 days.'."\n"
.'- Minimum query granularity: 1 day.'."\n"
.'- Maximum query range: data from the last 90 days.'."\n"
."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this operation is 5 calls per second. If the limit is exceeded, API calls are throttled, which may affect your business. Call this operation appropriately.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'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' => 'Invokes DescribeLiveRealtimeDeliveryAcc to query the number of real-time log delivery attempts.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATURElive066BXV'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format (UTC).', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T20:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format (UTC).'."\n"
."\n"
.'The end time must be later than the start time. The interval between the start time and end time cannot exceed one year.', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T21:05:00Z', 'title' => ''],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => ['description' => 'The time granularity of the queried data. Unit: seconds. Valid values:'."\n"
."\n"
.'- **300**'."\n"
.'- **3600**'."\n"
.'- **86400**'."\n"
."\n"
.'If this parameter is not specified or the specified value is not supported, the default value is 300 seconds when the time span does not exceed 3 days, 3600 seconds when the time span exceeds 3 days, and 86400 seconds when the time span exceeds 30 days.', 'type' => 'string', 'required' => false, 'example' => '3600', 'title' => ''],
],
[
'name' => 'Project',
'in' => 'query',
'schema' => ['description' => 'The Project for real-time log delivery. If this parameter is not specified, the merged data of all Projects is returned by default.', 'type' => 'string', 'required' => false, 'example' => 'project_example', 'title' => ''],
],
[
'name' => 'LogStore',
'in' => 'query',
'schema' => ['description' => 'The Logstore for real-time log delivery. If this parameter is not specified, the merged data of all Logstores is returned by default.', 'type' => 'string', 'required' => false, 'example' => 'logstore_example', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.'."\n"
.'- You can specify a single domain name or multiple domain names. Separate multiple domain names with commas (,).'."\n"
.'- If this parameter is not specified, the merged data of all live streaming domain names is returned by default.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '684306D2-2511-4977-991D-CE97E91FD7C0', 'title' => ''],
'RealTimeDeliveryAccData' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'AccData' => [
'description' => 'The real-time log delivery count information.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'TimeStamp' => ['description' => 'The start time of the time interval. The time is in the yyyy-MM-ddTHH:mm:ssZ format (UTC).', 'type' => 'string', 'example' => '2015-12-10T20:00:00Z', 'title' => ''],
'FailedNum' => ['description' => 'The number of failed real-time log delivery attempts.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'SuccessNum' => ['description' => 'The number of successful real-time log delivery attempts.', 'type' => 'integer', 'format' => 'int32', 'example' => '321321', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'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' => 'The value specified for the StartTime parameter is invalid.'],
['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => 'The end time does not match the start time. Make sure that the start and end times match.'],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query real-time log delivery count',
'description' => '- Queries statistics on real-time log delivery attempts, including the number of successful and failed log delivery attempts.'."\n"
.'- Supports queries by UID dimension.'."\n"
.'- The billable count includes both successful and failed log delivery attempts.'."\n"
."\n\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this API is 100 calls per second. If this limit is exceeded, the API calls are throttled, which may affect your business. Invoke this API appropriately.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '### Special error codes'."\n"
.'|Error code|Description|HTTP status code|Meaning|'."\n"
.'|--------|--------|--------|--------|'."\n"
.'|InvalidStartTime.ValueNotSupported|The specified value of parameter StartTime is not supported.|400|The difference between EndTime and StartTime exceeds 90 days.|'."\n"
.'|InvalidEndTime.Mismatch|Specified EndTime does not math the specified StartTime.|400|EndTime is earlier than StartTime.|.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveRealtimeDeliveryAcc'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveRealtimeDeliveryAcc',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeLiveRealtimeLogAuthorized' => [
'summary' => 'Queries the authorization status for real-time log delivery.',
'methods' => ['get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATURElive066BXV'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'LiveOpenapiReserve',
'in' => 'query',
'schema' => ['description' => 'This parameter is not used.', 'type' => 'string', 'required' => false, 'example' => '无', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'AuthorizedStatus' => ['description' => 'The authorization status. Valid values:'."\n"
."\n"
.'**true****false**', 'type' => 'string', 'example' => 'true', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5c6a2a0df228-4a64- af62-20e91b******'."\n", 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [],
'title' => 'DescribeLiveRealtimeLogAuthorized',
'description' => 'You can call this operation to query the authorization status for real-time log delivery.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 100 calls per second per user. If you exceed this limit, throttling is triggered, which may affect your business. Plan your API calls accordingly. For more information, see [QPS limits](~~343507~~).',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveRealtimeLogAuthorized'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveRealtimeLogAuthorized',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"AuthorizedStatus\\": \\"true\\",\\n \\"RequestId\\": \\"5c6a2a0df228-4a64- af62-20e91b******\\\\n\\"\\n}","type":"json"}]',
],
'DescribeLiveRecordConfig' => [
'summary' => 'Queries all APP recording configurations under a live streaming domain.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveL04ZVK'],
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain name.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the application to which the stream belongs.', 'type' => 'string', 'required' => false, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The stream name.', 'type' => 'string', 'required' => false, 'example' => 'liveStream****', 'title' => ''],
],
[
'name' => 'PageNum',
'in' => 'query',
'schema' => ['description' => 'The current page number. Default value: **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '1', 'example' => '1', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries per page. Default value: **10**. Valid values: **5 to 30**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '30', 'minimum' => '5', 'default' => '10', 'example' => '5', 'title' => ''],
],
[
'name' => 'Order',
'in' => 'query',
'schema' => [
'description' => 'The sorting order by creation time. Valid values:'."\n"
.'- **asc** (default): ascending order.'."\n"
.'- **desc**: descending order.',
'enumValueTitles' => ['asc' => 'Ascending', 'desc' => 'Descending'],
'type' => 'string',
'required' => false,
'default' => 'asc',
'enum' => ['asc', 'desc'],
'example' => 'asc',
'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'PageNum' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int32', 'example' => '5', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5056369B-D337-499E-B8B7-B761BD37B08A', 'title' => ''],
'Order' => ['description' => 'The sorting order.', 'type' => 'string', 'example' => 'desc', 'title' => ''],
'TotalPage' => ['description' => 'The total number of pages.', 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''],
'PageSize' => ['description' => 'The number of entries per page.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''],
'TotalNum' => ['description' => 'The total number of entries that meet the specified conditions.', 'type' => 'integer', 'format' => 'int32', 'example' => '12', 'title' => ''],
'LiveAppRecordList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'LiveAppRecord' => [
'description' => 'The list of recording configurations.',
'type' => 'array',
'items' => [
'description' => 'The list of recording configurations.',
'type' => 'object',
'properties' => [
'EndTime' => ['description' => 'The scheduled recording end time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'example' => '2018-11-08T03:49:18Z', 'title' => ''],
'StartTime' => ['description' => 'The scheduled recording start time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'example' => '2018-11-08T02:49:18Z', 'title' => ''],
'AppName' => ['description' => 'The name of the application to which the stream belongs.', 'type' => 'string', 'example' => 'liveApp****', 'title' => ''],
'StreamName' => ['description' => 'The live stream name.', 'type' => 'string', 'example' => 'liveStream****', 'title' => ''],
'DelayTime' => ['description' => 'The stream interruption concatenation duration.'."\n"
.'If the live stream interruption duration exceeds the configured concatenation duration, a new file is generated. The stream interruption concatenation duration supports values from 15 to 21600 seconds.', 'type' => 'integer', 'format' => 'int32', 'example' => '180', 'title' => ''],
'CreateTime' => ['description' => 'The creation time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'example' => '2016-05-20T09:33:38Z', 'title' => ''],
'OnDemond' => ['description' => 'On-demand recording. Valid values:'."\n"
."\n"
.'- **0**: disabled.'."\n"
.'- **1**: via HTTP callback.'."\n"
.'- **2**: via stream ingest parameters.'."\n"
.'- **7**: recording is disabled by default. You can use the [RealTimeRecordCommand](~~85907~~) operation to manually start or stop recording.'."\n"
."\n"
.'>When OnDemand is set to **1**, you must first configure the OnDemandUrl by calling the [AddLiveRecordNotifyConfig](~~51831~~) operation. Otherwise, recording is disabled by default.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'OssBucket' => ['description' => 'The OSS storage bucket name.', 'type' => 'string', 'example' => 'liveBucket****', 'title' => ''],
'DomainName' => ['description' => 'The streaming domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'OssEndpoint' => ['description' => 'The OSS storage endpoint.', 'type' => 'string', 'example' => 'cn-oss-****.aliyuncs.com', 'title' => ''],
'RecordFormatList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'RecordFormat' => [
'description' => 'The format list.',
'type' => 'array',
'items' => [
'description' => 'The format list.',
'type' => 'object',
'properties' => [
'SliceDuration' => ['description' => 'The duration of a single recording slice for the transcoded stream. Unit: seconds.', 'type' => 'integer', 'format' => 'int32', 'example' => '30', 'title' => ''],
'CycleDuration' => ['description' => 'The cyclic recording duration. Unit: seconds.', 'type' => 'integer', 'format' => 'int32', 'example' => '3600', 'title' => ''],
'SliceOssObjectPrefix' => ['description' => 'The slice name.', 'type' => 'string', 'example' => 'record/{liveApp****}/{liveStream****}/{UnixTimestamp}', 'title' => ''],
'OssObjectPrefix' => ['description' => 'The recording file name.', 'type' => 'string', 'example' => 'record/{liveApp****}/{liveStream****}', 'title' => ''],
'Format' => ['description' => 'The format.', 'type' => 'string', 'example' => 'M3U8', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'TranscodeRecordFormatList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'RecordFormat' => [
'description' => 'The transcoded stream recording format list.',
'type' => 'array',
'items' => [
'description' => 'The recording configuration file format list.',
'type' => 'object',
'properties' => [
'SliceDuration' => ['description' => 'The duration of a single recording slice for the transcoded stream. Unit: seconds.', 'type' => 'integer', 'format' => 'int32', 'example' => '30', 'title' => ''],
'CycleDuration' => ['description' => 'The cyclic recording duration. Unit: seconds.', 'type' => 'integer', 'format' => 'int32', 'example' => '3600', 'title' => ''],
'SliceOssObjectPrefix' => ['description' => 'The transcoded stream recording slice name.', 'type' => 'string', 'example' => 'record/{liveApp****}/{liveStream****}/{UnixTimestamp}', 'title' => ''],
'OssObjectPrefix' => ['description' => 'The transcoded stream recording file name.', 'type' => 'string', 'example' => 'record/{liveApp****}/{liveStream****}', 'title' => ''],
'Format' => ['description' => 'The transcoded stream recording format.', 'type' => 'string', 'example' => 'M3U8', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'TranscodeTemplates' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Templates' => [
'description' => 'The transcoding templates.',
'type' => 'array',
'items' => ['description' => 'The transcoding templates for transcoded stream recording. If recording of all transcoded streams is configured, the returned value is ["*"].', 'type' => 'string', 'example' => '["sd","hd"]', 'title' => ''],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query All App Recording Configurations Under a Domain',
'description' => 'First obtain the streaming domain name, and then call this operation to query all APP recording configurations under the live streaming domain.'."\n"
."\n\n"
.'## QPS Limit'."\n"
.'The single-user QPS limit for this operation is 100 calls per second. If the limit is exceeded, API calls will be throttled, which may affect your business. Please make calls at a reasonable frequency.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveRecordConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeLiveRecordNotifyConfig' => [
'summary' => 'This operation queries the recording callback configuration for a domain name.',
'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' => 'The streaming domain name.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5056369B-D337-499E-B8B7-B761BD37B08A', 'title' => ''],
'LiveRecordNotifyConfig' => [
'description' => 'The recording callback configuration for the domain name.',
'type' => 'object',
'properties' => [
'NotifyReqAuth' => ['description' => 'Specifies whether to enable callback authentication. Valid values:'."\n"
."\n"
.'- **yes**: enabled.'."\n"
."\n"
.'- **no**: disabled.', 'type' => 'boolean', 'example' => 'no', 'title' => ''],
'NotifyAuthKey' => ['description' => 'The authentication key for the callback.', 'type' => 'string', 'example' => 'KbT8mN2pQ9rS4vX7wZ1aB3cE5fG6hJ8kL', 'title' => ''],
'DomainName' => ['description' => 'The streaming domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'NotifyUrl' => ['description' => 'The webhook address for recording callbacks.', 'type' => 'string', 'example' => 'http://learn.aliyundoc.com/examplecallback.action', 'title' => ''],
'NeedStatusNotify' => ['description' => 'Specifies whether to receive callbacks for the status of recording tasks. Valid values:'."\n"
."\n"
.'- **true**: Yes.'."\n"
."\n"
.'- **false** (default): No.', 'type' => 'boolean', 'example' => 'false', 'title' => ''],
'OnDemandUrl' => ['description' => 'The callback URL for on-demand recording.', 'type' => 'string', 'example' => 'http://guide.aliyundoc.com/ondemandcallback.action', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
404 => [
['errorCode' => 'InvalidConfig.NotFound', 'errorMessage' => 'Config does not exist.', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'DescribeLiveRecordNotifyConfig',
'description' => 'You can call this operation to query the recording callback configuration for a streaming domain name.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'This operation supports up to 50 queries per second (QPS) per user. If you exceed this limit, your API calls are throttled. Throttling may affect your business operations, so make sure to stay within the specified limit.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveRecordNotifyConfig'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveRecordNotifyConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeLiveRecordNotifyRecords' => [
'summary' => 'Queries the callback records for live stream recordings stored in OSS.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveL04ZVK'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streamer\'s streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the application to which the stream belongs.', 'type' => 'string', 'required' => false, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The name of the stream.', 'type' => 'string', 'required' => false, 'example' => 'liveStream****', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries per page. Default value: 20. Maximum value: 500. Valid values: any integer from 1 to 500.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '10', 'title' => ''],
],
[
'name' => 'PageNumber',
'in' => 'query',
'schema' => ['description' => 'The page number. Default value: 1. Valid values: 1 to 100000.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1', 'title' => ''],
],
[
'name' => 'Status',
'in' => 'query',
'schema' => ['description' => 'Specifies whether the callback was successful. Valid values:'."\n"
.'- success: The callback was successful.'."\n"
.'- failed: The callback failed.', 'type' => 'string', 'required' => false, 'example' => 'success', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).'."\n"
."\n"
.'> You can query data within the last 7 days.', 'type' => 'string', 'required' => true, 'example' => '2023-02-10T21:03:47Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. The end time must be later than the start time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'required' => true, 'example' => '2023-02-10T21:03:47Z', 'title' => ''],
],
[
'name' => 'StorageType',
'in' => 'query',
'schema' => [
'description' => 'The storage type of the recording for which you want to query callback records. Valid values:'."\n"
."\n"
.'- oss: recordings stored in OSS.'."\n"
."\n"
.'- vod: recordings stored in ApsaraVideo VOD.'."\n"
."\n"
.'- all: callback records for all storage types without distinction.',
'type' => 'string',
'enum' => ['all', 'oss', 'vod'],
'required' => false,
'example' => 'oss',
'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The callback records.',
'type' => 'object',
'properties' => [
'CallbackList' => [
'description' => 'The callback records.',
'type' => 'array',
'items' => [
'description' => 'The callback records.',
'type' => 'object',
'properties' => [
'AppName' => ['description' => 'The name of the application to which the stream belongs.', 'type' => 'string', 'example' => 'liveApp****', 'title' => ''],
'Description' => ['description' => 'The result description. The value is success if the callback was successful. Otherwise, an error message is returned.', 'type' => 'string', 'example' => 'success', 'title' => ''],
'DomainName' => ['description' => 'The streamer\'s streaming domain.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'NotifyContent' => ['description' => 'The specific content of the callback.', 'type' => 'string', 'example' => '7月26日 16:14{"domain":"al.xxxx.com","stream":"livestream01","pull _stream_result":true,"cdn":"al"}', 'title' => ''],
'NotifyResult' => ['description' => 'The callback result. Valid values:'."\n"
.'- success: The callback was successful.'."\n"
.'- failed: The callback failed.', 'type' => 'string', 'example' => 'success', 'title' => ''],
'NotifyTime' => ['description' => 'The callback time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'example' => '2022-10-19T19:09:28Z', 'title' => ''],
'NotifyType' => ['description' => 'The callback type. Valid values:'."\n"
.'- file_created: The recording was created.'."\n"
.'- record_error: A recording error occurred.'."\n"
.'- record_started: The recording started.'."\n"
.'- record_paused: The recording was paused.'."\n"
.'- record_resumed: The recording was resumed.'."\n"
.'- record_force_transcode_fail: The recording task failed to trigger transcoding.'."\n"
.'- transformat_error: An error occurred while parsing the live stream content.', 'type' => 'string', 'example' => 'record_started', 'title' => ''],
'NotifyUrl' => ['description' => 'The recording callback URL.', 'type' => 'string', 'example' => 'http://learn.aliyundoc.com/examplecallback.action', 'title' => ''],
'NotifyHeader' => ['description' => 'The header of the callback request.', 'type' => 'string', 'example' => '{'."\n"
.' "Content-Type": ['."\n"
.' "application/json; charset=utf-8"'."\n"
.' ]'."\n"
.'}', 'title' => ''],
'StreamName' => ['description' => 'The name of the stream.', 'type' => 'string', 'example' => 'liveStream****', 'title' => ''],
'NotifyResponse' => ['description' => 'The response returned by the user after receiving the callback.', 'type' => 'string', 'example' => '{"Code":0,"Msg":"Success"}', 'title' => ''],
'StorageType' => ['description' => 'The recording storage type. Valid values:'."\n"
."\n"
.'- oss: recordings stored in OSS.'."\n"
.'- vod: recordings stored in ApsaraVideo VOD.'."\n"
.'- all: all storage types.', 'type' => 'string', 'example' => 'oss', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'Code' => ['description' => 'The error code.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'Msg' => ['description' => 'The prompt message.', 'type' => 'string', 'example' => 'ok', 'title' => ''],
'PageNum' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'PageSize' => ['description' => 'The number of entries per page.', 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '180FA0D2-1A02-5158-A36B-115DBF7B218D', 'title' => ''],
'TotalNum' => ['description' => 'The total number of entries that match the specified conditions.', 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''],
'TotalPage' => ['description' => 'The total number of pages.', 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParams', 'errorMessage' => 'Invalid JSON', 'description' => ''],
['errorCode' => 'MissingParams', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is missing, please check and try again.'],
['errorCode' => 'MalformedParams', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is invalid, please check and try again.'],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query live stream recording callback records',
'description' => 'The China site (Chinese) single-user QPS limit for this API is 100 calls per second. If this limit is exceeded, the API calls are throttled, which may affect your business. Manage your calls appropriately.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveRecordNotifyRecords'],
],
],
'ramActions' => [
[
'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' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveL04ZVK'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The AppName of the live stream.', 'type' => 'string', 'required' => false, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The stream name.', 'type' => 'string', 'required' => false, 'example' => 'liveStream****', 'title' => ''],
],
[
'name' => 'PageNum',
'in' => 'query',
'schema' => ['description' => 'The page number. Default value: **1**.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'default' => '1', 'example' => '1', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries per page. Default value: **10**. Valid values: **5 to 100**.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'maximum' => '100', 'minimum' => '5', 'default' => '10', 'example' => '10', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'PageNum' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5056369B-D337-499E-B8B7-B761BD37B08A', 'title' => ''],
'PageSize' => ['description' => 'The page size.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'Total' => ['description' => 'The total number of entries.', 'type' => 'string', 'example' => '100', 'title' => ''],
'LiveRecordVodConfigs' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'LiveRecordVodConfig' => [
'description' => 'A list of live-to-VOD configurations.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'StorageLocation' => ['description' => 'The storage address.', 'type' => 'string', 'example' => '****-tjptr2vatm.oss-cn-shanghai.aliyuncs.com', 'title' => ''],
'AppName' => ['description' => 'The AppName of the live stream.', 'type' => 'string', 'example' => 'liveApp****', 'title' => ''],
'AutoCompose' => ['description' => 'Indicates whether automatic composition is enabled. Valid values:'."\n"
."\n"
.'- **ON**: enabled.'."\n"
."\n"
.'- **OFF**: disabled.', 'type' => 'string', 'example' => 'ON', 'title' => ''],
'OnDemand' => ['description' => 'The trigger mode of live stream recording. Valid values:'."\n"
."\n"
.'- **0** (default): Automatic recording.'."\n"
."\n"
.'- **1**: Triggered by callback notifications of on-demand recording.'."\n"
."\n"
.'- **2**: Triggered by corresponding parameters in the stream ingest URL.'."\n"
."\n"
.'- **7**: Triggered manually. By default, recording is disabled. You can call the `RealTimeRecordCommand` operation to manually start or stop recording.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'StreamName' => ['description' => 'The stream name.', 'type' => 'string', 'example' => 'liveStream****', 'title' => ''],
'CreateTime' => ['description' => 'The creation time, in UTC. The time is formatted as *yyyy-MM-dd*T*HH:mm:ss*Z.', 'type' => 'string', 'example' => '2015-12-01T17:37:00Z', 'title' => ''],
'VodTranscodeGroupId' => ['description' => 'The ID of the ApsaraVideo VOD transcoding template group for transcoding the recording files.', 'type' => 'string', 'example' => 'e2d796d3bb5fd8049d32bff62f94****', 'title' => ''],
'CycleDuration' => ['description' => 'The maximum duration of each recording file. Unit: seconds. Default value: **3600**. Range: **300** to 21600.', 'type' => 'integer', 'format' => 'int32', 'example' => '360', 'title' => ''],
'DomainName' => ['description' => 'The streaming domain.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'ComposeVodTranscodeGroupId' => ['description' => 'The ID of the ApsaraVideo VOD transcoding template group for transcoding the composed video created by automatic composition.'."\n"
."\n"
.'> This parameter is returned only when `AutoCompose` is set to `ON`.', 'type' => 'string', 'example' => 'dadfcaadde****', 'title' => ''],
'RecordContent' => ['description' => 'The content to record. Valid values:'."\n"
."\n"
.'- `raw` (default): Records the source stream.'."\n"
."\n"
.'- `transcode`: Records the transcoded streams.', 'type' => 'string', 'title' => '', 'example' => 'raw'],
'DelayTime' => ['description' => 'The reconnect timeout, in seconds. If a stream is interrupted but recovers within this window, the new content is automatically appended to the exisiting recording file. Otherwise, the previous session is considered ended, and a new recording file will be created. Valid values: 15 to 21600.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '180'],
'TranscodeTemplates' => ['description' => 'The [transcoding templates](~~45039~~) configured in ApsaraVideo Live. It specifies which transcoded streams to record. A value of `*` indicates that all transcoded streams are recorded.', 'type' => 'string', 'example' => '["sd","hd"]', 'title' => ''],
'FormatConfig' => ['description' => 'Specifies whether to enable format-specific configuration for VOD processing settings. The default value is true.', 'type' => 'boolean', 'example' => 'true', 'title' => ''],
'SpaceId' => ['description' => 'The ID of the ApsaraVideo VOD application space. You can find the ID in the **ApsaraVideo VOD console** or by calling the [ListAppInfo](~~454873~~) operation. This parameter is required only if you have enabled application spaces.', 'type' => 'string', 'example' => 'app-1000000', 'title' => ''],
'RecordFormatList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'RecordFormat' => [
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Format' => ['description' => 'The recording format.', 'type' => 'string', 'example' => 'm3u8', 'title' => ''],
'SliceDuration' => ['description' => 'The duration of a TS segment, in seconds.', 'type' => 'integer', 'format' => 'int32', 'example' => '30', 'title' => ''],
'AutoCompose' => ['description' => 'Indicates whether automatic composition is enabled.'."\n"
."\n"
.'- **ON**: enabled.'."\n"
."\n"
.'- **OFF**: disabled.', 'type' => 'string', 'example' => 'ON', 'title' => ''],
'VideoProcess' => ['description' => 'The video to process. Valid values:'."\n"
."\n"
.'- `origin` (default): Processes the source recording files.'."\n"
."\n"
.'- `compose`: Processes the composed video.', 'type' => 'string', 'example' => 'origin', 'title' => ''],
'ProcessMethod' => ['description' => 'The video processing method. Valid values:'."\n"
."\n"
.'- `transcode`: Processes the video by using a transcoding template group set in ApsaraVideo VOD.'."\n"
."\n"
.'- `workflow`: Processes the video by using a workflow set in ApsaraVideo VOD.', 'type' => 'string', 'example' => 'transcode', 'title' => ''],
'ProcessTemplateId' => ['description' => 'The ID of the transcoding template group or workflow to use for video processing.', 'type' => 'string', 'example' => 'e2d796d3bb5fd8049d32bff62f94****', 'title' => ''],
'Tags' => ['description' => 'The video category.', 'type' => 'string', 'example' => 'sports', 'title' => ''],
],
'description' => 'A recording format configuration.',
'title' => '',
'example' => '',
],
'description' => 'A list of recording format configurations.',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => 'A live-to-VOD configuration.',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''],
],
],
'title' => 'DescribeLiveRecordVodConfigs',
'summary' => 'Queries live-to-VOD configurations of a streaming domain.',
'description' => '### **QPS limit**'."\n"
."\n"
.'This API is limited to 1,000 queries per minute for each account. If you exceed this limit, API calls are throttled, which can affect your business.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveRecordVodConfigs',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveRtcRecordUsageData' => [
'path' => '',
'methods' => ['get', 'post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'none',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATURElive9P39J9'],
],
'parameters' => [
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time to query data. The format is yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'required' => true, 'example' => '2017-12-21T08:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. The query time range must be greater than or equal to 5 minutes and less than or equal to 31 days. The format is *yyyy-MM-dd*T*HH:mm:ss*Z (UTC).', 'type' => 'string', 'required' => true, 'example' => '2022-10-10T21:00:00Z', 'title' => ''],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the ApsaraVideo Real-time Communication application. For more information, see [Application Management](~~2355593~~).', 'type' => 'string', 'required' => true, 'example' => 'intl7f92-a5a8*************7ce4eb44a6', 'title' => ''],
],
[
'name' => 'RecordMode',
'in' => 'query',
'schema' => ['description' => 'The recording mode:'."\n"
."\n"
.'- 0: Single-stream recording.'."\n"
."\n"
.'- 1: Stream mixing recording.', 'type' => 'string', 'required' => true, 'example' => '0', 'title' => ''],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => ['description' => 'The time granularity to query data. Unit: seconds. Valid values:'."\n"
."\n"
.'- 3600 (default)'."\n"
."\n"
.'- 86400', 'type' => 'string', 'required' => false, 'example' => '3600', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'title' => '', 'example' => '16A96B9A-F2*************B92E68F4CD8'],
'RecordMode' => ['description' => 'The recording mode.'."\n"
."\n"
.'- 0: Single-stream recording.'."\n"
."\n"
.'- 1: Stream mixing recording.', 'type' => 'string', 'example' => '0', 'title' => ''],
'AppId' => ['description' => 'The ID of the ApsaraVideo Real-time Communication application that was queried.', 'type' => 'string', 'example' => '7fd341b3-c6fa-43e1-96b8-7295a1dd****', 'title' => ''],
'TotalSummaryDuration' => ['description' => 'The total duration. Unit: seconds.', 'type' => 'number', 'format' => 'double', 'example' => '150', 'title' => ''],
'AudioSummaryDuration' => ['description' => 'The total duration of audio-only recordings. Unit: seconds.', 'type' => 'number', 'format' => 'double', 'example' => '20', 'title' => ''],
'V480SummaryDuration' => ['description' => 'The total duration of videos with a resolution of 480p or lower. Unit: seconds.', 'type' => 'number', 'format' => 'double', 'example' => '30', 'title' => ''],
'V720SummaryDuration' => ['description' => 'The total duration of videos with a resolution of 720p or lower. Unit: seconds.', 'type' => 'number', 'format' => 'double', 'example' => '40', 'title' => ''],
'V1080SummaryDuration' => ['description' => 'The total duration of videos with a resolution higher than 720p, including 1080p. Unit: seconds.', 'type' => 'number', 'format' => 'double', 'example' => '10', 'title' => ''],
'Data' => [
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Timestamp' => ['description' => 'The timestamp of the data point. The format is yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'example' => '2022-10-10T20:00:00Z', 'title' => ''],
'TotalDuration' => ['description' => 'The total duration. Unit: seconds.', 'type' => 'number', 'format' => 'double', 'example' => '150', 'title' => ''],
'AudioDuration' => ['description' => 'The duration of audio-only recordings. Unit: seconds.', 'type' => 'number', 'format' => 'double', 'example' => '20', 'title' => ''],
'V480Duration' => ['description' => 'The duration of videos with a resolution of 480p or lower. Unit: seconds.', 'type' => 'number', 'format' => 'double', 'example' => '30', 'title' => ''],
'V720Duration' => ['description' => 'The duration of videos with a resolution of 720p or lower. Unit: seconds.', 'type' => 'number', 'format' => 'double', 'example' => '40', 'title' => ''],
'V1080Duration' => ['description' => 'The duration of videos with a resolution higher than 720p. Unit: seconds.', 'type' => 'number', 'format' => 'double', 'example' => '10', 'title' => ''],
],
'description' => 'The usage statistics.',
'title' => '',
'example' => '',
],
'description' => 'The usage statistics.',
'title' => '',
'example' => '',
],
],
'title' => '',
'description' => 'Schema of Response',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => 'The value specified for the StartTime parameter is invalid.'],
['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => 'The end time does not match the start time. Make sure that the start and end times match.'],
['errorCode' => 'InvalidRecordModeParameter', 'errorMessage' => 'RecordMode parameter error.', 'description' => 'RecordMode parameter error'],
['errorCode' => 'InvalidAppIdParameter', 'errorMessage' => 'AppId parameter error.', 'description' => 'AppId parameter error'],
['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => 'The time span exceeds the limit. Please refer to the API documentation to specify a reasonable time span.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DescribeLiveRtcRecordUsageData',
'summary' => 'Queries the usage data of cloud recording.',
'description' => '- Returns daily statistics on the recording duration for different cloud recording specifications.'."\n"
."\n"
.'- You can query data at the application level for ApsaraVideo Real-time Communication.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 10 calls per second for this API. If you exceed the limit, API calls are throttled, which may affect your business. We recommend that you make API calls at a reasonable rate.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'live:DescribeLiveRtcRecordUsageData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', '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' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveGDJYFA'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The ID of the region.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain name.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'B49E6DDA-F413-422B-B58E-2FA23F286726', 'title' => ''],
'Content' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Config' => [
'description' => 'The list of configurations.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'AppName' => ['description' => 'The application name.', 'type' => 'string', 'example' => 'liveApp****', 'title' => ''],
'Vision' => ['description' => 'The retention period in days.', 'type' => 'integer', 'format' => 'int32', 'example' => '7', 'title' => ''],
'DomainName' => ['description' => 'The domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'StreamName' => ['description' => 'The stream name.', 'type' => 'string', 'example' => 'liveStream****', 'title' => ''],
'IgnoreTranscode' => ['description' => 'Indicates whether to generate time-shifted streams for transcoded streams. Valid values:'."\n"
."\n"
.'- **true**: Time-shifted streams are not generated for transcoded streams.'."\n"
."\n"
.'- **false**: Time-shifted streams are generated for transcoded streams.'."\n"
."\n"
.'The default value is true.', 'type' => 'boolean', 'example' => 'true', 'title' => ''],
],
'description' => 'The list of configurations.',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => 'The time shifting configurations.',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => '%s.', 'description' => 'Parameter verification failed'],
],
404 => [
['errorCode' => 'InvalidDataNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Data does not exist, please check and try again.'],
],
409 => [
['errorCode' => 'InvalidStreamNum', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The number of streams is abnormal. Please check and try again.'],
],
],
'title' => 'DescribeLiveShiftConfigs',
'summary' => 'Queries the time-shifting configurations for a specified domain name.',
'description' => 'After you obtain a streaming domain name, you can call this operation to query the time-shifting configurations for the specified domain name.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can make up to 10 queries per second (QPS) for each user. If you exceed this limit, API calls are throttled, which may affect your business. We recommend that you call this operation at a reasonable rate.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => '\\## Special error codes'."\n"
.'\\| Error code | Error message | HTTP status code | Description |'."\n"
.'\\| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'\\| InvalidParam | Invalid parameter | 400 | One or more specified parameters are invalid. |'."\n"
.'\\| InvalidDataNotFound | Data not found | 404 | The user data cannot be found. |',
'extraInfo' => '### 特殊错误码'."\n"
.'| 错误代码 | 描述 | HTTP 状态码 | 语义 |'."\n"
.'|------------|--------|---------|------|'."\n"
.'| InvalidParam | param error | 400 | 用户参数错误。 |'."\n"
.'| InvalidDataNotFound | data not found | 404 | 用户数据未找到。 |'."\n",
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveShiftConfigs',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveSnapshotConfig' => [
'summary' => 'Queries the snapshot configurations under a streaming domain.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveMH1XD3'],
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the application to which the live stream belongs.', 'type' => 'string', 'required' => false, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'PageNum',
'in' => 'query',
'schema' => ['description' => 'The page number. Default value: **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '1', 'example' => '1', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries per page. Valid values: **5 to 30**. Default value: **10**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '30', 'minimum' => '5', 'default' => '10', 'example' => '10', 'title' => ''],
],
[
'name' => 'Order',
'in' => 'query',
'schema' => [
'description' => 'The sort order. Valid values:'."\n"
."\n"
.'- **asc** (default): ascending order.'."\n"
.'- **desc**: descending order.',
'enumValueTitles' => ['asc' => 'Ascending order.', 'desc' => 'Descending order.'],
'type' => 'string',
'required' => false,
'default' => 'asc',
'enum' => ['asc', 'desc'],
'example' => 'asc',
'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'PageNum' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'A3136B58-5876-4168-83CA-B562781981A0', 'title' => ''],
'Order' => ['description' => 'The sort order.', 'type' => 'string', 'example' => 'asc', 'title' => ''],
'TotalPage' => ['description' => 'The total number of pages.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''],
'PageSize' => ['description' => 'The number of entries per page.', 'type' => 'integer', 'format' => 'int32', 'example' => '11', 'title' => ''],
'TotalNum' => ['description' => 'The total number of entries that meet the specified conditions.', 'type' => 'integer', 'format' => 'int32', 'example' => '6', 'title' => ''],
'LiveStreamSnapshotConfigList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'LiveStreamSnapshotConfig' => [
'description' => 'The list of snapshot configurations.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'OverwriteOssObject' => ['description' => 'The name of the file that stores overwritten snapshots.', 'type' => 'string', 'example' => '{liveApp****}/{liveStream****}.jpg', 'title' => ''],
'TimeInterval' => ['description' => 'The snapshot interval. Unit: seconds.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''],
'AppName' => ['description' => 'The name of the application to which the live stream belongs.', 'type' => 'string', 'example' => 'liveApp****', 'title' => ''],
'CreateTime' => ['description' => 'The time when the configuration was created. The time is in the yyyy-MM-ddTHH:mm:ssZ format (UTC).', 'type' => 'string', 'example' => '2016-05-20T01:33:38Z', 'title' => ''],
'OssBucket' => ['description' => 'The name of the OSS bucket.', 'type' => 'string', 'example' => 'liveBucket****', 'title' => ''],
'DomainName' => ['description' => 'The streaming domain.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'Callback' => ['description' => 'The snapshot callback URL.', 'type' => 'string', 'example' => 'https://learn.aliyundoc.com', 'title' => ''],
'SequenceOssObject' => ['description' => 'The name of the file that stores real-time snapshots.', 'type' => 'string', 'example' => 'snapshot/{liveApp****}/{liveStream****}/{UnixTimestamp}.jpg', 'title' => ''],
'OssEndpoint' => ['description' => 'The endpoint of the OSS bucket.', 'type' => 'string', 'example' => 'cn-oss-****.aliyuncs.com', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query snapshot configurations under a domain name',
'description' => 'Obtain the streaming domain first, and then call this operation to query the snapshot configurations under the streaming domain.'."\n"
."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this operation is 100 calls per second. If the limit is exceeded, API calls are throttled, which may affect your business. Call this operation as needed.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveSnapshotConfig'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveSnapshotConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeLiveSnapshotDetectPornConfig' => [
'summary' => 'Queries the content moderation configurations for live streaming.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveUTGSNT'],
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streamer streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the application to which the stream belongs.', 'type' => 'string', 'required' => false, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'PageNum',
'in' => 'query',
'schema' => ['description' => 'The page number. Default value: **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '1', 'example' => '1', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries per page. Default value: **10**. Valid values: **5 to 30**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '30', 'minimum' => '5', 'default' => '10', 'example' => '10', 'title' => ''],
],
[
'name' => 'Order',
'in' => 'query',
'schema' => [
'description' => 'The order in which entries are sorted by creation time. Valid values:'."\n"
."\n"
.'- **Asc** (default): ascending order.'."\n"
.'- **Desc**: descending order.',
'enumValueTitles' => ['asc' => 'ascending order.', 'desc' => 'descending order.'],
'type' => 'string',
'required' => false,
'default' => 'asc',
'enum' => ['asc', 'desc'],
'example' => 'Asc',
'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'PageNum' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
'Order' => ['description' => 'The sort order.', 'type' => 'string', 'example' => 'Asc', 'title' => ''],
'TotalPage' => ['description' => 'The total number of pages.', 'type' => 'integer', 'format' => 'int32', 'example' => '11', 'title' => ''],
'PageSize' => ['description' => 'The number of entries per page.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''],
'TotalNum' => ['description' => 'The total number of entries that meet the specified conditions.', 'type' => 'integer', 'format' => 'int32', 'example' => '6', 'title' => ''],
'LiveSnapshotDetectPornConfigList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'LiveSnapshotDetectPornConfig' => [
'description' => 'The list of content moderation configurations.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'OssObject' => ['description' => 'The name of the file stored in OSS.', 'type' => 'string', 'example' => ' {liveApp****}/{liveStream****}/{Date}/{Hour}/{Minute}_{Second}.jpg', 'title' => ''],
'AppName' => ['description' => 'The application name.', 'type' => 'string', 'example' => 'liveApp****', 'title' => ''],
'Interval' => ['description' => 'The sampling interval. Unit: seconds.', 'type' => 'integer', 'format' => 'int32', 'example' => '80', 'title' => ''],
'OssBucket' => ['description' => 'The name of the OSS bucket.', 'type' => 'string', 'example' => 'liveBucket****', 'title' => ''],
'DomainName' => ['description' => 'The streamer streaming domain.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'OssEndpoint' => ['description' => 'The name of the OSS endpoint.', 'type' => 'string', 'example' => 'cn-oss-****.aliyuncs.com', 'title' => ''],
'Scenes' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'scene' => [
'description' => 'The array of detection scenes.',
'type' => 'array',
'items' => ['description' => 'The detection scene. Valid values:'."\n"
."\n"
.'- **porn** (default): pornography detection.'."\n"
.'- **terrorism**: terrorist content and political sensitivity detection.'."\n"
.'- **ad**: image and text violation detection.'."\n"
.'- **live**: inappropriate live streaming scene detection.'."\n"
.'- **logo**: logo detection.', 'type' => 'string', 'example' => 'porn', 'title' => ''],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query live streaming content moderation configurations',
'description' => '- Obtain the streamer streaming domain first, and then invoke this operation to query the content moderation configurations for live streaming. This operation supports sorting in ascending and descending order.'."\n"
."\n"
.'- Currently, only some live centers support intelligent content moderation for live streaming. For information about the live centers that support this feature, see [Service regions](~~193730~~).'."\n"
."\n\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this operation is 50 calls per second. If the limit is exceeded, the API call is throttled, which may affect your business. Call this operation as needed.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveSnapshotDetectPornConfig'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveSnapshotDetectPornConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeLiveSnapshotNotifyConfig' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveMH1XD3'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'www.yourdomain***.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'DomainName' => ['description' => 'The main streaming domain.', 'type' => 'string', 'example' => 'www.yourdomain***.com', 'title' => ''],
'NotifyAuthKey' => ['description' => 'The authentication key for the callback.', 'type' => 'string', 'example' => 'yourkey', 'title' => ''],
'NotifyReqAuth' => ['description' => 'Indicates whether callback authentication is enabled. Valid values:'."\n"
."\n"
.'- **yes**: Enabled.'."\n"
."\n"
.'- **no**: Disabled.', 'type' => 'string', 'example' => 'yes', 'title' => ''],
'NotifyUrl' => ['description' => 'The callback URL.', 'type' => 'string', 'example' => 'http://callback.yourdomain***.com', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5056369B-D337-499E-B8B7-B761BD37B08A', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is missing, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'DescribeLiveSnapshotNotifyConfig',
'summary' => 'Queries the configuration for snapshot callbacks.',
'description' => 'You can call this operation up to 30 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveSnapshotNotifyConfig'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveSnapshotNotifyConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveStreamAuthChecking' => [
'summary' => 'Queries the authentication status of an active stream.',
'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' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The ingest domain or streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com', 'title' => ''],
],
[
'name' => 'Url',
'in' => 'query',
'schema' => ['description' => 'The complete ingest or streaming URL. You can use the [URL generator](~~197400~~) to generate a URL.', 'type' => 'string', 'required' => true, 'example' => 'http://example.com/live/test.flv?auth_key=1664248******', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'Description' => ['description' => 'The error message returned if authentication failed.', 'type' => 'string', 'example' => 'INVALID AUTH_KEY', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16F08B4E-14FD-5D72-AB2F-BAFA4C4D57F1', 'title' => ''],
'Status' => ['description' => 'Indicates whether the authentication is passed.'."\n"
."\n"
.'- pass: The authentication is passed.'."\n"
."\n"
.'- false: The authentication failed.', 'type' => 'string', 'example' => 'pass', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => 'Illegal input parameters'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''],
],
],
'title' => 'DescribeLiveStreamAuthChecking',
'description' => 'You can call this operation up to 100 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'responseParamsDescription' => '### Reasons for authentication failure'."\n"
."\n"
.'| Reason | Description |'."\n"
.'| ----------------- | --------------------------------------------------------- |'."\n"
.'| INVALID AUTH_KEY | The auth_key parameter in the signed URL is invalid. |'."\n"
.'| INVALID TIMESTAMP | The timestamp in the signed URL is invalid. |'."\n"
.'| INVALID ALIAUTH | The configured authentication method is invalid. |'."\n"
.'| INVALID MD5HASH | The string calculated using the MD5 algorithm is invalid. |',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamAuthChecking'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamAuthChecking',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Description\\": \\"INVALID AUTH_KEY\\",\\n \\"RequestId\\": \\"16F08B4E-14FD-5D72-AB2F-BAFA4C4D57F1\\",\\n \\"Status\\": \\"pass\\"\\n}","type":"json"}]',
],
'DescribeLiveStreamBitRateData' => [
'summary' => 'Queries the frame rates and bitrates of an RTMP live stream within a specified time range. This operation is applicable to retrieving historical data.',
'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' => 'The ingest domain.'."\n"
.'> - When you specify DomainName, make sure that the domain name is a live streaming domain name and that the user calling this operation has the required permissions on the domain name.'."\n"
.'> - You can call the DescribeLiveUserDomains operation to query available domain names.', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the application to which the stream belongs. You can view AppName on the [Stream Management](~~197397~~) page.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The name of the stream. You can view StreamName on the [Stream Management](~~197397~~) page.', 'type' => 'string', 'required' => true, 'example' => 'liveStream****', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format (UTC).', 'type' => 'string', 'required' => false, 'example' => '2017-12-21T08:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format (UTC).'."\n"
."\n"
.'> '."\n"
.'> - EndTime must be later than StartTime, and the interval between EndTime and StartTime cannot exceed 30 days.', 'type' => 'string', 'required' => false, 'example' => '2017-12-22T08:00:00Z', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
'FrameRateAndBitRateInfos' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'FrameRateAndBitRateInfo' => [
'description' => 'The frame rate and bitrate information of each live stream.',
'type' => 'array',
'items' => [
'description' => 'The frame rate and bitrate information of each live stream.',
'type' => 'object',
'properties' => [
'Time' => ['description' => 'The statistical time. The time is in the yyyy-MM-ddTHH:mm:ssZ format (UTC).', 'type' => 'string', 'example' => '2016-09-13T16:04:00Z', 'title' => ''],
'VideoFrameRate' => ['description' => 'The video frame rate of the live stream. Unit: FPS.', 'type' => 'number', 'format' => 'float', 'example' => '30', 'title' => ''],
'AudioFrameRate' => ['description' => 'The audio frame rate of the live stream. Unit: FPS.', 'type' => 'number', 'format' => 'float', 'example' => '100', 'title' => ''],
'StreamUrl' => ['description' => 'The URL of the live stream.', 'type' => 'string', 'example' => 'rtmp://guide.aliyundoc.com/liveAppName****/liveSteamName****', 'title' => ''],
'BitRate' => ['description' => 'The bitrate of the live stream. Unit: Bps.', 'type' => 'number', 'format' => 'float', 'example' => '600', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['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' => 'Invalid number of streams, please check and try again.'],
['errorCode' => 'InvalidTime.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Invalid StartTime and EndTime interval, please check and try again.'],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query frame rates and bitrates of an RTMP live stream',
'description' => 'Queries the frame rates and bitrates of an RTMP live stream within a specified time range. This operation is applicable to retrieving historical data.'."\n"
."\n\n"
.'## QPS limit'."\n"
.'The maximum number of queries per second (QPS) per user for this operation is 50. If the limit is exceeded, API calls are throttled, which may affect your business. Call this operation as appropriate.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '1000', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamBitRateData'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamBitRateData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeLiveStreamCount' => [
'methods' => ['get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveYUZBM3'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.'."\n"
."\n"
.'> Make sure that the domain name is added to ApsaraVideo Live and that you have the permissions to operate on it.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'FCFFE4A4-F34F-4EEF-B401-36A01689AFBC', 'title' => ''],
'StreamCountInfos' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'StreamCountInfo' => [
'description' => 'The stream statistics.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Type' => ['description' => 'The type of the active stream. Valid values:'."\n"
."\n"
.'- **raw**: original stream.'."\n"
."\n"
.'- **trans**: transcoded stream.', 'type' => 'string', 'example' => 'raw', 'title' => ''],
'Count' => ['description' => 'The number of active streams.', 'type' => 'integer', 'format' => 'int64', 'example' => '3', 'title' => ''],
'Limit' => ['description' => 'The limit on the number of concurrent ingested streams. This parameter is returned only for users on the whitelist.', 'type' => 'integer', 'format' => 'int64', 'example' => '10', 'title' => ''],
'StreamCountDetails' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'StreamCountDetail' => [
'description' => 'The stream details.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'VideoDataRate' => ['description' => 'The video bitrate. This parameter is returned only when statistics for transcoded streams are queried.', 'type' => 'integer', 'format' => 'int64', 'example' => '390', 'title' => ''],
'Format' => ['description' => 'The video codec. Valid values:'."\n"
."\n"
.'- **h264**.'."\n"
."\n"
.'- **h265**.', 'type' => 'string', 'example' => 'h264', 'title' => ''],
'Count' => ['description' => 'The number of active streams.', 'type' => 'integer', 'format' => 'int64', 'example' => '2', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''],
],
],
'title' => 'DescribeLiveStreamCount',
'summary' => 'Retrieves the real-time count of active original and transcoded streams for a specified streaming domain.',
'description' => 'Before you call this operation, obtain the streaming domain name in the console. The returned stream count includes streams encoded in H.264 and H.265 formats.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation only one time per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamCount'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamCount',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveStreamDelayConfig' => [
'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' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The playback domain name.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '785C9CB0-EB8A-4912-BBF2-966BEFD32DC3', 'title' => ''],
'LiveStreamHlsDelayConfig' => [
'description' => 'The latency of HLS-based playback.',
'type' => 'object',
'properties' => [
'Delay' => ['description' => 'The playback latency. Unit: seconds.', 'type' => 'integer', 'format' => 'int32', 'example' => '3', 'title' => ''],
'Level' => ['description' => 'The latency level. Valid values:'."\n"
."\n"
.'- **short**: The latency is 2 seconds or less.'."\n"
."\n"
.'- **medium**: The latency is greater than 2 seconds and 4 seconds or less.'."\n"
."\n"
.'- **long**: The latency is greater than 4 seconds.', 'type' => 'string', 'example' => 'short', 'title' => ''],
],
'title' => '',
'example' => '',
],
'LiveStreamFlvDelayConfig' => [
'description' => 'The latency of FLV-based playback.',
'type' => 'object',
'properties' => [
'Delay' => ['description' => 'The playback latency. Unit: seconds.', 'type' => 'integer', 'format' => 'int32', 'example' => '5', 'title' => ''],
'Level' => ['description' => 'The latency level. Valid values:'."\n"
."\n"
.'- **short**: The latency is 2 seconds or less.'."\n"
."\n"
.'- **medium**: The latency is greater than 2 seconds and 4 seconds or less.'."\n"
."\n"
.'- **long**: The latency is greater than 4 seconds.', 'type' => 'string', 'example' => 'medium', 'title' => ''],
],
'title' => '',
'example' => '',
],
'LiveStreamRtmpDelayConfig' => [
'description' => 'The latency of RTMP-based playback.',
'type' => 'object',
'properties' => [
'Delay' => ['description' => 'The playback latency. Unit: seconds.', 'type' => 'integer', 'format' => 'int32', 'example' => '4', 'title' => ''],
'Level' => ['description' => 'The latency level. Valid values:'."\n"
."\n"
.'- **short**: The latency is 2 seconds or less.'."\n"
."\n"
.'- **medium**: The latency is greater than 2 seconds and 4 seconds or less.'."\n"
."\n"
.'- **long**: The latency is greater than 4 seconds.', 'type' => 'string', 'example' => 'short', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [],
'title' => 'DescribeLiveStreamDelayConfig',
'summary' => 'Queries the live streaming latency.',
'description' => 'You must first obtain a streaming domain name. You can then call this operation to query the live streaming latency.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'This operation supports up to 1,000 queries per second (QPS) per user. If you exceed the limit, your calls are throttled, which may affect your business. Plan your calls accordingly.',
'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' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamDelayConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveStreamDetailFrameRateAndBitRateData' => [
'methods' => ['get', 'post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'none',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '215287',
'abilityTreeNodes' => ['FEATUREliveYUZBM3'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'Your ingest domain or streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the application to which the live stream belongs. You can view the AppName on the [Stream Management](~~197397~~) page.', 'type' => 'string', 'required' => true, 'example' => 'AppName', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The name of the live stream. You can view the StreamName on the [Stream Management](~~197397~~) page.', 'type' => 'string', 'required' => true, 'example' => 'exampleStreamName', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start of the time range to query. Specify the time in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2017-12-21T08:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. Specify the time in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.'."\n"
."\n"
.'> If you specify an invalid time range, or if you leave both StartTime and EndTime empty, data from the last hour is queried by default.', 'type' => 'string', 'required' => false, 'example' => '2017-12-22T08:00:00Z', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'FrameRateAndBitRateInfos' => [
'description' => 'The detailed audio and video frame rate and bitrate data for each time interval.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'AudioBitRate' => ['description' => 'The audio bitrate of the live stream. Unit: Bps.', 'type' => 'number', 'format' => 'float', 'example' => '200', 'title' => ''],
'AudioFrameRate' => ['description' => 'The audio frame rate of the live stream. Unit: FPS.', 'type' => 'number', 'format' => 'float', 'example' => '60', 'title' => ''],
'BitRate' => ['description' => 'The bitrate of the live stream. Unit: Bps.', 'type' => 'number', 'format' => 'float', 'example' => '1420', 'title' => ''],
'StreamUrl' => ['description' => 'The URL of the live stream.', 'type' => 'string', 'example' => 'rtmp://example.com/AppName/exampleStreamName', 'title' => ''],
'Time' => ['description' => 'The timestamp of the data. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.', 'type' => 'string', 'example' => '2016-09-13T16:04:00Z', 'title' => ''],
'VideoBitRate' => ['description' => 'The video bitrate of the live stream. Unit: Bps.', 'type' => 'number', 'format' => 'float', 'example' => '1200', 'title' => ''],
'VideoFrameRate' => ['description' => 'The video frame rate of the live stream. Unit: FPS.', 'type' => 'number', 'format' => 'float', 'example' => '30', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'BC858082-736F-4A25-867B-E5B67C85ACF7'],
],
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DescribeLiveStreamDetailFrameRateAndBitRateData',
'summary' => 'Queries the detailed audio and video frame rates and bitrates of a live stream that uses the Real-Time Messaging Protocol (RTMP).',
'description' => '- You can call this operation to query the audio and video frame rates and bitrates of a live stream that uses RTMP within a specified time range.'."\n"
."\n"
.'- This operation is used to query monitoring data. Because the data collection method is different from the one used for billing, do not use the returned data for billing purposes.'."\n"
."\n"
.'- You can query data from the last 90 days.'."\n"
."\n"
.'- The data returned by this operation has a latency of 3 to 5 minutes.'."\n"
."\n"
.'- The maximum time range that you can specify in a single request is 1 hour.',
'responseParamsDescription' => '> The data collection methods for the total, audio, and video bitrates are different. Therefore, the sum of the audio and video bitrates may not equal the total bitrate. The data returned by this operation is for reference and monitoring only. Do not use this data for usage calculation or billing.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamDetailFrameRateAndBitRateData'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'live:DescribeLiveStreamDetailFrameRateAndBitRateData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveStreamHistoryUserNum' => [
'summary' => 'Queries the number of historical online users for a live stream.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveYUZBM3'],
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the application to which the live stream belongs. You can view the application name on the [Stream Management](~~197397~~) page of the ApsaraVideo Live console.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The name of the live stream. You can view the stream name on the [Stream Management](~~197397~~) page of the ApsaraVideo Live console.', 'type' => 'string', 'required' => true, 'example' => 'liveStream****', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.'."\n"
."\n"
.'> You can query data in the last **30** days.', 'type' => 'string', 'required' => true, 'example' => '2017-12-21T08:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. The end time must be later than the start time. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.'."\n"
."\n"
.'> The time range specified by the StartTime and EndTime parameters cannot exceed one day. The end time must not be later than the current time.', 'type' => 'string', 'required' => true, 'example' => '2017-12-22T08:00:00Z', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F5FF8', 'title' => ''],
'LiveStreamUserNumInfos' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'LiveStreamUserNumInfo' => [
'description' => 'The number of historical online users for the live stream.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'UserNum' => ['description' => 'The number of users at the current point in time.', 'type' => 'string', 'example' => '1', 'title' => ''],
'StreamTime' => ['description' => 'The time when the stream started. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2017-10-20T06:20:00Z', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'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' => 'DescribeLiveStreamHistoryUserNum',
'description' => '- The data returned by this operation is delayed for an average of 2 to 5 minutes.'."\n"
."\n"
.'- This operation queries the number of historical online users for only Flash Video (FLV) and Real-Time Messaging Protocol (RTMP) streams.'."\n"
."\n"
.'- This operation does not query the number of viewers that are watching transcoded streams.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 30 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamHistoryUserNum'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamHistoryUserNum',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveStreamMerge' => [
'summary' => 'Query primary/backup stream merge configuration.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveBLHP6S'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'Region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'Streaming domain name.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'Merged output App name. You can view this on the [Primary/Backup Stream Merge Configuration](~~606583~~) page.', 'type' => 'string', 'required' => false, 'example' => 'app', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'Merged output Stream name. You can view this on the [Primary/Backup Stream Merge Configuration](~~606583~~) page.', 'type' => 'string', 'required' => false, 'example' => 'StreamName', 'title' => ''],
],
[
'name' => 'Protocol',
'in' => 'query',
'schema' => ['description' => 'Streaming protocol. Valid values:'."\n"
."\n"
.'- **rtmp** (default)'."\n"
."\n"
.'- **rtc**', 'type' => 'string', 'required' => false, 'example' => 'rtmp', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'LiveStreamMergeList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'LiveStreamMerge' => [
'description' => 'List of live stream information.',
'type' => 'array',
'items' => [
'description' => 'List of live stream information.',
'type' => 'object',
'properties' => [
'AppName' => ['description' => 'Merged output App name.', 'type' => 'string', 'example' => 'app', 'title' => ''],
'AppUsing' => ['description' => 'Currently used App.', 'type' => 'string', 'example' => 'app1', 'title' => ''],
'DomainName' => ['description' => 'Streaming domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'EndTime' => ['description' => 'Stream merge end time. The date format follows the ISO 8601 standard in UTC+0 time, in the format of yyyy-MM-ddTHH:mm:ssZ.', 'type' => 'string', 'example' => '2020-05-29T01:00:00Z', 'title' => ''],
'ExtraInAppStreams' => ['description' => 'The app and stream of the 3rd to Nth input streams for merging.', 'type' => 'string', 'example' => 'app3/stream3,app4/stream4,app5/stream5,…,appN/streamN', 'title' => ''],
'InAppName1' => ['description' => 'Primary input stream application name for merging.', 'type' => 'string', 'example' => 'app1', 'title' => ''],
'InAppName2' => ['description' => 'Backup input stream application name for merging.', 'type' => 'string', 'example' => 'app2', 'title' => ''],
'InStreamName1' => ['description' => 'Primary input stream name for merging.', 'type' => 'string', 'example' => 'InStream1', 'title' => ''],
'InStreamName2' => ['description' => 'Backup input stream name for merging.', 'type' => 'string', 'example' => 'stream2', 'title' => ''],
'Protocol' => ['description' => 'Live stream protocol.', 'type' => 'string', 'example' => 'rtmp', 'title' => ''],
'StartTime' => ['description' => 'Stream merge start time. The date format follows the ISO 8601 standard in UTC+0 time, in the format of yyyy-MM-ddTHH:mm:ssZ.', 'type' => 'string', 'example' => '2020-05-29T00:00:00Z', 'title' => ''],
'StreamName' => ['description' => 'Merged output Stream name.', 'type' => 'string', 'example' => 'StreamName', 'title' => ''],
'StreamUsing' => ['description' => 'Currently used Stream.', 'type' => 'string', 'example' => 'InStream1', 'title' => ''],
'LiveMerger' => [
'description' => 'Whether the current task uses the merge engine.',
'enumValueTitles' => ['off' => 'off', 'on' => 'on'],
'type' => 'string',
'example' => 'on',
'title' => '',
],
'MergeParameters' => ['description' => 'Configuration parameters related to stream switching for the queried task.'."\n"
."\n"
.'1. When a stream disconnection is explicitly detected (EOF or network error), primary/backup switching is triggered immediately.'."\n"
.'2. If the stutter rate exceeds 60% within the last 5 seconds, primary/backup switching is triggered immediately.'."\n"
.'3. If the stream pull times out and no frame data is received for 2 consecutive seconds, primary/backup switching is triggered.'."\n"
.'4. If there is no stream disconnection or stuttering, but the average frame rate within the last ali_max_no_frame_timeout period is less than ali_low_frame_rate_threshold, primary/backup switching is triggered immediately. If the user has set the ali_max_no_frame_timeout parameter, the timeout in rule 3 will also be updated to ali_max_no_frame_timeout.'."\n"
."\n"
.'Enabling block_all_jitter disables rules 2, 3, and 4.'."\n"
."\n"
.'Valid value ranges:'."\n"
."\n"
.'- 10 > ali_max_no_frame_timeout > 2'."\n"
.'- 200 > ali_low_frame_rate_threshold > 1'."\n"
.'- block_all_jitter: 0 (disabled by default) or 1 (enabled).', 'type' => 'string', 'example' => 'ali_low_frame_rate_threshold=10&ali_max_no_frame_timeout=5&block_all_jitter=0'."\n", 'title' => ''],
'SwitchMode' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'RequestId' => ['description' => 'Request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => 'Illegal input parameters'],
['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' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query primary/backup stream merge configuration',
'description' => 'The QPS limit for a single user of this API is 100 calls per second. If this limit is exceeded, API calls will be throttled, which may affect your business. Please call this API appropriately.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamMerge'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamMerge',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
],
'DescribeLiveStreamMetricDetailData' => [
'summary' => 'Queries stream-level batch data for a specified domain name. A maximum of 5,000 rows of data can be returned per query.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'none',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveYUZBM3'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => [
'description' => 'The region ID.',
'enumValueTitles' => ['cn-shenzhen' => 'cn-shenzhen'],
'type' => 'string',
'required' => false,
'default' => 'cn-shanghai',
'example' => 'cn-shenzhen',
'title' => '',
],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => '- The accelerated domain name to query. Only a single domain name can be queried at a time. An error is returned if multiple domain names are specified.'."\n"
.'- If AppName and StreamName are not specified, stream-level data for all streams under the domain name is returned.'."\n"
.'- If the domain name is left empty, aggregate data for all accelerated domain names under the account is returned.'."\n"
.'- If DomainName is specified and both AppName and StreamName are set to all, aggregate data for the specified accelerated domain name is returned.'."\n"
.'- When you specify DomainName, make sure the domain name is a live streaming domain and the user calling this operation has the required permissions on the domain name.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start of the time range to query. Specify the time in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => true, 'example' => '2015-12-10T20:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. The end time must be later than the start time, and the difference cannot exceed 1 day. Specify the time in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => true, 'example' => '2015-12-10T21:00:00Z', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The application name. Specify this parameter to query stream-level data for a specific application.'."\n"
."\n"
.'> If you specify StreamName, you must also specify AppName.', 'type' => 'string', 'required' => false, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The stream name. Specify this parameter together with AppName to return stream-level data.'."\n"
."\n"
.'> If you specify StreamName, you must also specify AppName.', 'type' => 'string', 'required' => false, 'example' => 'liveStream****', 'title' => ''],
],
[
'name' => 'Protocol',
'in' => 'query',
'schema' => ['description' => 'The stream protocol. Valid values: **flv**, **hls**, **rtmp**, **rts**, and **p2p**.'."\n"
."\n"
.'You can query data for multiple protocols by separating them with commas (,). Data for multiple protocols is not aggregated and is output at the stream level.'."\n"
."\n"
.'> The **rts** option queries Real-Time Streaming (RTS) streams that use the ARTC protocol.'."\n"
.'> - When using rts, you may need to additionally collect statistics for the xxx_AliRTS-opus transcoding stream. This is because when playing an RTS stream on the web, a transcoding stream with the _AliRTS-opus suffix appended to the stream name is automatically generated. For more information, see [RTS sub-second latency automatic transcoding](~~2948703~~).', 'type' => 'string', 'required' => false, 'example' => 'flv', 'title' => ''],
],
[
'name' => 'NextPageToken',
'in' => 'query',
'schema' => ['description' => 'The paged query token. A maximum of 5,000 rows of data can be returned per query. If the data to query exceeds 5,000 rows, the response includes the starting index for the next paging request. Pass this token in the request to continue querying data from where the previous query ended.', 'type' => 'string', 'required' => false, 'example' => 'UjsM9x3aVcJi9a0-ArwJUTTC67CIBKLw*****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The query data.',
'type' => 'object',
'properties' => [
'DomainName' => ['description' => 'The accelerated domain name queried.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'EndTime' => ['description' => 'The end time. The time follows the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2015-12-10T21:00:00Z', 'title' => ''],
'NextPageToken' => ['description' => 'The starting index for the next query. This value is returned when the queried data has not been fully retrieved.', 'type' => 'string', 'example' => 'UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0=', 'title' => ''],
'PageSize' => ['description' => 'The number of returned data rows.', 'type' => 'integer', 'format' => 'int32', 'example' => '5000', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', 'title' => ''],
'StartTime' => ['description' => 'The start time. The time follows the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2015-12-10T20:00:00Z', 'title' => ''],
'StreamDetailData' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'StreamData' => [
'description' => 'The returned data set.',
'type' => 'array',
'items' => [
'description' => 'The returned data set.',
'type' => 'object',
'properties' => [
'AppName' => ['description' => 'The application name.', 'type' => 'string', 'example' => 'app', 'title' => ''],
'Bps' => ['description' => 'The average bandwidth per minute for the stream. Unit: bit/s.', 'type' => 'number', 'format' => 'float', 'example' => '423304182.66', 'title' => ''],
'Count' => ['description' => 'The total number of online viewers per minute for the stream.', 'type' => 'integer', 'format' => 'int64', 'example' => '423304182', 'title' => ''],
'FlvBps' => ['description' => 'The bandwidth for the FLV protocol. Unit: bit/s.'."\n"
."\n"
.'> This field is not returned if the specified protocol does not match.', 'type' => 'number', 'format' => 'float', 'example' => '454', 'title' => ''],
'FlvCount' => ['description' => 'The number of online viewers for the FLV protocol.'."\n"
."\n"
.'> This field is not returned if the specified protocol does not match.', 'type' => 'integer', 'format' => 'int64', 'example' => '32', 'title' => ''],
'FlvTraffic' => ['description' => 'The traffic for the FLV protocol. Unit: bytes.'."\n"
."\n"
.'> This field is not returned if the specified protocol does not match.', 'type' => 'integer', 'format' => 'int64', 'example' => '1254', 'title' => ''],
'HlsBps' => ['description' => 'The bandwidth for the HLS protocol. Unit: bit/s.'."\n"
."\n"
.'> This field is not returned if the specified protocol does not match.', 'type' => 'number', 'format' => 'float', 'example' => '4456', 'title' => ''],
'HlsCount' => ['description' => 'The number of online viewers for the HLS protocol.'."\n"
."\n"
.'> Currently not supported.', 'type' => 'integer', 'format' => 'int64', 'example' => '56', 'title' => ''],
'HlsTraffic' => ['description' => 'The traffic for the HLS protocol. Unit: bytes.'."\n"
."\n"
.'> This field is not returned if the specified protocol does not match.', 'type' => 'integer', 'format' => 'int64', 'example' => '568', 'title' => ''],
'NewConns' => ['description' => 'The number of new connections per minute for the stream.', 'type' => 'string', 'example' => '450', 'title' => ''],
'P2pBps' => ['description' => 'The bandwidth for the P2P protocol. Unit: bit/s.'."\n"
."\n"
.'> This field is not returned if the specified protocol does not match.', 'type' => 'number', 'format' => 'float', 'example' => '6845', 'title' => ''],
'P2pCount' => ['description' => 'The number of online viewers for the P2P protocol.'."\n"
."\n"
.'> This field is not returned if the specified protocol does not match.', 'type' => 'integer', 'format' => 'int64', 'example' => '78', 'title' => ''],
'P2pTraffic' => ['description' => 'The traffic for the P2P protocol. Unit: bytes.'."\n"
."\n"
.'> This field is not returned if the specified protocol does not match.', 'type' => 'integer', 'format' => 'int64', 'example' => '4102', 'title' => ''],
'RtmpBps' => ['description' => 'The bandwidth for the RTMP protocol. Unit: bit/s.'."\n"
."\n"
.'> This field is not returned if the specified protocol does not match.', 'type' => 'number', 'format' => 'float', 'example' => '3323', 'title' => ''],
'RtmpCount' => ['description' => 'The number of online viewers for the RTMP protocol.'."\n"
."\n"
.'> This field is not returned if the specified protocol does not match.', 'type' => 'integer', 'format' => 'int64', 'example' => '63', 'title' => ''],
'RtmpTraffic' => ['description' => 'The traffic for the RTMP protocol. Unit: bytes.'."\n"
."\n"
.'> This field is not returned if the specified protocol does not match.', 'type' => 'integer', 'format' => 'int64', 'example' => '5568', 'title' => ''],
'RtsBps' => ['description' => 'The bandwidth for the RTS protocol. Unit: bit/s.'."\n"
."\n"
.'> This field is not returned if the specified protocol does not match.', 'type' => 'number', 'format' => 'float', 'example' => '2361', 'title' => ''],
'RtsCount' => ['description' => 'The number of online viewers for the RTS protocol.'."\n"
."\n"
.'> This field is not returned if the specified protocol does not match.', 'type' => 'integer', 'format' => 'int64', 'example' => '89', 'title' => ''],
'RtsTraffic' => ['description' => 'The traffic for the RTS protocol. Unit: bytes.'."\n"
."\n"
.'> This field is not returned if the specified protocol does not match.', 'type' => 'integer', 'format' => 'int64', 'example' => '2322', 'title' => ''],
'StreamName' => ['description' => 'The stream name.', 'type' => 'string', 'example' => 'test.flv', 'title' => ''],
'TimeStamp' => ['description' => 'The start time of the time slice. The time follows the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2015-12-10T20:00:00Z', 'title' => ''],
'Traffic' => ['description' => 'The total traffic per minute for the stream. Unit: bytes.', 'type' => 'integer', 'format' => 'int64', 'example' => '423304182', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'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' => 'The end time does not match the start time. Make sure that the start and end times match.'],
['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => 'The time span exceeds the limit. Please refer to the API documentation to specify a reasonable time span.'],
['errorCode' => 'InvalidPageToken', 'errorMessage' => 'The token of page is invalid.', 'description' => 'The specified paging token is incorrect. Specify the correct token returned by the last query and confirm that your request parameters are not modified.'],
['errorCode' => 'InvalidAppName.Mismatch', 'errorMessage' => 'The AppName param must be passed.', 'description' => 'The AppName parameter does not match. Make sure that you specify the correct 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' => ''],
['errorCode' => 'InvalidAppName.LengthTooLong', 'errorMessage' => 'The specified app name is too long.', 'description' => ''],
['errorCode' => 'InvalidTime.ValueNotSupported', 'errorMessage' => 'Specified Time is malformed.', 'description' => 'The specified time is invalid.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query stream-level batch data for a specified domain name',
'description' => 'If this is the first time you use this operation to query stream-level data for a specified domain name, [submit a ticket](https://workorder.console.aliyun.com/console.htm#/ticket/add?productCode=live&commonQuestionId=4545&isSmart=true&iatraceid=1608439120675-2a5c48de0b84805313c708&channel=selfservice)[submit a ticket](https://workorder-intl.console.aliyun.com/?spm=5176.12818093.nav-right.dticket.6cb216d07otFWR#/ticket/createIndex) to request backend configuration before using this operation.'."\n"
.'Provide the following information in the ticket:'."\n"
.'- The domain name to query.'."\n"
.'- The maximum number of concurrent live streams under the domain name.'."\n"
.'- The maximum number of concurrent viewers per live stream.'."\n"
.'- The protocol types included in client requests.'."\n"
."\n"
.'>This operation will no longer be maintained after September 31, 2025. Switch to the new stream-level operation [DescribeLiveUserStreamMetricData](~~2948552~~) promptly. The new stream-level operation does not require backend configuration.>.'."\n"
."\n"
.'## Before you begin'."\n"
.'- Online viewer counting for HLS is not supported by default.'."\n"
."\n"
.'- Only a single domain name can be queried at a time.'."\n"
."\n"
.'- Maximum large query time span: 24 hours.'."\n"
."\n"
.'- Minimum query granularity: 1 minute.'."\n"
."\n"
.'- Maximum query range: 31 days.'."\n"
."\n"
.'## Rate limit'."\n"
.'The single-user QPS limit for this operation is 10 calls per second. If this limit is exceeded, the API call is throttled, which may affect your business. Call this operation appropriately.',
'changeSet' => [
['createdAt' => '2023-12-21T06:31:03.000Z', 'description' => 'Error codes changed, Request parameters changed, Response parameters changed'],
],
'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' => 'Queries the list of created monitoring sessions.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveSM955S'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'MonitorId',
'in' => 'query',
'schema' => ['description' => 'The ID of the monitoring session.'."\n"
."\n"
.'> Obtain the MonitorId value from the response parameters of the [CreateLiveStreamMonitor](~~2848129~~) operation. If you leave this parameter empty, the data of all monitoring sessions is returned.', 'type' => 'string', 'required' => false, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
],
[
'name' => 'PageNum',
'in' => 'query',
'schema' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of monitoring sessions to return on each page.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''],
],
[
'name' => 'Status',
'in' => 'query',
'schema' => ['description' => 'The status of the monitoring session. Valid values:'."\n"
."\n"
.'- 1: The session is being monitored.'."\n"
."\n"
.'- 0: The session is not being monitored.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'OrderRule',
'in' => 'query',
'schema' => ['description' => 'The order in which to sort the monitoring sessions. Valid values:'."\n"
."\n"
.'- 0: Default. The monitoring sessions are sorted by monitoring status in descending order (active sessions are listed first). The start time is not used for sorting.'."\n"
."\n"
.'- 1: The monitoring sessions are sorted by start time in descending order.'."\n"
."\n"
.'- 2: The monitoring sessions are sorted by start time in ascending order.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'Total' => ['description' => 'The total number of monitoring sessions.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '2234baba-a586-46ea-8bd4-c8f7891abcdef', 'title' => ''],
'LiveStreamMonitorList' => [
'description' => 'The list of monitoring sessions.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'MonitorConfig' => ['description' => 'The settings for monitoring alert thresholds. The value is a JSON string that includes the following fields:'."\n"
."\n"
.'- fpsLowThres: the alert threshold for the video frame rate. This is a float.'."\n"
."\n"
.'- brHighThres: the alert threshold for the audio and video bitrate. This is a float.'."\n"
."\n"
.'- eofDurationThresSec: the alert threshold for the stream interruption duration. This is a float.', 'type' => 'string', 'example' => '"{\\"fpsLowThres\\": 0.6,\\"brLowThres\\": 1.1,\\"eofDurationThresSec\\": 10}"', 'title' => ''],
'Status' => ['description' => 'The status of the monitoring session. Valid values:'."\n"
."\n"
.'- 1: The session is being monitored.'."\n"
."\n"
.'- 0: The session is not being monitored.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'MonitorId' => ['description' => 'The ID of the monitoring session.', 'type' => 'string', 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
'Domain' => ['description' => 'The output domain name for monitoring.', 'type' => 'string', 'example' => 'demo.aliyundoc.com', 'title' => ''],
'CallbackUrl' => ['description' => 'The webhook address for monitoring alert notifications.', 'type' => 'string', 'example' => 'http://guide.aliyundoc.com/notify', 'title' => ''],
'AudioFrom' => ['description' => 'The audio source in the layout.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'DingTalkWebHookUrl' => ['description' => 'The URL of the DingTalk chatbot.', 'type' => 'string', 'example' => 'https://oapi.dingtalk.com/robot/send?access_token=7a7d404056eee1f2fd944ace9bcfc361dc6448583e1d3d3baa****', 'title' => ''],
'MonitorName' => ['description' => 'The name of the monitoring session.', 'type' => 'string', 'example' => 'liveMonito****', 'title' => ''],
'StopTime' => ['description' => 'The time when monitoring stops. The time is in UTC format.', 'type' => 'string', 'example' => '2017-01-11T12:00:00Z', 'title' => ''],
'StartTime' => ['description' => 'The time when monitoring starts. The time is in UTC format.', 'type' => 'string', 'example' => '2017-01-11T12:00:00Z', 'title' => ''],
'OutputTemplate' => ['description' => 'The template for the output resolution. Valid values:'."\n"
."\n"
.'- **lp\\_ld**: low definition'."\n"
."\n"
.'- **lp\\_sd**: standard definition'."\n"
."\n"
.'- **lp\\_hd**: high definition'."\n"
."\n"
.'- **lp\\_ud**: ultra-high definition', 'type' => 'string', 'example' => 'lp_ud', 'title' => ''],
'Region' => ['description' => 'The region. Valid values:'."\n"
."\n"
.'- cn-shanghai: China (Shanghai)'."\n"
."\n"
.'- cn-beijing: China (Beijing)'."\n"
."\n"
.'- ap-southeast-1: Singapore', 'type' => 'string', 'example' => 'cn-shanghai', 'title' => ''],
'InputList' => [
'description' => 'The list of input streams for monitoring.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Index' => ['description' => 'The index. This parameter is used by the frontend.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'InputUrl' => ['description' => 'The URL of the input stream.', 'type' => 'string', 'example' => 'demo.aliyundoc.com', 'title' => ''],
'LayoutId' => ['description' => 'The layout ID. The value must start from 1.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'StreamName' => ['description' => 'The display name of the stream for monitoring.', 'type' => 'string', 'example' => 'monitorStream****', 'title' => ''],
'LayoutConfig' => [
'description' => 'The layout information.',
'type' => 'object',
'properties' => [
'FillMode' => ['description' => 'The fill mode. For frontend development, set this parameter to none.', 'type' => 'string', 'example' => 'none', 'title' => ''],
'PositionRefer' => ['description' => 'The reference point for the element\'s position. Valid values:'."\n"
."\n"
.'- topLeft'."\n"
."\n"
.'- topRight'."\n"
."\n"
.'- bottomLeft'."\n"
."\n"
.'- bottomRight', 'type' => 'string', 'example' => 'topLeft', 'title' => ''],
'PositionNormalized' => [
'description' => 'The normalized coordinates of the element\'s position, in the format of \\[x,y]. The default value is \\[0,0]. The values of x and y must be normalized.',
'type' => 'array',
'items' => ['description' => 'The position of the element\'s fill area, in the format of \\[x,y]. The values of x and y are normalized percentages. '."\n"
.'For example, \\[0.1,0.1] indicates a horizontal offset of 10% and a vertical offset of 10% from the top-left corner.', 'type' => 'number', 'format' => 'float', 'example' => '0.1', 'title' => ''],
'title' => '',
'example' => '',
],
'SizeNormalized' => [
'description' => 'The normalized size of the element\'s fill area, in the format of \\[w,h].',
'type' => 'array',
'items' => ['description' => 'The size of the element\'s fill area, in the format of \\[w,h]. The values of w and h are normalized percentages. '."\n"
.'For example, \\[0.2,0.3] indicates a horizontal proportion of 20% and a vertical proportion of 30%.', 'type' => 'number', 'format' => 'float', 'example' => '0.3', 'title' => ''],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'PlayConfig' => [
'description' => 'The playback configuration.',
'type' => 'object',
'properties' => [
'VolumeRate' => ['description' => 'The volume. The value must be between 0 and 1, inclusive, with up to two decimal places.', 'type' => 'number', 'format' => 'float', 'example' => '0.50', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'OutputUrls' => [
'description' => 'The output URLs for monitoring.',
'type' => 'object',
'properties' => [
'FlvUrl' => ['description' => 'The output URL in FLV format.', 'type' => 'string', 'example' => 'http://demo.aliyundoc.com/monitor/445409ec-7eaa-461d-8f29-4bec2eb9****.flv', 'title' => ''],
'RtmpUrl' => ['description' => 'The output URL in RTMP format.', 'type' => 'string', 'example' => 'rtmp://demo.aliyundoc.com/monitor/445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'DescribeLiveStreamMonitorList',
'description' => 'First, [create a monitoring session](~~2848129~~). You can then call this operation to query the list of monitoring sessions. When you call this operation, ensure that the required parameters are configured.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'This operation is limited to 15 queries per second (QPS) for each user. API calls that exceed this limit are throttled. This may affect your business. Plan your calls accordingly.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamMonitorList'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamMonitorList',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveStreamPreloadTasks' => [
'summary' => 'Only data from the last 3 days can be queried.',
'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' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'The task ID. You can obtain the preload task ID by calling the [SetLiveStreamPreloadTasks](~~2519938~~) operation.', 'type' => 'string', 'required' => false, 'example' => 'yourTaskId', 'title' => ''],
],
[
'name' => 'PlayUrl',
'in' => 'query',
'schema' => ['description' => 'The live streaming URL. You can specify multiple URLs separated by commas (,), up to 100.', 'type' => 'string', 'required' => false, 'example' => 'rtmp://guide.aliyundoc.com/liveApp****/liveStream****', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries per page. Maximum value: 100. Valid values: any integer from 1 to 100.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '20', 'example' => '10', 'title' => ''],
],
[
'name' => 'PageNum',
'in' => 'query',
'schema' => ['description' => 'The page number to return. Default value: 1.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '1', 'example' => '1', 'title' => ''],
],
[
'name' => 'Status',
'in' => 'query',
'schema' => [
'description' => 'The task status. Valid values:'."\n"
.'- complete: completed.'."\n"
.'- pending: waiting for preload.'."\n"
.'- preloading: preloading in progress.'."\n"
.'- failed: preload failed.',
'enumValueTitles' => ['pending' => 'Waiting for preload.', 'preloading' => 'Preloading in progress.', 'failed' => 'Preload failed.', 'complete' => 'Completed.'],
'type' => 'string',
'required' => false,
'enum' => ['complete', 'pending', 'preloading', 'failed'],
'example' => 'complete',
'title' => '',
],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time in ISO 8601 format in UTC. Format: yyyy-MM-ddTHH:mm:ssZ. The start time must be within the last 3 days.', 'type' => 'string', 'required' => false, 'example' => '2016-06-29T19:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time in ISO 8601 format in UTC. Format: yyyy-MM-ddTHH:mm:ssZ. The interval between EndTime and StartTime cannot exceed 3 days.', 'type' => 'string', 'required' => false, 'example' => '2016-06-30T19:00:00Z', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'PageNum' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'PageSize' => ['description' => 'The number of entries per page.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''],
'PreloadTasks' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'PreloadTask' => [
'description' => 'The details of the live stream preload task.',
'type' => 'array',
'items' => [
'description' => 'The details of the live stream preload task.',
'type' => 'object',
'properties' => [
'Area' => ['description' => 'The preload region. Valid values:'."\n"
.'- domestic: the Chinese mainland.'."\n"
.'- overseas: outside the Chinese mainland.'."\n"
.'- global: global acceleration.'."\n"
."\n"
.'> If this parameter is not specified, the default preload region is the acceleration region configured for your domain name.', 'type' => 'string', 'example' => 'domestic', 'title' => ''],
'CreateTime' => ['description' => 'The time when the preload task was created, in ISO 8601 format in UTC. Format: yyyy-MM-ddTHH:mm:ssZ.', 'type' => 'string', 'example' => '2016-06-29T19:00:00Z', 'title' => ''],
'Description' => ['description' => 'Indicates whether the preload task succeeded. Valid values:'."\n"
.'- Successfully: succeeded.'."\n"
.'- InternalError: failed.', 'type' => 'string', 'example' => 'Successfully', 'title' => ''],
'DomainName' => ['description' => 'The streaming domain.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'PlayUrl' => ['description' => 'The live streaming URL.', 'type' => 'string', 'example' => 'rtmp://guide.aliyundoc.com/liveApp****/liveStream****', 'title' => ''],
'PreloadedEndTime' => ['description' => 'The time when the preload ended, in ISO 8601 format in UTC. Format: yyyy-MM-ddTHH:mm:ssZ.', 'type' => 'string', 'example' => '2016-06-30T19:00:00Z', 'title' => ''],
'PreloadedStartTime' => ['description' => 'The time when the preload started, in ISO 8601 format in UTC. Format: yyyy-MM-ddTHH:mm:ssZ.', 'type' => 'string', 'example' => '2016-06-29T19:00:00Z', 'title' => ''],
'Process' => ['description' => 'The progress percentage.', 'type' => 'string', 'example' => '100%', 'title' => ''],
'Status' => ['description' => 'The task status. Valid values:'."\n"
.'- Success: succeeded.'."\n"
.'- Failed: failed.'."\n"
."\n"
.'> The task is considered failed if any subtask fails to be created.', 'type' => 'string', 'example' => 'Success', 'title' => ''],
'TaskId' => ['description' => 'The task ID.', 'type' => 'string', 'example' => 'yourTaskId', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'E1564CBC-DCFE-5E1B-8B78-8DED9A39F334', 'title' => ''],
'TotalNum' => ['description' => 'The total number of entries that match the conditions.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'TotalPage' => ['description' => 'The total number of pages.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => 'Illegal input parameters'],
['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' => 'The request processing has failed due to backend service exception.', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query live stream preload tasks',
'description' => 'This operation only supports querying data from the last 3 days.'."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this operation is 10 calls per second. If this limit is exceeded, the API call is throttled, which may affect your business. Call this operation appropriately.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamPreloadTasks'],
],
],
'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' => 'Queries stream ingest data at the app and stream granularity for a specified domain name.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveYUZBM3'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => '- The accelerated domain name to query. Only a single domain name can be queried. An error is returned if you specify multiple domain names.'."\n"
.'- If you do not specify AppName or StreamName, data at the stream granularity for all streams under the specified accelerated domain name is returned without aggregation.'."\n"
.'- If DomainName is specified and both AppName and StreamName are set to all, aggregate data at the stream granularity for all streams under the specified accelerated domain name is returned.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the UTC time zone.'."\n"
."\n"
.'Format: YYYY-MM-DDThh:mm:ssZ.', 'type' => 'string', 'required' => true, 'example' => '2022-09-10T20:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the UTC time zone. The end time must be later than the start time, and the difference cannot exceed 1 day.'."\n"
."\n"
.'Format: YYYY-MM-DDThh:mm:ssZ.', 'type' => 'string', 'required' => true, 'example' => '2022-09-10T21:00:00Z', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the application to which the live stream belongs. Specify the application name to query data at the stream granularity for the corresponding application.', 'type' => 'string', 'required' => false, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The name of the live stream. If you specify StreamName, data at the stream granularity is returned for the specified StreamName under the specified AppName. You must specify AppName when you specify StreamName.', 'type' => 'string', 'required' => false, 'example' => 'liveStream****', 'title' => ''],
],
[
'name' => 'NextPageToken',
'in' => 'query',
'schema' => ['description' => 'The paging query token. Each query returns a maximum of 5,000 rows of data. If the data to be queried exceeds 5,000 rows, the response includes the start index for the next query.'."\n"
."\n"
.'Pass this token in the request to continue querying data from the row after the last row returned in the previous query.', 'type' => 'string', 'required' => false, 'example' => 'UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0=', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'EndTime' => ['description' => 'The end of the time range for the returned data. The time follows the ISO 8601 standard in the UTC time zone.'."\n"
."\n"
.'Format: YYYY-MM-DDThh:mm:ssZ.', 'type' => 'string', 'example' => '2022-09-10T21:00:00Z', 'title' => ''],
'NextPageToken' => ['description' => 'The paging query token. Each query returns a maximum of 5,000 rows of data. If the data to be queried exceeds 5,000 rows, the response includes the start index for the next query.'."\n"
."\n"
.'Pass this token in the request to continue querying data from the row after the last row returned in the previous query.', 'type' => 'string', 'example' => 'UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0=', 'title' => ''],
'PageSize' => ['description' => 'The number of returned data rows.', 'type' => 'integer', 'format' => 'int32', 'example' => '5000', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5EBF2AC3-4B73-40A5-8B32-83F49D5F035E', 'title' => ''],
'StartTime' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the UTC time zone.'."\n"
."\n"
.'Format: YYYY-MM-DDThh:mm:ssZ.', 'type' => 'string', 'example' => '2022-09-10T20:00:00Z', 'title' => ''],
'StreamDetailData' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'StreamData' => [
'description' => 'The returned data entries.',
'type' => 'array',
'items' => [
'description' => 'The returned data entries.',
'type' => 'object',
'properties' => [
'AppName' => ['description' => 'The application name.', 'type' => 'string', 'example' => 'liveApp****', 'title' => ''],
'ReqBps' => ['description' => 'The total bandwidth per minute for the stream. Unit: Bps.', 'type' => 'number', 'format' => 'float', 'example' => '133.33', 'title' => ''],
'ReqTraffic' => ['description' => 'The total traffic per minute for the stream. Unit: bytes.', 'type' => 'integer', 'format' => 'int64', 'example' => '1000', 'title' => ''],
'StreamName' => ['description' => 'The stream name.', 'type' => 'string', 'example' => 'liveStream****', 'title' => ''],
'TimeStamp' => ['description' => 'The beginning of the time slice. The time follows the ISO 8601 standard in the UTC time zone.'."\n"
."\n"
.'Format: YYYY-MM-DDThh:mm:ssZ.', 'type' => 'string', 'example' => '2022-09-10T20:00:00Z', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['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' => 'The end time does not match the start time. Make sure that the start and end times match.'],
['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => 'The time span exceeds the limit. Please refer to the API documentation to specify a reasonable time span.'],
['errorCode' => 'InvalidPageToken', 'errorMessage' => 'The token of page is invalid.', 'description' => 'The specified paging token is incorrect. Specify the correct token returned by the last query and confirm that your request parameters are not modified.'],
['errorCode' => 'InvalidAppName.Mismatch', 'errorMessage' => 'The AppName param must be passed.', 'description' => 'The AppName parameter does not match. Make sure that you specify the correct 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' => ''],
['errorCode' => 'InvalidAppName.LengthTooLong', 'errorMessage' => 'The specified app name is too long.', 'description' => ''],
['errorCode' => 'InvalidTime.ValueNotSupported', 'errorMessage' => 'Specified Time is malformed.', 'description' => 'The specified time is invalid.'],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query batch stream-granularity data for stream ingest of a specified domain name',
'description' => '- Only a single domain name can be queried. An error is returned if you specify multiple domain names.'."\n"
.'- Maximum query time range per request: 24 hours.'."\n"
.'- Minimum query granularity: 1 minute.'."\n"
.'- Maximum query period: 31 days.'."\n"
.'- This is a monitoring data API. The data collection and processing method differs from that used for billing. Do not use this API to calculate usage for billing reconciliation.'."\n"
."\n"
.'## QPS limit'."\n"
.'The maximum number of queries per second (QPS) per user for this operation is 10. If the number of calls per second exceeds the limit, throttling is triggered. This may affect your business. Call this operation as appropriate.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamPushMetricDetailData'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamPushMetricDetailData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
],
'DescribeLiveStreamRecordContent' => [
'summary' => 'Queries the recordings of a live stream.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveL04ZVK'],
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The AppName of the live stream.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The name of the live stream.', 'type' => 'string', 'required' => true, 'example' => 'liveStream****', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time for the query. You can query records from the last 6 months. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'required' => true, 'example' => '2017-12-21T08:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time for the query. The time range between StartTime and EndTime cannot exceed 4 days. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'required' => true, 'example' => '2017-12-22T08:00:00Z', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '62136AE6-7793-45ED-B14A-60D19A9486D3', 'title' => ''],
'RecordContentInfoList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'RecordContentInfo' => [
'description' => 'A list of recording content information.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'EndTime' => ['description' => 'End time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'example' => '2015-12-01T07:46:00Z', 'title' => ''],
'StartTime' => ['description' => 'Start time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'example' => '2015-12-01T07:36:00Z', 'title' => ''],
'Duration' => ['description' => 'Recording duration. Unit: seconds.', 'type' => 'number', 'format' => 'float', 'example' => '10', 'title' => ''],
'OssBucket' => ['description' => 'The name of the OSS bucket.', 'type' => 'string', 'example' => 'liveBucket****', 'title' => ''],
'OssObjectPrefix' => ['description' => 'The naming convention (prefix) for recorded files stored in OSS.', 'type' => 'string', 'example' => 'record/{Date}/{UnixTimestamp}_{Sequence}', 'title' => ''],
'OssEndpoint' => ['description' => 'The endpoint of the OSS bucket.', 'type' => 'string', 'example' => 'cn-oss-****.aliyuncs.com', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'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' => 'The end time does not match the start time. Make sure that the start and end times match.'],
['errorCode' => 'InvalidStartTime.Mismatch', 'errorMessage' => 'Specified StartTime does not math the current time.', 'description' => ''],
],
],
'title' => 'DescribeLiveStreamRecordContent',
'description' => 'Obtain the main streaming domain, and then call this operation to query the recordings of a live stream.'."\n"
."\n"
.'The information returned by this API is organized by recording task. To get information about specific recording files within a task, use the [DescribeLiveStreamRecordIndexFiles](~~2847890~~) and [DescribeLiveStreamRecordIndexFile](~~2847889~~) APIs.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => '> For information on how to construct the URL to access OSS resources, see [Use presigned URLs to download or preview files](~~39607~~).',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamRecordContent'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamRecordContent',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveStreamRecordIndexFile' => [
'summary' => 'Queries a single recording manifest.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '107095',
'abilityTreeNodes' => ['FEATUREliveL04ZVK'],
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The AppName of the live stream.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The name of the live stream.', 'type' => 'string', 'required' => true, 'example' => 'liveStream****', 'title' => ''],
],
[
'name' => 'RecordId',
'in' => 'query',
'schema' => ['description' => 'The manifest ID.'."\n"
."\n"
.'> Call the [DescribeLiveStreamRecordIndexFiles](~~2847890~~) API to query the ID.', 'type' => 'string', 'required' => true, 'example' => 'c4d7f0a4-b506-43f9-8de3-07732c3f****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5EBF2AC3-4B73-40A5-8B32-83F49D5F035E', 'title' => ''],
'RecordIndexInfo' => [
'description' => 'Recording configuration.',
'type' => 'object',
'properties' => [
'RecordUrl' => ['description' => 'The URL of the manifest.', 'type' => 'string', 'example' => 'http://****/atestObject****.m3u8', 'title' => ''],
'StreamName' => ['description' => 'The name of the live stream.', 'type' => 'string', 'example' => 'liveStream****', 'title' => ''],
'CreateTime' => ['description' => 'The creation time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'example' => '2016-05-27T09:40:56Z', 'title' => ''],
'RecordId' => ['description' => 'The manifest ID.', 'type' => 'string', 'example' => 'c4d7f0a4-b506-43f9-8de3-07732c3f****', 'title' => ''],
'Height' => ['description' => 'The video height.', 'type' => 'integer', 'format' => 'int32', 'example' => '480', 'title' => ''],
'OssBucket' => ['description' => 'The name of the OSS bucket.', 'type' => 'string', 'example' => 'liveBucket****', 'title' => ''],
'DomainName' => ['description' => 'The main streaming domain.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'OssObject' => ['description' => 'The name of the storage file in OSS.', 'type' => 'string', 'example' => 'liveObject****', 'title' => ''],
'EndTime' => ['description' => 'The end time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'example' => '2016-05-25T05:47:11Z', 'title' => ''],
'AppName' => ['description' => 'The AppName of the live stream.', 'type' => 'string', 'example' => 'liveApp****', 'title' => ''],
'StartTime' => ['description' => 'The start time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'example' => '2015-12-01T05:36:00Z', 'title' => ''],
'Width' => ['description' => 'The video width.', 'type' => 'integer', 'format' => 'int32', 'example' => '640', 'title' => ''],
'Duration' => ['description' => 'The recording duration. Unit: seconds.', 'type' => 'number', 'format' => 'float', 'example' => '588.849', 'title' => ''],
'OssEndpoint' => ['description' => 'The endpoint of the OSS bucket.', 'type' => 'string', 'example' => 'cn-oss-****.aliyuncs.com', 'title' => ''],
'Format' => ['description' => 'The video format.', 'type' => 'string', 'example' => 'mp4', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'title' => 'DescribeLiveStreamRecordIndexFile',
'description' => 'Metadata for created M3U8 manifests is retained in ApsaraVideo Live for 6 months. You can only query information about manifests created within this period. The M3U8 manifest files are stored in OSS, and their retention period is determined by your OSS storage configuration.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 100 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2024-06-25T08:54:52.000Z', 'description' => 'Response parameters changed, Error codes changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamRecordIndexFile'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamRecordIndexFile',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveStreamRecordIndexFiles' => [
'summary' => 'Queries all recording index files within a specified time period.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '107096',
'abilityTreeNodes' => ['FEATUREliveL04ZVK'],
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain name.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the application to which the live stream belongs.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The stream name.', 'type' => 'string', 'required' => true, 'example' => 'liveStream****', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).'."\n", 'type' => 'string', 'required' => true, 'example' => '2017-12-21T08:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. The interval between EndTime and StartTime cannot exceed 4 days. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).'."\n", 'type' => 'string', 'required' => true, 'example' => '2017-12-22T08:00:00Z', 'title' => ''],
],
[
'name' => 'PageNum',
'in' => 'query',
'schema' => ['description' => 'The page number. Default value: **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '1', 'example' => '1', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries per page. Valid values: **5 to 30**. Default value: **10**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '30', 'minimum' => '5', 'default' => '10', 'example' => '10', 'title' => ''],
],
[
'name' => 'Order',
'in' => 'query',
'schema' => [
'description' => 'The order in which entries are sorted by creation time. Valid values:'."\n"
."\n"
.'- **asc** (default): ascending order.'."\n"
.'- **desc**: descending order.',
'enumValueTitles' => ['asc' => 'Ascending order', 'desc' => 'Descending order'],
'type' => 'string',
'required' => false,
'default' => 'asc',
'enum' => ['asc', 'desc'],
'example' => 'asc',
'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'PageNum' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'DE24625C-7C0F-4020-8448-9C31A50C1556', 'title' => ''],
'Order' => ['description' => 'The sorting order.', 'type' => 'string', 'example' => 'asc', 'title' => ''],
'TotalPage' => ['description' => 'The total number of pages.', 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''],
'PageSize' => ['description' => 'The number of entries per page.', 'type' => 'integer', 'format' => 'int32', 'example' => '5', 'title' => ''],
'TotalNum' => ['description' => 'The total number of entries that meet the specified conditions.', 'type' => 'integer', 'format' => 'int32', 'example' => '12', 'title' => ''],
'RecordIndexInfoList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'RecordIndexInfo' => [
'description' => 'The list of recording index files.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'RecordUrl' => ['description' => 'The URL of the index file.', 'type' => 'string', 'example' => 'http://****/atestObject****.m3u8', 'title' => ''],
'StreamName' => ['description' => 'The stream name.', 'type' => 'string', 'example' => 'liveStream****', 'title' => ''],
'CreateTime' => ['description' => 'The creation time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'example' => '2016-05-27T09:40:56Z', 'title' => ''],
'RecordId' => ['description' => 'The ID of the index file.', 'type' => 'string', 'example' => 'c4d7f0a4-b506-43f9-8de3-07732c3f****', 'title' => ''],
'Height' => ['description' => 'The video height.', 'type' => 'integer', 'format' => 'int32', 'example' => '480', 'title' => ''],
'OssBucket' => ['description' => 'The name of the OSS bucket.', 'type' => 'string', 'example' => 'liveBucket****', 'title' => ''],
'DomainName' => ['description' => 'The streaming domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'OssObject' => ['description' => 'The name of the recording file stored in OSS.', 'type' => 'string', 'example' => 'liveObject****', 'title' => ''],
'EndTime' => ['description' => 'The end time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).'."\n", 'type' => 'string', 'example' => '2015-12-01T07:46:00Z', 'title' => ''],
'AppName' => ['description' => 'The name of the application to which the stream belongs.', 'type' => 'string', 'example' => 'liveApp****', 'title' => ''],
'StartTime' => ['description' => 'The start time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).'."\n", 'type' => 'string', 'example' => '2015-12-01T07:36:00Z', 'title' => ''],
'Width' => ['description' => 'The video width.', 'type' => 'integer', 'format' => 'int32', 'example' => '640', 'title' => ''],
'Duration' => ['description' => 'The recording duration. Unit: seconds.', 'type' => 'number', 'format' => 'float', 'example' => '588.849', 'title' => ''],
'OssEndpoint' => ['description' => 'The endpoint of the OSS bucket.', 'type' => 'string', 'example' => 'cn-oss-****.aliyuncs.com', 'title' => ''],
'Format' => ['description' => 'The video format.', 'type' => 'string', 'example' => 'HLS', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'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' => 'The end time does not match the start time. Make sure that the start and end times match.'],
['errorCode' => 'InvalidStartTime.Mismatch', 'errorMessage' => 'Specified StartTime does not math the current time.', 'description' => ''],
['errorCode' => 'Forbidden', 'errorMessage' => 'Ram Permission is forbidden.', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query all recording index files within a specified time period',
'description' => '- Information about created M3U8 index files is retained in the ApsaraVideo Live system for only 6 months. You can query only the information about index files that were created within the last 6 months.'."\n"
.' - M3U8 index files are stored in OSS. The retention period is determined by the storage configuration of OSS.'."\n"
.'- By default, recording returns HTTP URLs. To use HTTPS, configure the certificate and change HTTP to HTTPS.'."\n"
."\n\n"
.'## QPS limit'."\n"
."\n"
.'The QPS limit on this API is 15 calls per second per user. If this limit is exceeded, API calls are throttled, which may affect your business. Call this API at an appropriate frequency.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2024-06-25T08:54:52.000Z', 'description' => 'Response parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamRecordIndexFiles'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamRecordIndexFiles',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeLiveStreamSnapshotInfo' => [
'summary' => 'Queries snapshot content within a specified time range.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveMH1XD3'],
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain of the streamer.'."\n"
.'> - When you specify DomainName, make sure that the domain name is a live streaming domain name and that the user who calls this operation has the permissions to operate on the specified domain name.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the application to which the stream belongs.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The name of the stream. Make sure that the specified stream name exists within the query time range.', 'type' => 'string', 'required' => true, 'example' => 'liveStream****', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'required' => true, 'example' => '2017-12-21T08:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. The interval between EndTime and StartTime cannot exceed **1** day. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'required' => true, 'example' => '2017-12-22T08:00:00Z', 'title' => ''],
],
[
'name' => 'Limit',
'in' => 'query',
'schema' => ['description' => 'The number of entries to return in a single call. Valid values: **1 to 100**. Default value: **10**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'default' => '10', 'example' => '10', 'title' => ''],
],
[
'name' => 'Order',
'in' => 'query',
'schema' => [
'description' => 'The sort order. Valid values:'."\n"
."\n"
.'- **asc** (default): ascending order.'."\n"
.'- **desc**: descending order.',
'enumValueTitles' => ['asc' => 'ascending order.', 'desc' => 'descending order.'],
'type' => 'string',
'required' => false,
'default' => 'asc',
'enum' => ['asc', 'desc'],
'example' => 'asc',
'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'NextStartTime' => ['description' => 'The next start time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).'."\n"
."\n"
.'> If the content within this time range exceeds the value of Limit, this parameter is returned as the creation time of the next file. You can use this time as the StartTime value and call this operation again to retrieve the next set of content. If this parameter is not returned, the content does not exceed the Limit value.', 'type' => 'string', 'example' => '2015-12-01T17:36:00Z', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '62136AE6-7793-45ED-B14A-60D19A9486D3', 'title' => ''],
'LiveStreamSnapshotInfoList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'LiveStreamSnapshotInfo' => [
'description' => 'The list of snapshot content.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'OssObject' => ['description' => 'The name of the file stored in OSS.', 'type' => 'string', 'example' => '{liveApp****}/{liveStream****}.jpg', 'title' => ''],
'OssBucket' => ['description' => 'The name of the OSS bucket.', 'type' => 'string', 'example' => 'liveBucket****', 'title' => ''],
'CreateTime' => ['description' => 'The time when the snapshot was taken. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'example' => '2015-12-01T17:36:00Z', 'title' => ''],
'OssEndpoint' => ['description' => 'The endpoint of the OSS bucket.', 'type' => 'string', 'example' => 'cn-oss-****.aliyuncs.com', 'title' => ''],
'IsOverlay' => ['description' => 'The snapshot mode. Valid values:'."\n"
."\n"
.'- **true**: overwrite snapshot.'."\n"
."\n\n"
.'- **false**: sequential snapshot.', 'type' => 'boolean', 'example' => 'false', 'title' => ''],
'CreateTimestamp' => ['description' => 'The timestamp when the snapshot file was created, in milliseconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1653641526637', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['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' => 'The end time does not match the start time. Make sure that the start and end times match.'],
['errorCode' => 'InvalidStream.NotFound', 'errorMessage' => 'Speicified stream does not exist.', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query snapshot content within a time range',
'description' => 'You can call this operation to query snapshot data only within the last year.'."\n"
."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this operation is 100 calls per second. If this limit is exceeded, the API calls are throttled, which may affect your business. Call this operation appropriately.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamSnapshotInfo'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamSnapshotInfo',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeLiveStreamState' => [
'summary' => 'Queries the real-time status of a single stream.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveYUZBM3'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The ingest domain or the streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The AppName of the live stream. View AppNames on the [Stream Management](~~197397~~) page.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The name of the live stream. View StreamNames on the [Stream Management](~~197397~~) page.', 'type' => 'string', 'required' => true, 'example' => 'liveStream****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'Type' => ['description' => 'The stream ingest method. Valid values:'."\n"
."\n"
.'- push'."\n"
."\n"
.'- pull', 'type' => 'string', 'example' => 'push', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'CE6CD79D-0A98-1F22-A15F-FADA74DF2729', 'title' => ''],
'StreamState' => ['description' => 'The state of the stream. Valid values:'."\n"
."\n"
.'- online: The stream is active.'."\n"
."\n"
.'- offline: The stream is offline. This may mean the stream ingest has failed or ended. For specific details, use the data returned by the stream ingest callback. This operation does not provide a detailed breakdown of the offline status.', 'type' => 'string', 'example' => 'online', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => 'Illegal input parameters'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''],
],
],
'title' => 'DescribeLiveStreamState',
'description' => 'After you obtain a live streaming domain name, you can call this operation to query the real-time status of a single stream. For details about the offline status, use the data returned by the stream ingest callback. This operation does not provide a breakdown of the offline status.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'You can call this operation up to 100 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '2000', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamState'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamState',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Type\\": \\"push\\",\\n \\"RequestId\\": \\"CE6CD79D-0A98-1F22-A15F-FADA74DF2729\\",\\n \\"StreamState\\": \\"online\\"\\n}","type":"json"}]',
],
'DescribeLiveStreamTranscodeInfo' => [
'summary' => 'Queries transcoding configurations.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveHVN9B2'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainTranscodeName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The AppName of the live stream.', 'type' => 'string', 'required' => false, 'example' => 'myapp', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The transcoding configurations.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '62136AE6-7793-45ED-B14A-60D19A9486D3', 'title' => ''],
'DomainTranscodeList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DomainTranscodeInfo' => [
'description' => 'The transcoding configurations.',
'type' => 'array',
'items' => [
'description' => 'The transcoding configurations.',
'type' => 'object',
'properties' => [
'TranscodeApp' => ['description' => 'The AppName.', 'type' => 'string', 'example' => 'liveApp****', 'title' => ''],
'TranscodeTemplate' => ['description' => 'The transcoding template. Valid values:'."\n"
."\n"
.'- **Standard transcoding templates**:'."\n"
."\n"
.' - **lld**: low definition.'."\n"
."\n"
.' - **lsd**: standard definition.'."\n"
."\n"
.' - **lhd**: high definition.'."\n"
."\n"
.' - **lud**: ultra-high definition.'."\n"
."\n"
.'- **Narrowband HD™ transcoding templates**:'."\n"
."\n"
.' - **ld**: low definition.'."\n"
."\n"
.' - **sd**: standard definition.'."\n"
."\n"
.' - **hd**: high definition.'."\n"
."\n"
.' - **ud**: ultra-high definition.', 'type' => 'string', 'example' => 'lld', 'title' => ''],
'IsLazy' => ['description' => 'Indicates whether on-demand transcoding is enabled. Valid values:'."\n"
."\n"
.'- **true**: Transcoding only starts when the first viewer requests this transcoded stream.'."\n"
."\n"
.'- **false**: Transcoding starts immediately after the stream is published.', 'type' => 'boolean', 'example' => 'true', 'title' => ''],
'TranscodeName' => ['description' => 'The main streaming domain.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'CustomTranscodeParameters' => [
'description' => 'The custom transcoding configurations.',
'type' => 'object',
'properties' => [
'BitrateWithSource' => ['description' => 'The configuration for adaptive bitrate.', 'type' => 'object', 'example' => '{\\"UpLimit\\":2500,\\"LowerLimit\\":800,\\"Factor\\":1}', 'title' => ''],
'VideoProfile' => ['description' => 'The video codec profile. Valid values:'."\n"
."\n"
.'- **baseline**: suitable for mobile devices.'."\n"
."\n"
.'- **main**: suitable for SD devices.'."\n"
."\n"
.'- **high**: suitable for HD devices.', 'type' => 'string', 'example' => 'high', 'title' => ''],
'AudioBitrate' => ['description' => 'The audio bitrate. Unit: kbps. Valid values: 1 to **1000**.', 'type' => 'integer', 'format' => 'int32', 'example' => '64', 'title' => ''],
'Height' => ['description' => 'The output video height.', 'type' => 'integer', 'format' => 'int32', 'example' => '1200', 'title' => ''],
'RtsFlag' => ['description' => 'The tag for Real-Time Streaming (RTS). The value is fixed to **true**.'."\n"
."\n"
.'> This parameter is returned only when RTS is used.', 'type' => 'string', 'example' => 'true', 'title' => ''],
'TemplateType' => ['description' => 'The type of the custom transcoding template. Valid values:'."\n"
."\n"
.'- **h264**: H.264 standard transcoding.'."\n"
."\n"
.'- **h264-nbhd**: H.264 Narrowband HD™ transcoding.'."\n"
."\n"
.'- **h265**: H.265 standard transcoding.'."\n"
."\n"
.'- **h265-nbhd**: H.265 Narrowband HD™ transcoding.'."\n"
."\n"
.'- **audio**: audio-only transcoding.', 'type' => 'string', 'example' => 'h264', 'title' => ''],
'Bframes' => ['description' => 'Controls whether to remove B-frames from the transcoded output video. The value is fixed to **0**.', 'type' => 'string', 'example' => '0', 'title' => ''],
'ExtWithSource' => ['description' => 'Other adaptive settings that align the transcoded stream with the source stream.', 'type' => 'object', 'example' => '{\\"KeyFrameOpen\\":\\"yes\\",\\"Copyts\\":\\"yes\\",\\"SeiMode\\":1}', 'title' => ''],
'AudioRate' => ['description' => 'The audio sample rate. Valid values: 22050 to **96000**.'."\n"
."\n"
.'> If AudioProfile is set to **aac\\_ld**, the sample rate cannot exceed 44100.', 'type' => 'integer', 'format' => 'int32', 'example' => '44100', 'title' => ''],
'FpsWithSource' => ['description' => 'Adapts the output frame rate based on the source\'s frame rate, while keeping it within a specified range.', 'type' => 'object', 'example' => '{\\"UpLimit\\":60,\\"LowerLimit\\":1}', 'title' => ''],
'AudioCodec' => ['description' => 'The audio codec.', 'type' => 'string', 'example' => 'ACC', 'title' => ''],
'FPS' => ['description' => 'The output video frame rate. Unit: frames per second (FPS).', 'type' => 'integer', 'format' => 'int32', 'example' => '15', 'title' => ''],
'Gop' => ['description' => 'The Group of Pictures (GOP) size. Unit: frames. Valid values: 1 to **3000**.', 'type' => 'string', 'example' => '10', 'title' => ''],
'Width' => ['description' => 'The output video width.', 'type' => 'integer', 'format' => 'int32', 'example' => '1000', 'title' => ''],
'VideoBitrate' => ['description' => 'The video bitrate. Unit: kbps.', 'type' => 'integer', 'format' => 'int32', 'example' => '3000', 'title' => ''],
'AudioChannelNum' => ['description' => 'The number of audio channels. Valid values:'."\n"
."\n"
.'- **1**: mono.'."\n"
."\n"
.'- **2**: stereo.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''],
'AudioProfile' => ['description' => 'The audio codec profile. Valid values:'."\n"
."\n"
.'- **aac\\_low**'."\n"
."\n"
.'- **aac\\_he**'."\n"
."\n"
.'- **aac\\_he\\_v2**'."\n"
."\n"
.'- **aac\\_ld**', 'type' => 'string', 'example' => 'aac_low', 'title' => ''],
'ResWithSource' => ['description' => 'The adaptive resolution settings.', 'type' => 'object', 'example' => '{\\"Type\\":\\"short\\",\\"Value\\":\\"1080\\"}', 'title' => ''],
'DeInterlaced' => ['description' => 'Indicates whether to automatically detect and remove interlacing during transcoding. This converts interlaced content to progressive content.'."\n"
."\n"
.'- true: Deinterlacing is enabled.'."\n"
."\n"
.'- false: The source format is retained. No processing is performed. This is the default value.', 'type' => 'boolean', 'title' => '', 'example' => ''],
],
'title' => '',
'example' => '',
],
'EncryptParameters' => [
'description' => 'The encryption configurations.',
'type' => 'object',
'properties' => [
'EncryptType' => ['description' => 'The encryption type. The value is fixed to **aliyun**.', 'type' => 'string', 'example' => 'aliyun', 'title' => ''],
'KmsKeyID' => ['description' => 'The ID of the customer master key (CMK) in Key Management Service (KMS).', 'type' => 'string', 'example' => 'afce5722-81d2-43c3-9930-7601da11****', 'title' => ''],
'KmsKeyExpireInterval' => ['description' => 'The key rotation period. Unit: seconds. Valid values: 60 to 3600.', 'type' => 'string', 'example' => '3600', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameters', 'errorMessage' => '%s Please check and try again later.', 'description' => 'Exception parameter exists, please check and try again.'],
],
],
'title' => 'DescribeLiveStreamTranscodeInfo',
'description' => 'You must obtain the streaming domain before you call this operation to query the transcoding configurations.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 60 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamTranscodeInfo'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamTranscodeInfo',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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\\": false\\n },\\n \\"EncryptParameters\\": {\\n \\"EncryptType\\": \\"aliyun\\",\\n \\"KmsKeyID\\": \\"afce5722-81d2-43c3-9930-7601da11****\\",\\n \\"KmsKeyExpireInterval\\": \\"3600\\"\\n }\\n }\\n ]\\n }\\n}","type":"json"}]',
],
'DescribeLiveStreamTranscodeMetricData' => [
'summary' => 'Queries transcoding data for a specified domain name at the app and stream granularity.',
'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' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The domain name. Only a single domain name can be queried at a time.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'required' => true, 'example' => '2023-06-11T02:46:40Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. The end time must be later than the start time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'required' => true, 'example' => '2023-06-11T03:46:40Z', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The application name.', 'type' => 'string', 'required' => false, 'example' => 'app', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The stream name.', 'type' => 'string', 'required' => false, 'example' => 'stream', 'title' => ''],
],
[
'name' => 'NextPageToken',
'in' => 'query',
'schema' => ['description' => 'The paged query token. Each query returns a maximum of 5,000 rows of data. If the data to be queried exceeds 5,000 rows, the response provides the start index for the next query.'."\n"
."\n"
.'Pass this token in the request to continue querying data from the row after the last row returned in the previous query. This token is used for paging.', 'type' => 'string', 'required' => false, 'example' => 'UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0=', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
'DomainName' => ['description' => 'The domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'EndTime' => ['description' => 'The end time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'example' => '2023-06-11T02:46:40Z', 'title' => ''],
'NextPageToken' => ['description' => 'The paged query token. Each query returns a maximum of 5,000 rows of data. If the data to be queried exceeds 5,000 rows, the response provides the start index for the next query.'."\n"
."\n"
.'Pass this token in the request to continue querying data from the row after the last row returned in the previous query. This token is used for paging.', 'type' => 'string', 'example' => 'UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0=', 'title' => ''],
'PageSize' => ['description' => 'The number of returned data rows.', 'type' => 'integer', 'format' => 'int32', 'example' => '5000', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
'StartTime' => ['description' => 'The start time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'example' => '2023-06-11T03:46:40Z'."\n", 'title' => ''],
'StreamDetailData' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'StreamData' => [
'description' => 'The returned data set.',
'type' => 'array',
'items' => [
'description' => 'The stream data.',
'type' => 'object',
'properties' => [
'AppName' => ['description' => 'The application name.', 'type' => 'string', 'example' => 'app', 'title' => ''],
'Duration' => ['description' => 'The duration. Unit: seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '300', 'title' => ''],
'Fps' => [
'description' => 'The frame rate.',
'enumValueTitles' => ['normal' => 'normal', 'high' => 'high', 'def' => 'def'],
'type' => 'string',
'example' => 'high',
'title' => '',
],
'Region' => ['description' => 'The region.', 'type' => 'string', 'example' => 'cn-shanghai', 'title' => ''],
'Resolution' => [
'description' => 'The resolution. Valid values:'."\n"
."\n"
.'- 2K: 2K.'."\n"
.'- 4K: 4K.'."\n"
.'- LD: low definition.'."\n"
.'- SD: standard definition.'."\n"
.'- HD: high definition.'."\n"
.'- def: audio.',
'enumValueTitles' => ['SD' => 'SD', 'def' => 'def', '4K' => '4K', 'LD' => 'LD', '2K' => '2K', 'HD' => 'HD'],
'type' => 'string',
'example' => '4K',
'title' => '',
],
'StreamName' => ['description' => 'The stream name.', 'type' => 'string', 'example' => 'stream', 'title' => ''],
'TimeStamp' => ['description' => 'The start time of the time segment. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'example' => '2023-06-11T02:45:00Z', 'title' => ''],
'TranscodeType' => [
'description' => 'The transcoding type. Valid values:'."\n"
."\n"
.'- H264STD: H.264 default transcoding.'."\n"
.'- H264NBHD: H.264 Narrowband HD transcoding.'."\n"
.'- H265STD: H.265 default transcoding.'."\n"
.'- AUDIO: audio transcoding.',
'enumValueTitles' => ['H264NBHD' => 'H264NBHD', 'AUDIO' => 'AUDIO', 'H264STD' => 'H264STD', 'H265STD' => 'H265STD'],
'type' => 'string',
'example' => 'H264STD',
'title' => '',
],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['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' => 'The end time does not match the start time. Make sure that the start and end times match.'],
['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => 'The time span exceeds the limit. Please refer to the API documentation to specify a reasonable time span.'],
['errorCode' => 'InvalidPageToken', 'errorMessage' => 'The token of page is invalid.', 'description' => 'The specified paging token is incorrect. Specify the correct token returned by the last query and confirm that your request parameters are not modified.'],
['errorCode' => 'InvalidAppName.Mismatch', 'errorMessage' => 'The AppName param must be passed.', 'description' => 'The AppName parameter does not match. Make sure that you specify the correct 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' => ''],
['errorCode' => 'InvalidAppName.LengthTooLong', 'errorMessage' => 'The specified app name is too long.', 'description' => ''],
['errorCode' => 'InvalidTime.ValueNotSupported', 'errorMessage' => 'Specified Time is malformed.', 'description' => 'The specified time is invalid.'],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query transcoding usage of video streams at stream granularity',
'description' => '- Maximum query span: 24 hours.'."\n"
.'- Minimum query granularity: 5 minutes.'."\n"
.'- Maximum query range: data from the last 31 days.'."\n"
."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this API is 10 calls per second. If this limit is exceeded, the API calls are throttled, which may affect your business. Call this operation at a reasonable frequency.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamTranscodeMetricData'],
],
],
'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' => 'Queries the number of transcoding streams in real time by calling DescribeLiveStreamTranscodeStreamNum.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '107109',
'abilityTreeNodes' => ['FEATUREliveHVN9B2'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'SplitType',
'in' => 'query',
'schema' => [
'description' => 'The grouping type. Valid values:'."\n"
.'* domain (default)'."\n"
.'* template.',
'enumValueTitles' => ['template' => 'template.', 'domain' => 'domain.'],
'type' => 'string',
'default' => 'domain',
'enum' => ['domain', 'template'],
'required' => false,
'example' => 'template',
'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'UntranscodeNumber' => ['description' => 'The number of streams that are not transcoded.', 'type' => 'integer', 'format' => 'int64', 'example' => '27', 'title' => ''],
'LazyTranscodedNumber' => ['description' => 'The number of streams that triggered transcoding.', 'type' => 'integer', 'format' => 'int64', 'example' => '10', 'title' => ''],
'TranscodedNumber' => ['description' => 'The number of transcoded streams.', 'type' => 'integer', 'format' => 'int64', 'example' => '30', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '150191A4-DD88-5941-B48C-9DF59E0A8B1F', 'title' => ''],
'Total' => ['description' => 'The total number of transcoding streams.', 'type' => 'integer', 'format' => 'int64', 'example' => '57', 'title' => ''],
'TranscodeStreamCountDetails' => [
'description' => 'The transcoding template data.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Template' => ['description' => 'The name of the transcoding template.', 'type' => 'string', 'example' => 'template_name', 'title' => ''],
'Count' => ['description' => 'The number of streams for the transcoding template.', 'type' => 'integer', 'format' => 'int32', 'example' => '30', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => 'Parameter error'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => 'error on the live liveapi server.'],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query the number of live stream transcoding streams',
'description' => 'The QPS limit for a single user on this operation is 10 calls per second. If the limit is exceeded, API calls are throttled, which may affect your business. Call this operation at a reasonable frequency.',
'changeSet' => [
['createdAt' => '2025-04-11T03:12:48.000Z', 'description' => 'Error codes changed, Request parameters changed, Response parameters changed'],
],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamTranscodeStreamNum',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeLiveStreamWatermarkRules' => [
'summary' => 'Queries a list of watermark rules.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveCT0GRQ'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'Domain',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => false, 'example' => 'live.yourdomain.com', 'title' => ''],
],
[
'name' => 'PageNumber',
'in' => 'query',
'schema' => ['description' => 'The page number. The default value is 1.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries to return on each page. The default value is 100.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'Total' => ['description' => 'The total number of matching entries.', 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5c6a2a0df228-4a64- af62-20e91b9676b3', 'title' => ''],
'RuleInfoList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'RuleInfo' => [
'itemNode' => true,
'description' => 'The list of watermark rules.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'The list of watermark rules.',
'type' => 'object',
'properties' => [
'Domain' => ['description' => 'The streaming domain.', 'type' => 'string', 'example' => 'example.aliyundoc.com', 'title' => ''],
'Description' => ['description' => 'The custom description of the rule.', 'type' => 'string', 'example' => 'my rule', 'title' => ''],
'App' => ['description' => 'The AppName of the live stream.', 'type' => 'string', 'example' => 'liveApp****', 'title' => ''],
'Stream' => ['description' => 'The stream name. The following matching methods are supported:'."\n"
."\n"
.'- Exact match: Enter the full stream name. Example: liveStreamA.'."\n"
."\n"
.'- Wildcard match: Use an asterisk (`*`) to match all streams.'."\n"
."\n"
.'- Fuzzy match: Use prefix or suffix matching.'."\n"
."\n"
.'>'."\n"
."\n"
.'- Format for fuzzy matching: Use only one asterisk (`*`). The asterisk must be at the beginning or end of the string. Enclose the matching items in parentheses (`()`) and separate multiple items with vertical bars (`|`).'."\n"
."\n"
.'- Examples: `*(t1|t2)` matches all streams that end with `t1` or `t2`. `(abc|123)*` matches all streams that start with `abc` or `123`.'."\n"
."\n"
.'>', 'type' => 'string', 'example' => 'liveStreamA', 'title' => ''],
'Name' => ['description' => 'The custom name of the rule.', 'type' => 'string', 'example' => 'WatermarkRule****', 'title' => ''],
'TemplateId' => ['description' => 'The ID of the watermark template.'."\n"
."\n"
.'> To obtain the template ID, check the response of the [AddLiveStreamWatermark](~~2848096~~) operation.', 'type' => 'string', 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9 ****', 'title' => ''],
'RuleId' => ['description' => 'The ID of the watermark rule.'."\n"
."\n"
.'> To obtain the rule ID, check the response of the [AddLiveStreamWatermarkRule](~~2848100~~) operation.', 'type' => 'string', 'example' => '445409ec-7eaa-461d -8f29-4bec2eb9****', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameters', 'errorMessage' => '%s Please check and try again later.', 'description' => 'Exception parameter exists, please check and try again.'],
],
],
'title' => 'DescribeLiveStreamWatermarkRules',
'description' => 'This operation supports pagination.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 60 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamWatermarkRules'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamWatermarkRules',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveStreamWatermarks' => [
'summary' => 'Queries watermark templates.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveCT0GRQ'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'Domain',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => false, 'example' => 'live.yourdomain.com', 'title' => ''],
],
[
'name' => 'KeyWord',
'in' => 'query',
'schema' => ['description' => 'The keyword for the search. You can specify a template ID or name. Fuzzy search is supported for names.', 'type' => 'string', 'required' => false, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
],
[
'name' => 'PageNumber',
'in' => 'query',
'schema' => ['description' => 'The page number. The default value is 1.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of templates to return on each page. The default value is 100.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The watermark template information.',
'type' => 'object',
'properties' => [
'Total' => ['description' => 'The total number of matching entries.', 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5c6a2a0df228-4a64- af62-20e91b9676b3', 'title' => ''],
'WatermarkList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Watermark' => [
'description' => 'The list of watermark templates.',
'type' => 'array',
'items' => [
'description' => 'The list of watermark templates.',
'type' => 'object',
'properties' => [
'Type' => ['description' => 'The watermark type.'."\n"
."\n"
.'- 0: Image.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'XOffset' => ['description' => 'The X-axis offset of the watermark, in pixels.'."\n"
."\n"
.'> Relative to RefWidth. If OffsetCorner is TopLeft, XOffset is the horizontal distance between the top‑left corner of the watermark and the top‑left corner of the background video. Positive X points to the right.', 'type' => 'number', 'format' => 'float', 'example' => '50.0', 'title' => ''],
'RefWidth' => ['description' => 'The reference width of the video background, in pixels.', 'type' => 'integer', 'format' => 'int32', 'example' => '1920', 'title' => ''],
'YOffset' => ['description' => 'The Y-axis offset of the watermark, in pixels.'."\n"
."\n"
.'> Relative to RefHeight. If OffsetCorner is TopLeft, YOffset is the vertical distance between the top‑left corner of the watermark and the top‑left corner of the background video. Positive Y points downward.', 'type' => 'number', 'format' => 'float', 'example' => '100.0', 'title' => ''],
'Height' => ['description' => 'The height of the watermark image, in pixels. This value is relative to `RefHeight` and is scaled proportionally with the actual video resolution.', 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''],
'RefHeight' => ['description' => 'The reference height of the video background, in pixels.', 'type' => 'integer', 'format' => 'int32', 'example' => '1080', 'title' => ''],
'PictureUrl' => ['description' => 'The URL of the watermark image.', 'type' => 'string', 'example' => 'http://example.com', 'title' => ''],
'Transparency' => ['description' => 'The opacity of the watermark. Value range: `0` (fully transparent) to `255` (fully opaque).', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'title' => ''],
'Description' => ['description' => 'The custom description of the watermark.', 'type' => 'string', 'example' => 'my watermark', 'title' => ''],
'OffsetCorner' => ['description' => 'The anchor point for the watermark\'s position. Valid values:'."\n"
."\n"
.'- TopLeft'."\n"
."\n"
.'- TopRight'."\n"
."\n"
.'- BottomLeft'."\n"
."\n"
.'- BottomRight', 'type' => 'string', 'example' => 'TopRight', 'title' => ''],
'RuleCount' => ['description' => 'The number of watermark rules configured for the domain.', 'type' => 'integer', 'format' => 'int32', 'example' => '12', 'title' => ''],
'Name' => ['description' => 'The name of the watermark.', 'type' => 'string', 'example' => 'livewatermark****', 'title' => ''],
'TemplateId' => ['description' => 'The ID of the watermark template.', 'type' => 'string', 'example' => '445409ec-7eaa-4 61d-8f29-4bec2eb9 ****', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameters', 'errorMessage' => '%s Please check and try again later.', 'description' => 'Exception parameter exists, please check and try again.'],
],
],
'title' => 'DescribeLiveStreamWatermarks',
'description' => 'This operation supports paging.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 60 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamWatermarks'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamWatermarks',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveStreamsBlockList' => [
'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' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'PageNum',
'in' => 'query',
'schema' => ['description' => 'The number of the page to return. Default value: **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '1', 'example' => '2', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries to return on each page. Valid values: 1 to 3000. Default value: 2000.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '3000', 'minimum' => '1', 'default' => '2000', 'example' => '10', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'PageNum' => ['description' => 'The page number of the returned page.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '9D855EC8-CF71-4615-B164-F7DFCB23B41D', 'title' => ''],
'TotalPage' => ['description' => 'The total number of pages.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''],
'PageSize' => ['description' => 'The number of entries returned on the current page.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''],
'TotalNum' => ['description' => 'The total number of entries that meet the specified conditions.', 'type' => 'integer', 'format' => 'int32', 'example' => '11', 'title' => ''],
'DomainName' => ['description' => 'The main streaming domain.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'StreamUrls' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'StreamUrl' => [
'description' => 'The complete streaming URL.',
'type' => 'array',
'items' => ['description' => 'The complete streaming URL.', 'type' => 'string', 'example' => 'example.com/liveApp****/liveStream****', 'title' => ''],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [],
'title' => 'DescribeLiveStreamsBlockList',
'summary' => 'Queries the live streams that are blacklisted under a streaming domain.',
'description' => 'The streaming URLs refer to the URLs for playback.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamsBlockList'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamsBlockList',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveStreamsControlHistory' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveYUZBM3'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The application name. View AppName on the [Stream Management](~~197397~~) page.', 'type' => 'string', 'required' => false, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.', 'type' => 'string', 'required' => true, 'example' => '2017-12-21T08:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.'."\n"
."\n"
.'> The interval between EndTime and StartTime cannot exceed 7 days.', 'type' => 'string', 'required' => true, 'example' => '2017-12-22T08:00:00Z', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '9C31856F-386D-4DB3-BE79-A0AA493D702A', 'title' => ''],
'ControlInfo' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'LiveStreamControlInfo' => [
'description' => 'The operation records.',
'type' => 'array',
'items' => [
'description' => 'The operation records.',
'type' => 'object',
'properties' => [
'ClientIP' => ['description' => 'The client IP address.', 'type' => 'string', 'example' => '10.207.XX.XX', 'title' => ''],
'TimeStamp' => ['description' => 'The time when the operation was performed. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2015-12-01T16:36:18Z', 'title' => ''],
'Action' => ['description' => 'The name of the operation performed.', 'type' => 'string', 'example' => 'DescribeLiveStreamsControlHistory', 'title' => ''],
'StreamName' => ['description' => 'The name of the live stream.', 'type' => 'string', 'example' => 'liveStream****', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['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' => 'The value specified for the StartTime parameter is invalid.'],
['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => 'Illegal input parameters'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''],
],
],
'title' => 'DescribeLiveStreamsControlHistory',
'summary' => 'Queries the operations performed on live streams for a specified domain name or application.',
'description' => 'The operations include all API operations that were called on live streams.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamsControlHistory'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamsControlHistory',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveStreamsNotifyRecords' => [
'summary' => 'Queries stream callback records.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATURElive066BXV'],
'tenantRelevance' => 'tenant',
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The ingest domain.', 'type' => 'string', 'required' => true, 'example' => 'push.example1.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the application to which the live stream belongs. You can view the AppName on the [Stream Management](~~197397~~) page.', 'type' => 'string', 'required' => false, 'example' => 'app', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The name of the live stream. You can view the StreamName on the [Stream Management](~~197397~~) page.', 'type' => 'string', 'required' => false, 'example' => 'stream', 'title' => ''],
],
[
'name' => 'Status',
'in' => 'query',
'schema' => [
'description' => 'Specifies whether the callback is successful. Valid values:'."\n"
.'- success: Successful.'."\n"
.'- failed: Failed.',
'enumValueTitles' => ['success' => 'Successful.', 'failed' => 'Failed.'],
'type' => 'string',
'required' => false,
'enum' => ['success', 'failed'],
'example' => 'success',
'title' => '',
],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).'."\n"
."\n"
.'> The start time must be within the last 7 days.', 'type' => 'string', 'required' => true, 'example' => '2017-12-10T08:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. The end time must be later than the start time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'required' => true, 'example' => '2017-12-10T09:00:00Z', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The page size. Default value: 20. Maximum value: 500. Valid values: any integer from 1 to 500.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '20', 'example' => '20', 'title' => ''],
],
[
'name' => 'PageNumber',
'in' => 'query',
'schema' => ['description' => 'The page number. Default value: 1.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '1', 'example' => '1', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The stream ingest callback records.',
'type' => 'object',
'properties' => [
'NotifyRecordsInfo' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'LiveStreamNotifyRecordsInfo' => [
'description' => 'The stream ingest callback records.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'NotifyType' => ['description' => 'The callback type. Valid values:'."\n"
.'- publish: a stream ingest event.'."\n"
.'- publish_done: a stream disconnection event.', 'type' => 'string', 'example' => 'publish_done', 'title' => ''],
'Description' => ['description' => 'The result description. The value is success if the callback is successful. Otherwise, an error message is returned.', 'type' => 'string', 'example' => 'success', 'title' => ''],
'StreamName' => ['description' => 'The name of the live stream.', 'type' => 'string', 'example' => 'stream', 'title' => ''],
'NotifyTime' => ['description' => 'The time when the callback occurred (UTC).', 'type' => 'string', 'example' => '2022-10-19T19:09:28Z', 'title' => ''],
'DomainName' => ['description' => 'The ingest domain.', 'type' => 'string', 'example' => 'push.example1.com', 'title' => ''],
'NotifyContent' => ['description' => 'The specific content of the callback.', 'type' => 'string', 'example' => '{\\"action\\":\\"publish_done\\",\\"app\\":\\"push.example1.com\\"}', 'title' => ''],
'NotifyUrl' => ['description' => 'The callback URL.', 'type' => 'string', 'example' => 'http://xx.xx.xx.xx/callbacks', 'title' => ''],
'NotifyResult' => ['description' => 'The callback result. Valid values:'."\n"
.'- success: Successful.'."\n"
.'- failed: Failed.', 'type' => 'string', 'example' => 'success', 'title' => ''],
'AppName' => ['description' => 'The name of the application to which the live stream belongs.', 'type' => 'string', 'example' => 'app', 'title' => ''],
'NotifyResponse' => ['description' => 'The response returned by the user after receiving the callback.', 'type' => 'string', 'example' => '{"Code":0,"Msg":"Success"}', 'title' => ''],
'NotifyHeader' => ['description' => 'The request header of the callback request.', 'type' => 'string', 'example' => 'Host: 123456.cn-shanghai.example1.com'."\n"
.'User-Agent: Go-http-client/1.1'."\n"
.'Accept-Encoding: gzip', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'PageNum' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'PageSize' => ['description' => 'The page size.', 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'F675E4B4-125D-1533-901B-11A724644285', 'title' => ''],
'TotalNum' => ['description' => 'The total number of entries that match the specified conditions.', 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''],
'TotalPage' => ['description' => 'The total number of pages.', 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['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' => 'Illegal input parameters'],
['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' => ''],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query stream callback records',
'description' => 'The QPS limit for a single user of this API operation is 100 calls per second. If the limit is exceeded, API calls are throttled, which may affect your business. Call this operation at an appropriate frequency.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamsNotifyRecords'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamsNotifyRecords',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
],
'DescribeLiveStreamsNotifyUrlConfig' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '107102',
'abilityTreeNodes' => ['FEATUREliveYUZBM3'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The ingest domain.', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => ' 40A4F36D-A7CC-473A-88E7-154F92242566', 'title' => ''],
'LiveStreamsNotifyConfig' => [
'description' => 'The callback configuration.',
'type' => 'object',
'properties' => [
'DomainName' => ['description' => 'The ingest domain.', 'type' => 'string', 'example' => 'demo.aliyundoc.com', 'title' => ''],
'NotifyUrl' => ['description' => 'The callback URL for receiving live stream information.', 'type' => 'string', 'example' => 'http://guide.aliyundoc.com/notify', 'title' => ''],
'ExceptionNotifyUrl' => ['description' => 'The callback URL for receiving notifications about exception events.', 'type' => 'string', 'example' => 'https://4a7e5f08.r37.cpolar.top/live/Record/call-back/streamException', 'title' => ''],
'NotifyReqAuth' => ['description' => 'Indicates whether authentication is enabled. Valid values:'."\n"
."\n"
.'- **yes**'."\n"
."\n"
.'- **no**', 'type' => 'string', 'example' => 'yes', 'title' => ''],
'NotifyAuthKey' => ['description' => 'The authentication key.', 'type' => 'string', 'example' => '123456', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => 'error on the live liveapi server.'],
],
],
'title' => 'DescribeLiveStreamsNotifyUrlConfig',
'summary' => 'Queries the callback configuration for stream ingest.',
'description' => 'You can call this API to query the webhook address and authentication information for an ingest domain.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'You can call this operation up to 1,000 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'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' => 'Request parameters changed'],
['createdAt' => '2025-02-20T08:25:18.000Z', 'description' => 'Error codes changed, Request parameters changed, Response parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamsNotifyUrlConfig'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamsNotifyUrlConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveStreamsOnlineList' => [
'summary' => 'Queries the information about all active streams under a specified domain name or a specified application under a domain name.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => [
'operationType' => 'get',
'abilityTreeCode' => '107103',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain of the streamer.'."\n"
.'> - When you specify DomainName, make sure that the domain name is a live streaming domain name and that you have the permissions to manage the domain name.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the application to which the stream belongs. You can view the AppName on the [Stream Management](~~197397~~) page.', 'type' => 'string', 'required' => false, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The stream name. Only a single StreamName can be specified. You can view the StreamName on the [Stream Management](~~197397~~) page.', 'type' => 'string', 'required' => false, 'example' => 'liveStream****', 'title' => ''],
],
[
'name' => 'OnlyStream',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to return only specified fields. Valid values: '."\n"
."\n"
.'- **yes**: Only the DomainName, AppName, StreamName, and PublishTime fields are returned. '."\n"
."\n"
.'- **no** (default): All fields are returned.', 'type' => 'string', 'required' => false, 'example' => 'no', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries per page. Valid values: 1 to 3000. Default value: 2000.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '2000', 'example' => '1500', 'title' => ''],
],
[
'name' => 'PageNum',
'in' => 'query',
'schema' => ['description' => 'The page number. Default value: 1.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '1', 'example' => '1', 'title' => ''],
],
[
'name' => 'StreamType',
'in' => 'query',
'schema' => [
'description' => 'The stream type. Valid values: '."\n"
."\n"
.'- **all** (default): all streams.'."\n"
.' '."\n"
.'- **raw**: raw streams.'."\n"
.' '."\n"
.'- **trans**: transcoded streams.',
'enumValueTitles' => ['all' => 'all streams.', 'raw' => 'raw streams.', 'trans' => 'transcoded streams.'],
'type' => 'string',
'required' => false,
'enum' => ['all', 'raw', 'trans'],
'example' => 'all',
'title' => '',
],
],
[
'name' => 'QueryType',
'in' => 'query',
'schema' => [
'description' => 'Specifies whether to use fuzzy match for the stream name. Valid values:'."\n"
."\n"
.'- **fuzzy** (default): fuzzy match.'."\n"
."\n"
.'- **strict**: exact match.',
'enumValueTitles' => ['strict' => 'exact match.', 'fuzzy' => 'fuzzy match.'],
'type' => 'string',
'required' => false,
'enum' => ['fuzzy', 'strict'],
'example' => 'fuzzy',
'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The active stream information.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5c6a2a0df228-4a64- af62-20e91b9676b3', 'title' => ''],
'TotalPage' => ['description' => 'The total number of pages.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''],
'PageNum' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'PageSize' => ['description' => 'The number of entries per page.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''],
'TotalNum' => ['description' => 'The total number of entries that meet the specified conditions.', 'type' => 'integer', 'format' => 'int32', 'example' => '11', 'title' => ''],
'OnlineInfo' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'LiveStreamOnlineInfo' => [
'description' => 'The information about the streams that are being ingested.',
'type' => 'array',
'items' => [
'description' => 'The information about the streams that are being ingested.',
'type' => 'object',
'properties' => [
'AudioDataRate' => ['description' => 'The audio bitrate of the live stream. Unit: Kbps.'."\n"
.'> This parameter is available only after you submit a ticket to enable the whitelist configuration. For more information about how to submit a ticket, see Contact Us.', 'type' => 'integer', 'format' => 'int32', 'example' => '600', 'title' => ''],
'FrameRate' => ['description' => 'The frame rate. Unit: FPS.', 'type' => 'integer', 'format' => 'int32', 'example' => '15', 'title' => ''],
'PublishUrl' => ['description' => 'The full ingest URL.', 'type' => 'string', 'example' => 'rtmp://demo.aliyundoc.com/live/test****', 'title' => ''],
'StreamName' => ['description' => 'The stream name.', 'type' => 'string', 'example' => 'liveStream****', 'title' => ''],
'AudioCodecId' => ['description' => 'The audio codec ID.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''],
'Height' => ['description' => 'The height of the video resolution. Unit: pixel.', 'type' => 'integer', 'format' => 'int32', 'example' => '720', 'title' => ''],
'VideoDataRate' => ['description' => 'The video bitrate of the live stream. Unit: Kbps.'."\n"
.'> This parameter is available only after you submit a ticket to enable the whitelist configuration. For more information about how to submit a ticket, see Contact Us.', 'type' => 'integer', 'format' => 'int32', 'example' => '600', 'title' => ''],
'DomainName' => ['description' => 'The streaming domain of the streamer.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'PublishDomain' => ['description' => 'The ingest domain. If you use live center ingest, you can directly specify the streaming domain.', 'type' => 'string', 'example' => 'demo.aliyundoc.com', 'title' => ''],
'PublishTime' => ['description' => 'The time when stream ingest started. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'example' => '2021-08-09T02:37:59Z', 'title' => ''],
'AppName' => ['description' => 'The name of the application to which the stream belongs.', 'type' => 'string', 'example' => 'liveApp****', 'title' => ''],
'PublishType' => ['description' => 'The ingest type. Valid values:'."\n"
."\n"
.'- **edge**: edge ingest.'."\n"
."\n"
.'- **center**: live center ingest.', 'type' => 'string', 'example' => 'edge', 'title' => ''],
'VideoCodecId' => ['description' => 'The video codec ID.', 'type' => 'integer', 'format' => 'int32', 'example' => '7', 'title' => ''],
'Transcoded' => ['description' => 'Indicates whether the stream is a transcoded stream. Valid values:'."\n"
."\n"
.'- **yes**: The stream is a transcoded stream.'."\n"
."\n"
.'- **no**: The stream is not a transcoded stream.', 'type' => 'string', 'example' => 'no', 'title' => ''],
'Width' => ['description' => 'The width of the video resolution. Unit: pixel.', 'type' => 'integer', 'format' => 'int32', 'example' => '1280', 'title' => ''],
'ClientIp' => ['description' => 'The IP address of the ingest client.', 'type' => 'string', 'example' => '106.11.XX.XX', 'title' => ''],
'ServerIp' => ['description' => 'The IP address of the ingest node.', 'type' => 'string', 'example' => '120.221.XX.XX', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['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' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query active streams under a domain name',
'description' => 'This operation supports the following stream types: '."\n"
."\n"
.'- all: Queries all streams.'."\n"
."\n"
.'- raw: Queries raw streams.'."\n"
."\n"
.'- trans: Queries transcoded streams.'."\n"
."\n"
.'## QPS limit'."\n"
.'The QPS limit for a single user is 10,000 calls per minute. If the limit is exceeded, the API calls are throttled, which may affect your business. Call this operation at a reasonable frequency.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2024-08-01T06:16:55.000Z', 'description' => 'Request parameters changed, Response parameters changed'],
['createdAt' => '2024-07-11T03:43:38.000Z', 'description' => 'Request parameters changed, Response parameters changed'],
['createdAt' => '2024-01-26T05:58:43.000Z', 'description' => 'Response parameters changed'],
],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamsOnlineList',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeLiveStreamsPublishList' => [
'summary' => 'Retrieves the historical stream ingest records of a domain name, an application under a domain name, or a specific stream within a specified time range.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => [
'operationType' => 'get',
'abilityTreeCode' => '107105',
'abilityTreeNodes' => ['FEATUREliveYUZBM3'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The ingest domain or streamer streaming domain.'."\n"
.'> - When you specify DomainName, make sure that the domain name is a live streaming domain name and that the user calling this operation has the permissions to operate on the specified domain name.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the application to which the stream belongs. You can view AppName on the [Stream Management](~~197397~~) page.', 'type' => 'string', 'required' => false, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The stream name. You can view StreamName on the [Stream Management](~~197397~~) page.', 'type' => 'string', 'required' => false, 'example' => 'liveStream****', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time of stream ingest.'."\n"
."\n"
.'Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'required' => true, 'example' => '2017-12-21T08:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. The interval between EndTime and StartTime cannot exceed 30 days.'."\n"
."\n"
.'Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'required' => true, 'example' => '2017-12-22T08:00:00Z', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The page size. Valid values: **1 to 3000**. Default value: **2000**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '2000', 'example' => '1500', 'title' => ''],
],
[
'name' => 'PageNumber',
'in' => 'query',
'schema' => ['description' => 'The page number. Default value: **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '1', 'example' => '1', 'title' => ''],
],
[
'name' => 'StreamType',
'in' => 'query',
'schema' => [
'description' => 'The stream type. Valid values:'."\n"
."\n"
.'- **Not specified**: queries raw streams.'."\n"
.'- **all**: queries all streams.'."\n"
.'- **trans**: queries transcoded streams.',
'enumValueTitles' => ['all' => 'queries all streams.', 'raw' => 'queries raw streams.', 'trans' => 'queries transcoded streams.'],
'type' => 'string',
'required' => false,
'enum' => ['all', 'raw', 'trans'],
'example' => 'all',
'title' => '',
],
],
[
'name' => 'QueryType',
'in' => 'query',
'schema' => [
'description' => 'Specifies whether to use fuzzy match for the stream name. Valid values:'."\n"
.'- **fuzzy** (default): fuzzy match.'."\n"
.'- **strict**: exact match.',
'enumValueTitles' => ['strict' => 'exact match.', 'fuzzy' => 'fuzzy match.'],
'type' => 'string',
'required' => false,
'enum' => ['fuzzy', 'strict'],
'example' => 'fuzzy',
'title' => '',
],
],
[
'name' => 'OrderBy',
'in' => 'query',
'schema' => [
'description' => 'The sorting method. Valid values:'."\n"
."\n"
.'- **stream_name_desc**: sorts by live stream name in descending order.'."\n"
.'- **stream_name_asc**: sorts by live stream name in ascending order.'."\n"
.'- **publish_time_desc**: sorts by stream ingest time in descending order.'."\n"
.'- **publish_time_asc** (default): sorts by stream ingest time in ascending order.',
'enumValueTitles' => ['publish_time_asc' => 'sorts by stream ingest time in ascending order.', 'publish_time_desc' => 'sorts by stream ingest time in descending order.', 'stream_name_asc' => 'sorts by live stream name in ascending order.', 'stream_name_desc' => 'sorts by live stream name in descending order.'],
'type' => 'string',
'required' => false,
'enum' => ['stream_name_desc', 'stream_name_asc', 'publish_time_desc', 'publish_time_asc'],
'example' => 'publish_time_desc',
'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'TotalPage' => ['description' => 'The total number of pages.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''],
'PageNum' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''],
'PageSize' => ['description' => 'The page size.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => ' 40A4F36D-A7CC-473A-88E7-154F92242566', 'title' => ''],
'TotalNum' => ['description' => 'The total number of entries that match the specified conditions.', 'type' => 'integer', 'format' => 'int32', 'example' => '11', 'title' => ''],
'PublishInfo' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'LiveStreamPublishInfo' => [
'description' => 'The stream ingest record information.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'EdgeNodeAddr' => ['description' => 'The IP address of the CDN upstream node.', 'type' => 'string', 'example' => '10.175.XX.XX', 'title' => ''],
'PublishUrl' => ['description' => 'The complete ingest URL.', 'type' => 'string', 'example' => 'rtmp://demo.aliyundoc.com/liveApp****/liveStream****', 'title' => ''],
'StreamName' => ['description' => 'The stream name.', 'type' => 'string', 'example' => 'liveStream****', 'title' => ''],
'DomainName' => ['description' => 'The ingest domain or streamer streaming domain.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'StopTime' => ['description' => 'The time when stream ingest stopped. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'example' => '2015-12-02T03:11:19Z', 'title' => ''],
'TranscodeId' => ['description' => 'The transcoding template ID.'."\n"
.'> This parameter is not returned when the Transcoded parameter is set to no.', 'type' => 'string', 'example' => 'ld', 'title' => ''],
'PublishDomain' => ['description' => 'The ingest domain.', 'type' => 'string', 'example' => 'demo.aliyundoc.com', 'title' => ''],
'AppName' => ['description' => 'The name of the application to which the stream belongs.', 'type' => 'string', 'example' => 'liveApp****', 'title' => ''],
'PublishTime' => ['description' => 'The time when stream ingest started. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'example' => '2015-12-02T03:05:53Z', 'title' => ''],
'PublishType' => ['description' => 'The stream ingest type. Valid values:'."\n"
."\n"
.'- **edge**: edge ingest.'."\n"
.'- **center**: live center ingest.', 'type' => 'string', 'example' => 'edge', 'title' => ''],
'Transcoded' => ['description' => 'Indicates whether the stream is a transcoded stream.', 'type' => 'string', 'example' => 'yes', 'title' => ''],
'ClientAddr' => ['description' => 'The IP address of the streamer.', 'type' => 'string', 'example' => '10.175.XX.XX', 'title' => ''],
'StreamUrl' => ['description' => 'The streaming URL.', 'type' => 'string', 'example' => 'http://example.com/liveApp****/liveStream****.flv', 'title' => ''],
'AliInnerErrorFlags' => ['description' => 'The error code for the stream disconnection reason. Format: 3 digits or 1 digit.', 'type' => 'string', 'example' => '002', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['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' => 'The value specified for the StartTime parameter is invalid.'],
['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' => 'Your account has not yet activated ApsaraVideo Live.'],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query historical stream list for a domain name',
'description' => 'You can call this operation to query historical streams within the last 30 days. The returned data contains the active stream information within the specified time range. This operation supports the following sorting methods:'."\n"
."\n"
.'- stream_name_desc: sorts by live stream name in descending order.'."\n"
."\n"
.'- stream_name_asc: sorts by live stream name in ascending order.'."\n"
."\n"
.'- publish_time_desc: sorts by stream ingest time in descending order.'."\n"
."\n"
.'- publish_time_asc: sorts by stream ingest time in ascending order.'."\n"
."\n\n"
."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this operation is 3 calls per second. If this limit is exceeded, the API call is throttled, which may affect your business. Call this operation appropriately.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2024-12-30T02:08:48.000Z', 'description' => 'Error codes changed, Response parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamsPublishList'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamsPublishList',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeLiveStreamsTotalCount' => [
'summary' => 'Queries the cumulative number of live streams at the day granularity by calling the DescribeLiveStreamsTotalCount operation.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveYUZBM3'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The ingest domain or streaming domain. This parameter is required when you query domain-level data. You can specify up to 10 domain names in a batch query. Separate multiple domain names with commas (,).', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'Typ',
'in' => 'query',
'schema' => ['description' => 'If you leave this parameter empty, domain-level data is queried by default. Set this parameter to aliuid to query UID-level data.', 'type' => 'string', 'required' => false, 'example' => 'aliuid', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format (UTC).'."\n"
.'> The maximum query range is the last 1.5 years.', 'type' => 'string', 'required' => true, 'example' => '2023-07-24T16:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. The end time must be later than the start time. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format (UTC).'."\n"
.'> The interval between StartTime and EndTime must be within 15 days, and EndTime cannot be later than the current time. Data for the current day can be queried only on the next day.', 'type' => 'string', 'required' => true, 'example' => '2023-07-25T16:00:00Z', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'String FCFFE4A4-F34F-4EEF-B401-36A01689AFBC', 'title' => ''],
'StreamCountList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'StreamCountInfos' => [
'description' => 'The stream count statistics.',
'type' => 'array',
'items' => [
'description' => 'The details of the statistics.',
'type' => 'object',
'properties' => [
'Count' => ['description' => 'The cumulative number of live streams.', 'type' => 'integer', 'format' => 'int32', 'example' => '934', 'title' => ''],
'Timestamp' => ['description' => 'The time. The time is in the yyyy-MM-ddTHH:mm:ssZ format (UTC).', 'type' => 'string', 'example' => '2023-07-24T16:00:00Z', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''],
['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''],
['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => 'Illegal input parameters'],
['errorCode' => 'Duration.Exceed', 'errorMessage' => 'Duration between StartTime and EndTime is too long.', 'description' => ''],
],
404 => [
['errorCode' => 'InvalidDomain.NotFound', 'errorMessage' => 'The domain provided does not belong to you.', 'description' => ''],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query the cumulative number of live streams at the day granularity',
'description' => '- Maximum query time span: 15 days.'."\n"
.'- Maximum query time range: up to 1.5 years of historical data.'."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this operation is 100 calls per minute. If this limit is exceeded, the API calls are throttled, which may affect your business. Call this operation as needed.',
'extraInfo' => '| Error code | Description | HTTP status code | Meaning|'."\n"
.'| :-----| :-----| :---- |:----|'."\n"
.'| InvalidStartTime.Malformed | Specified StartTime is malformed. |400|The start time is invalid. |'."\n"
.'| InvalidEndTime.Malformed |Specified EndTime is malformed. |400 | The end time is invalid.|'."\n"
.'| MissingDomainName | DomainName is mandatory for this action. | 400 | The DomainName parameter is missing. |'."\n"
.'|InvalidParam |Parameter invalid. | 400 |The parameter is invalid. |'."\n"
.'| Duration.Exceed |Duration between StartTime and EndTime is too long. | 400 | The time span between StartTime and EndTime is too long. |'."\n"
.'|InvalidDomain.NotFound | The domain provided does not belong to you. |404 |The domain name does not exist or does not belong to the current user. |'."\n"
.'| InternalError | The request processing has failed due to backend service exception. | 500 | An internal error occurred.|.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'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' => 'Queries the tags of ApsaraVideo Live resources.',
'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' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'ResourceId',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The resource IDs. The resources are domain names for live streaming. You can query up to 50 resource IDs at a time.',
'type' => 'array',
'items' => ['description' => 'The resource ID.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
'required' => true,
'example' => 'example.com',
'maxItems' => 50,
'title' => '',
],
],
[
'name' => 'Tag',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'A list of tags.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Key' => ['description' => 'The tag key. You can specify up to 20 tag keys.', 'type' => 'string', 'required' => false, 'example' => 'env', 'title' => ''],
'Value' => ['description' => 'The tag value. You can specify up to 20 tag values.', 'type' => 'string', 'required' => false, 'example' => 'product', 'title' => ''],
],
'required' => false,
'description' => 'A list of tags.',
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 20,
'title' => '',
'example' => '',
],
],
[
'name' => 'ResourceType',
'in' => 'query',
'schema' => [
'description' => 'The type of the resource.',
'enumValueTitles' => ['DOMAIN' => 'A live streaming domain.'],
'type' => 'string',
'required' => true,
'example' => 'DOMAIN',
'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '****41F1-04A5-496F-8C8D-634BDBE6****', 'title' => ''],
'TagResources' => [
'description' => 'A list of resources and their associated tags.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'ResourceId' => ['description' => 'The resource ID.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'Tag' => [
'description' => 'The tags bound to the resource.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Key' => ['description' => 'The tag key.', 'type' => 'string', 'example' => 'env', 'title' => ''],
'Value' => ['description' => 'The tag value.', 'type' => 'string', 'example' => 'product', 'title' => ''],
],
'description' => 'The tag information.',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => 'A list of resources and their associated tags.',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [],
'title' => 'DescribeLiveTagResources',
'description' => 'You can call this operation up to 10 times per second per account.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2022-08-31T08:13:45.000Z', 'description' => 'Error codes changed'],
],
'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' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveTopDomainsByFlow' => [
'summary' => 'Queries the domains of a user ranked by traffic volume by calling DescribeLiveTopDomainsByFlow.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveYUZBM3'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time must be in UTC. The minimum data granularity is 5 minutes. If you do not specify this parameter, data for the current month is returned by default.', 'type' => 'string', 'required' => false, 'example' => '2018-03-17T16:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. The end time must be later than the start time. Specify the time in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2018-03-20T16:00:00Z', 'title' => ''],
],
[
'name' => 'Limit',
'in' => 'query',
'schema' => ['description' => 'The maximum number of domain names to return. Default value: 20. Valid values: 1 to 100.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'default' => '20', 'example' => '20', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'DomainOnlineCount' => ['description' => 'The total number of running domain names under the account.', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
'EndTime' => ['description' => 'The end time. The time follows the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2018-03-20T16:00:00Z', 'title' => ''],
'StartTime' => ['description' => 'The start time. The time follows the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2018-03-17T16:00:00Z', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '33834C3E-388E-5FFE-A8AE-63575035C064', 'title' => ''],
'DomainCount' => ['description' => 'The total number of domain names under the account.', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
'TopDomains' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'TopDomain' => [
'description' => 'The list of domain names ranked by traffic.',
'type' => 'array',
'items' => [
'description' => 'The list of domain names ranked by traffic.',
'type' => 'object',
'properties' => [
'MaxBps' => ['description' => 'The peak bandwidth.', 'type' => 'integer', 'format' => 'int64', 'example' => '22139626', 'title' => ''],
'Rank' => ['description' => 'The ranking.', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
'TotalAccess' => ['description' => 'The number of visits.', 'type' => 'integer', 'format' => 'int64', 'example' => '107784230', 'title' => ''],
'TrafficPercent' => ['description' => 'The proportion of traffic.', 'type' => 'string', 'example' => '30.64191989360235', 'title' => ''],
'DomainName' => ['description' => 'The domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'TotalTraffic' => ['description' => 'The total traffic.', 'type' => 'string', 'example' => '2043859876683.9001', 'title' => ''],
'MaxBpsTime' => ['description' => 'The time when the peak bandwidth occurred.', 'type' => 'string', 'example' => '1457111400', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'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' => 'The value specified for the StartTime parameter is invalid.'],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query top domains by traffic',
'description' => '- If you do not specify StartTime or EndTime, data for the current month is returned by default. You can also query data for a specified time range. Both StartTime and EndTime must be specified together.'."\n"
.'- You can query data for up to 90 days.'."\n"
.'## QPS limit'."\n"
.'The QPS limit for a single user on this operation is 10 calls per second. If the limit is exceeded, API calls are throttled, which may affect your business. Call this operation as needed.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveTopDomainsByFlow'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveTopDomainsByFlow',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeLiveUpVideoAudioInfo' => [
'summary' => 'Queries the audio and video parameters of an upstream ingest stream within a specified time range.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '107116',
'abilityTreeNodes' => ['FEATUREliveYUZBM3'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'Stream',
'in' => 'query',
'schema' => ['description' => 'The full name of the stream to query. The format is `rtmp:////`', 'type' => 'string', 'required' => true, 'example' => 'rtmp://example.com/AppName/StreamName', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time. The format is \\`yyyy-MM-ddTHH:mm:ssZ\\` in UTC.', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T15:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. The format is \\`yyyy-MM-ddTHH:mm:ssZ\\` in UTC.', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T15:10:00Z ', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The audio and video information.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'BC858082-736F-4A25-867B-E5B67C85ACF7', 'title' => ''],
'UpItems' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'PublishItem' => [
'itemNode' => true,
'description' => 'The information about the ingest streams.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'The details of the ingest stream.',
'type' => 'object',
'properties' => [
'AacHeaders' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'AacHeaders' => [
'description' => 'The number of audio Advanced Audio Coding (AAC) headers per second. Unit: count.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'The audio AAC headers per second.',
'type' => 'object',
'properties' => [
'Time' => ['description' => 'The query time. This is a UNIX timestamp in milliseconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1538134750408', 'title' => ''],
'Value' => ['description' => 'The value of the metric per second at the specified time.', 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'AppName' => ['description' => 'The name of the ingest application.', 'type' => 'string', 'example' => 'AppName', 'title' => ''],
'AudioBitRate' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'AudioBitRate' => [
'description' => 'The audio bitrate per second. Unit: bit/s.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'The audio bitrate per second.',
'type' => 'object',
'properties' => [
'Time' => ['description' => 'The query time. This is a UNIX timestamp in milliseconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1538134750408', 'title' => ''],
'Value' => ['description' => 'The value of the metric per second at the specified time.', 'type' => 'integer', 'format' => 'int32', 'example' => '24552', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'AudioFrames' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'AudioFrames' => [
'description' => 'The audio frame rate per second. Unit: frames.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'The audio frame rate per second.',
'type' => 'object',
'properties' => [
'Time' => ['description' => 'The query time. This is a UNIX timestamp in milliseconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1538134750408', 'title' => ''],
'Value' => ['description' => 'The value of the metric per second at the specified time.', 'type' => 'integer', 'format' => 'int32', 'example' => '23', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'AudioInterval' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'AudioInterval' => [
'description' => 'The maximum audio frame interval per second. Unit: milliseconds.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'The maximum audio frame interval per second.',
'type' => 'object',
'properties' => [
'Time' => ['description' => 'The query time. This is a UNIX timestamp in milliseconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1538134750408', 'title' => ''],
'Value' => ['description' => 'The value of the metric per second at the specified time.', 'type' => 'integer', 'format' => 'int32', 'example' => '254', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'AudioStamps' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'AudioStamps' => [
'description' => 'The audio timestamp per second. Unit: milliseconds.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'The audio timestamp per second.',
'type' => 'object',
'properties' => [
'Time' => ['description' => 'The query time. This is a UNIX timestamp in milliseconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1538134750408', 'title' => ''],
'Value' => ['description' => 'The value of the metric per second at the specified time.', 'type' => 'integer', 'format' => 'int32', 'example' => '725053422', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'AvcHeaders' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'AvcHeaders' => [
'description' => 'The number of video Advanced Video Coding (AVC) headers per second. Unit: count.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'The video AVC headers per second.',
'type' => 'object',
'properties' => [
'Time' => ['description' => 'The query time. This is a UNIX timestamp in milliseconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1538134750408', 'title' => ''],
'Value' => ['description' => 'The value of the metric per second at the specified time.', 'type' => 'integer', 'format' => 'int32', 'example' => '11', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'CodecInfo' => ['description' => 'The audio and video encoding information.', 'type' => 'string', 'example' => 'H264/AAC', 'title' => ''],
'DomainName' => ['description' => 'The ingest domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'ErrorFlags' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'ErrorFlags' => [
'description' => 'The error code for the stream ingest disconnection.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'The error code for the stream ingest disconnection.',
'type' => 'object',
'properties' => [
'Time' => ['description' => 'The query time. This is a UNIX timestamp in milliseconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1538134750408', 'title' => ''],
'Value' => ['description' => 'The value of the metric per second at the specified time.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'PublishInterval' => ['description' => 'The duration of the stream ingest in seconds. A hyphen (-) indicates that the stream is ongoing and the duration is not yet available.', 'type' => 'string', 'example' => '-', 'title' => ''],
'PublishIp' => ['description' => 'The IP address of the ingest client.', 'type' => 'string', 'example' => 'cn397', 'title' => ''],
'PublishStatus' => ['description' => 'The status of the stream ingest. \\`1\\`: The stream is ongoing. \\`0\\`: The stream has ended.', 'type' => 'string', 'example' => '1', 'title' => ''],
'PublishTime' => ['description' => 'The start time of the stream ingest in UTC format.', 'type' => 'string', 'example' => '2015-12-10T15:00:00Z', 'title' => ''],
'StopTime' => ['description' => 'The end time of the stream ingest in UTC format.', 'type' => 'string', 'example' => '2015-12-10T15:10:00Z', 'title' => ''],
'StreamName' => ['description' => 'The name of the stream.', 'type' => 'string', 'example' => 'StreamName', 'title' => ''],
'UniqueId' => ['description' => 'The unique ID for each stream ingest session.', 'type' => 'string', 'example' => '2.-395_37261_9848098_1538080899396', 'title' => ''],
'VideoAndAudioStamp' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'V_AStamp' => [
'description' => 'The difference between the video and audio timestamps per second. Unit: milliseconds.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'The difference between the video and audio timestamps per second.',
'type' => 'object',
'properties' => [
'Time' => ['description' => 'The query time. This is a UNIX timestamp in milliseconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1538134750408', 'title' => ''],
'Value' => ['description' => 'The value of the metric per second at the specified time.', 'type' => 'integer', 'format' => 'int32', 'example' => '359', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'VideoBitRate' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'VideoBitRate' => [
'description' => 'The video bitrate per second. Unit: bit/s.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'The video bitrate per second.',
'type' => 'object',
'properties' => [
'Time' => ['description' => 'The query time. This is a UNIX timestamp in milliseconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1538134750408', 'title' => ''],
'Value' => ['description' => 'The value of the metric per second at the specified time.', 'type' => 'integer', 'format' => 'int32', 'example' => '3970160', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'VideoFrames' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'VideoFrames' => [
'description' => 'The video frame rate per second. Unit: frames.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'The video frame rate per second.',
'type' => 'object',
'properties' => [
'Time' => ['description' => 'The query time. This is a UNIX timestamp in milliseconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1538134750408', 'title' => ''],
'Value' => ['description' => 'The value of the metric per second at the specified time.', 'type' => 'integer', 'format' => 'int32', 'example' => '29', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'VideoInterval' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'VideoInterval' => [
'description' => 'The maximum video frame interval per second. Unit: milliseconds.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'The maximum video frame interval per second.',
'type' => 'object',
'properties' => [
'Time' => ['description' => 'The query time. This is a UNIX timestamp in milliseconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1538134750408', 'title' => ''],
'Value' => ['description' => 'The value of the metric per second at the specified time.', 'type' => 'integer', 'format' => 'int32', 'example' => '278', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'VideoStamps' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'VideoStamps' => [
'description' => 'The video timestamp per second. Unit: milliseconds.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'The video timestamp per second.',
'type' => 'object',
'properties' => [
'Time' => ['description' => 'The query time. This is a UNIX timestamp in milliseconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1538134750408', 'title' => ''],
'Value' => ['description' => 'The value of the metric per second at the specified time.', 'type' => 'integer', 'format' => 'int32', 'example' => '725053781', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'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' => '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.', 'description' => 'Operation not allowed, please check and try again.'],
],
],
'title' => 'DescribeLiveUpVideoAudioInfo',
'description' => '- The maximum time range for a query is 24 hours.'."\n"
."\n"
.'- The minimum time range for a query is 1 minute.'."\n"
."\n"
.'- You can query data from the last 31 days.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 10 calls per minute. If you exceed this limit, API calls are throttled, which may affect your business. We recommend that you call this API at a reasonable rate.',
'responseParamsDescription' => 'If a parameter does not exist, an empty string is returned.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveUpVideoAudioInfo',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeLiveUserBillPrediction' => [
'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' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time. The time must be in UTC and follow the *yyyy-mm-dd*T*hh:mm:ss*Z format.', 'type' => 'string', 'required' => false, 'example' => '2015-12-01T05:40:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. The time must be in UTC and follow the yyyy-MM-ddTHH:mm:ssZ format.', 'type' => 'string', 'required' => false, 'example' => '2015-12-01T05:45:00Z', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'EndTime' => ['description' => 'The end time of the query. The time is in UTC and follows the ISO 8601 standard.'."\n"
.'Format: YYYY-MM-DDThh:mm:ssZ. The default value is the current time.', 'type' => 'string', 'example' => '2018-10-25T10:00:00Z', 'title' => ''],
'StartTime' => ['description' => 'The start time of the query. The time is in UTC and follows the ISO 8601 standard.'."\n"
.'Format: YYYY-MM-DDThh:mm:ssZ. The default value is 00:00 on the first day of the month.', 'type' => 'string', 'example' => '2018-09-30T16:00:00Z', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'B95BE680-5A6A-1CAD-8AB1-09DFF5D6****', 'title' => ''],
'BillType' => [
'description' => 'The billing method. The following billing methods are supported:'."\n"
."\n"
.'- hour\\_flow: Pay-by-traffic on an hourly basis.'."\n"
."\n"
.'- day\\_bandwidth: Pay-by-bandwidth on a daily basis.'."\n"
."\n"
.'- month\\_95: Pay-by-monthly 95th percentile peak bandwidth.'."\n"
."\n"
.'- month\\_avg\\_day\\_bandwidth: Pay-by-monthly average of daily peak bandwidth.'."\n"
."\n"
.'- month\\_4th\\_day\\_bandwidth: Pay-by-monthly 4th peak bandwidth.'."\n"
."\n"
.'- month\\_avg\\_day\\_95: Pay-by-monthly average of daily 95th percentile peak bandwidth.'."\n"
."\n"
.'- month\\_95\\_night\\_half: Pay-by-nightly 95th percentile peak bandwidth with a 50% discount.'."\n"
."\n"
.'- hour\\_vas: Pay-for-value-added services on an hourly basis.'."\n"
."\n"
.'- day\\_count: Pay-by-daily request count.',
'enumValueTitles' => [],
'type' => 'string',
'example' => 'day_bandwidth',
'title' => '',
],
'BillPredictionData' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'BillPredictionDataItem' => [
'itemNode' => true,
'description' => 'The bill prediction data.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'The bill prediction data.',
'type' => 'object',
'properties' => [
'Value' => ['description' => 'The predicted value.', 'type' => 'number', 'format' => 'float', 'example' => '10000', 'title' => ''],
'TimeStp' => ['description' => 'The timestamp of the predicted value. This parameter is returned only for the month\\_95, month\\_95\\_night\\_half, and month\\_4th\\_day\\_bandwidth billing methods.', 'type' => 'string', 'example' => '2018-10-15T16:00:00Z', 'title' => ''],
'Area' => ['description' => 'The region code. Valid values:'."\n"
."\n"
.'- CN: the Chinese mainland.'."\n"
."\n"
.'- OverSeas: regions outside China.'."\n"
."\n"
.'- AP1: Asia Pacific 1. This region includes Hong Kong (China), Macao (China), Taiwan (China), Japan, and Southeast Asian countries except for Vietnam and Indonesia.'."\n"
."\n"
.'- AP2: Asia Pacific 2. This region includes Indonesia, South Korea, and Vietnam.'."\n"
."\n"
.'- AP3: Asia Pacific 3. This region includes Australia and New Zealand.'."\n"
."\n"
.'- NA: North America. This region includes the United States and Canada.'."\n"
."\n"
.'- SA: South America. This region includes Brazil.'."\n"
."\n"
.'- EU: Europe. This region includes Ukraine, the United Kingdom, France, the Netherlands, Spain, Italy, Sweden, and Germany.'."\n"
."\n"
.'- MEAA: Middle East and Africa. This region includes South Africa, Oman, the United Arab Emirates, and Kuwait.'."\n"
."\n"
.'If you do not specify this parameter, data from all regions is aggregated and returned.', 'type' => 'string', 'example' => 'CN', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['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' => 'Invalid time. Check whether the time that you specified is correct.'],
['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => 'The end time does not match the start time. Make sure that the start and end times match.'],
['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => 'The time span exceeds the limit. Please refer to the API documentation to specify a reasonable time span.'],
['errorCode' => 'BillTypeNotFound', 'errorMessage' => 'User bill type not found or is not monthly bill type.', 'description' => 'The bill type does not exist, or your account does not support monthly bills.'],
],
],
'title' => 'DescribeLiveUserBillPrediction',
'summary' => 'Retrieves the bill prediction for a live streaming user.',
'description' => 'This operation predicts your usage data for the current month. The prediction is based on the billing method that is active on the first day of the month. This operation supports predictions for monthly billing methods only and provides data at the user level. The query time range starts at 00:00 on the first day of the month and ends two hours before the current time.'."\n"
."\n"
.'- Monthly 95th percentile: The highest data point after the top 5% of data points are removed from the specified time range.'."\n"
."\n"
.'- Monthly average of daily peak bandwidth: The sum of daily peak bandwidth values divided by the number of days in the time range. The current day\'s data is not included.'."\n"
."\n"
.'- Monthly 4th peak: The fourth-highest peak bandwidth in the specified time range. If the time range is less than four days, the predicted value is 0.'."\n"
."\n"
.'- Monthly average of daily 95th percentile peak: The sum of daily 95th percentile peak values divided by the number of days in the time range. The current day\'s data is not included.'."\n"
."\n"
.'- Nightly 95th percentile: The highest data point after the top 5% of data points are removed from the specified time range.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 1. If you exceed this limit, your API calls are throttled, which may affect your business. Make API calls at a reasonable rate. For more information, see [QPS limits](~~343507~~).',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '1', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveUserBillPrediction'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveUserBillPrediction',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'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"}]',
],
'DescribeLiveUserDomains' => [
'summary' => 'Queries domain names of ApsaraVideo Live in your Alibaba Cloud account.'."\n",
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'abilityTreeCode' => '107118',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'LiveDomainType',
'in' => 'query',
'schema' => ['description' => 'The type of the domain name. Valid values:'."\n"
."\n"
.'* **liveVideo**: streaming domain'."\n"
.'* **liveEdge**: ingest domain'."\n"
."\n"
.'> If you leave this parameter empty, all ingest domains and streaming domains within your Alibaba Cloud account are queried by default.'."\n", 'type' => 'string', 'required' => false, 'example' => 'liveVideo', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries per page. Default value: **20**. Maximum value: **50**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '500', 'example' => '20', 'default' => '20', 'title' => ''],
],
[
'name' => 'PageNumber',
'in' => 'query',
'schema' => ['description' => 'The page number. Valid values: **1 to 100000**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The domain name that is used as a keyword to filter domain names. Fuzzy match is supported.'."\n"
."\n"
.'> '."\n"
."\n"
.'* If you set LiveDomainType to liveVideo and leave this parameter empty, the streaming domains are queried. - If you set LiveDomainType to liveEdge and leave this parameter empty, the ingest domains are queried.'."\n", 'type' => 'string', 'required' => false, 'example' => '*.aliyundoc.com', 'title' => ''],
],
[
'name' => 'RegionName',
'in' => 'query',
'schema' => ['description' => 'The ID of the region in which the domain name resides.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-beijing', 'title' => ''],
],
[
'name' => 'DomainSearchType',
'in' => 'query',
'schema' => ['description' => 'The search mode. Valid values:'."\n"
."\n"
.'* **fuzzy_match** (default): fuzzy match'."\n"
.'* **pre_match**: prefix match'."\n"
.'* **suf_match**: suffix match'."\n"
.'* **full_match**: exact match'."\n", 'type' => 'string', 'required' => false, 'example' => 'fuzzy_match', 'title' => ''],
],
[
'name' => 'DomainStatus',
'in' => 'query',
'schema' => ['description' => 'The status of the domain name. Valid values:'."\n"
."\n"
.'* **online**'."\n"
.'* **offline**'."\n"
.'* **configuring**'."\n", 'type' => 'string', 'required' => false, 'example' => 'online', 'title' => ''],
],
[
'name' => 'Tag',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The tags.'."\n",
'type' => 'array',
'items' => [
'description' => 'The list of tags.'."\n",
'type' => 'object',
'properties' => [
'Key' => ['description' => 'The key of the tag.'."\n", 'type' => 'string', 'required' => false, 'example' => 'TestKey', 'title' => ''],
'Value' => ['description' => 'The value of the tag.'."\n", 'type' => 'string', 'required' => false, 'example' => 'TestValue', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 20,
'title' => '',
'example' => '',
],
],
[
'name' => 'ResourceGroupId',
'in' => 'query',
'allowEmptyValue' => true,
'schema' => ['description' => 'The ID of the resource group.'."\n", 'type' => 'string', 'required' => false, 'example' => 'rg-**kzvyjetyjjm**', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'Domains' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'PageData' => [
'description' => 'The domain names.'."\n",
'type' => 'array',
'items' => [
'description' => 'The information about the domain name.'."\n",
'type' => 'object',
'properties' => [
'Cname' => ['description' => 'The CNAME generated for the domain name.'."\n", 'type' => 'string', 'example' => 'learn.developer.aliyundoc.com', 'title' => ''],
'Description' => ['description' => 'The description.'."\n", 'type' => 'string', 'example' => 'test', 'title' => ''],
'DomainName' => ['description' => 'The domain name.'."\n", 'type' => 'string', 'example' => 'demo.aliyundoc.com', 'title' => ''],
'GmtCreated' => ['description' => 'The time when the domain name was created. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2017-08-29T12:15:36Z', 'title' => ''],
'GmtModified' => ['description' => 'The time when the domain name was last modified. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2017-12-29T12:15:36Z', 'title' => ''],
'LiveDomainStatus' => ['description' => 'The status of the domain name. Valid values:'."\n"
."\n"
.'* **online**'."\n"
.'* **offline**'."\n"
.'* **configuring**'."\n", 'type' => 'string', 'example' => 'online', 'title' => ''],
'LiveDomainType' => ['description' => 'The type of the domain name. Valid values:'."\n"
."\n"
.'* **liveVideo**: streaming domain'."\n"
.'* **liveEdge**: ingest domain'."\n", 'type' => 'string', 'example' => 'liveVideo', 'title' => ''],
'RegionName' => ['description' => 'The ID of the region in which the domain name resides.'."\n", 'type' => 'string', 'example' => 'cn-beijing', 'title' => ''],
'ResourceGroupId' => ['description' => 'The ID of the resource group.'."\n", 'type' => 'string', 'example' => 'rg-**kzvyjetyjjm**', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'PageNumber' => ['description' => 'The page number.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
'PageSize' => ['description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '100', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'E4EBD2BF-5EB0-4476-8829-9D94E1B15267', 'title' => ''],
'TotalCount' => ['description' => 'The total number of entries.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidPageNumber.ValueNotSupported', 'errorMessage' => 'The specified value of parameter PageNumber is not supported.', 'description' => 'The value of the specified PageNumber parameter is not supported.'],
['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' => ''],
],
],
'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' => 'DescribeLiveUserDomains',
'description' => '## [](#)Usage notes'."\n"
."\n"
.'You can call this operation to query all domain names of ApsaraVideo Live within your Alibaba Cloud account. The supported types of domain names are streaming domains and edge ingest domains.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 100 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation. For more information, see [QPS limits](~~343507~~).'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2024-09-25T02:39:23.000Z', 'description' => 'Request parameters changed, Response parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveUserDomains'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveUserDomains',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeLiveUserStreamMetricData' => [
'summary' => 'Queries stream-level batch data for a specified streaming domain. Multiple protocols are supported.',
'methods' => ['get', 'post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'none',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '214643',
'abilityTreeNodes' => ['FEATUREliveYUZBM3'],
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain to query.'."\n"
."\n\n"
.'> Only a single domain name is supported. An error is returned if multiple domain names are specified. If the domain name is empty, aggregate data for all streaming domains under the user is queried. If `AppName` and `StreamName` are not specified, stream-level data for all streams under the domain is returned.', 'type' => 'string', 'required' => false, 'example' => 'test.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the `YYYY-MM-DDThh:mm:ssZ` format. The time must be in UTC.', 'type' => 'string', 'required' => true, 'example' => '2015-12-10T20:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. The end time must be later than the start time and the difference cannot exceed 1 day. Specify the time in the ISO 8601 standard in the `YYYY-MM-DDThh:mm:ssZ` format. The time must be in UTC.', 'type' => 'string', 'required' => true, 'example' => '2015-12-10T21:00:00Z', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The application name. Specify the application name to query stream-level data for the corresponding application. If `StreamName` is specified, `AppName` must also be specified.', 'type' => 'string', 'required' => false, 'example' => 'app', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The stream name. If `StreamName` is specified, stream-level data for the specified `StreamName` under the specified `AppName` is returned. If `StreamName` is specified, `AppName` must also be specified.', 'type' => 'string', 'required' => false, 'example' => 'test.flv', 'title' => ''],
],
[
'name' => 'Protocol',
'in' => 'query',
'schema' => ['description' => 'The stream protocol name. Specify the protocol name to query data for the corresponding protocol. Supported protocols: `flv`, `hls`, `rtmp`, `rts`, `p2p`. You can query data for multiple protocols by separating them with commas (,). Data for multiple protocols is not aggregated and is output at the stream level.'."\n"
.'> The **rts** option queries Real-Time Streaming (RTS) streams using the ARTC protocol.'."\n"
.'> - When using rts, you may need to additionally count the xxx_AliRTS-opus transcoding stream. This is because when playing an RTS stream on the web, a transcoding stream with the _AliRTS-opus suffix appended to the stream name is automatically generated, producing transcoding stream data. For more information, see [RTS sub-second latency automatic transcoding](~~2948703~~).', 'type' => 'string', 'required' => false, 'example' => 'flv', 'title' => ''],
],
[
'name' => 'PageNumber',
'in' => 'query',
'schema' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries per page. Maximum value: 5000.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '10', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'DomainName' => ['description' => 'The streaming domain information.', 'type' => 'string', 'example' => 'test.com', 'title' => ''],
'EndTime' => ['description' => 'YYYY-MM-DDThh:mm:ssZ'."\n", 'type' => 'string', 'example' => '2015-12-10T21:00:00Z', 'title' => ''],
'PageSize' => ['description' => 'The number of entries per page.', 'type' => 'integer', 'format' => 'int64', 'example' => '10', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', 'title' => ''],
'StartTime' => ['description' => 'The beginning of the time range to query. The time is in the ISO 8601 standard in the `YYYY-MM-DDThh:mm:ssZ` format in UTC.', 'type' => 'string', 'example' => '2015-12-10T20:00:00Z', 'title' => ''],
'StreamDetailData' => [
'description' => 'The traffic data for each time interval.',
'type' => 'array',
'items' => [
'description' => 'The returned data group.',
'type' => 'object',
'properties' => [
'AppName' => ['description' => 'The application name. This value is returned regardless of whether it is specified.', 'type' => 'string', 'example' => 'app', 'title' => ''],
'Bps' => ['description' => 'The total bandwidth per minute for the stream, in bps.', 'type' => 'number', 'format' => 'float', 'example' => '423304182.66', 'title' => ''],
'Count' => ['description' => 'The total number of concurrent connections per minute for the stream.'."\n"
."\n"
.'> **Concurrent connections** refers to the count of client process connections to the same stream within a unit of time.', 'type' => 'integer', 'format' => 'int64', 'example' => '423304182', 'title' => ''],
'FlvBps' => ['description' => 'The bandwidth for the FLV protocol, in bps. This field is not returned if the specified protocol does not match.', 'type' => 'number', 'format' => 'float', 'example' => '454', 'title' => ''],
'FlvCount' => ['description' => 'The number of concurrent connections for the FLV protocol. This field is not returned if the specified protocol does not match.', 'type' => 'integer', 'format' => 'int64', 'example' => '32', 'title' => ''],
'FlvTraffic' => ['description' => 'The traffic for the FLV protocol, in bytes. This field is not returned if the specified protocol does not match.', 'type' => 'number', 'format' => 'double', 'example' => '1254', 'title' => ''],
'HlsBps' => ['description' => 'The bandwidth for the HLS protocol, in bps. This field is not returned if the specified protocol does not match.', 'type' => 'number', 'format' => 'float', 'example' => '4456', 'title' => ''],
'HlsCount' => ['description' => 'The number of concurrent connections for the HLS protocol. This field is not returned if the specified protocol does not match.', 'type' => 'integer', 'format' => 'int64', 'example' => '56', 'title' => ''],
'HlsTraffic' => ['description' => 'The traffic for the HLS protocol, in bytes. This field is not returned if the specified protocol does not match.', 'type' => 'number', 'format' => 'double', 'example' => '568', 'title' => ''],
'NewConns' => ['description' => 'The number of new connections per minute for the stream.', 'type' => 'integer', 'format' => 'int64', 'example' => '450', 'title' => ''],
'P2pBps' => ['description' => 'The bandwidth for the P2P protocol, in bps. This field is not returned if the specified protocol does not match.', 'type' => 'number', 'format' => 'float', 'example' => '6845', 'title' => ''],
'P2pCount' => ['description' => 'The number of concurrent connections for the P2P protocol. This field is not returned if the specified protocol does not match.', 'type' => 'integer', 'format' => 'int64', 'example' => '78', 'title' => ''],
'P2pTraffic' => ['description' => 'The traffic for the P2P protocol, in bytes. This field is not returned if the specified protocol does not match.', 'type' => 'number', 'format' => 'double', 'example' => '4102', 'title' => ''],
'RtmpBps' => ['description' => 'The bandwidth for the RTMP protocol, in bps. This field is not returned if the specified protocol does not match.', 'type' => 'number', 'format' => 'float', 'example' => '3323', 'title' => ''],
'RtmpCount' => ['description' => 'The number of concurrent connections for the RTMP protocol. This field is not returned if the specified protocol does not match.', 'type' => 'integer', 'format' => 'int64', 'example' => '63', 'title' => ''],
'RtmpTraffic' => ['description' => 'The traffic for the RTMP protocol, in bytes. This field is not returned if the specified protocol does not match.', 'type' => 'number', 'format' => 'double', 'example' => '5568', 'title' => ''],
'RtsBps' => ['description' => 'The bandwidth for the RTS protocol, in bps. This field is not returned if the specified protocol does not match.', 'type' => 'number', 'format' => 'double', 'example' => '2361', 'title' => ''],
'RtsCount' => ['description' => 'The number of concurrent connections for the RTS protocol. This field is not returned if the specified protocol does not match.', 'type' => 'integer', 'format' => 'int64', 'example' => '89', 'title' => ''],
'RtsTraffic' => ['description' => 'The traffic for the RTS protocol, in bytes. This field is not returned if the specified protocol does not match.', 'type' => 'number', 'format' => 'double', 'example' => '2322', 'title' => ''],
'StreamName' => ['description' => 'The stream name. This value is returned regardless of whether it is specified.', 'type' => 'string', 'example' => 'test.flv', 'title' => ''],
'TimeStamp' => ['description' => 'The start time of the time slice. The time is in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format in UTC+0.', 'type' => 'string', 'example' => '2015-12-10T20:00:00Z', 'title' => ''],
'Traffic' => ['description' => 'The total traffic per minute for the stream, in bytes.', 'type' => 'number', 'format' => 'double', 'example' => '423304182', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'TotalCount' => ['description' => 'The total number of entries.', 'type' => 'integer', 'format' => 'int64', 'example' => '50', 'title' => ''],
'PageNumber' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
],
'example' => '',
],
],
],
'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' => 'Query stream-level batch data for a specified domain',
'description' => '> Querying new connections for the HLS protocol is not supported. Concurrent connections for HLS are counted based on requests in the default format. Requests in special formats require configuration by [submit a ticket](https://workorder.console.aliyun.com/console.htm#/ticket/add?productCode=live&commonQuestionId=4545&isSmart=true&iatraceid=1608439120675-2a5c48de0b84805313c708&channel=selfservice)[submit a ticket](https://workorder-intl.console.aliyun.com/?spm=5176.12818093.nav-right.dticket.6cb216d07otFWR#/ticket/createIndex). The default formats are as follows:'."\n"
.'> - m3u8 request example: http(s)://example.aliyundoc.com/Appname/ StreamName.m3u8'."\n"
.'> - ts request example: http(s)://example.aliyundoc.com/Appname/ StreamName/153xxxxxxxx_137xxxxx.ts.'."\n"
."\n"
.'## Settings'."\n"
.'- **Single query limit**: A maximum of 5000 rows of data can be returned per query.'."\n"
.'- **Domain name query limit**: Only a single domain name is supported. An error is returned if multiple domain names are specified.'."\n"
.'- **Time span limit**: The maximum query time span is 24 hours.'."\n"
.'- **Time granularity limit**: The minimum query granularity is 1 minute.'."\n"
.'- **Query range limit**: The maximum query range is 31 days.'."\n"
.'- **Call frequency limit**: The maximum call frequency per user is 10 calls per second.'."\n"
.'- **Special parameter combination**: When `DomainName` is not empty and both `AppName` and `StreamName` are set to `all`, the aggregate data for the streaming domain is returned.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'live:DescribeLiveUserStreamMetricData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', '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' => [
'summary' => 'Retrieves user tags.',
'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' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '6B0256B6-2442-5BEF-B8D6-A0C28A801DFC', 'title' => ''],
'Tags' => [
'description' => 'The tags.',
'type' => 'array',
'items' => [
'description' => 'The tag keys.',
'type' => 'object',
'properties' => [
'Key' => ['description' => 'The tag key.', 'type' => 'string', 'example' => 'key1', 'title' => ''],
'Value' => [
'description' => 'The tag values.',
'type' => 'array',
'items' => ['description' => 'The tag value.', 'type' => 'string', 'example' => 'value1', 'title' => ''],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [],
'title' => 'DescribeLiveUserTags',
'description' => '### QPS limit'."\n"
."\n"
.'You can call this operation up to 100 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveUserTags'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveUserTags',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6B0256B6-2442-5BEF-B8D6-A0C28A801DFC\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"key1\\",\\n \\"Value\\": [\\n \\"value1\\"\\n ]\\n }\\n ]\\n}","type":"json"}]',
],
'DescribeLiveVerifyContent' => [
'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' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The domain name. Only one domain name is supported.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'Content' => ['description' => 'The verification content.', 'type' => 'string', 'example' => 'verify_dffeb6610035dcb77b413******', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [],
'title' => 'DescribeLiveVerifyContent',
'summary' => 'Queries the ownership verification content for a specified domain name.',
'description' => '- You can call this operation to query the verification content for a single domain name.'."\n"
."\n"
.'- Each user can call this operation up to 30 times per second.'."\n"
."\n"
.'- You must specify the domain name that you want to authenticate.'."\n"
."\n"
.'- A successful call returns the verification content and a request ID for subsequent operations or for your records.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveVerifyContent'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveVerifyContent',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', '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' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time of the query. Specify the time in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => true, 'example' => '2022-10-10T20:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time of the query. The end time must be later than the start time. The query granularity must be ≥ 5 minutes and ≤ 31 days. Specify the time in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => true, 'example' => '2022-10-10T21:00:00Z', 'title' => ''],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. You can view the application ID on the [Application Management](~~2355593~~) page of ApsaraVideo Real-time Communication.', 'type' => 'string', 'required' => true, 'example' => '4346289a-a790-4869-9e23-22766d5e****', 'title' => ''],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => ['description' => 'The time granularity for querying data. Unit: seconds. Valid values:'."\n"
."\n"
.'- 300'."\n"
.'- 3600'."\n"
.'- 86400'."\n"
."\n"
.'If this parameter is not specified or set to an unsupported value, the default value 3600 is used.', 'type' => 'string', 'required' => false, 'example' => '86400', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
'AudioSummaryDuration' => ['description' => 'The total audio-only duration at the basic specification. Unit: minutes.', 'type' => 'integer', 'format' => 'int64', 'example' => '20', 'title' => ''],
'Data' => [
'description' => 'The usage statistics information.',
'type' => 'array',
'items' => [
'description' => 'The usage statistics information.',
'type' => 'object',
'properties' => [
'AudioDuration' => ['description' => 'The audio-only duration at the basic specification. Unit: minutes.', 'type' => 'integer', 'format' => 'int64', 'example' => '20', 'title' => ''],
'Single_Audio' => ['description' => 'The single-stream relay audio duration. Unit: minutes.', 'type' => 'integer', 'format' => 'int64', 'example' => '20', 'title' => ''],
'Single_Video' => ['description' => 'The single-stream relay video duration. Unit: minutes.', 'type' => 'integer', 'format' => 'int64', 'example' => '30', 'title' => ''],
'Timestamp' => ['description' => 'The start time of the time segment. The time is in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format in UTC+0.', 'type' => 'string', 'example' => '2022-10-10T20:00:00Z', 'title' => ''],
'TotalDuration' => ['description' => 'The total duration. Unit: minutes.', 'type' => 'integer', 'format' => 'int64', 'example' => '150', 'title' => ''],
'V480Duration' => ['description' => 'The standard definition duration, with a video resolution of 640 × 480 or lower. Unit: minutes.', 'type' => 'integer', 'format' => 'int64', 'example' => '30', 'title' => ''],
'V720Duration' => ['description' => 'The high definition duration, with a video resolution of 1280 × 720 or lower. Unit: minutes.', 'type' => 'integer', 'format' => 'int64', 'example' => '40', 'title' => ''],
'V1080Duration' => ['description' => 'The full high definition duration, with a video resolution of 1920 × 1080 or lower. Unit: minutes.', 'type' => 'integer', 'format' => 'int64', 'example' => '10', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '4B460F8B-993C-4F48-B98A-910811DEBFEB'],
'SingleAudioSummaryDuration' => ['description' => 'The total single-stream relay audio duration. Unit: minutes.', 'type' => 'integer', 'format' => 'int64', 'example' => '20', 'title' => ''],
'SingleVideoSummaryDuration' => ['description' => 'The total single-stream relay video duration. Unit: minutes.', 'type' => 'integer', 'format' => 'int64', 'example' => '30', 'title' => ''],
'TotalSummaryDuration' => ['description' => 'The total duration. Unit: minutes.', 'type' => 'integer', 'format' => 'int64', 'example' => '150', 'title' => ''],
'V480SummaryDuration' => ['description' => 'The total standard definition duration, with a video resolution of 640 × 480 or lower. Unit: minutes.', 'type' => 'integer', 'format' => 'int64', 'example' => '30', 'title' => ''],
'V720SummaryDuration' => ['description' => 'The total high definition duration, with a video resolution of 1280 × 720 or lower. Unit: minutes.', 'type' => 'integer', 'format' => 'int64', 'example' => '40', 'title' => ''],
'V1080SummaryDuration' => ['description' => 'The total full high definition duration, with a video resolution of 1920 × 1080 or lower. Unit: minutes.', 'type' => 'integer', 'format' => 'int64', 'example' => '10', 'title' => ''],
],
'example' => '',
],
],
],
'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'],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Query stream mixing transcoding usage data',
'description' => '## Operation description'."\n"
.'- Maximum query span: 31 days.'."\n"
.'- Minimum query granularity: 5 minutes.'."\n"
.'- Maximum query range: data from the last 90 days.'."\n"
."\n"
.'## QPS limit'."\n"
.'A single user can call this operation up to 10 times per second. If the number of calls exceeds the limit, throttling is triggered, which may affect your business. Refer to [QPS limit](~~343507~~).',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeMeterLiveBypassDuration'],
],
],
'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' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveI16NIW'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'description' => 'The region ID.', 'title' => '', 'example' => 'cn-shanghai'],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'example.com'],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The app name.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'liveApp****'],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The stream name of the stream mixing task.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'liveStream****'],
],
[
'name' => 'MixStreamId',
'in' => 'query',
'schema' => ['description' => 'The ID of the stream mixing task. If you create a stream mixing task by calling the [CreateMixStream](~~2848087~~) operation, use the MixStreamId value that is returned in the response.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '5b2a046e-74d7-385e-d2d7-8a5b87e4****'],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format and in UTC.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '2020-09-11T12:00:00Z'],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format and in UTC.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '2020-09-20T13:00:00Z'],
],
[
'name' => 'PageNo',
'in' => 'query',
'schema' => ['description' => 'The page number. The value must be greater than **0** and cannot exceed the maximum value of the Integer data type. Default value: **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'title' => '', 'example' => '1'],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of records to display on each page. Default value: **1000**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'title' => '', 'example' => '1000'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'MixStreamList' => [
'description' => 'The list of stream mixing tasks.',
'type' => 'array',
'items' => [
'description' => 'The list of stream mixing tasks.',
'type' => 'object',
'properties' => [
'AppName' => ['description' => 'The app name.', 'type' => 'string', 'title' => '', 'example' => 'liveApp****'],
'DomainName' => ['description' => 'The streaming domain.', 'type' => 'string', 'title' => '', 'example' => 'example.com'],
'GmtCreate' => ['description' => 'The time when the stream mixing task was created. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format and in UTC.', 'type' => 'string', 'title' => '', 'example' => '2020-09-17T08:39:14Z'],
'GmtModified' => ['description' => 'The time when the stream mixing task was last modified. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format and in UTC.', 'type' => 'string', 'title' => '', 'example' => '2020-09-17T08:39:15Z'],
'InputStreamNumber' => ['description' => 'The number of input sources.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '2'],
'LayoutId' => ['description' => 'The layout ID.', 'type' => 'string', 'title' => '', 'example' => 'USERDEFINED'],
'MixStreamTemplate' => ['description' => 'The stream mixing template.', 'type' => 'string', 'title' => '', 'example' => 'lp_ld'],
'MixstreamId' => ['description' => 'The ID of the stream mixing task. You can use this ID to delete the task.', 'type' => 'string', 'title' => '', 'example' => 'aaf9a50f-c460-3a9b-f180-38dd8f05****'],
'StreamName' => ['description' => 'The stream name of the stream mixing task.', 'type' => 'string', 'title' => '', 'example' => 'liveStream****'],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'BC1E78D3-FA8B-4457-DEE2-6093E1232254'],
'Total' => ['description' => 'The total number of tasks.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '1'],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidDomainName.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Domain name does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'DescribeMixStreamList',
'summary' => 'Queries stream mixing tasks.',
'description' => 'Call the [CreateMixStream](~~2848087~~) operation to create a stream mixing task. You can then call this operation to query the list of stream mixing tasks.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 5 for each user. API calls that exceed this limit are throttled. This can affect your business. Plan your API calls accordingly.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => '### MixStreamInfo'."\n"
."\n"
.'| Name | Type | Description |'."\n"
.'| ----------------- | ------- | -------------------------------------------------------------------------------------------------------- |'."\n"
.'| MixStreamId | String | The ID of the stream mixing task. |'."\n"
.'| DomainName | String | The streaming domain. |'."\n"
.'| AppName | String | The app name. |'."\n"
.'| StreamName | String | The stream name of the stream mixing task. |'."\n"
.'| LayoutId | String | The layout ID. |'."\n"
.'| InputStreamNumber | Integer | The number of input sources. |'."\n"
.'| MixStreamTemplate | String | The stream mixing template. |'."\n"
.'| GmtCreate | String | The time when the task was created. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format and in UTC. |'."\n"
.'| GmtModified | String | The time when the task was last modified. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format and in UTC. |',
'extraInfo' => '### SDK example'."\n"
."\n"
.'For more information, see [Sample code of stream mixing](https://help.aliyun.com/document_detail/199362.html).'."\n",
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeMixStreamList'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeMixStreamList',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeRTSNativeSDKFirstFrameCost' => [
'summary' => 'Retrieves the first frame latency composition within a specified time period.',
'methods' => ['get', 'post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveYUZBM3'],
],
'parameters' => [
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time. This parameter is required. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2021-12-10T20:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. This parameter is required. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2021-12-10T21:00:00Z', 'title' => ''],
],
[
'name' => 'DataInterval',
'in' => 'query',
'schema' => ['description' => 'The time granularity. Valid values: 300, 3600, 14400, 28800, and 86400. Unit: seconds. If this parameter is not specified or the specified value is not supported, the default value 300 is used.', 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''],
],
[
'name' => 'DomainNameList',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'By default, all domain names are queried (version 2.1.0 and later). You can also specify domain names. Separate multiple domain names with commas (,). A maximum of 500 domain names can be queried at a time.',
'type' => 'array',
'items' => ['description' => 'The domain name.', 'type' => 'string', 'required' => false, 'example' => 'a.example.com', 'title' => ''],
'required' => false,
'title' => '',
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'DataInterval' => ['description' => 'The time granularity.', 'type' => 'string', 'example' => '300', 'title' => ''],
'EndTime' => ['description' => 'The end time. The time is in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2021-12-10T21:00:00Z', 'title' => ''],
'FirstFrameCostData' => [
'description' => 'The average first frame latency composition for each time interval. Unit: milliseconds.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Connected' => ['description' => 'The time elapsed from successful initialization to successful connection establishment.', 'type' => 'string', 'example' => '100', 'title' => ''],
'FinishGetStreamInfo' => ['description' => 'The time elapsed from successful connection establishment to successful subscription.', 'type' => 'string', 'example' => '89', 'title' => ''],
'FirstFrameComplete' => ['description' => 'The time elapsed from receiving the first packet to rendering the first frame.', 'type' => 'string', 'example' => '32', 'title' => ''],
'FirstPacket' => ['description' => 'The time elapsed from successful subscription to receiving the first packet.', 'type' => 'string', 'example' => '132', 'title' => ''],
'Initialized' => ['description' => 'The initialization duration.', 'type' => 'string', 'example' => '1100', 'title' => ''],
'TimeStamp' => ['description' => 'The start time of the time interval. The time is in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2021-12-10T20:00:00Z', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'RequestId' => ['title' => '', 'description' => 'Id', 'type' => 'string', 'example' => 'BC858082-736F-4A25-867B-E5B67C85ACF7'],
'StartTime' => ['description' => 'The start time. The time is in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2021-12-10T20:00:00Z', 'title' => ''],
],
'example' => '',
],
],
],
'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' => ''],
],
],
'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' => 'Query first frame latency composition',
'description' => 'Queries the first frame latency composition within a specified time range. QPS limit: The single-user QPS limit for this operation is 10 calls per second. If the limit is exceeded, API calls are throttled, which may affect your business. Call this operation at a reasonable frequency. For more information, see QPS limit.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRTSNativeSDKFirstFrameCost'],
],
],
'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' => 'Query the average first frame delay within a specified time period',
'methods' => ['get', 'post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveYUZBM3'],
],
'parameters' => [
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'Start time. Required parameter. The date format follows ISO 8601 notation and uses UTC+0 time, in the format of yyyy-MM-ddTHH:mm:ssZ.', 'type' => 'string', 'required' => false, 'example' => '2021-12-10T20:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'End time. Required parameter. The date format follows ISO 8601 notation and uses UTC+0 time, in the format of yyyy-MM-ddTHH:mm:ssZ.', 'type' => 'string', 'required' => false, 'example' => '2021-12-10T21:00:00Z', 'title' => ''],
],
[
'name' => 'DataInterval',
'in' => 'query',
'schema' => ['description' => 'Time granularity. Supported values are 300, 3600, 14400, 28800, and 86400 seconds. If not specified or the specified value is not supported, the default value of 300 seconds is used.', 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''],
],
[
'name' => 'DomainNameList',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'Queries all domain names by default (version 2.1.0 and above). You can also specify domain names separated by commas (,). A maximum of 500 domain names can be queried at a time.',
'type' => 'array',
'items' => ['description' => 'Domain name.', 'type' => 'string', 'required' => false, 'example' => 'a.example.com', 'title' => ''],
'required' => false,
'title' => '',
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'DataInterval' => ['description' => 'Time granularity.', 'type' => 'string', 'example' => '300', 'title' => ''],
'EndTime' => ['description' => 'End time. The date format follows ISO 8601 notation and uses UTC+0 time, in the format of yyyy-MM-ddTHH:mm:ssZ.', 'type' => 'string', 'example' => '2021-12-10T21:00:00Z', 'title' => ''],
'FrameDelayData' => [
'description' => 'Average first frame delay for each time interval, in milliseconds.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'FrameDelay' => ['description' => 'Average first frame delay for this time period.', 'type' => 'string', 'example' => '400', 'title' => ''],
'TimeStamp' => ['description' => 'Start time of the time slice. The date format follows ISO 8601 notation and uses UTC+0 time, in the format of yyyy-MM-ddTHH:mm:ssZ.', 'type' => 'string', 'example' => '2021-12-10T20:00:00Z', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'RequestId' => ['title' => '', 'description' => 'Id', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'],
'StartTime' => ['description' => 'Start time. The date format follows ISO 8601 notation and uses UTC+0 time, in the format of yyyy-MM-ddTHH:mm:ssZ.', 'type' => 'string', 'example' => '2021-12-10T20:00:00Z', 'title' => ''],
],
'example' => '',
],
],
],
'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' => ''],
],
],
'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' => 'Query First Frame Delay',
'description' => 'This API is used to query the first frame delay within a specified time range.'."\n"
.'QPS Limit'."\n"
.'The single-user QPS limit for this API is 10 calls per second. If the limit is exceeded, API calls will be throttled, which may affect your business. Please call this API appropriately. For more information, see QPS limits.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '90', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRTSNativeSDKFirstFrameDelay'],
],
],
'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' => 'Queries the reasons for playback failures (in the form of status codes) within a specified time period.',
'methods' => ['get', 'post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveYUZBM3'],
],
'parameters' => [
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time. This parameter is required. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2021-12-10T20:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. This parameter is required. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2021-12-10T21:00:00Z', 'title' => ''],
],
[
'name' => 'DataInterval',
'in' => 'query',
'schema' => ['description' => 'The time granularity. Valid values: 300, 3600, 14400, 28800, and 86400. Unit: seconds. If this parameter is not specified or the specified value is not supported, the default value 300 is used.', 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''],
],
[
'name' => 'DomainNameList',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'By default, all domain names are queried (version 2.1.0 and later). You can also specify domain names. Separate multiple domain names with commas (,). A maximum of 500 domain names can be queried at a time.',
'type' => 'array',
'items' => ['description' => 'The domain name.', 'type' => 'string', 'required' => false, 'example' => 'a.example.com', 'title' => ''],
'required' => false,
'title' => '',
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'DataInterval' => ['description' => 'The time granularity.', 'type' => 'string', 'example' => '300', 'title' => ''],
'EndTime' => ['description' => 'The end time. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2021-12-10T21:00:00Z', 'title' => ''],
'PlayFailStatus' => [
'description' => 'The total number of error status codes for each time interval.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'TimeStamp' => ['description' => 'The beginning of the time interval. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2021-12-10T20:00:00Z', 'title' => ''],
'V20001' => ['description' => 'DNS resolution failure.', 'type' => 'string', 'example' => '1', 'title' => ''],
'V20002' => ['description' => 'Authentication failure.', 'type' => 'string', 'example' => '2', 'title' => ''],
'V20011' => ['description' => 'Connection signaling timeout.', 'type' => 'string', 'example' => '3', 'title' => ''],
'V20012' => ['description' => 'Subscription signaling error.', 'type' => 'string', 'example' => '4', 'title' => ''],
'V20013' => ['description' => 'Subscribed stream does not exist.', 'type' => 'string', 'example' => '5', 'title' => ''],
'V20052' => ['description' => 'Media packet receiving timeout.', 'type' => 'string', 'example' => '6', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'RequestId' => ['title' => '', 'description' => 'Id', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'],
'StartTime' => ['description' => 'The start time. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2021-12-10T20:00:00Z'."\n", 'title' => ''],
],
'example' => '',
],
],
],
'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' => ''],
],
],
'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' => 'Query playback failure reasons',
'description' => 'Queries the reasons for playback failures (in the form of status codes) within a specified time range. QPS limit: The single-user QPS limit for this operation is 10 calls per second. If the limit is exceeded, API calls are throttled, which may affect your business. Call this operation at an appropriate frequency. For more information, refer to QPS limits.',
'changeSet' => [
['createdAt' => '2022-10-27T02:34:18.000Z', 'description' => 'OpenAPI offline'],
],
'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}'],
],
],
],
],
],
'DescribeRTSNativeSDKPlayTime' => [
'summary' => 'Retrieves the playback duration within a specified time range.',
'methods' => ['get', 'post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveYUZBM3'],
],
'parameters' => [
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time. This parameter is required. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2021-12-10T20:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. This parameter is required. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2021-12-10T21:00:00Z', 'title' => ''],
],
[
'name' => 'DataInterval',
'in' => 'query',
'schema' => ['description' => 'The time granularity. Valid values: 300, 3600, 14400, 28800, and 86400. Unit: seconds. If this parameter is not specified or the specified value is not supported, the default value 300 is used.', 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''],
],
[
'name' => 'DomainNameList',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The list of domain names to query. By default, all domain names are queried (version 2.1.0 and later). You can also specify domain names. Separate multiple domain names with commas (,). A maximum of 500 domain names can be queried at a time.',
'type' => 'array',
'items' => ['description' => 'The domain name.', 'type' => 'string', 'required' => false, 'example' => 'a.example.com', 'title' => ''],
'required' => false,
'title' => '',
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'DataInterval' => ['description' => 'The time granularity.', 'type' => 'string', 'example' => '300', 'title' => ''],
'EndTime' => ['description' => 'The end time. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2021-12-10T21:00:00Z', 'title' => ''],
'PlayTimeData' => [
'description' => 'The average playback duration and average stall duration for each time interval. Unit: milliseconds.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'PlayTime' => ['description' => 'The average playback duration during the time interval. Unit: milliseconds.', 'type' => 'string', 'example' => '1000', 'title' => ''],
'StallTime' => ['description' => 'The average stall duration during the time interval. Unit: milliseconds.', 'type' => 'string', 'example' => '100', 'title' => ''],
'TimeStamp' => ['description' => 'The start time of the time interval. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2021-12-10T20:00:00Z', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'RequestId' => ['title' => '', 'description' => 'Id', 'type' => 'string', 'example' => '7BF95F2A-3B24-4CDE-9346-7F6FA86697A1'],
'StartTime' => ['description' => 'The start time. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2021-12-10T20:00:00Z', 'title' => ''],
],
'example' => '',
],
],
],
'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' => ''],
],
],
'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' => 'Query playback duration',
'description' => 'Queries the playback duration within a specified time range. QPS limit: The single-user QPS limit for this operation is 10 calls per second. If the limit is exceeded, API calls are throttled, which may affect your business. Use this operation appropriately. For more information, refer to QPS limits.',
'changeSet' => [
['createdAt' => '2024-02-20T03:12:12.000Z', 'description' => 'Response parameters changed'],
],
'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' => 'Retrieves the playback count within a specified time period, including the total count and the successful count.',
'methods' => ['get', 'post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveYUZBM3'],
],
'parameters' => [
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time. This parameter is required. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2021-12-10T20:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. This parameter is required. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2021-12-10T21:00:00Z', 'title' => ''],
],
[
'name' => 'DataInterval',
'in' => 'query',
'schema' => ['description' => 'The time granularity. Valid values: 300, 3600, 14400, 28800, and 86400. Unit: seconds. If this parameter is not specified or the specified value is not supported, the default value 300 is used.', 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''],
],
[
'name' => 'DomainNameList',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The array.',
'type' => 'array',
'items' => ['description' => 'By default, all domain names are queried (version 2.1.0 and later). You can also specify domain names. Separate multiple domain names with commas (,). A maximum of 500 domain names can be queried at a time.', 'type' => 'string', 'required' => false, 'example' => 'a.example.com', 'title' => ''],
'required' => false,
'title' => '',
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'DataInterval' => ['description' => 'The time granularity.', 'type' => 'string', 'example' => '300', 'title' => ''],
'EndTime' => ['description' => 'The end time. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2021-12-10T21:00:00Z', 'title' => ''],
'RequestId' => ['title' => '', 'description' => 'Id', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'],
'StartTime' => ['description' => 'The start time. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2021-12-10T20:00:00Z', 'title' => ''],
'VvData' => [
'description' => 'The total playback count and total successful playback count for each time interval. Unit: count.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'TimeStamp' => ['description' => 'The start time of the time interval. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2021-12-10T20:00:00Z', 'title' => ''],
'VvSuccess' => ['description' => 'The total number of successful playbacks within the specified time period.', 'type' => 'string', 'example' => '99', 'title' => ''],
'VvTotal' => ['description' => 'The total number of playbacks within the specified time period.', 'type' => 'string', 'example' => '100', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'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' => ''],
],
],
'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' => 'Query playback count',
'description' => 'QPS limit'."\n"
.'The single-user QPS limit for this operation is 10 calls per second. If the limit is exceeded, API calls are throttled, which may affect your business. Call this operation appropriately. For more information, refer to QPS limit.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRTSNativeSDKVvData'],
],
],
'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' => 'Queries the cloud recording files and task information for 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' => 'The task ID. This ID is returned by StartRtcCloudRecording. Only tasks created within the last 3 days can be queried.', 'type' => 'string', 'required' => true, 'example' => '******73-8501-****-8ac1-72295a******'."\n", 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '******58-5876-****-83CA-B56278******'."\n"],
'TaskInfo' => [
'description' => 'The task information.',
'type' => 'object',
'properties' => [
'TaskId' => ['description' => 'The task ID passed in the request.', 'type' => 'string', 'example' => '******73-8501-****-8ac1-72295a******'."\n", 'title' => ''],
'Status' => ['description' => 'The task status. Valid values:'."\n"
.'- RUNNING'."\n"
.'- RECOVERING'."\n"
.'- STOPPING'."\n"
.'- STOPPED.', 'type' => 'string', 'example' => 'RUNNING', 'title' => ''],
'RecordFileList' => [
'description' => 'The list of recording files.',
'type' => 'object',
'properties' => [
'Mp3FileList' => [
'description' => 'The array of MP3 recording file names.',
'type' => 'array',
'items' => ['description' => 'The MP3 recording file name.', 'type' => 'string', 'example' => '******73-8501-****-8ac1-72295a******/myappid_testroom_userA_2025-05-06-14:37:22.mp3', 'title' => ''],
'title' => '',
'example' => '',
],
'Mp4FileList' => [
'description' => 'The array of MP4 recording file names.',
'type' => 'array',
'items' => ['description' => 'The MP4 recording file name.', 'type' => 'string', 'example' => '******73-8501-****-8ac1-72295a******/myappid_testroom_userA_2025-05-06-14:37:22.mp4', 'title' => ''],
'title' => '',
'example' => '',
],
'HlsFileList' => [
'description' => 'The array of HLS recording file names.',
'type' => 'array',
'items' => ['description' => 'The HLS recording file name.', 'type' => 'string', 'example' => '******73-8501-****-8ac1-72295a******/myappid_testroom_userA_2025-05-06-14:37:22.m3u8', 'title' => ''],
'title' => '',
'example' => '',
],
'VodMediaList' => [
'description' => 'The array of VOD media resources. When recording to VOD, this is the collection of recording files for each subscribed stream, where each item corresponds to a subscribed stream.',
'type' => 'array',
'items' => [
'description' => 'The media resource information for a subscribed stream.',
'type' => 'object',
'properties' => [
'Stream' => ['description' => 'The subscribed stream.'."\n"
.' - For stream mixing recording, the value is always Mix.'."\n"
.' - For single-stream recording, the value is Single::{UserId}::{Suffix}.'."\n"
.' - UserId is the UserId corresponding to this stream.'."\n"
.' - Suffix depends on the StreamType and SourceType specified during subscription.'."\n"
.' - When StreamType is 0: if SourceType is 0, Suffix is AV::C. If SourceType is 1, Suffix is AV::S.'."\n"
.' - When StreamType is 1: Suffix can only be A.'."\n"
.' - When StreamType is 2 (not supported for single-stream recording): if SourceType is 0, Suffix is V::C. If SourceType is 1, Suffix is V::S.', 'type' => 'string', 'example' => 'Single::UserA::AV::C', 'title' => ''],
'MediaIds' => [
'description' => 'The array of media resource IDs generated during recording.',
'type' => 'array',
'items' => ['description' => 'The media resource ID generated during recording.', 'type' => 'string', 'example' => '****bbd9f59c71ee80065017f0f8****', 'title' => ''],
'title' => '',
'example' => '',
],
'MergedIds' => [
'description' => 'The array of automatically merged media resource IDs generated after recording ends.',
'type' => 'array',
'items' => ['description' => 'The automatically merged media resource ID generated after recording ends.', 'type' => 'string', 'example' => '****d2f9f59c71ee8006501790g7****', 'title' => ''],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'NotFound.Task', 'errorMessage' => '%s, please check the TaskId.', 'description' => 'The parameter TaskId does not exist.'],
['errorCode' => 'InvalidParameter.TaskId', 'errorMessage' => '%s, please check the TaskId.', 'description' => 'The specified task must be in the running or recovering state.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
],
403 => [
['errorCode' => 'InvalidParameter.UserId', 'errorMessage' => '%s, please check the UserId.', 'description' => 'UserId is invalid, please check.'],
],
],
'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' => 'Query RTC cloud recording files and task status',
'description' => '## QPS limit'."\n"
.'The single-user QPS limit for this operation is 50 calls per second. If this limit is exceeded, API calls are throttled, which may affect your business. Call this operation appropriately.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRtcCloudRecordingFiles'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeRtcCloudRecordingFiles',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeRtcCloudTranscode' => [
'summary' => 'Queries a cloud transcoding task.',
'path' => '',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'none',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveK6LRQR'],
'tenantRelevance' => 'tenant',
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. The value can contain uppercase and lowercase letters, digits, underscores, and hyphens (-), with a maximum of 64 characters.', 'type' => 'string', 'required' => true, 'example' => '********-7074-****-9ef5-85c19a4*****', 'title' => ''],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'The cloud transcoding task ID. The value can contain uppercase and lowercase letters, digits, underscores, and hyphens (-), with a maximum of 64 characters.', 'type' => 'string', 'required' => true, 'example' => '******73-8501-****-8ac1-72295a******', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'The response body.',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******'],
'TaskInfo' => [
'description' => 'The details of the cloud transcoding task.',
'type' => 'object',
'properties' => [
'AppId' => ['description' => 'The application ID.', 'type' => 'string', 'example' => '********-7074-****-9ef5-85c19a4*****', 'title' => ''],
'ChannelId' => ['description' => 'The channel ID.', 'type' => 'string', 'example' => 'myChannel', 'title' => ''],
'TaskId' => ['description' => 'The cloud transcoding task ID.', 'type' => 'string', 'example' => '******73-8501-****-8ac1-72295a******', 'title' => ''],
'Status' => ['description' => 'The status of the cloud transcoding task. Valid values:'."\n"
."\n"
.'- STARTING'."\n"
.'- RUNNING'."\n"
.'- RECOVERING'."\n"
.'- STOPPED.', 'type' => 'string', 'example' => 'RUNNING', 'title' => ''],
'InputParam' => [
'description' => 'The subscription input parameters.',
'type' => 'object',
'properties' => [
'SingleSubUserParam' => [
'description' => 'The single-stream subscription input parameters.',
'type' => 'object',
'properties' => [
'UserId' => ['description' => 'The user ID of the subscribed user.', 'type' => 'string', 'example' => 'userA', 'title' => ''],
'StreamType' => ['description' => 'The media type of the subscribed user.', 'type' => 'integer', 'format' => 'int64', 'example' => '0', 'title' => ''],
'SourceType' => ['description' => 'The video input stream type of the subscription.', 'type' => 'integer', 'format' => 'int64', 'example' => '0', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'OutputParams' => [
'description' => 'The transcoding output parameters.',
'type' => 'array',
'items' => [
'description' => 'The transcoding output parameter.',
'type' => 'object',
'properties' => [
'ChannelId' => ['description' => 'The channel ID to which the transcoded stream is relayed.', 'type' => 'string', 'example' => 'myChannel', 'title' => ''],
'UserId' => ['description' => 'The user ID in the channel to which the transcoded stream is relayed.', 'type' => 'string', 'example' => 'userA_360p', 'title' => ''],
'UserToken' => ['description' => 'The user token required to relay the transcoded stream to the channel.', 'type' => 'string', 'example' => 'eyJhcHBpZCI********', 'title' => ''],
'TranscodeTemplate' => ['description' => 'The transcoding template name.', 'type' => 'string', 'example' => 'lhd', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'MaxIdleTime' => ['description' => 'The idle timeout period. If the task remains idle for longer than the MaxIdleTime value, the task is automatically stopped. Unit: seconds. Valid values: 10 to 14400 (maximum of 4 hours). Default value: 300.', 'type' => 'integer', 'format' => 'int64', 'example' => '600', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'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' => ''],
],
[
['errorCode' => 'NotFound%s', 'errorMessage' => '%s.', 'description' => ''],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => 'error on the live liveapi server.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'Query a cloud transcoding task',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'live:DescribeRtcCloudTranscode',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', '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' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '219226',
'abilityTreeNodes' => ['FEATUREliveK6LRQR'],
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of your application.'."\n"
."\n"
.'> The ID can be up to 64 characters in length and can contain letters, digits, underscores, and hyphens (-).', 'type' => 'string', 'required' => true, 'example' => 'yourAppId', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******', 'title' => ''],
'SubInfo' => [
'description' => 'The information about the subscription.',
'type' => 'object',
'properties' => [
'SubId' => ['description' => 'The ID of the subscription.', 'type' => 'string', 'example' => 'Sub-******9799B2C4500******', 'title' => ''],
'AppId' => ['description' => 'The application ID. You can specify only one application ID.', 'type' => 'string', 'example' => 'yourAppId', 'title' => ''],
'ChannelIds' => ['description' => 'The ID of the channel to which mixed-stream relay event callbacks are sent. Multiple channel IDs are separated by commas (,). If this parameter is not returned, mixed-stream relay event callbacks are sent to all channels.', 'type' => 'string', 'example' => 'yourCh1,yourCh2', 'title' => ''],
'CreateTime' => ['description' => 'The time when the event callback was fired. The time follows the ISO 8601 standard in the YYYY-MM-DDThh:mm:ss format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2024-04-09 18:00:00Z', 'title' => ''],
'CallbackUrl' => ['description' => 'The callback URL.', 'type' => 'string', 'example' => 'http://testcallback***.com/callback', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => '%s.', 'description' => 'Parameter verification failed'],
['errorCode' => 'InvalidAppId', 'errorMessage' => '%s, please check and try again later.', 'description' => 'AppId is invalid, please check and try again.'],
['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is missing, please check and try again.'],
],
403 => [
['errorCode' => 'OperationDenied', 'errorMessage' => 'Your account has not enabled the Live service', 'description' => ''],
['errorCode' => 'Forbidden', 'errorMessage' => '%s, please check and try again later.', 'description' => 'No permission, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'InternalError', 'description' => ''],
],
],
'title' => 'DescribeRtcMPUEventSub',
'summary' => 'Queries information about a subscription to mixed-stream relay events.',
'description' => '### Usage notes'."\n"
."\n"
.'- You can call this operation to query information about a subscription to mixed-stream relay events.'."\n"
."\n"
.'- Before you call this operation, make sure that you have called the CreateRtcMPUEventSub operation to create the subscription.'."\n"
."\n"
.'### QPS limit'."\n"
."\n"
.'- You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation. For more information, see [QPS limits](~~343507~~).',
'changeSet' => [
['createdAt' => '2024-07-04T06:14:36.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRtcMPUEventSub'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeRtcMPUEventSub',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeShowList' => [
'summary' => 'Queries a playlist.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '115259',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The ID of the region.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you create a production studio by calling the [CreateCaster](~~2848009~~) operation, use the CasterId value that is returned in the response.'."\n"
."\n"
.'- If you create a production studio in the LIVE console, choose **LIVE Console** > **Production Studio** > **Cloud Production Studio** to find the name of the production studio.'."\n"
."\n"
.'> The name of the production studio in the list on the Cloud Production Studio page is the production studio ID.', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
'ShowList' => ['description' => 'The details of the playlist. `Show` contains the details of a show in the playlist.', 'type' => 'string', 'example' => 'ShowList[Show1, Show2, Show3...]', 'title' => ''],
'ShowListInfo' => [
'description' => 'The playlist.',
'type' => 'object',
'properties' => [
'CurrentShowId' => ['description' => 'The ID of the show that is being played.', 'type' => 'string', 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
'Background' => ['description' => 'The background of the playlist.', 'type' => 'string', 'example' => '{\\"MaterialId\\":\\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\"resourceType\\":\\"VOD\\"}', 'title' => ''],
'HighPriorityShowId' => ['description' => 'The highest-priority show.'."\n"
."\n"
.'> You can configure this parameter only before the playlist starts.', 'type' => 'string', 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
'HighPriorityShowStartTime' => ['description' => 'The time when the highest-priority show is played. The format is yyyy-MM-dd\'T\'HH:mm:ss.'."\n"
."\n"
.'> You can configure this parameter only before the playlist starts. After the configuration is complete, the system switches to the highest-priority show at the specified time.', 'type' => 'string', 'example' => '2021-11-23T12:30:00', 'title' => ''],
'ShowList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Show' => [
'description' => 'The list of shows in the playlist.',
'type' => 'array',
'items' => [
'description' => 'The details of the show.',
'type' => 'object',
'properties' => [
'Duration' => ['description' => 'The duration of a single show, in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '20', 'title' => ''],
'RepeatTimes' => ['description' => 'The number of times a single show is looped.'."\n"
."\n"
.'For example, a value of 0 indicates that the show is played once. A value of 1 indicates that the show is played twice.', 'type' => 'integer', 'format' => 'int32', 'example' => '5', 'title' => ''],
'ResourceInfo' => [
'description' => 'The resource information.',
'type' => 'object',
'properties' => [
'LiveInputType' => ['description' => 'The custom type identifier.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'ResourceId' => ['description' => 'The ID of the video-on-demand (VOD) file.', 'type' => 'string', 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
'ResourceType' => ['description' => 'The type of the resource material.', 'type' => 'string', 'example' => 'vod', 'title' => ''],
'ResourceUrl' => ['description' => 'The URL of the resource.', 'type' => 'string', 'example' => 'http://**/atestObject**.m3u8', 'title' => ''],
],
'title' => '',
'example' => '',
],
'ShowId' => ['description' => 'The ID of the show.', 'type' => 'string', 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
'ShowName' => ['description' => 'The name of the show.', 'type' => 'string', 'example' => 'liveShow****', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'ShowListRepeatTimes' => ['description' => 'The default number of loops for the playlist. This value is always 0.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'TotalShowListRepeatTimes' => ['description' => 'The number of times the entire playlist is looped.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidShowList.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'ShowList does not exist, please check and try again.'],
['errorCode' => 'InvalidShow.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Show does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'DescribeShowList',
'description' => 'Before calling this operation, you must add a show to the playlist. To add a show by calling an API operation, see [Add a show to a playlist](~~2848051~~).'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 10. If the limit is exceeded, API calls are throttled. This may affect your business operations. Plan your calls accordingly.',
'requestParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2024-07-15T01:31:08.000Z', 'description' => 'Response parameters changed'],
['createdAt' => '2024-07-11T09:45:40.000Z', 'description' => 'Response parameters changed'],
['createdAt' => '2024-04-11T07:26:51.000Z', 'description' => 'Response parameters changed'],
['createdAt' => '2024-01-30T03:31:37.000Z', 'description' => 'Response parameters changed'],
],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeShowList',
'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-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}","type":"json"}]',
],
'DescribeStreamLocationBlock' => [
'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' => 'The ID of the region.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The AppName of the live stream.', 'type' => 'string', 'required' => false, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The name of the live stream.', 'type' => 'string', 'required' => false, 'example' => 'stream', 'title' => ''],
],
[
'name' => 'BlockType',
'in' => 'query',
'schema' => ['description' => 'The blocking method. Valid values:'."\n"
."\n"
.'- blacklist'."\n"
."\n"
.'- whitelist', 'type' => 'string', 'required' => false, 'example' => 'blacklist', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries to return on each page. Valid values: integers from 1 to 100.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '20', 'example' => '5', 'title' => ''],
],
[
'name' => 'PageNum',
'in' => 'query',
'schema' => ['description' => 'The number of the page to return. Default value: 1.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '1', 'example' => '1', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'Count' => ['description' => 'The total number of entries that meet the specified criteria.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''],
'PageNum' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'PageSize' => ['description' => 'The number of entries on each page.', 'type' => 'integer', 'format' => 'int32', 'example' => '5', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'C7C69682-7F88-40DD-A198-10D0309E439B', 'title' => ''],
'StreamBlockList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'StreamBlock' => [
'itemNode' => true,
'description' => 'The configuration details.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'The configuration details.',
'type' => 'object',
'properties' => [
'AppName' => ['description' => 'The blocked AppName.', 'type' => 'string', 'example' => 'liveApp****', 'title' => ''],
'BlockType' => ['description' => 'The blocking method. Valid values:'."\n"
."\n"
.'- blacklist'."\n"
."\n"
.'- whitelist', 'type' => 'string', 'example' => 'blacklist', 'title' => ''],
'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'LocationList' => ['description' => 'A comma-separated list of region codes to block or allow.', 'type' => 'string', 'example' => 'CN', 'title' => ''],
'ReleaseTime' => ['description' => 'The time when the block will be automatically lifted, in UTC format.', 'type' => 'string', 'example' => '2023-08-13T09:27Z', 'title' => ''],
'Status' => ['description' => 'The blocking status. Valid values: 0 (not started), 1 (blocking), 2 (successful), 3 (failed), 4 (expired), and 5 (deleting).', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'StreamName' => ['description' => 'The name of the blocked stream.', 'type' => 'string', 'example' => 'stream', 'title' => ''],
'UpdateTime' => ['description' => 'The time when the configuration was last modified. The time is in UTC.', 'type' => 'string', 'example' => '2023-08-14T09:27Z', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'TotalPage' => ['description' => 'The total number of pages returned.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => 'Illegal input parameters'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''],
],
],
'title' => 'DescribeStreamLocationBlock',
'summary' => 'Queries region blocking configurations of a specific live stream.',
'description' => '## QPS limit'."\n"
."\n"
.'You can call this operation up to 50 times per second per user. If the number of calls per second exceeds the limit, throttling is triggered. This may affect your business. Plan your calls accordingly.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeStreamLocationBlock'],
],
],
'ramActions' => [
[
'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 \\"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' => 'Queries one or more layouts of a virtual studio.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you create a production studio by calling the [CreateCaster](~~2848009~~) operation, use the returned CasterId.'."\n"
."\n"
.'- If you create a production studio in the ApsaraVideo Live console, go to the **ApsaraVideo Live console** > **Production Studio** > **Cloud Production Studio** page to view the ID.'."\n"
."\n"
.'> The name of the production studio in the list on the Cloud Production Studio page is the production studio ID.', 'type' => 'string', 'required' => true, 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****', 'title' => ''],
],
[
'name' => 'LayoutId',
'in' => 'query',
'schema' => ['description' => 'The layout ID. To specify multiple layout IDs, separate them with commas (,). If you leave this parameter empty, all layouts of the production studio are returned.'."\n"
."\n"
.'If you add a layout by calling the [AddStudioLayout](~~2848062~~) operation, use the returned LayoutId.', 'type' => 'string', 'required' => false, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The layout details.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5c6a2a0d-f228-4a64-af62-20e91b9676b3', 'title' => ''],
'StudioLayouts' => [
'description' => 'The layout details.',
'type' => 'array',
'items' => [
'description' => 'The layout details.',
'type' => 'object',
'properties' => [
'BgImageConfig' => [
'description' => 'The background resource configuration.',
'type' => 'object',
'properties' => [
'Id' => ['description' => 'The unique ID of the background material.', 'type' => 'string', 'example' => 'k12kj31****', 'title' => ''],
'ImageUrl' => ['description' => 'The URL of the material.', 'type' => 'string', 'example' => ' http://example.org', 'title' => ''],
'LocationId' => ['description' => 'The position ID.', 'type' => 'string', 'example' => 'RV01', 'title' => ''],
'MaterialId' => ['description' => 'The ID of the video-on-demand (VOD) material.', 'type' => 'string', 'example' => 'asdfas9df89asd8f9****', 'title' => ''],
],
'title' => '',
'example' => '',
],
'CommonConfig' => [
'description' => 'The information about the common layout. This parameter is returned if the layout is a common layout.',
'type' => 'object',
'properties' => [
'ChannelId' => ['description' => 'The ID of the channel to which the video resource is attached.', 'type' => 'string', 'example' => 'RV01', 'title' => ''],
'VideoResourceId' => ['description' => 'The ID of the video resource.', 'type' => 'string', 'example' => 'asdfasdfasdfasdfa****', 'title' => ''],
],
'title' => '',
'example' => '',
],
'LayerOrderConfigList' => [
'description' => 'The layer order configuration.',
'type' => 'array',
'items' => [
'description' => 'The layer order configuration.',
'type' => 'object',
'properties' => [
'Id' => ['description' => 'The unique ID of the resource.', 'type' => 'string', 'example' => 'k12kj31****', 'title' => ''],
'Type' => ['description' => 'The type of the resource configuration. Valid values:'."\n"
."\n"
.'- **background**: background material.'."\n"
."\n"
.'- **media**: multimedia material.', 'type' => 'string', 'example' => 'media', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'LayoutId' => ['description' => 'The ID of the production studio layout.', 'type' => 'string', 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
'LayoutName' => ['description' => 'The name of the production studio layout.', 'type' => 'string', 'example' => 'Test layout', 'title' => ''],
'LayoutType' => ['description' => 'The type of the production studio layout. Valid values:'."\n"
."\n"
.'- **common**: common layout.'."\n"
."\n"
.'- **studio**: production studio layout.', 'type' => 'string', 'example' => 'studio', 'title' => ''],
'MediaInputConfigList' => [
'description' => 'The multimedia input resource configuration.',
'type' => 'array',
'items' => [
'description' => 'The multimedia input source configuration.',
'type' => 'object',
'properties' => [
'ChannelId' => ['description' => 'The ID of the channel to which the video resource is attached.', 'type' => 'string', 'example' => 'RV01', 'title' => ''],
'FillMode' => ['description' => 'The fill mode. The default value is none.', 'type' => 'string', 'example' => 'none', 'title' => ''],
'HeightNormalized' => ['description' => 'The normalized height of the material. This is the ratio of the material height to the background height. Valid values: **0 to 1**.', 'type' => 'number', 'format' => 'float', 'example' => '0.4', 'title' => ''],
'Id' => ['description' => 'The unique ID of the multimedia material.', 'type' => 'string', 'example' => 'k12kj31****', 'title' => ''],
'ImageMaterialId' => ['description' => 'The ID of the VOD image material.', 'type' => 'string', 'example' => 'lkajsdfsa8fd89asd8****', 'title' => ''],
'Index' => ['description' => 'The index of the multimedia material. This parameter is for display on the frontend and has no logical function.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'PositionNormalized' => [
'description' => 'The normalized coordinates of the material\'s fill area, in the format \\[x,y]. The values of x and y range from **0 to 1**. For example, \\[0.1,0.2] indicates a horizontal offset of 10% and a vertical offset of 20% from the top-left corner.',
'type' => 'array',
'items' => ['description' => 'The normalized coordinate of the material\'s fill area, in the format `[x,y]`. The values of x and y range from **0 to 1**. For example, `[0.1,0.2]` indicates a horizontal offset of 10% and a vertical offset of 20% from the top-left corner.', 'type' => 'number', 'format' => 'float', 'example' => '0.1', 'title' => ''],
'title' => '',
'example' => '',
],
'PositionRefer' => ['description' => 'The reference point for the material\'s position. The default value is topLeft, which indicates that the top-left corner is the reference point.', 'type' => 'string', 'example' => 'topLeft', 'title' => ''],
'VideoResourceId' => ['description' => 'The ID of the video resource.', 'type' => 'string', 'example' => 'asdfasdfasdfasdfa****', 'title' => ''],
'WidthNormalized' => ['description' => 'The normalized width of the material. This is the ratio of the material width to the background width. Valid values: **0 to 1**.', 'type' => 'number', 'format' => 'float', 'example' => '0.4', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'ScreenInputConfigList' => [
'description' => 'The chroma keying input configuration.',
'type' => 'array',
'items' => [
'description' => 'The chroma keying input configuration.',
'type' => 'object',
'properties' => [
'AudioConfig' => [
'description' => 'The audio configuration.',
'type' => 'object',
'properties' => [
'ValidChannel' => ['description' => 'The corresponding channel.', 'type' => 'string', 'example' => '1', 'title' => ''],
'VolumeRate' => ['description' => 'The volume.', 'type' => 'number', 'format' => 'float', 'example' => '1.0', 'title' => ''],
],
'title' => '',
'example' => '',
],
'ChannelId' => ['description' => 'The ID of the channel to which the video resource is attached.', 'type' => 'string', 'example' => 'RV01', 'title' => ''],
'Color' => ['description' => 'The color for chroma keying. Valid values:'."\n"
."\n"
.'- **blue**: blue screen background.'."\n"
."\n"
.'- **green**: green screen background.'."\n"
."\n"
.'- **auto**: automatic detection.'."\n"
."\n"
.'- **complex**: real scene matting.', 'type' => 'string', 'example' => 'green', 'title' => ''],
'HeightNormalized' => ['description' => 'The normalized height. This is the ratio of the keyed portrait\'s height to the background\'s height. Valid values: **0 to 1**.', 'type' => 'number', 'format' => 'float', 'example' => '0.4', 'title' => ''],
'Id' => ['description' => 'The unique ID of the chroma key source material.', 'type' => 'string', 'example' => 'k12kj31****', 'title' => ''],
'Index' => ['description' => 'The index of the chroma key source. This parameter is for display on the frontend and has no logical function.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'OnlyAudio' => ['description' => 'Audio only.', 'type' => 'boolean', 'example' => 'true', 'title' => ''],
'PortraitType' => ['description' => 'The portrait type. Valid values:'."\n"
."\n"
.'- **0**: half-length.'."\n"
."\n"
.'- **1**: full-length.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'PositionX' => ['description' => 'The x-coordinate. Valid values: **0 to 1**. The top-left corner is the reference point for the material\'s position.', 'type' => 'string', 'example' => '0.1', 'title' => ''],
'PositionY' => ['description' => 'The y-coordinate. Valid values: **0 to 1**. The top-left corner is the reference point for the material\'s position.', 'type' => 'string', 'example' => '0.2', 'title' => ''],
'VideoResourceId' => ['description' => 'The ID of the video resource.', 'type' => 'string', 'example' => 'asdfasdfasdfasdfa****', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'Total' => ['description' => 'The total number of layouts.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'DescribeStudioLayouts',
'description' => 'You must first call the [AddStudioLayout](~~2848062~~) operation to add a layout for a virtual production studio. You can then call this operation to query the layout settings.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'This operation supports up to 15 queries per second (QPS) per user. Calls that exceed this limit are throttled, which may affect your business. Plan your calls accordingly.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeStudioLayouts'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeStudioLayouts',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'DescribeToutiaoLivePlay' => [
'summary' => 'This operation queries stream pulling information for a specified Toutiao live stream.',
'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' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start of the time range to query. Specify the time in the ISO 8601 standard. Use UTC.', 'type' => 'string', 'required' => true, 'example' => '2017-10-10T20:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. The end time must be later than the start time, and the time span cannot exceed 10 hours. If you do not specify StartTime and EndTime, data for the last hour is queried by default. Specify the time in the ISO 8601 standard. Use UTC.', 'type' => 'string', 'required' => true, 'example' => '2017-10-10T21:00:00Z', 'title' => ''],
],
[
'name' => 'Domain',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'Stream',
'in' => 'query',
'schema' => ['description' => 'The stream name.', 'type' => 'string', 'required' => true, 'example' => 'liveStream****', 'title' => ''],
],
[
'name' => 'App',
'in' => 'query',
'schema' => ['description' => 'The name of the application to which the stream belongs.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'Description' => ['description' => 'The description of the response status.', 'type' => 'string', 'example' => 'OK', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', 'title' => ''],
'Content' => [
'description' => 'The details of the stream information.',
'type' => 'array',
'items' => [
'description' => 'The details of the stream information.',
'type' => 'object',
'properties' => [
'Domain' => ['description' => 'The streaming domain.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'Bandwidth' => ['description' => 'The bandwidth. Unit: Mbit/s.', 'type' => 'number', 'format' => 'float', 'example' => '0.0801239013671875', 'title' => ''],
'StreamName' => ['description' => 'The stream name.', 'type' => 'string', 'example' => 'liveStream****', 'title' => ''],
'App' => ['description' => 'The name of the application to which the stream belongs.', 'type' => 'string', 'example' => 'liveApp****'."\n", 'title' => ''],
'PlayNum' => ['description' => 'The number of viewers.', 'type' => 'integer', 'format' => 'int64', 'example' => '452', 'title' => ''],
'Timestamp' => ['description' => 'The timestamp.', 'type' => 'integer', 'format' => 'int64', 'example' => '1625484600', 'title' => ''],
'CdnName' => ['description' => 'The CDN name.', 'type' => 'string', 'example' => 'ali', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [],
'title' => 'DescribeToutiaoLivePlay',
'description' => 'You can call this API to query stream pulling information for a specified Toutiao live stream.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 100. If you exceed this limit, API calls are throttled. This may affect your business. For more information, see [QPS limits](~~343507~~).',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeToutiaoLivePlay',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'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"}]',
],
'DescribeToutiaoLivePublish' => [
'summary' => 'Queries the stream ingest information for a specified Toutiao live stream.',
'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' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start of the time range to query. The date is in ISO 8601 format and uses UTC.', 'type' => 'string', 'required' => true, 'example' => '2017-10-10T20:00:00Z'."\n", 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. The date is in ISO 8601 format and uses UTC. The end time must be later than the start time, and the time span cannot exceed 10 hours. If you do not specify StartTime and EndTime, data from the last hour is queried by default.', 'type' => 'string', 'required' => true, 'example' => '2017-10-10T21:00:00Z'."\n", 'title' => ''],
],
[
'name' => 'Domain',
'in' => 'query',
'schema' => ['description' => 'The ingest domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'Stream',
'in' => 'query',
'schema' => ['description' => 'The stream name.', 'type' => 'string', 'required' => true, 'example' => 'liveStream****', 'title' => ''],
],
[
'name' => 'App',
'in' => 'query',
'schema' => ['description' => 'The name of the application to which the stream belongs.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'Description' => ['description' => 'The description of the response status.', 'type' => 'string', 'example' => 'OK'."\n", 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', 'title' => ''],
'Content' => [
'description' => 'The details of the stream ingest information.',
'type' => 'array',
'items' => [
'description' => 'The details of the stream ingest information.',
'type' => 'object',
'properties' => [
'Domain' => ['description' => 'The ingest domain.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'StreamName' => ['description' => 'The stream name.', 'type' => 'string', 'example' => 'liveStream****', 'title' => ''],
'App' => ['description' => 'The name of the application to which the stream belongs.', 'type' => 'string', 'example' => 'liveApp****'."\n", 'title' => ''],
'Fps' => ['description' => 'The frame rate.', 'type' => 'number', 'format' => 'float', 'example' => '74.4', 'title' => ''],
'Flr' => ['description' => 'The number of dropped frames.', 'type' => 'number', 'format' => 'float', 'example' => '0', 'title' => ''],
'Timestamp' => ['description' => 'The timestamp.', 'type' => 'integer', 'format' => 'int64', 'example' => '1624358970', 'title' => ''],
'Bitrate' => ['description' => 'The bitrate in bit/s.', 'type' => 'number', 'format' => 'float', 'example' => '261587', 'title' => ''],
'BwDiff' => ['description' => 'The bitrate difference.', 'type' => 'number', 'format' => 'float', 'example' => '0', 'title' => ''],
'CdnName' => ['description' => 'The CDN name.', 'type' => 'string', 'example' => 'ali', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [],
'title' => 'DescribeToutiaoLivePublish',
'description' => 'You can call this API to query the stream ingest information for a specified Toutiao live stream.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The QPS limit for this API is 100 calls per second per user. Calls that exceed this limit are throttled, which may impact your business. We recommend that you call the API within this limit. For more information, see [QPS limits](~~343507~~).',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeToutiaoLivePublish'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeToutiaoLivePublish',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'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"}]',
],
'DescribeUpBpsPeakData' => [
'summary' => 'Queries the daily peak upstream bandwidth of a user.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveYUZBM3'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time of stream pulling. Specify the time in UTC. The interval between StartTime and EndTime must be within 30 days.', 'type' => 'string', 'required' => true, 'example' => '2017-10-10T20:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time of stream pulling. Specify the time in UTC. The interval between StartTime and EndTime must be within 30 days, and EndTime must be later than the current time.', 'type' => 'string', 'required' => true, 'example' => '2017-10-10T21:00:00Z', 'title' => ''],
],
[
'name' => 'DomainSwitch',
'in' => 'query',
'schema' => [
'description' => 'Specifies whether to enable domain-level statistics. Valid values:'."\n"
."\n"
.'- on: enables domain-level statistics.'."\n"
.'- off: returns user-level data. User-level data is returned by default.',
'enumValueTitles' => ['off' => 'user-level data.', 'on' => 'enables domain-level statistics.'],
'type' => 'string',
'required' => false,
'enum' => ['on', 'off'],
'example' => 'on',
'title' => '',
],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The bandwidth information.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', 'title' => ''],
'DescribeUpPeakTraffics' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DescribeUpPeakTraffic' => [
'description' => 'The daily peak upstream bandwidth information.',
'type' => 'array',
'items' => [
'description' => 'The daily peak upstream bandwidth information.',
'type' => 'object',
'properties' => [
'QueryTime' => ['description' => 'The queried daily time. The time follows the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2017-10-10T20:10:00Z', 'title' => ''],
'BandWidth' => ['description' => 'The daily peak upstream bandwidth.', 'type' => 'string', 'example' => '777.2727083333333', 'title' => ''],
'StatName' => ['description' => 'The name of the statistical data attribute. If DomainSwitch is set to on, the live streaming domain name of the user is displayed. If DomainSwitch is set to off or is not specified, the user ID is displayed.', 'type' => 'string', 'example' => 'push-live.aliyuncs.com', 'title' => ''],
'PeakTime' => ['description' => 'The time when the daily peak upstream bandwidth occurs. The time follows the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2017-10-10T20:10:00Z', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['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.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'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' => 'Query daily peak upstream bandwidth of a user',
'description' => 'Calls the operation to query the daily peak upstream bandwidth of a user.'."\n"
.'## QPS limit'."\n"
.'The queries per second (QPS) limit for a single user for this operation is 5. If the limit is exceeded, API calls are throttled, which may affect your business. Call this operation as needed. For more information, see [QPS limit](~~343507~~).',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeUpBpsPeakData'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeUpBpsPeakData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeUpBpsPeakOfLine' => [
'summary' => 'Queries the daily peak upstream bandwidth of a specific dedicated line for a user.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveYUZBM3'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time of stream pulling. Specify the time in UTC. The time interval between StartTime and EndTime must be within 30 days.', 'type' => 'string', 'required' => true, 'example' => '2017-10-10T20:00:00Z'."\n", 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time of stream pulling. Specify the time in UTC. The time interval between StartTime and EndTime must be within 30 days, and EndTime must be later than the current time.', 'type' => 'string', 'required' => true, 'example' => '2017-10-10T21:00:00Z'."\n", 'title' => ''],
],
[
'name' => 'Line',
'in' => 'query',
'schema' => [
'description' => 'The dedicated line. Valid values: integers in the range of [0, 9].',
'enumValueTitles' => ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'],
'type' => 'string',
'required' => true,
'enum' => ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'],
'example' => '3',
'title' => '',
],
],
[
'name' => 'DomainSwitch',
'in' => 'query',
'schema' => [
'description' => 'The domain name statistics switch. Valid values:'."\n"
."\n"
.'- on: Enables domain name-level statistics.'."\n"
.'- off: User-level data. User-level data is collected by default.',
'enumValueTitles' => ['off' => 'user-level data.', 'on' => 'enable domain name-level statistics.'],
'type' => 'string',
'required' => false,
'enum' => ['on', 'off'],
'example' => 'on',
'title' => '',
],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The bandwidth information.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '6CFDE7AB-571A-14EA-B072-989FF753****', 'title' => ''],
'DescribeUpBpsPeakOfLines' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DescribeUpBpsPeakOfLine' => [
'description' => 'The daily peak upstream bandwidth information for the dedicated line.',
'type' => 'array',
'items' => [
'description' => 'The daily peak upstream bandwidth information for the dedicated line.',
'type' => 'object',
'properties' => [
'QueryTime' => ['description' => 'The queried daily time. The time follows the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2017-10-10T20:10:00Z', 'title' => ''],
'StatName' => ['description' => 'The name of the statistics attribute. When DomainSwitch is set to on, the live streaming domain name is displayed. When DomainSwitch is set to off or not specified, the user ID is displayed.', 'type' => 'string', 'example' => 'push-live.aliyuncs.com', 'title' => ''],
'BandWidth' => ['description' => 'The daily peak upstream bandwidth of the dedicated line.', 'type' => 'number', 'format' => 'float', 'example' => '777.2727083333333'."\n", 'title' => ''],
'PeakTime' => ['description' => 'The time when the daily peak upstream bandwidth of the dedicated line occurs. The time follows the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2017-10-10T20:10:00Z', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
401 => [
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'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' => 'Query daily peak upstream bandwidth of a specific dedicated line',
'description' => 'Calls the operation to query the daily peak upstream bandwidth of a specific dedicated line for a user.'."\n"
.'## QPS limit'."\n"
.'The QPS limit for a single user on this operation is 5 calls per second. If the limit is exceeded, API calls are throttled, which may affect your business. Call this operation appropriately. For more information, see [QPS limit](~~343507~~).',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeUpBpsPeakOfLine'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeUpBpsPeakOfLine',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeUpPeakPublishStreamData' => [
'summary' => 'Queries the daily peak number of concurrent upstream ingest streams for a user.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveYUZBM3'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time of stream pulling in UTC. The interval between StartTime and EndTime must be within 30 days.', 'type' => 'string', 'required' => true, 'example' => '2017-10-10T20:00:00Z'."\n", 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time of stream pulling in UTC. The interval between StartTime and EndTime must be within 30 days, and EndTime must be later than the current time.', 'type' => 'string', 'required' => true, 'example' => '2017-10-10T22:00:00Z'."\n", 'title' => ''],
],
[
'name' => 'DomainSwitch',
'in' => 'query',
'schema' => [
'description' => 'The domain name statistics switch. Valid values:'."\n"
."\n"
.'- on: enables domain name-level statistics.'."\n"
.'- off: user-level data. User-level data is collected by default.',
'enumValueTitles' => ['off' => 'user-level data.', 'on' => 'enables domain name-level statistics.'],
'type' => 'string',
'required' => false,
'enum' => ['on', 'off'],
'example' => 'on',
'title' => '',
],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The stream ingest data.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '6CFDE7AB-571A-14EA-B072-989FF753****'."\n", 'title' => ''],
'DescribeUpPeakPublishStreamDatas' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DescribeUpPeakPublishStreamData' => [
'description' => 'The daily peak concurrent stream ingest data.',
'type' => 'array',
'items' => [
'description' => 'The daily peak concurrent stream ingest data.',
'type' => 'object',
'properties' => [
'QueryTime' => ['description' => 'The queried daily time. The time follows the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2017-10-10T20:10:00Z'."\n", 'title' => ''],
'BandWidth' => ['description' => 'The daily peak upstream bandwidth.', 'type' => 'string', 'example' => '777.2727083333333', 'title' => ''],
'StatName' => ['description' => 'The name of the statistics attribute. When DomainSwitch is set to on, the live streaming domain name is displayed. When DomainSwitch is set to off or is not specified, the user ID is displayed.', 'type' => 'string', 'example' => 'push-live.aliyuncs.com', 'title' => ''],
'PeakTime' => ['description' => 'The peak time of the daily peak number of concurrent ingest streams. The time follows the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2017-10-10T20:10:00Z'."\n"
."\n", 'title' => ''],
'PublishStreamNum' => ['description' => 'The daily peak number of concurrent ingest streams.', 'type' => 'integer', 'format' => 'int32', 'example' => '36', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['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.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'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' => 'Query daily peak concurrent upstream ingest streams',
'description' => 'Calls the operation to query the daily peak number of concurrent upstream ingest streams for a user.'."\n"
.'## QPS limit'."\n"
.'The QPS limit for a single user on this operation is 10 calls per second. If this limit is exceeded, API calls are throttled, which may affect your business. Call this operation appropriately. For more information, see [QPS limit](~~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' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'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' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain for which to pause real-time log delivery. To specify multiple domain names, separate them with commas (,).', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '9732E117-8A37-49FD-A36F-ABBB87556CA7', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'Unauthorized', 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', 'description' => ''],
],
404 => [
['errorCode' => 'Domain.NotFound', 'errorMessage' => 'Domain not found', 'description' => ''],
],
],
'title' => 'DisableLiveRealtimeLogDelivery',
'summary' => 'Call DisableLiveRealtimeLogDelivery to pause real-time log delivery for a domain name.',
'description' => 'This operation pauses real-time log delivery for a specified streaming domain. Before you call this operation, you must specify a streaming domain that has real-time log delivery enabled. Currently, this feature is available only for streaming domains. To push upstream real-time logs from an ingest domain, you must [submit a ticket](https://workorder.console.aliyun.com/console.htm#/ticket/add?productCode=live\\&commonQuestionId=4545\\&isSmart=true\\&iatraceid=1608439120675-2a5c48de0b84805313c708\\&channel=selfservice).Currently, this feature is available only for streaming domains. To push upstream real-time logs from an ingest domain, you must [submit a ticket](https://workorder-intl.console.aliyun.com/?spm=5176.12818093.nav-right.dticket.6cb216d07otFWR#/ticket/createIndex).'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'A single user can make up to 6,000 queries per second (QPS) to this API. If you exceed this limit, API calls are throttled, which can affect your business. We recommend that you call this API at a reasonable rate.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Special error codes'."\n"
."\n"
.'|HTTP status code|Error code|Description|'."\n"
.'|---|---|---|'."\n"
.'|403|Unauthorized|The error message returned because you are not authorized to use Log Service.|',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DisableLiveRealtimeLogDelivery'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:DisableLiveRealtimeLogDelivery',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9732E117-8A37-49FD-A36F-ABBB87556CA7\\"\\n}","type":"json"}]',
],
'DynamicUpdateWaterMarkStreamRule' => [
'summary' => 'Dynamically updates a watermark.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveCT0GRQ'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'Domain',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'pull.aliyundoc.com', 'title' => ''],
],
[
'name' => 'App',
'in' => 'query',
'schema' => ['description' => 'The AppName of the live stream.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'Stream',
'in' => 'query',
'schema' => ['description' => 'The name of the watermarked stream.', 'type' => 'string', 'required' => true, 'example' => 'liveStream****', 'title' => ''],
],
[
'name' => 'TemplateId',
'in' => 'query',
'schema' => ['description' => 'The ID of the watermark template. Call the [DescribeLiveStreamWatermarks](~~2848102~~) operation to get the IDs of available watermark templates.'."\n"
."\n"
.'> The TemplateId parameter is used to replace the watermark template ID during a live stream.', 'type' => 'string', 'required' => true, 'example' => '749b7594-86d6-37b1-513b-e1e19845****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'BE9407FF-F897-4DBD-338D-98A750AD805F', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameters', 'errorMessage' => '%s Please check and try again later.', 'description' => 'Exception parameter exists, please check and try again.'],
],
],
'title' => 'DynamicUpdateWaterMarkStreamRule',
'description' => 'Dynamically updating a watermark involves replacing the watermark template ID during a live stream. Before you call this operation, you must obtain the ID of the watermark template that you want to use. To obtain the IDs of available watermark templates, call the [DescribeLiveStreamWatermarks](~~2848102~~) operation.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 60 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DynamicUpdateWaterMarkStreamRule'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:DynamicUpdateWaterMarkStreamRule',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"BE9407FF-F897-4DBD-338D-98A750AD805F\\"\\n}","type":"json"}]',
],
'EditPlaylist' => [
'summary' => 'Edits a playlist.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'ProgramId',
'in' => 'query',
'schema' => ['description' => 'The playlist ID. If you add playlist items by calling the [AddPlaylistItems](~~2848078~~) operation, use the ProgramId value returned by the call.', 'type' => 'string', 'required' => true, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
],
[
'name' => 'ProgramItems',
'in' => 'query',
'schema' => ['description' => 'The list of playlist items. This is a JSON string. For more information, see **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****"}]', 'title' => ''],
],
[
'name' => 'ProgramConfig',
'in' => 'query',
'schema' => ['description' => 'The playlist configuration. For more information, see **ProgramConfig**.', 'type' => 'string', 'required' => false, 'example' => '[{"RepeatNumber":"0","ProgramName":"my program"}]', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'CasterId' => ['description' => 'The ID of the production studio. Use this ID as a request parameter to add a callback or a virtual studio layout.', 'type' => 'string', 'example' => '0e94d1f4-1a65-445c-9dcf-de8b3b8d****', 'title' => ''],
'Items' => [
'description' => 'The list of added playlist items.',
'type' => 'object',
'properties' => [
'FailedItems' => [
'description' => 'The list of playlist items that failed to be added.',
'type' => 'array',
'items' => [
'description' => 'The list of playlist items that failed to be added.',
'type' => 'object',
'properties' => [
'ItemId' => ['description' => 'The ID of the playlist item.', 'type' => 'string', 'example' => 'c09f3d63-eacf-4fbf-bd48-a07a6ba7****', 'title' => ''],
'ItemName' => ['description' => 'The name of the playlist item.', 'type' => 'string', 'example' => 'item2', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'SuccessItems' => [
'description' => 'The list of playlist items that were successfully added.',
'type' => 'array',
'items' => [
'description' => 'The list of successfully added items.',
'type' => 'object',
'properties' => [
'ItemId' => ['description' => 'The ID of the playlist item.', 'type' => 'string', 'example' => 'c09f3d63-eacf-4fbf-bd48-a07a6ba7****', 'title' => ''],
'ItemName' => ['description' => 'The name of the playlist item.', 'type' => 'string', 'example' => 'item1', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'ProgramId' => ['description' => 'The playlist ID. Use this ID as a request parameter to delete, query, start, or stop the playlist.', 'type' => 'string', 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidProgramId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ProgramId is invalid, please check and try again.'],
['errorCode' => 'PlayListIsEmpty', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Playlist is empty, please check and try again.'],
['errorCode' => 'MissInputParams', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is missing, please check and try again.'],
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'IncorrectPlaylistStatus.Inuse', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The Playlist is in use, please check and try again.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
],
404 => [
['errorCode' => 'PlayListNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'PlayList does not exist, please check and try again.'],
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'EditPlaylist',
'description' => 'This operation performs a full edit. You can use this operation to edit configuration information or replace multiple playlist items.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 10 calls per second. If you exceed this limit, your API calls are throttled. This throttling can affect your business. Call this API within the specified limit.',
'requestParamsDescription' => '### InputProgramItem'."\n"
."\n"
.'| Parameter | Example | Type | Description |'."\n"
.'| ------------- | ------------------------------------ | ------ | ----------------------------------------------------------------------------------------------------- |'."\n"
.'| ItemName | item1 | String | The name of the playlist item. |'."\n"
.'| ResourceType | vod | String | The resource type. The only valid value is **vod**, which indicates a Video-on-Demand (VOD) resource. |'."\n"
.'| ResourceValue | 5f8809f2-3352-4d1f-a8f7-86f9429f**** | String | The ID of the resource. |'."\n"
."\n"
.'### ProgramConfig'."\n"
."\n"
.'| Parameter | Example | Type | Description |'."\n"
.'| ------------ | --------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n"
.'| RepeatNumber | 0 | Integer | The number of times to repeat the playlist after it finishes playing. Valid values: **0** (default): The playlist does not repeat. **-1**: The playlist loops indefinitely. Any other positive integer: The number of times to repeat the playlist. |'."\n"
.'| ProgramName | myprogram | String | The name of the playlist. |',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'EditPlaylist'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:EditPlaylist',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'EditShowAndReplace' => [
'summary' => 'Adds a video editing job.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'none',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you create a production studio by calling the [CreateCaster](~~2848009~~) operation, use the CasterId value that is returned in the response.'."\n"
."\n"
.'- If you create a production studio in the ApsaraVideo Live console, go to the **Production Studio** > **Cloud Production Studio** page to view the ID.'."\n"
."\n"
.'> The name of a production studio in the list on the Cloud Production Studio page is its ID.', 'type' => 'string', 'required' => true, 'example' => '53200b81-b761-4c10-842a-a0726d97****', 'title' => ''],
],
[
'name' => 'ShowId',
'in' => 'query',
'schema' => ['description' => 'The ID of the show that you want to edit.'."\n"
."\n"
.'> Obtain the ShowId value from the response parameters of the [AddShowIntoShowList](~~2848051~~) operation.', 'type' => 'string', 'required' => true, 'example' => '42200b81-b761-4c10-842a-a0726d97****', 'title' => ''],
],
[
'name' => 'UserData',
'in' => 'query',
'schema' => ['description' => 'The user information.', 'type' => 'string', 'required' => false, 'example' => '900a2b2r8-13c2-****-88f2-75e4a07c1ed9', 'title' => ''],
],
[
'name' => 'StorageInfo',
'in' => 'query',
'schema' => ['description' => 'The storage information. Description:'."\n"
."\n"
.'- **StorageLocation**: The storage address for the video-on-demand (VOD) file.'."\n"
."\n"
.'- **FileName**: The custom file name.'."\n"
."\n"
.'> The storage address for the edited video must be a VOD storage address that is under the same account. To obtain a VOD storage address, see [Storage management](~~86097~~).', 'type' => 'string', 'required' => false, 'example' => '{ "StorageLocation":"***bucket***", "FileName":"EditFile****.mp4" }', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time of the clip. Unit: seconds.'."\n"
."\n"
.'> - The value must be between 0 and the total duration of the show. The default value is 0.0. This means the clip starts from the beginning of the VOD file.'."\n"
.'>'."\n"
.'> - For example, to clip a VOD file from the 2-second mark to the 5-second mark, set StartTime to 2.0 and EndTime to 5.0.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '2.0', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time of the clip. Unit: seconds.'."\n"
."\n"
.'> - The value must be between 0 and the total duration of the show.'."\n"
.'>'."\n"
.'> - By default, the clip ends at the end of the VOD file. The value cannot exceed the total duration of the show.'."\n"
.'>'."\n"
.'> - For example, to clip a VOD file from the 2-second mark to the 5-second mark, set StartTime to 2.0 and EndTime to 5.0.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '5.0', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'JobInfo' => ['description' => 'The information about the job. It includes the following parameters:'."\n"
."\n"
.'- **vodId**: The ID of the VOD file.'."\n"
."\n"
.'- **mediaid**: The ID of the media file.'."\n"
."\n"
.'- **jobId**: The ID of the job.', 'type' => 'string', 'example' => '{ "vodId": "3e34733b40b9a96ccf5c1ff6f69****", "mediaid": "eb1861d2c9a842340e989dd56****", "jobId": "7d2fbc380b0e08e55fe98733764****" }', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'InvalidVodUrl.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter VodUrl is invalid, please check and try again.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
403 => [
['errorCode' => 'RequestForbiddenForIce', 'errorMessage' => '%s, please try again later.', 'description' => ''],
],
[
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidShowList.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'ShowList does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'EditShowAndReplace',
'description' => 'This operation adds a video editing job. You must specify a CasterId and a ShowId. You will not be notified when the video editing job is successfully added. To query the job status, call the [GetEditingJobInfo](~~2848059~~) operation.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 10 calls per second. If you exceed this limit, API calls are throttled, which can affect your business. We recommend that you call this operation at a reasonable rate.',
'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' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobInfo\\": \\"{ \\\\\\"vodId\\\\\\": \\\\\\"3e34733b40b9a96ccf5c1ff6f69****\\\\\\", \\\\\\"mediaid\\\\\\": \\\\\\"eb1861d2c9a842340e989dd56****\\\\\\", \\\\\\"jobId\\\\\\": \\\\\\"7d2fbc380b0e08e55fe98733764****\\\\\\" }\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]',
],
'EffectCasterUrgent' => [
'summary' => 'Switches a production studio to the standby resource.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'none',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The ID of the region.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you created a production studio by calling the [CreateCaster](~~2848009~~) operation, use the returned CasterId value.'."\n"
."\n"
.'- If you created a production studio in the ApsaraVideo Live console, go to the **Production Studio** > **Cloud Production Studio** page to obtain the ID.'."\n"
."\n"
.'> The name of the production studio in the list on the Cloud Production Studio page is the production studio ID.', 'type' => 'string', 'required' => true, 'example' => '80787064-1c94-4dc1-85ce-9409960a****', 'title' => ''],
],
[
'name' => 'SceneId',
'in' => 'query',
'schema' => ['description' => 'The ID of the scene. This parameter is valid only for PGM scenes.'."\n"
."\n"
.'Call the [DescribeCasterScenes](~~2848039~~) operation to query the scene ID of the production studio.', 'type' => 'string', 'required' => true, 'example' => '242b4e2c-c30f-4442-85ba-2e3e4e3d****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidSceneId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter SceneId is invalid, please check and try again.'],
['errorCode' => 'IncorrectSceneStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene status is not supported, please check and try again.'],
['errorCode' => 'IncorrectSceneStatus.Idle', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene status is idle, please check and try again.'],
['errorCode' => 'IncorrectChannel.Disable', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The Channel is in a non-settable state, please check and try again.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidUrgentMaterial.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The spare material does not exist. Please check and try again.'],
['errorCode' => 'InvalidScene.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene does not exist, please check and try again.'],
['errorCode' => 'InvalidResource.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The resource does not exist. Please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'EffectCasterUrgent',
'description' => 'You can call this operation to urgently switch a specified scene to the standby video. This operation applies only to Program (PGM) scenes.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 10 per user. If you exceed this limit, API calls are throttled, which may impact your business.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'EffectCasterUrgent'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'live:EffectCasterUrgent',
'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-122CC1A52FA7\\"\\n}","type":"json"}]',
],
'EffectCasterVideoResource' => [
'summary' => 'Update the standby video of a production studio.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'none',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The ID of the region.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you create a production studio using the [CreateCaster](~~2848009~~) operation, use the CasterId value from the response.'."\n"
."\n"
.'- If you create a production studio in the ApsaraVideo Live console, find the ID on the **Production Studio** > **Cloud Production Studio** page.'."\n"
."\n"
.'> The name of the production studio in the list is the ID.', 'type' => 'string', 'required' => true, 'example' => '80787064-1c94-4dc1-85ce-9409960a****', 'title' => ''],
],
[
'name' => 'SceneId',
'in' => 'query',
'schema' => ['description' => 'The ID of the scenario.', 'type' => 'string', 'required' => true, 'example' => '05ab713c-676e-49c0-96ce-cc408da1****', 'title' => ''],
],
[
'name' => 'ResourceId',
'in' => 'query',
'schema' => ['description' => 'The ID of the resource. To get this ID, call the [DescribeCasterChannels](~~2848046~~) operation and check the ResourceId value in the response.', 'type' => 'string', 'required' => true, 'example' => 'f096e8d6-0319-4c96-82bc-ecbc79cf****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'IncorrectSceneStatus.Idle', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene status is idle, please check and try again.'],
['errorCode' => 'IncorrectSceneStatus.ConfigError', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene configuration error, please check and try again.'],
['errorCode' => 'InvalidResourceId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ResourceId is invalid, please check and try again.'],
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'InvalidSceneId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter SceneId is invalid, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidResource.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The resource does not exist. Please check and try again.'],
['errorCode' => 'InvalidScene.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene does not exist, please check and try again.'],
['errorCode' => 'InvalidLayout.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'LayoutId does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'EffectCasterVideoResource',
'description' => 'This operation adds a video resource to a specified scenario. The resource becomes active when it is referenced by the scenario.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for each user is 10. If you exceed this limit, API calls are throttled. Throttling may affect your business. We recommend that you call this operation at a reasonable rate.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'EffectCasterVideoResource'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'live:EffectCasterVideoResource',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\"\\n}","type":"json"}]',
],
'EnableLiveRealtimeLogDelivery' => [
'summary' => 'Call the EnableLiveRealtimeLogDelivery operation to enable real-time log delivery for a domain name.',
'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' => 'The ID of the region.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain for which you want to enable real-time log delivery.'."\n"
."\n"
.'Separate multiple domain names with commas (,).', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '9732E117-8A37-49FD-A36F-ABBB87556CA7', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'Unauthorized', 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', 'description' => ''],
],
404 => [
['errorCode' => 'Domain.NotFound', 'errorMessage' => 'Domain not found', 'description' => ''],
],
],
'title' => 'EnableLiveRealtimeLogDelivery',
'description' => 'Currently, you can configure only streaming domains. To deliver real-time logs for ingest domains, [submit a ticket](https://workorder.console.aliyun.com/console.htm#/ticket/add?productCode=live\\&commonQuestionId=4545\\&isSmart=true\\&iatraceid=1608439120675-2a5c48de0b84805313c708\\&channel=selfservice).Currently, you can configure only streaming domains. To deliver real-time logs for ingest domains, [submit a ticket](https://workorder-intl.console.aliyun.com/?spm=5176.12818093.nav-right.dticket.6cb216d07otFWR#/ticket/createIndex).'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 6,000 calls per minute. If you exceed the limit, API calls are throttled, which can affect your business. Call this operation at a reasonable rate.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Special error codes'."\n"
."\n"
.'|Error code|HTTP status code|Description|'."\n"
.'|---|---|---|'."\n"
.'|Unauthorized|403|The error message returned because you are not authorized to use Log Service.|',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'EnableLiveRealtimeLogDelivery'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:EnableLiveRealtimeLogDelivery',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9732E117-8A37-49FD-A36F-ABBB87556CA7\\"\\n}","type":"json"}]',
],
'ForbidLiveStream' => [
'summary' => 'Disables stream ingest for a specified stream. You can preset a time to resume the stream.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'high',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The ingest domain.', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the application to which the ingest stream belongs. You can view the AppName on the [Stream Management](~~197397~~) page.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The name of the ingest stream. You can view the StreamName on the [Stream Management](~~197397~~) page.', 'type' => 'string', 'required' => true, 'example' => 'liveStream****', 'title' => ''],
],
[
'name' => 'LiveStreamType',
'in' => 'query',
'schema' => [
'description' => 'Specifies whether to disable stream ingest or streaming. Currently, only disabling stream ingest is supported: **publisher**.',
'enumValueTitles' => ['publisher' => 'Stream ingest.'],
'type' => 'string',
'required' => true,
'enum' => ['publisher'],
'example' => 'publisher',
'title' => '',
],
],
[
'name' => 'Oneshot',
'in' => 'query',
'schema' => [
'description' => 'Specifies whether to only interrupt the stream without adding it to the blacklist. Valid values:'."\n"
."\n"
.'- **yes**: Only interrupts the stream without adding it to the blacklist (supports upstream ingest or upstream streaming).'."\n"
."\n"
.'- **no**: Interrupts the stream and adds it to the blacklist.'."\n"
."\n"
.'> Default value: no.',
'enumValueTitles' => ['no' => 'Interrupts the stream and adds it to the blacklist.', 'yes' => 'Only interrupts the stream without adding it to the blacklist.'],
'type' => 'string',
'required' => false,
'enum' => ['yes', 'no'],
'example' => 'yes',
'title' => '',
],
],
[
'name' => 'ResumeTime',
'in' => 'query',
'schema' => ['description' => 'The time to resume the stream. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).'."\n"
."\n"
.'> - If the **Oneshot** parameter is set to **no** and ResumeTime is not specified, the live stream is disabled for 6 months by default.'."\n"
.'> - If a value is specified, the restriction is lifted at the time specified by ResumeTime and the live stream is resumed.', 'type' => 'string', 'required' => false, 'example' => '2015-12-01T10:37:00Z', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16BFE188-B193-4C3C-ADC5-79A7E31486EA', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['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' => 'The request processing has failed due to backend service exception.', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16BFE188-B193-4C3C-ADC5-79A7E31486EA\\"\\n}","type":"json"}]',
'title' => 'Disable a live stream',
'description' => 'Calls this operation to disable stream ingest for a specified stream. You can preset a time to resume the stream. If no preset time is specified, call the [ResumeLiveStream](~~2847831~~) operation to resume the live stream. This operation currently supports only publisher (streamer ingest).'."\n"
."\n"
.'> - This operation disables live streams by adding them to a blacklist. The upper limit is 10,000 streams. If this limit is exceeded, the disable operation fails. Monitor the number of currently disabled streams. Call the [DescribeLiveStreamsBlockList](~~2847825~~) operation to query the number of disabled streams.'."\n"
.'> - If you only interrupt a live stream without adding it to the blacklist, the stream does not count toward the 10,000-stream blacklist quota.'."\n"
."\n"
.'## QPS limit'."\n"
.'The maximum queries per second (QPS) per user for this operation is 20. If this limit is exceeded, API calls are throttled, which may affect your business. Call this operation appropriately.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ForbidLiveStream'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:ForbidLiveStream',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'GetAllCustomTemplates' => [
'summary' => 'Retrieves all custom stream mix templates.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveI16NIW'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'description' => 'The region ID.', 'title' => '', 'example' => 'cn-shanghai'],
],
[
'name' => 'UserId',
'in' => 'query',
'schema' => ['description' => 'The user ID.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '25346073170691****'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'CustomTemplates' => ['description' => 'A list of template names and template configurations.', 'type' => 'string', 'title' => '', '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' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '4791648Q-813C-6254-865C-0ED913661230'],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'CustomTemplateInvalid', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The custom template is invalid, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidDomainName.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Domain name does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'GetAllCustomTemplates',
'description' => 'You can call this operation to retrieve all custom stream mix templates. The operation returns a list of template names and template configurations.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 10 calls per second. If this limit is exceeded, throttling is triggered, which may affect your business. We recommend that you are aware of this limit when you call this operation.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAllCustomTemplates'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:GetAllCustomTemplates',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'GetCustomTemplate' => [
'summary' => 'Retrieves a custom stream mixing template.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveI16NIW'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'description' => 'The region ID.', 'title' => '', 'example' => 'cn-shanghai'],
],
[
'name' => 'Template',
'in' => 'query',
'schema' => ['description' => 'The name of the custom template that you want to query.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'TestTemplate'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'BC1E78D3-FA8B-4457-DEE2-6093E1232254'],
'CustomTemplate' => ['description' => 'The template configuration.', 'type' => 'string', 'title' => '', 'example' => '{height:1080,scale:[16:9],gop:60,bframes:30,cdesc:h264}'],
'Template' => ['description' => 'The template name.', 'type' => 'string', 'title' => '', 'example' => 'TestTemplate'],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'CustomTemplateInvalid', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The custom template is invalid, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidDomainName.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Domain name does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'GetCustomTemplate',
'description' => 'First, obtain the name of the custom template that you want to query. Then, call this operation to retrieve the custom stream mixing template.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 10 per user. If you exceed this limit, API calls are throttled, which may affect your business. We recommend that you call this operation at a reasonable rate.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetCustomTemplate'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:GetCustomTemplate',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'GetEdgeTranscodeJob' => [
'summary' => 'Queries the details of an edge transcoding job.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveHVN9B2'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'ClusterId',
'in' => 'query',
'schema' => ['description' => 'The data center ID.', 'type' => 'string', 'required' => true, 'example' => '******3b-4d18-395c-8106-ff21a6******', 'title' => ''],
],
[
'name' => 'JobId',
'in' => 'query',
'schema' => ['description' => 'The ID of the edge transcoding job.', 'type' => 'string', 'required' => true, 'example' => '****20b48fb04483915d4f2cd8ac****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'Job' => [
'description' => 'The edge transcoding job.',
'type' => 'object',
'properties' => [
'CreateTime' => ['description' => 'The time when the job was created.', 'type' => 'string', 'example' => '2023-07-24T16:44:55Z', 'title' => ''],
'JobId' => ['description' => 'The job ID.', 'type' => 'string', 'example' => '****20b48fb04483915d4f2cd8ac****', 'title' => ''],
'LastStartAt' => ['description' => 'The time when the job was last started.', 'type' => 'string', 'example' => '2023-07-25T02:48:58Z', 'title' => ''],
'LastStopAt' => ['description' => 'The time when the job was last stopped.', 'type' => 'string', 'example' => '2023-07-25T05:48:58Z', 'title' => ''],
'Name' => ['description' => 'The job name.', 'type' => 'string', 'example' => 'my_job', 'title' => ''],
'Status' => ['description' => 'The status of the transcoding job. Valid values:'."\n"
."\n"
.'- 0: The job is not started.'."\n"
."\n"
.'- 1: The job is running.', 'type' => 'string', 'example' => '0', 'title' => ''],
'StreamInput' => ['description' => 'The input stream URL.', 'type' => 'string', 'example' => 'rtmp://mydomain/app/stream1', 'title' => ''],
'StreamOutput' => ['description' => 'The output stream URL.', 'type' => 'string', 'example' => 'rtmp://testdomain/app/stream2', 'title' => ''],
'TemplateId' => ['description' => 'The ID of the edge transcoding template used by the job.', 'type' => 'string', 'example' => '9b1571b513cb44f7a1ba6ae561ff****', 'title' => ''],
'TemplateName' => ['description' => 'The name of the edge transcoding template used by the job.', 'type' => 'string', 'example' => 'my_template', 'title' => ''],
'Type' => ['description' => 'The type of edge transcoding. Valid values:'."\n"
."\n"
.'- common: standard transcoding and Narrowband HD 1.0.'."\n"
."\n"
.'- nbhd-2: Narrowband HD 2.0.'."\n"
."\n"
.'- ultra-hd: ultra-high definition.', 'type' => 'string', 'example' => 'common', 'title' => ''],
],
'title' => '',
'example' => '',
],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
],
403 => [
['errorCode' => 'OperationDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation rejected, please check and try again.'],
],
[
['errorCode' => 'JobNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Task does not exist, please check and try again.'],
],
],
'title' => 'GetEdgeTranscodeJob',
'description' => 'To call this API operation, you must have permissions for the edge transcoding service.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for a single user on this API is 6,000 calls per minute. API calls that exceed this limit are throttled. This may affect your business. We recommend that you call the API at a reasonable rate.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetEdgeTranscodeJob'],
],
],
'ramActions' => [
[
'operationType' => '',
'ramAction' => [
'action' => 'live:GetEdgeTranscodeJob',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'GetEdgeTranscodeTemplate' => [
'summary' => 'Queries the details of an edge transcoding template.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveHVN9B2'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'ClusterId',
'in' => 'query',
'schema' => ['description' => 'The data center ID.', 'type' => 'string', 'required' => true, 'example' => '******3b-4d18-395c-8106-ff21a6******', 'title' => ''],
],
[
'name' => 'TemplateId',
'in' => 'query',
'schema' => ['description' => 'The template ID.', 'type' => 'string', 'required' => true, 'example' => '****a046-263c-3560-978a-fb287666****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******', 'title' => ''],
'Template' => [
'description' => 'The edge transcoding template.',
'type' => 'object',
'properties' => [
'Bitrate' => ['description' => 'The bitrate. You can specify a fixed bitrate or set the value to ws to match the bitrate of the source stream.', 'type' => 'string', 'example' => '3000', 'title' => ''],
'Codec' => ['description' => 'The video encoding format. Valid values:'."\n"
."\n"
.'- H.264'."\n"
."\n"
.'- H.265', 'type' => 'string', 'example' => 'H.264', 'title' => ''],
'CreateTime' => ['description' => 'The time when the template was created.', 'type' => 'string', 'example' => '2023-07-25T02:48:58Z', 'title' => ''],
'Fps' => ['description' => 'The frame rate. You can specify a fixed frame rate or set the value to ws to match the frame rate of the source stream.', 'type' => 'string', 'example' => '30', 'title' => ''],
'Gop' => ['description' => 'The group of pictures (GOP) size. You can specify the GOP size in frames or seconds. You can also set the value to ws to match the GOP size of the source stream.', 'type' => 'string', 'example' => '2s', 'title' => ''],
'Name' => ['description' => 'The template name.', 'type' => 'string', 'example' => 'my_template', 'title' => ''],
'Resolution' => ['description' => 'The resolution. You can specify a fixed resolution or set the value to ws to match the resolution of the source stream.'."\n"
."\n"
.'> For a fixed resolution, if you set the width or height to -1 or -2, the dimension is automatically adjusted.', 'type' => 'string', 'example' => '1920*1080', 'title' => ''],
'TemplateId' => ['description' => 'The template ID.', 'type' => 'string', 'example' => '9b1571b513cb44f7a1ba6ae561ff****', 'title' => ''],
'Type' => ['description' => 'The type of edge transcoding.', 'type' => 'string', 'example' => 'common', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
],
403 => [
['errorCode' => 'OperationDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation rejected, please check and try again.'],
],
[
['errorCode' => 'TemplateNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The template does not exist. Please check and try again.'],
],
],
'title' => 'GetEdgeTranscodeTemplate',
'description' => '- You can call this operation to query the details of an edge transcoding template.'."\n"
."\n"
.'- You must have permissions to access the edge transcoding service to call this operation.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 6,000 calls per minute. If you exceed this limit, API calls are throttled, which may affect your business. Call the operation at a reasonable rate.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetEdgeTranscodeTemplate'],
],
],
'ramActions' => [
[
'operationType' => '',
'ramAction' => [
'action' => 'live:GetEdgeTranscodeTemplate',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'GetEditingJobInfo' => [
'summary' => 'Queries information about video editing jobs.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The production studio ID.'."\n"
."\n"
.'- If you create a production studio by calling the [CreateCaster](~~2848009~~) operation, find the CasterId value in the response.'."\n"
."\n"
.'- If you create a production studio in the Live console, go to the **Live console** > **Production Studio** > **Cloud Production Studio** page to view the ID.'."\n"
."\n"
.'> The name of the production studio in the list on the Cloud Production Studio page is the production studio ID.', 'type' => 'string', 'required' => true, 'example' => '53200b81-b761-4c10-842a-a0726d97****', 'title' => ''],
],
[
'name' => 'ShowId',
'in' => 'query',
'schema' => ['description' => 'The ID of the show to query.'."\n"
."\n"
.'> Find the ShowId value in the response from the [AddShowIntoShowList](~~370861~~) operation.', 'type' => 'string', 'required' => false, 'example' => '72200b81-b761-4c10-842a-a0726d97****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'CasterId' => ['description' => 'The production studio ID.', 'type' => 'string', 'example' => '53200b81-b761-4c10-842a-a0726d97****', 'title' => ''],
'EditingTasksInfo' => ['description' => 'Information about the video editing job. The information includes:'."\n"
."\n"
.'- **OutputVodId**: The ID of the output video-on-demand (VOD) file.'."\n"
."\n"
.'- **TaskStatus**: The status of the video editing job. Valid values: -1 (failed), 0 (init), 1 (editing), 2 (uploading), and 3 (successful).'."\n"
."\n"
.'- **StorageLocation**: The VOD storage address.'."\n"
."\n"
.'- **FileName**: The name of the edited file.'."\n"
."\n"
.'- **ShowId**: The show ID.', 'type' => 'string', 'example' => '"EditingTasksInfo": { "OutputVodId": "3e34733b40b9a96ccf5c1ff6f69****", "TaskStatus": 1, "StorageInfo": { "StorageLocation": "***bucket***", "FileName": "EditFile****" }, "ShowId": "42200b81-b761-4c10-842a-a0726d97****" },', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'InvalidVodUrl.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter VodUrl is invalid, please check and try again.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidShowList.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'ShowList does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'GetEditingJobInfo',
'description' => '- This operation queries information about video editing jobs for a specified CasterId and ShowId. Make sure that you set the parameters correctly when you call this operation.'."\n"
."\n"
.'- If you specify the ShowId parameter, the operation returns information about the video editing job for the specified show in the playlist.'."\n"
."\n"
.'- If you do not specify the ShowId parameter, the operation returns information about the video editing jobs for the entire playlist.'."\n"
."\n"
.'### QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 10 calls per second. API calls that exceed this limit are throttled. This may affect your business. We recommend that you call this operation at a reasonable frequency.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetEditingJobInfo'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:GetEditingJobInfo',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', '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' => [
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveSL6Y07'],
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'formData',
'schema' => ['description' => 'The ID of the interactive message application.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'VKL3***'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'],
'Result' => [
'description' => 'The result of the request.',
'type' => 'object',
'properties' => [
'AppConfig' => [
'description' => 'The application configuration.',
'type' => 'object',
'additionalProperties' => ['type' => 'string', 'description' => 'The configuration of the application.', 'title' => '', 'example' => '"appAlias":"localApp"'],
'title' => '',
'example' => '',
],
'AppId' => ['title' => '', 'description' => 'The ID of the interactive message application.', 'type' => 'string', 'example' => 'VKL3***'],
'AppName' => ['title' => '', 'description' => 'The name of the interactive message application.', 'type' => 'string', 'example' => 'testApp'],
'CreateTime' => ['description' => 'The UTC timestamp when the application was created.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '502280113'],
'Extension' => [
'description' => 'The extended field.',
'type' => 'object',
'additionalProperties' => ['type' => 'string', 'description' => 'The extended field.', 'title' => '', 'example' => 'test001'],
'title' => '',
'example' => '',
],
'Status' => ['description' => 'The status of the interactive message application. A value of 1 indicates that the application is in a normal state.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '1'],
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'errorCodes' => [
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
],
'title' => 'GetMessageApp',
'summary' => 'You can call the GetMessageApp operation to retrieve the details of a specified interactive message application.',
'description' => '## QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 100. If you exceed this limit, API calls are throttled, which may affect your business. For more information, see [QPS limits](~~343507~~).',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:GetMessageApp',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'GetMessageGroup' => [
'summary' => 'Call GetMessageGroup to retrieve message group details.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
'name' => 'GroupId',
'in' => 'formData',
'schema' => ['description' => 'Message group ID.', 'type' => 'string', 'required' => true, 'example' => 'AE35-****-T95F', 'title' => ''],
],
[
'name' => 'AppId',
'in' => 'formData',
'schema' => ['description' => 'Interactive Messages application ID.', 'type' => 'string', 'required' => true, 'example' => 'VKL3***', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'Request ID.', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'],
'Result' => [
'description' => 'Return result.',
'type' => 'object',
'properties' => [
'CreateTime' => ['description' => 'UTC timestamp when the message group was created.', 'type' => 'integer', 'format' => 'int64', 'example' => '1502280113', 'title' => ''],
'CreatorId' => ['description' => 'Creator ID.', 'type' => 'string', 'example' => 'as****hs', 'title' => ''],
'Extension' => ['description' => 'Extension field.', 'type' => 'object', 'example' => '1', 'title' => ''],
'GroupId' => ['title' => '', 'description' => 'Message group ID.', 'type' => 'string', 'example' => 'AE35-****-T95F'],
'IsMuteAll' => ['description' => 'Indicates whether all members in this message group are muted.'."\n"
."\n"
.'- true: All members are muted.'."\n"
.'- false: All members are not muted.', 'type' => 'boolean', 'example' => 'true', 'title' => ''],
'Status' => ['description' => 'Message group status. The default value is **1**, which indicates that the message group status is normal.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'GetMessageGroup',
'description' => '## Usage notes'."\n"
."\n"
.'The QPS limit for this API is 100 queries per second per user. If the limit is exceeded, API calls will be throttled, which may affect your business. You can make API calls at a reasonable rate. For more information, see [QPS limits](~~343507~~).',
'changeSet' => [
['createdAt' => '2022-09-27T09:18:30.000Z', 'description' => 'Response parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetMessageGroup'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:GetMessageGroup',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'GetMessageToken' => [
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveSL6Y07'],
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'formData',
'schema' => ['description' => 'Interactive Messages application ID.', 'type' => 'string', 'required' => true, 'example' => 'a494caec-***-695ef345db77', 'title' => ''],
],
[
'name' => 'DeviceId',
'in' => 'formData',
'schema' => ['description' => 'Terminal device ID, uniquely representing a user terminal device, user-defined. It consists of lowercase letters, numbers, underscores (\\_), and hyphens (-), with a maximum length of 64 characters. Different terminal devices need to use different DeviceIds. We recommend obtaining it from the terminal device and passing it to the server.', 'type' => 'string', 'required' => true, 'example' => 'a494caec-***-695ef345db77', 'title' => ''],
],
[
'name' => 'DeviceType',
'in' => 'formData',
'schema' => ['description' => 'Terminal device type. Valid values:'."\n"
."\n"
.'- ios'."\n"
."\n"
.'- android'."\n"
."\n"
.'- web'."\n"
."\n"
.'- pc', 'type' => 'string', 'required' => true, 'example' => 'android', 'title' => ''],
],
[
'name' => 'UserId',
'in' => 'formData',
'schema' => ['description' => 'User UserId, user-defined, unique within the AppId. It consists of lowercase letters, numbers, underscores (\\_), and periods (.), with a maximum length of 32 characters. Different users need to use different UserIds.', 'type' => 'string', 'required' => true, 'example' => 'de1**a0', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'Request ID.', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'],
'Result' => [
'description' => 'Return results.',
'type' => 'object',
'properties' => [
'AccessToken' => ['description' => 'Token used for establishing persistent connections.', 'type' => 'string', 'example' => 'oauth_cloud_key:***-b0YY5Gy6Q', 'title' => ''],
'AccessTokenExpiredTime' => ['description' => 'Logon token expiration time in milliseconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '86400000', 'title' => ''],
'RefreshToken' => ['description' => 'Refresh token. If the AccessToken expires, you can use the RefreshToken to obtain a new token.', 'type' => 'string', 'example' => 'oauth_cloud_key:****-Q62xggOTdgk3gw=', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvaildParameter', 'errorMessage' => 'Invalid Parameter', 'description' => 'Invalid request parameter.'],
],
403 => [
['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => ''],
],
],
'title' => 'GetMessageToken',
'summary' => 'Call GetMessageToken to obtain a persistent connection token. The client can use this token to communicate with various atomic capabilities through the LWP protocol via persistent connection.',
'description' => '## Usage notes'."\n"
."\n"
.'First obtain the client UserId, DeviceId, and DeviceType information, then pass them to the server. The server uses this interface to obtain the authentication token and returns it to the client. Different users need to use different UserIds, and different terminal devices need to use different DeviceIds.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The QPS limit for this API is 100 queries per second (QPS) per user. If you exceed this limit, API calls will be throttled, which may affect your business. You can call this API at a reasonable rate. For more information, see [QPS limits](~~343507~~).',
'changeSet' => [
['createdAt' => '2022-09-08T15:22:52.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:GetMessageToken',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"AccessToken\\": \\"oauth_cloud_key:***-b0YY5Gy6Q\\",\\n \\"AccessTokenExpiredTime\\": 86400000,\\n \\"RefreshToken\\": \\"oauth_cloud_key:****-Q62xggOTdgk3gw=\\"\\n }\\n}","type":"json"}]',
],
'HotLiveRtcStream' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'none',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '142376',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The application name of the live stream to prefetch.', 'type' => 'string', 'required' => true, 'example' => 'app', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The name of the live stream to prefetch.', 'type' => 'string', 'required' => true, 'example' => 'stream', 'title' => ''],
],
[
'name' => 'RegionCode',
'in' => 'query',
'schema' => ['description' => 'The prefetch area. For more information, see the RegionCode lookup table.'."\n"
."\n"
.'> For regions within China, specify the corresponding code from the "Region codes for China" table. For all other regions, specify the country code.'."\n"
.'>'."\n"
.'> - If the CodeRegionHasNoNode error is returned after you specify a RegionCode, the corresponding area is not covered by L1 nodes and cannot be prefetched. In this case, specify a different RegionCode.', 'type' => 'string', 'required' => true, 'example' => 'ZHJ', 'title' => ''],
],
[
'name' => 'AudioMsid',
'in' => 'query',
'schema' => ['description' => 'The audio Msid.', 'type' => 'string', 'required' => true, 'example' => 'rts audio', 'title' => ''],
],
[
'name' => 'VideoMsid',
'in' => 'query',
'schema' => ['description' => 'The video Msid.', 'type' => 'string', 'required' => true, 'example' => 'rts video', 'title' => ''],
],
[
'name' => 'ConnectionTimeout',
'in' => 'query',
'schema' => ['description' => 'The duration to maintain the prefetch connection. Unit: milliseconds. The default value, 0, means the connection is always maintained.', 'type' => 'string', 'required' => false, 'example' => '0', 'title' => ''],
],
[
'name' => 'MediaTimeout',
'in' => 'query',
'schema' => ['description' => 'The custom timeout period for a timeout event. Unit: milliseconds.', 'type' => 'string', 'required' => false, 'example' => '100000', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The ID of the request.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16BFE188-B193-4C3C-ADC5-79A7E31486EA', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => 'Illegal input parameters'],
['errorCode' => 'NoSpecialConfiguration', 'errorMessage' => 'no special configuration for domain name.', 'description' => ''],
['errorCode' => 'CodeRegionHasNoNode', 'errorMessage' => 'this region has no corresponding node.', 'description' => ''],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''],
],
],
'title' => 'HotLiveRtcStream',
'summary' => 'Prefetches Real-Time Communication (RTC) streams.',
'description' => '### QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 10 calls per second. API calls that exceed this limit are throttled, which may affect your business. Plan your calls accordingly.',
'requestParamsDescription' => '### RegionCode lookup table'."\n"
."\n"
.'**Region codes for China**'."\n"
."\n"
.'| Name | Code |'."\n"
.'| -------------- | ---- |'."\n"
.'| Beijing | BEJ |'."\n"
.'| Tianjin | TAJ |'."\n"
.'| Hebei | HEB |'."\n"
.'| Shanxi | SHX |'."\n"
.'| Inner Mongolia | NMG |'."\n"
.'| Liaoning | LIA |'."\n"
.'| Jilin | JIL |'."\n"
.'| Heilongjiang | HLJ |'."\n"
.'| Shanghai | SHH |'."\n"
.'| Jiangsu | JSU |'."\n"
.'| Zhejiang | ZHJ |'."\n"
.'| Anhui | ANH |'."\n"
.'| Fujian | FUJ |'."\n"
.'| Jiangxi | JXI |'."\n"
.'| Shandong | SHD |'."\n"
.'| Henan | HEN |'."\n"
.'| Hubei | HUB |'."\n"
.'| Hunan | HUN |'."\n"
.'| Guangdong | GUD |'."\n"
.'| Guangxi | GXI |'."\n"
.'| Hainan | HAI |'."\n"
.'| Chongqing | CHQ |'."\n"
.'| Sichuan | SCH |'."\n"
.'| Guizhou | GUI |'."\n"
.'| Yunnan | YUN |'."\n"
.'| Tibet | TIB |'."\n"
.'| Shaanxi | SHA |'."\n"
.'| Gansu | GAN |'."\n"
.'| Qinghai | QIH |'."\n"
.'| Ningxia | NXA |'."\n"
.'| Xinjiang | XIN |'."\n"
.'| Taiwan | TAI |'."\n"
.'| Hong Kong | HKG |'."\n"
.'| Macao | MAC |'."\n"
."\n"
.'**Country codes**'."\n"
."\n"
.'| Name | Code |'."\n"
.'| --------------------------- | ---- |'."\n"
.'| Papua New Guinea | PG |'."\n"
.'| Slovakia | SK |'."\n"
.'| Peru | PE |'."\n"
.'| Latvia | LV |'."\n"
.'| United Arab Emirates | AE |'."\n"
.'| Canada | CA |'."\n"
.'| Cuba | CU |'."\n"
.'| Mauritania | MR |'."\n"
.'| Japan | JP |'."\n"
.'| Armenia | AM |'."\n"
.'| Turkmenistan | TM |'."\n"
.'| Russia | RU |'."\n"
.'| Belarus | BY |'."\n"
.'| Guinea | GN |'."\n"
.'| Iraq | IQ |'."\n"
.'| Argentina | AR |'."\n"
.'| Chile | CL |'."\n"
.'| Eswatini | SZ |'."\n"
.'| Congo (DRC) | CD |'."\n"
.'| Belgium | BE |'."\n"
.'| Kazakhstan | KZ |'."\n"
.'| Serbia | RS |'."\n"
.'| Türkiye | TR |'."\n"
.'| Namibia | NA |'."\n"
.'| Lithuania | LT |'."\n"
.'| Puerto Rico | PR |'."\n"
.'| Congo (Brazzaville) | CG |'."\n"
.'| New Caledonia | NC |'."\n"
.'| Morocco | MA |'."\n"
.'| Greenland | GL |'."\n"
.'| Kuwait | KW |'."\n"
.'| Liberia | LR |'."\n"
.'| Ukraine | UA |'."\n"
.'| Indonesia | ID |'."\n"
.'| Myanmar | MM |'."\n"
.'| Bolivia | BO |'."\n"
.'| Moldova | MD |'."\n"
.'| Greece | GR |'."\n"
.'| New Zealand | NZ |'."\n"
.'| Solomon Islands | SB |'."\n"
.'| Ethiopia | ET |'."\n"
.'| Fiji | FJ |'."\n"
.'| Yemen | YE |'."\n"
.'| Cyprus | CY |'."\n"
.'| Bosnia and Herzegovina | BA |'."\n"
.'| Eritrea | ER |'."\n"
.'| Germany | DE |'."\n"
.'| Pakistan | PK |'."\n"
.'| Central African Republic | CF |'."\n"
.'| Croatia | HR |'."\n"
.'| Egypt | EG |'."\n"
.'| Thailand | TH |'."\n"
.'| Costa Rica | CR |'."\n"
.'| Tanzania | TZ |'."\n"
.'| Laos | LA |'."\n"
.'| Libya | LY |'."\n"
.'| Tunisia | TN |'."\n"
.'| Poland | PL |'."\n"
.'| United Kingdom | GB |'."\n"
.'| Equatorial Guinea | GQ |'."\n"
.'| China | CN |'."\n"
.'| Iceland | IS |'."\n"
.'| Oman | OM |'."\n"
.'| Mongolia | MN |'."\n"
.'| Chad | TD |'."\n"
.'| United States | US |'."\n"
.'| Mexico | MX |'."\n"
.'| Kyrgyzstan | KG |'."\n"
.'| Suriname | SR |'."\n"
.'| India | IN |'."\n"
.'| Guinea-Bissau | GW |'."\n"
.'| Venezuela | VE |'."\n"
.'| Italy | IT |'."\n"
.'| Algeria | DZ |'."\n"
.'| Qatar | QA |'."\n"
.'| France | FR |'."\n"
.'| South Africa | ZA |'."\n"
.'| Norway | NO |'."\n"
.'| Portugal | PT |'."\n"
.'| Hungary | HU |'."\n"
.'| South Korea | KR |'."\n"
.'| Uzbekistan | UZ |'."\n"
.'| Burundi | BI |'."\n"
.'| Estonia | EE |'."\n"
.'| Bangladesh | BD |'."\n"
.'| Bhutan | BT |'."\n"
.'| Afghanistan | AF |'."\n"
.'| Switzerland | CH |'."\n"
.'| Belize | BZ |'."\n"
.'| Timor-Leste | TL |'."\n"
.'| Haiti | HT |'."\n"
.'| Togo | TG |'."\n"
.'| Albania | AL |'."\n"
.'| Cameroon | CM |'."\n"
.'| Nicaragua | NI |'."\n"
.'| Nigeria | NG |'."\n"
.'| Honduras | HN |'."\n"
.'| Burkina Faso | BF |'."\n"
.'| Mozambique | MZ |'."\n"
.'| Georgia | GE |'."\n"
.'| Vanuatu | VU |'."\n"
.'| Paraguay | PY |'."\n"
.'| Luxembourg | LU |'."\n"
.'| Lebanon | LB |'."\n"
.'| Uganda | UG |'."\n"
.'| Mali | ML |'."\n"
.'| Saudi Arabia | SA |'."\n"
.'| Palestine | PS |'."\n"
.'| Montenegro | ME |'."\n"
.'| Colombia | CO |'."\n"
.'| Philippines | PH |'."\n"
.'| Sweden | SE |'."\n"
.'| Finland | FI |'."\n"
.'| Kenya | KE |'."\n"
.'| Romania | RO |'."\n"
.'| Panama | PA |'."\n"
.'| Jordan | JO |'."\n"
.'| Rwanda | RW |'."\n"
.'| Lesotho | LS |'."\n"
.'| North Macedonia | MK |'."\n"
.'| Zambia | ZM |'."\n"
.'| Syria | SY |'."\n"
.'| Spain | ES |'."\n"
.'| Ecuador | EC |'."\n"
.'| Gabon | GA |'."\n"
.'| Ireland | IE |'."\n"
.'| Dominican Republic | DO |'."\n"
.'| Ghana | GH |'."\n"
.'| Madagascar | MG |'."\n"
.'| Malaysia | MY |'."\n"
.'| Austria | AT |'."\n"
.'| Tajikistan | TJ |'."\n"
.'| Denmark | DK |'."\n"
.'| Uruguay | UY |'."\n"
.'| Cambodia | KH |'."\n"
.'| Senegal | SN |'."\n"
.'| El Salvador | SV |'."\n"
.'| Sierra Leone | SL |'."\n"
.'| Brunei Darussalam | BN |'."\n"
.'| Western Sahara | EH |'."\n"
.'| Niger | NE |'."\n"
.'| Iran | IR |'."\n"
.'| Guyana | GY |'."\n"
.'| Angola | AO |'."\n"
.'| Botswana | BW |'."\n"
.'| Brazil | BR |'."\n"
.'| Australia | AU |'."\n"
.'| Côte d\'Ivoire | CI |'."\n"
.'| Czech Republic | CZ |'."\n"
.'| Gambia | GM |'."\n"
.'| Benin | BJ |'."\n"
.'| Vietnam | VN |'."\n"
.'| Sudan | SD |'."\n"
.'| Netherlands | NL |'."\n"
.'| Djibouti | DJ |'."\n"
.'| Slovenia | SI |'."\n"
.'| Nepal | NP |'."\n"
.'| Zimbabwe | ZW |'."\n"
.'| Jamaica | JM |'."\n"
.'| Malawi | MW |'."\n"
.'| Azerbaijan | AZ |'."\n"
.'| Somalia | SO |'."\n"
.'| Israel | IL |'."\n"
.'| Falkland Islands (Malvinas) | FK |'."\n"
.'| North Korea | KP |'."\n"
.'| Guatemala | GT |'."\n"
.'| Bahamas | BS |'."\n"
.'| Sri Lanka | LK |'."\n"
.'| Singapore | SG |'."\n"
.'| Bahrain | BH |',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '1000', 'countWindow' => 1, 'regionId' => '*', 'api' => 'HotLiveRtcStream'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'live:HotLiveRtcStream',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16BFE188-B193-4C3C-ADC5-79A7E31486EA\\"\\n}","type":"json"}]',
],
'InitializeAutoShowListTask' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'none',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'ResourceIds',
'in' => 'query',
'schema' => ['description' => 'A list of video-on-demand (VOD) media asset IDs in the playlist. Currently, only MP4 files from the VOD platform are supported.'."\n"
.'A maximum of three programs are supported. The programs are played in the order they appear in the list and automatically stop at the specified EndTime.'."\n"
."\n"
.'> - Get the video file ID from the console or from the parameters returned by an API operation. For more information, see [Media management](~~86057~~) or [Obtain upload URLs and credentials for audio and video](~~55407~~).', 'type' => 'string', 'required' => false, 'example' => '["89e02xxxxfb349axxxxa0c350d**** ","6ae0xxxxxb349axxxxa0c350a****"]', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start timestamp. Unit: milliseconds.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1645688994000', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end timestamp. Unit: milliseconds.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1645688994000', 'title' => ''],
],
[
'name' => 'CasterConfig',
'in' => 'query',
'schema' => ['description' => 'The production studio configuration. It includes:'."\n"
."\n"
.'- (Required) CasterTemplate: The output resolution of the production studio.'."\n"
."\n"
.'- (Optional) LiveTemplate: The list of output transcoding jobs.'."\n"
."\n"
.'> This parameter is a JSON-formatted string. The fields in the struct must be in UpperCamelCase.', 'type' => 'string', 'required' => true, 'example' => '{"CasterTemplate": "lp_ld","LiveTemplates":["lhd", "lsd","lud"]}', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The output streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.aliyundoc.com', 'title' => ''],
],
[
'name' => 'CallBackUrl',
'in' => 'query',
'schema' => ['description' => 'The user webhook address.', 'type' => 'string', 'required' => false, 'example' => 'http://***.com/callback', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'CasterId' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'> Use this ID as a request parameter to query the streaming URL, start the production studio, add video resources, add layouts, query layouts, add components, and add playlists.', 'type' => 'string', 'example' => 'b4810848-bcf9-4aef-bd4a-e6bba2d9****', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
'StreamList' => ['description' => 'A list of output URLs for the production studio.'."\n"
."\n"
.'- videoFormat: The format of the streaming URL.'."\n"
."\n"
.'- outputStreamUrl: The stream pulling URL.'."\n"
."\n"
.'- transcodeConfig: The description of the transcoding resolution for the stream pulling URL.', 'type' => 'string', 'example' => '[{"videoFormat":"flv","outputStreamUrl":"http://example.aliyundoc.com","transcodeConfig":"original"}]', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameter.PurchaseTime', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter PurchaseTime is invalid, please check and try again.'],
['errorCode' => 'InvalidParameter.ExpireTime', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ExpireTime is invalid, please check and try again.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'InvalidChargeType.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ChargeType is invalid, please check and try again.'],
['errorCode' => 'InvalidChargeType.PostSupport', 'errorMessage' => '%s, please check and try again later.', 'description' => 'ChargeType only supports post-paid, please check and try again.'],
['errorCode' => 'InvalidCasterTemplate.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterTemplate is invalid, please check and try again.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'InvalidParameter.ChargeType', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ChargeType is invalid, please check and try again.'],
['errorCode' => 'InvalidPeriod.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Invalid time interval, please check and try again.'],
['errorCode' => 'InvalidClientToken.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ClientToken is invalid, please check and try again.'],
['errorCode' => 'IncorrectCasterStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Guide station status error, please check and try again.'],
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidParameter.StartTime', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter StartTime is invalid, please check and try again.'],
],
[
['errorCode' => 'CasterNumberExceed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The number of casters exceeds the limit. Please check and try again.'],
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'IncorrectCasterStatus.EnableChannel', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Caster status does not support EnableChannel settings, please check and try again.'],
['errorCode' => 'InvalidParameter.NormType', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter NormType is invalid, please check and try again.'],
['errorCode' => 'InvalidConfiguration.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Configuration does not exist, please check and try again.'],
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidDomainName.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Domain name does not exist, please check and try again.'],
],
408 => [
['errorCode' => 'CreateCaster.Timeout', 'errorMessage' => '%s, please try again later.', 'description' => 'Call CreateCaster timed out, please try again later.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'InitializeAutoShowListTask',
'summary' => 'Creates a scheduled task.',
'description' => 'This operation creates a scheduled task to start and stop a playlist. When you call this operation, you must specify the required parameters.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'This operation is limited to 10 queries per second (QPS) per user. Calls that exceed this limit are throttled. Throttling can affect your business. Plan your calls accordingly.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:InitializeAutoShowListTask',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'JoinMessageGroup' => [
'summary' => 'Join a message group.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'formData',
'schema' => ['description' => 'Interactive message application ID.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'a494caec-***-695ef345db77'],
],
[
'name' => 'GroupId',
'in' => 'formData',
'schema' => ['description' => 'The ID of the message group to join. Make sure the GroupId you provide exists.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'AE35-****-T95F'],
],
[
'name' => 'UserId',
'in' => 'formData',
'schema' => ['description' => 'User ID, which is customized by the user and must be unique under the AppId. It can contain lowercase letters, numbers, underscores (\\_), and periods (.). The maximum length is 32 characters. Different users must use different UserIds.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'de1**a0'],
],
[
'name' => 'BroadCastType',
'in' => 'formData',
'schema' => ['description' => 'System message diffusion type. Valid values:'."\n"
."\n"
.'- 0 (default): No diffusion.'."\n"
.'- 1: Diffusion to specified users.'."\n"
.'- 2: Diffusion to the group.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'title' => '', 'example' => '2'],
],
[
'name' => 'BroadCastStatistics',
'in' => 'formData',
'schema' => ['description' => 'Specifies whether to broadcast statistics messages. When enabled, statistics information of the message group will be broadcast after joining the message group, and the client can receive and process this message. Valid values:'."\n"
."\n"
.'- true: Broadcast statistics messages.'."\n"
.'- false: Do not broadcast statistics messages.', 'type' => 'boolean', 'required' => false, 'title' => '', 'example' => 'true'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'Request ID.', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'],
'Result' => [
'description' => 'Return result.',
'type' => 'object',
'properties' => [
'Success' => ['description' => 'Indicates whether joining the message group was successful. Valid values:'."\n"
."\n"
.'- true: Successful.'."\n"
.'- false: Unsuccessful.', 'type' => 'boolean', 'title' => '', 'example' => 'true'],
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": true\\n }\\n}","type":"json"}]',
'title' => 'JoinMessageGroup',
'description' => 'The QPS limit for this API is 200 calls per second per user. If this limit is exceeded, API calls will be throttled, which may affect your business. Please use this API responsibly.',
'changeSet' => [
['createdAt' => '2022-09-27T09:18:30.000Z', 'description' => 'Request parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'JoinMessageGroup'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:JoinMessageGroup',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
],
'KickLiveMessageGroupUser' => [
'summary' => 'Removes a user from an interactive messaging group.'."\n",
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => ['operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the interactive messaging application to which the interactive messaging group belongs.'."\n", 'type' => 'string', 'required' => true, 'example' => 'demo', 'title' => ''],
],
[
'name' => 'GroupId',
'in' => 'query',
'schema' => ['description' => 'The ID of the interactive messaging group from which you want to remove the user.'."\n", 'type' => 'string', 'required' => true, 'example' => 'grouptest', 'title' => ''],
],
[
'name' => 'KickoffUser',
'in' => 'query',
'schema' => ['description' => 'The user that you want to remove.'."\n", 'type' => 'string', 'required' => true, 'example' => 'uid1', 'title' => ''],
],
[
'name' => 'DataCenter',
'in' => 'query',
'schema' => ['description' => 'The data center. It must be the same as the data center that was specified when you called the [CreateLiveMessageApp](~~2848162~~) operation to create the interactive messaging application. Valid values: cn-shanghai and ap-southeast-1 (Singapore).'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'The response parameters.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '97168878-5288-10CE-AE56-E2D1627F****'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'KickLiveMessageGroupUser',
'description' => 'Before you call this operation, make sure that you have called the [CreateLiveMessageGroup](~~2848163~~) operation to create an interactive messaging group.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n",
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'KickLiveMessageGroupUser'],
],
],
'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-E2D1627FB5F4\\n","errorExample":""}]',
],
'LeaveMessageGroup' => [
'summary' => 'Call LeaveMessageGroup to allow users to exit a message group.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'formData',
'schema' => ['description' => 'Interactive message application ID.', 'type' => 'string', 'required' => true, 'example' => 'VKL3***', 'title' => ''],
],
[
'name' => 'GroupId',
'in' => 'formData',
'schema' => ['description' => 'Message group ID.', 'type' => 'string', 'required' => true, 'example' => 'AE35-****-T95F', 'title' => ''],
],
[
'name' => 'UserId',
'in' => 'formData',
'schema' => ['description' => 'User ID, which is customized by the user and must be unique under the AppId.', 'type' => 'string', 'required' => true, 'example' => 'de1**a0', 'title' => ''],
],
[
'name' => 'BroadCastType',
'in' => 'formData',
'schema' => ['description' => 'System message diffusion type. Valid values:'."\n"
."\n"
.'- 0 (default): No diffusion.'."\n"
.'- 1: Diffusion to specified users.'."\n"
.'- 2: Diffusion to the group.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2', 'title' => ''],
],
[
'name' => 'BroadCastStatistics',
'in' => 'formData',
'schema' => ['description' => 'Specifies whether to broadcast statistics messages. When enabled, the statistics information of the message group will be broadcast after joining the message group, and the client can receive and process this message. Valid values:'."\n"
."\n"
.'- true: Broadcast statistics messages.'."\n"
.'- false: Do not broadcast statistics messages.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'Request ID.', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'],
'Result' => [
'description' => 'Return result.',
'type' => 'object',
'properties' => [
'Success' => ['description' => 'Indicates whether the user successfully left the message group. Valid values:'."\n"
."\n"
.'- true: Successful.'."\n"
.'- false: Unsuccessful.', 'type' => 'boolean', 'example' => 'true', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": true\\n }\\n}","type":"json"}]',
'title' => 'LeaveMessageGroup',
'description' => '## Usage notes'."\n"
."\n"
.'The QPS limit for this API is 100 calls per second per user. If this limit is exceeded, API calls will be throttled, which may affect your business. You can call this API properly to avoid issues. For more information, see [QPS limits](~~343507~~).',
'changeSet' => [
['createdAt' => '2022-09-27T09:18:30.000Z', 'description' => 'Request parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'LeaveMessageGroup'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:LeaveMessageGroup',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
],
'ListEdgeTranscodeJob' => [
'summary' => 'Queries a list of edge transcoding jobs.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'list',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveHVN9B2'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'ClusterId',
'in' => 'query',
'schema' => ['description' => 'The data center ID.', 'type' => 'string', 'required' => true, 'example' => 'cluster-1', 'title' => ''],
],
[
'name' => 'Type',
'in' => 'query',
'schema' => ['description' => 'The edge transcoding type. Valid values:'."\n"
."\n"
.'- common: standard transcoding and Narrowband HD 1.0.'."\n"
."\n"
.'- nbhd-2: Narrowband HD 2.0.'."\n"
."\n"
.'- ultra-hd: ultra-high definition.'."\n"
."\n"
.'> If you do not specify this parameter, transcoding templates for which you have permissions are displayed.', 'type' => 'string', 'required' => false, 'example' => 'common', 'title' => ''],
],
[
'name' => 'Status',
'in' => 'query',
'schema' => ['description' => 'The status of the edge transcoding job. Valid values:'."\n"
."\n"
.'- 0: The job has not started.'."\n"
."\n"
.'- 1: The job is running.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
],
[
'name' => 'PageNo',
'in' => 'query',
'schema' => ['description' => 'The page number. The default value is 1.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries per page. The default value is 10. The maximum value is 100.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20', 'title' => ''],
],
[
'name' => 'SortBy',
'in' => 'query',
'schema' => ['description' => 'The sorting rule. The results are sorted by CreateTime. The default value is desc. Valid values:'."\n"
."\n"
.'- desc: descending order.'."\n"
."\n"
.'- asc: ascending order.', 'type' => 'string', 'required' => false, 'example' => 'desc', 'title' => ''],
],
[
'name' => 'Keyword',
'in' => 'query',
'schema' => ['description' => 'The keyword for the search. Valid values:'."\n"
."\n"
.'- Job ID: an exact match is supported.'."\n"
."\n"
.'- Job name: a fuzzy search is supported.', 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'JobList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Job' => [
'itemNode' => true,
'description' => 'The list of edge transcoding jobs.',
'title' => '',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'CreateTime' => ['description' => 'The time the job was created.', 'type' => 'string', 'example' => '2023-07-24T16:44:55Z', 'title' => ''],
'JobId' => ['description' => 'The job ID.', 'type' => 'string', 'example' => '****20b48fb04483915d4f2cd8ac****', 'title' => ''],
'LastStartAt' => ['description' => 'The time the job was last started.', 'type' => 'string', 'example' => '2023-07-25T02:48:58Z', 'title' => ''],
'LastStopAt' => ['description' => 'The time the job was last stopped.', 'type' => 'string', 'example' => '2023-07-25T05:48:58Z', 'title' => ''],
'Name' => ['description' => 'The job name.', 'type' => 'string', 'example' => 'my_job', 'title' => ''],
'Status' => ['description' => 'The status of the edge transcoding job. Valid values:'."\n"
."\n"
.'- 0: The job has not started.'."\n"
."\n"
.'- 1: The job is running.', 'type' => 'string', 'example' => '0', 'title' => ''],
'StreamInput' => ['description' => 'The input stream URL.', 'type' => 'string', 'example' => 'rtmp://mydomain/app/stream1', 'title' => ''],
'StreamOutput' => ['description' => 'The output stream URL.', 'type' => 'string', 'example' => 'rtmp://testdomain/app/stream2', 'title' => ''],
'TemplateId' => ['description' => 'The ID of the edge transcoding template used by the job.', 'type' => 'string', 'example' => '9b1571b513cb44f7a1ba6ae561ff****', 'title' => ''],
'TemplateName' => ['description' => 'The name of the edge transcoding template used by the job.', 'type' => 'string', 'example' => 'my_template', 'title' => ''],
'Type' => ['description' => 'The edge transcoding type. Valid values:'."\n"
."\n"
.'- common: standard transcoding and Narrowband HD 1.0.'."\n"
."\n"
.'- nbhd-2: Narrowband HD 2.0.'."\n"
."\n"
.'- ultra-hd: ultra-high definition.', 'type' => 'string', 'example' => 'common', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******', 'title' => ''],
'TotalCount' => ['description' => 'The total number of entries.', 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => 'Parameter error'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
],
403 => [
['errorCode' => 'OperationDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation rejected, please check and try again.'],
],
],
'title' => 'ListEdgeTranscodeJob',
'description' => '- You can call this operation to query a list of edge transcoding jobs.'."\n"
."\n"
.'- To call this operation, you must have permissions to access the edge transcoding service.'."\n"
."\n"
.'- This operation returns only jobs that were created or modified in the last 180 days.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for a single user on this operation is 6,000 calls per minute. If you exceed this limit, your calls to the operation are throttled. This may affect your business. We recommend that you plan your calls accordingly.',
'requestParamsDescription' => '## Usage notes for request parameters'."\n"
."\n"
.'- You can filter query results by transcoding type (Type) and job status (Status).'."\n"
."\n"
.'- You can sort query results by creation time (CreateTime). By default, the results are sorted in descending order.'."\n"
."\n"
.'- You can query by keyword (Keyword). You can use a job ID for an exact match or a job name for a fuzzy query.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => '',
'ramAction' => [
'action' => 'live:ListEdgeTranscodeJob',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'ListEdgeTranscodeTemplate' => [
'summary' => 'Queries a list of edge transcoding templates.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'list',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveHVN9B2'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'ClusterId',
'in' => 'query',
'schema' => ['description' => 'The data center ID.', 'type' => 'string', 'required' => true, 'example' => '******3b-4d18-395c-8106-ff21a6******', 'title' => ''],
],
[
'name' => 'Type',
'in' => 'query',
'schema' => ['description' => 'The edge transcoding type. Valid values:'."\n"
."\n"
.'- **common**: standard transcoding and Narrowband HD 1.0.'."\n"
."\n"
.'- **nbhd-2**: Narrowband HD 2.0.'."\n"
."\n"
.'- **ultra-hd**: ultra-high definition.'."\n"
."\n"
.'> If you do not specify this parameter, the system returns the transcoding templates for the transcoding types that you are authorized to use.', 'type' => 'string', 'required' => false, 'example' => 'nbhd-2', 'title' => ''],
],
[
'name' => 'VideoCodec',
'in' => 'query',
'schema' => ['description' => 'The video encoding format. Valid values:'."\n"
."\n"
.'- H.264.'."\n"
."\n"
.'- H.265.'."\n"
."\n"
.'> If you do not specify this parameter, the system returns the transcoding templates for the video encoding formats that you are authorized to use.', 'type' => 'string', 'required' => false, 'example' => 'H.264', 'title' => ''],
],
[
'name' => 'PageNo',
'in' => 'query',
'schema' => ['description' => 'The page number. The default value is 1.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries to return on each page. The default value is 10. The maximum value is 100.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20', 'title' => ''],
],
[
'name' => 'SortBy',
'in' => 'query',
'schema' => ['description' => 'The sorting rule. The templates are sorted by creation time (CreateTime). The default value is desc. Valid values:'."\n"
."\n"
.'- desc: descending order.'."\n"
."\n"
.'- asc: ascending order.', 'type' => 'string', 'required' => false, 'example' => 'desc', 'title' => ''],
],
[
'name' => 'Keyword',
'in' => 'query',
'schema' => ['description' => 'The keyword for the search. Valid values:'."\n"
."\n"
.'- Template ID. Exact match is supported.'."\n"
."\n"
.'- Template name. Fuzzy search is supported.', 'type' => 'string', 'required' => false, 'example' => 'baseline', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******', 'title' => ''],
'TemplateList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Template' => [
'description' => 'The list of edge transcoding templates.',
'type' => 'array',
'items' => [
'description' => 'The list of edge transcoding templates.',
'type' => 'object',
'properties' => [
'Bitrate' => ['description' => 'The bitrate configuration. The bitrate can be fixed or can follow the source stream.', 'type' => 'string', 'example' => '3000', 'title' => ''],
'Codec' => ['description' => 'The video encoding format. Valid values:'."\n"
."\n"
.'- H.264.'."\n"
."\n"
.'- H.265.', 'type' => 'string', 'example' => 'H.264', 'title' => ''],
'CreateTime' => ['description' => 'The time when the template was created.', 'type' => 'string', 'example' => '2023-07-25T02:48:58Z', 'title' => ''],
'Fps' => ['description' => 'The frame rate configuration. The frame rate can be fixed or can follow the source stream.', 'type' => 'string', 'example' => '30', 'title' => ''],
'Gop' => ['description' => 'The keyframe configuration. You can configure keyframes by frame, by second, or set keyframes to follow the source stream.', 'type' => 'string', 'example' => '2s', 'title' => ''],
'Name' => ['description' => 'The template name.', 'type' => 'string', 'example' => 'my_template', 'title' => ''],
'Resolution' => ['description' => 'The resolution configuration. The resolution can be fixed or can follow the source stream.'."\n"
."\n"
.'> If you set a fixed resolution, setting the width or height to -1 or -2 indicates that the width or height is adaptive.', 'type' => 'string', 'example' => '1920*1080', 'title' => ''],
'TemplateId' => ['description' => 'The template ID.', 'type' => 'string', 'example' => '9b1571b513cb44f7a1ba6ae561ff46f7', 'title' => ''],
'Type' => ['description' => 'The edge transcoding type.', 'type' => 'string', 'example' => 'common', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'TotalCount' => ['description' => 'The total number of entries.', 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => 'Parameter error'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
],
403 => [
['errorCode' => 'OperationDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation rejected, please check and try again.'],
],
],
'title' => 'ListEdgeTranscodeTemplate',
'description' => '- You can call this operation to query a list of edge transcoding templates.'."\n"
."\n"
.'- You must have permission to access the edge transcoding service before you can call this operation.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 6,000 calls per minute. API calls that exceed this limit are throttled, which may affect your business. We recommend that you call this operation at a reasonable rate.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListEdgeTranscodeTemplate'],
],
],
'ramActions' => [
[
'operationType' => 'list',
'ramAction' => [
'action' => 'live:ListEdgeTranscodeTemplate',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'ListEventSub' => [
'summary' => 'Queries the events generated in channels to which you subscribe.'."\n",
'methods' => ['get'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'list',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '198164',
'abilityTreeNodes' => ['FEATUREliveK6LRQR'],
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID.'."\n", 'type' => 'string', 'required' => true, 'example' => '9qb1****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'The response parameters.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'AE050E24-BE9B-1E79-BB30-7EA0BBAE7F08'],
'Subscribers' => [
'description' => 'The events.'."\n",
'type' => 'array',
'items' => [
'description' => 'The information about the event.'."\n",
'type' => 'object',
'properties' => [
'SubId' => ['title' => '', 'description' => 'The ID of the event.'."\n", 'type' => 'string', 'example' => '09be0d2254cb5a89f4cbd86403ec****'],
'ChannelId' => ['description' => 'The ID of the channel to which you subscribe.'."\n", 'type' => 'string', 'example' => 'testmodify', 'title' => ''],
'Events' => [
'title' => '',
'description' => 'The type of the event. Valid values:'."\n"
."\n"
.'* ChannelEvent: channel event. For example, the channel is opened or closed.'."\n"
.'* UserEvent: user event. For example, a user joins or leaves the channel.'."\n",
'type' => 'array',
'items' => ['description' => 'Subscribe to events.', 'type' => 'string', 'example' => 'ChannelEvent', 'title' => ''],
'example' => '',
],
'CallbackUrl' => ['description' => 'The callback URL.'."\n", 'type' => 'string', 'example' => 'http://****.com/callback', 'title' => ''],
'CreateTime' => ['title' => '', 'description' => 'The time when the subscription was created. The time is displayed in UTC+8. Format: yyyy-MM-dd hh:mm:ss.'."\n", 'type' => 'string', 'example' => '2023-08-18 10:14:49'],
'ModifyTime' => ['title' => '', 'description' => 'The time when the subscription was modified. The time is displayed in UTC+8. Format: yyyy-MM-dd hh:mm:ss.'."\n", 'type' => 'string', 'example' => '2023-08-18 10:14:49'],
'Users' => [
'title' => '',
'description' => 'The user whose events are returned. We recommend that you use either this parameter or Roles.'."\n",
'type' => 'array',
'items' => ['description' => 'Callback only for events of this user, not recommended to be used with Roles.', 'type' => 'string', 'example' => 'testUser', 'title' => ''],
'example' => '',
],
'Roles' => ['title' => '', 'description' => 'The role of the user whose events are returned. Valid values:'."\n"
."\n"
.'* 1: streamer'."\n"
.'* 2: viewer'."\n"
."\n"
.'An empty value or a value other than 1 and 2 indicates that events of all users in the channel are returned.'."\n"
."\n"
.'> This parameter is deprecated. When you create a subscription, this parameter is no longer supported.'."\n", 'type' => 'integer', 'format' => 'int32', 'deprecated' => true, 'example' => '1'],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'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' => 'ListEventSub',
'description' => 'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n",
'changeSet' => [
['createdAt' => '2024-06-14T07:14:01.000Z', 'description' => 'Response parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListEventSub'],
],
],
'ramActions' => [
[
'operationType' => 'list',
'ramAction' => [
'action' => 'live:ListEventSub',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'],
],
],
],
],
],
'ListEventSubEvent' => [
'summary' => 'Queries callback records.'."\n",
'methods' => ['get'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID.'."\n", 'type' => 'string', 'required' => true, 'example' => '9qb1****', 'title' => ''],
],
[
'name' => 'SubscribeId',
'in' => 'query',
'schema' => ['description' => 'The subscription ID. You can obtain the ID from the response to the [CreateEventSub](~~2848209~~) operation.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ad53276431c****', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query. The value is a UNIX timestamp. Unit: seconds.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '2234313863', 'minimum' => '0', 'example' => '1698195600', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. The value is a UNIX timestamp. Unit: seconds.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '2234313863', 'minimum' => '0', 'example' => '1698201013', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of callback records to return on each page. Valid values: 1 to 100.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '100', 'minimum' => '10', 'example' => '10', 'title' => ''],
],
[
'name' => 'PageNo',
'in' => 'query',
'schema' => ['description' => 'The page number.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '9999999999', 'minimum' => '1', 'example' => '20', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => '',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'CC8CB656-A7BA-1811-9D6B-4CC187E988BD'],
'Count' => ['description' => 'The total number of callback records returned on the current page.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
'HasMore' => ['description' => 'Indicates whether the current page is followed by a page.'."\n", 'type' => 'boolean', 'example' => 'false', 'title' => ''],
'Logs' => [
'description' => 'The callback records.'."\n",
'type' => 'array',
'items' => [
'description' => '',
'type' => 'object',
'properties' => [
'AppId' => ['description' => 'The application ID.'."\n", 'type' => 'string', 'example' => '9qb1****', 'title' => ''],
'SubId' => ['description' => 'The subscription ID.'."\n", 'type' => 'string', 'example' => 'ad53276431c****', 'title' => ''],
'MessageId' => ['description' => 'The ID of the callback record.'."\n", 'type' => 'string', 'example' => '875d5266cbabb1834cc84a105cf6****', 'title' => ''],
'Data' => ['description' => 'The details about the callback.'."\n", '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}}]}', 'title' => ''],
'Cost' => ['description' => 'The callback duration. Unit: milliseconds.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '22', 'title' => ''],
'Time' => ['description' => 'The time when the callback was generated.'."\n", 'type' => 'string', 'example' => '2023-10-17 20:26:31.988', 'title' => ''],
'Url' => ['description' => 'The callback URL.'."\n", 'type' => 'string', 'example' => 'http://****.com/callback', 'title' => ''],
'Code' => ['description' => 'The HTTP status code. A value of 200 indicates that the callback was successful.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'ListEventSubEvent',
'description' => '* The maximum time range to query is seven days.'."\n"
.'* The minimum time granularity to query is 1 minute.'."\n"
.'* You can query data in the last seven days.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n",
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'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' => 'Retrieves stream delay configurations.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveBP94ZY'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'Domain',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'PageNum',
'in' => 'query',
'schema' => ['description' => 'The page number. Default value: 1.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries to return on each page. Valid values: 5 to 30. Default value: 10.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'DelayConfigList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DelayConfig' => [
'itemNode' => true,
'description' => 'The delay configurations.',
'title' => '',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'App' => ['description' => 'The AppName of the live stream.', 'type' => 'string', 'example' => 'liveApp****', 'title' => ''],
'DelayTime' => ['description' => 'The duration for which the playback is delayed. Unit: seconds.', 'type' => 'string', 'example' => '60', 'title' => ''],
'Domain' => ['description' => 'The streaming domain.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'Stream' => ['description' => 'The stream name.', 'type' => 'string', 'example' => 'liveStream****', 'title' => ''],
'TaskTriggerMode' => ['description' => 'The trigger mode. Valid values:'."\n"
."\n"
.'- **PUBLISH\\_ONLY**: Stream delay is triggered only by relevant parameters in the ingest URL.'."\n"
."\n"
.'- **CONFIG\\_ONLY**: Stream delay is triggered only by the configuration. Parameters in the ingest URL are ignored.'."\n"
."\n"
.'- **PUBLISH\\_CONFIG**: Stream delay is triggered by both the configuration and parameters in the ingest URL. Parameters in the ingest URL have a higher priority than the configuration.', 'type' => 'string', 'example' => 'PUBLISH_ONLY', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'A3136B58-5876-4168-83CA-B562781981A0', 'title' => ''],
'Total' => ['description' => 'The total number of stream delay configurations.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameters', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'Invalid parameter:%s.'],
],
],
'title' => 'ListLiveDelayConfig',
'description' => 'The queries per second (QPS) limit for a single user is 60. If you exceed this limit, API calls are throttled, which may impact your business. Ensure that you call this operation within this limit.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListLiveDelayConfig'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:ListLiveDelayConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'ListLiveMessageApps' => [
'summary' => 'Queries interactive messaging applications.',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'list',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '193889',
'abilityTreeNodes' => ['FEATUREliveSL6Y07'],
],
'parameters' => [
[
'name' => 'SortType',
'in' => 'query',
'allowEmptyValue' => false,
'schema' => [
'title' => '',
'description' => 'The sort order based on the creation time. Valid values:'."\n"
."\n"
.'* 1: ascending order'."\n"
.'* 2: descending order'."\n",
'type' => 'integer',
'format' => 'int32',
'required' => true,
'maximum' => '2',
'minimum' => '1',
'example' => '1',
'enum' => ['1', '2'],
],
],
[
'name' => 'NextPageToken',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The starting page number for the query. If you leave this parameter empty or set this parameter to -1, the query starts from the first page.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '-1'],
],
[
'name' => 'DataCenter',
'in' => 'query',
'schema' => ['description' => 'The data center. It must be the same as the data center that was specified when you called the [CreateLiveMessageApp](~~2848162~~) operation to create the interactive messaging application. Valid values: cn-shanghai and ap-southeast-1 (Singapore).'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'B8EB4994-1368-1458-B9F3-5B88D76D734C'],
'HasMore' => ['description' => 'Indicates whether the current page is followed by a page.'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''],
'NextPageToken' => ['description' => 'The starting page number for the next query. This parameter is returned only if the value of HasMore is true.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
'AppList' => [
'description' => 'The interactive messaging applications.'."\n",
'type' => 'array',
'items' => [
'description' => 'The information about the interactive messaging application.'."\n",
'type' => 'object',
'properties' => [
'AppId' => ['description' => 'The ID of the interactive messaging application queried.'."\n", 'type' => 'string', 'example' => 'demo', 'title' => ''],
'AppKey' => ['description' => 'The AppKey of the interactive messaging application. It is used to authorize operations related to the application ID.'."\n", 'type' => 'string', 'example' => '**********************************', 'title' => ''],
'AppSign' => ['description' => 'The signature of the interactive messaging application. It is required by the interactive messaging SDK.'."\n", 'type' => 'string', 'example' => '**************************************************************************', 'title' => ''],
'Disable' => ['description' => 'Indicates whether the interactive messaging application is disabled.'."\n", 'type' => 'string', 'example' => 'false', 'title' => ''],
'AppName' => ['description' => 'The name of the application.'."\n", 'type' => 'string', 'example' => 'testApp', 'title' => ''],
'CreateTime' => ['description' => 'The time when the application was created. The value is a UNIX timestamp. Unit: seconds.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1698305471', 'title' => ''],
'ModifyTime' => ['description' => 'The time when the application was last modified. The value is a UNIX timestamp. Unit: seconds.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1698305471', 'title' => ''],
'MsgLifeCycle' => ['description' => 'The retention period of group messages in the application. Valid values:'."\n"
."\n"
.'* 0 (default): 30 days'."\n"
.'* 1: 90 days'."\n"
.'* 2: 180 days'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'DataCenter' => ['description' => 'The live center.'."\n", 'type' => 'string', 'example' => 'cn-shanghai', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'ListLiveMessageApps',
'description' => 'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n",
'changeSet' => [
['createdAt' => '2025-03-26T02:53:05.000Z', 'description' => 'Response parameters changed'],
['createdAt' => '2025-01-23T12:00:01.000Z', 'description' => 'Response parameters changed'],
['createdAt' => '2024-08-01T02:18:30.000Z', 'description' => 'Response parameters changed'],
['createdAt' => '2024-01-09T03:34:27.000Z', 'description' => 'Response parameters changed'],
],
'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' => 'All Resource', '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' => [
'summary' => 'Queries interactive messaging groups by page.'."\n",
'methods' => ['get'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'list',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '222094',
'abilityTreeNodes' => ['FEATUREliveSL6Y07'],
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the interactive messaging application.'."\n", 'type' => 'string', 'required' => true, 'example' => 'demo', 'title' => ''],
],
[
'name' => 'SortType',
'in' => 'query',
'schema' => [
'description' => 'The sort order based on the time when the groups were created. Valid values:'."\n"
."\n"
.'* 1: ascending order'."\n"
.'* 2: descending order'."\n",
'type' => 'integer',
'format' => 'int32',
'required' => true,
'maximum' => '2',
'minimum' => '1',
'example' => '1',
'enum' => ['1', '2'],
'title' => '',
],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries per page. Valid values:\\[1,50].'."\n"
."\n"
.'Default value: 20.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'example' => '20', 'title' => ''],
],
[
'name' => 'PageNumber',
'in' => 'query',
'schema' => ['description' => 'The page number. Valid values: \\[1,10000].'."\n"
."\n"
.'Default value: 1.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '10000', 'minimum' => '1', 'example' => '1', 'title' => ''],
],
[
'name' => 'GroupStatus',
'in' => 'query',
'schema' => [
'description' => 'The status of the groups to query. Default value: 0. Valid values:'."\n"
."\n"
.'* 0: all groups'."\n"
.'* 1: existing groups'."\n"
.'* 2: deleted groups'."\n",
'type' => 'integer',
'format' => 'int32',
'required' => false,
'example' => '1',
'enum' => ['0', '1', '2'],
'title' => '',
],
],
[
'name' => 'DataCenter',
'in' => 'query',
'schema' => ['description' => 'The data center. It must be the same as the data center that was specified when you called the [CreateLiveMessageApp](~~2848162~~) operation to create the interactive messaging application. Valid values: cn-shanghai and ap-southeast-1 (Singapore).'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'B5D95365-5A46-1A6A-BBF5-C7B6BDED****'],
'TotalCount' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '50', 'title' => ''],
'PageNumber' => ['description' => 'The page number.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'PageSize' => ['description' => 'The number of entries returned on each page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''],
'GroupList' => [
'description' => 'The list of groups.'."\n",
'type' => 'array',
'items' => [
'description' => '',
'type' => 'object',
'properties' => [
'GroupId' => ['description' => 'The ID of the interactive messaging group.'."\n", 'type' => 'string', 'example' => 'cU9MeBqf****', 'title' => ''],
'CreatorId' => ['description' => 'The ID of the user who created the group.'."\n", 'type' => 'string', 'example' => 'user_77', 'title' => ''],
'AdminList' => [
'description' => 'The list of administrators.'."\n",
'type' => 'array',
'items' => ['description' => 'The ID of the administrator.'."\n", 'type' => 'string', 'example' => 'uid1', 'title' => ''],
'title' => '',
'example' => '',
],
'Createtime' => ['description' => 'The time when the group was created. The value is a UNIX timestamp. Unit: seconds.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1698299727', 'title' => ''],
'GroupName' => ['description' => 'The name of the group.'."\n", 'type' => 'string', 'example' => 'mytestgroup', 'title' => ''],
'GroupInfo' => ['description' => 'The additional information about the group.'."\n", 'type' => 'string', 'example' => 'testgroupinfo', 'title' => ''],
'Delete' => ['description' => 'Indicates whether the group is deleted.'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'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' => 'ListLiveMessageGroupByPage',
'description' => 'Before you call this operation, make sure that you have called the [CreateLiveMessageGroup](~~2848163~~) operation to create an interactive messaging group.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n",
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListLiveMessageGroupByPage'],
],
],
'ramActions' => [
[
'operationType' => 'list',
'ramAction' => [
'action' => 'live:ListLiveMessageGroupByPage',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'],
],
],
],
],
],
'ListLiveMessageGroupMessages' => [
'summary' => 'Queries the messages sent in a group.',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the interactive messaging application to query.'."\n", 'type' => 'string', 'required' => true, 'example' => 'demo', 'title' => ''],
],
[
'name' => 'GroupId',
'in' => 'query',
'schema' => ['description' => 'The ID of the group to query.'."\n", 'type' => 'string', 'required' => true, 'example' => 'grouptest', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The number of entries per page. Valid values: **10 to 50**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '50', 'minimum' => '10', 'example' => '10'],
],
[
'name' => 'SortType',
'in' => 'query',
'schema' => [
'title' => '',
'description' => 'The sort order based on the time when the messages were sent. Valid values:'."\n"
."\n"
.'* 1: ascending order'."\n"
.'* 2: descending order'."\n",
'type' => 'integer',
'format' => 'int32',
'required' => true,
'maximum' => '2',
'minimum' => '1',
'example' => '1',
'enum' => ['1', '2'],
],
],
[
'name' => 'NextPageToken',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The starting page number for the query. If you leave this parameter empty, the query starts from the first page.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1'],
],
[
'name' => 'MsgType',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The type of messages that you want to query. If you leave this parameter empty, all types of messages are queried.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1'],
],
[
'name' => 'BeginTime',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The beginning of the time range to query. The value is a UNIX timestamp. Unit: seconds. If you leave this parameter empty, the earliest available time is used.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1697783235'],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The end of the time range to query. The value is a UNIX timestamp. Unit: seconds. If you leave this parameter empty, the latest available time is used.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1698301635'],
],
[
'name' => 'DataCenter',
'in' => 'query',
'schema' => ['description' => 'The data center. It must be the same as the data center that was specified when you called the [CreateLiveMessageApp](~~2848162~~) operation to create the interactive messaging application. Valid values: cn-shanghai and ap-southeast-1 (Singapore).'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => '',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '1668FDC3-63D7-102F-B5D4-3D2F91D1****'],
'GroupId' => ['description' => 'The ID of the group queried.'."\n", 'type' => 'string', 'example' => 'grouptest', 'title' => ''],
'NextPageToken' => ['title' => '', 'description' => 'The starting page number for the next query. A value of 0 indicates that no further pages can be queried.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '0'],
'Hasmore' => ['title' => '', 'description' => 'Indicates whether the current page is followed by another page.'."\n", 'type' => 'boolean', 'example' => 'false'],
'MessageList' => [
'description' => 'Details about the messages.'."\n",
'type' => 'array',
'items' => [
'description' => '',
'type' => 'object',
'properties' => [
'Sender' => [
'description' => 'The details about the user who sent the message.'."\n",
'type' => 'object',
'properties' => [
'UserId' => ['description' => 'The ID of the user who sent the message.'."\n", 'type' => 'string', 'example' => 'uid2', 'title' => ''],
'UserInfo' => ['description' => 'The additional information about the user who sent the message.'."\n", 'type' => 'string', 'example' => 'testusermeta2', 'title' => ''],
],
'title' => '',
'example' => '',
],
'Body' => ['description' => 'The message body.'."\n", 'type' => 'string', 'example' => 'step2 helo, cc group', 'title' => ''],
'Timestamp' => ['description' => 'The time when the message was sent. The value is a UNIX timestamp. Unit: seconds.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1697081134', 'title' => ''],
'MsgTid' => ['description' => 'The ID of the message.'."\n", 'type' => 'string', 'example' => 'c-1-1-0', 'title' => ''],
'MsgType' => ['description' => 'The type of the message.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '2', 'title' => ''],
'SeqNumber' => ['description' => 'The sequence number of the message.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
'TotalMessages' => ['description' => 'The total number of messages.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'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' => 'ListLiveMessageGroupMessages',
'description' => 'Before you call this operation, make sure that you have called the [CreateLiveMessageGroup](~~2848163~~) operation to create an interactive messaging group.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n",
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'list',
'ramAction' => [
'action' => 'live:ListLiveMessageGroupMessages',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'],
],
],
],
],
],
'ListLiveMessageGroupUsers' => [
'summary' => 'Queries the users in an interactive messaging group.'."\n",
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'list',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '194318',
'abilityTreeNodes' => ['FEATUREliveSL6Y07'],
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the interactive messaging application to query.'."\n", 'type' => 'string', 'required' => true, 'example' => 'demo', 'title' => ''],
],
[
'name' => 'GroupId',
'in' => 'query',
'schema' => ['description' => 'The ID of the group to query.'."\n", 'type' => 'string', 'required' => true, 'example' => 'grouptest', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The number of entries per page. Valid values: **10 to 50**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '30', 'minimum' => '10', 'example' => '10'],
],
[
'name' => 'SortType',
'in' => 'query',
'schema' => [
'title' => '',
'description' => 'The sort order based on the time when the users joined the group. Valid values:'."\n"
."\n"
.'* 1: ascending order'."\n"
.'* 2: descending order'."\n",
'type' => 'integer',
'format' => 'int32',
'required' => true,
'maximum' => '2',
'minimum' => '1',
'example' => '1',
'enum' => ['1', '2'],
],
],
[
'name' => 'NextPageToken',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The starting page number for the query. If you leave this parameter empty, the query starts from the first page.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1'],
],
[
'name' => 'DataCenter',
'in' => 'query',
'schema' => ['description' => 'The data center. It must be the same as the data center that was specified when you called the [CreateLiveMessageApp](~~2848162~~) operation to create the interactive messaging application. Valid values: cn-shanghai and ap-southeast-1 (Singapore).'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Schema of Response'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'A1D75BEA-1329-116F-B29C-76F3F200****'],
'GroupId' => ['description' => 'The ID of the group queried.'."\n", 'type' => 'string', 'example' => 'grouptest', 'title' => ''],
'NextPageToken' => ['title' => '', 'description' => 'The starting page number for the next query. A value of 0 indicates that no further pages can be queried.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '0'],
'Hasmore' => ['title' => '', 'description' => 'Indicates whether the current page is followed by another page.'."\n", 'type' => 'boolean', 'example' => 'false'],
'UserList' => [
'description' => 'Details about the users.'."\n",
'type' => 'array',
'items' => [
'description' => '',
'type' => 'object',
'properties' => [
'UserId' => ['title' => '', 'description' => 'The ID of the user.'."\n", 'type' => 'string', 'example' => 'uid1'],
'UserInfo' => ['title' => '', 'description' => 'The additional information about the user.'."\n", 'type' => 'string', 'example' => 'info1'],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
420 => [
['errorCode' => 'SuperLargeGroup', 'errorMessage' => '%s.', 'description' => 'When the group has more than 2000 members, the group is upgraded to a super large group and no longer supports querying the user list.'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'ListLiveMessageGroupUsers',
'description' => '* Before you call this operation, make sure that you have called the [CreateLiveMessageGroup](~~2848163~~) operation to create an interactive messaging group.'."\n"
.'* For a super group, which has more than 2,000 users, the user list cannot be queried. In addition, the notifications about users entering or leaving the group are sent at an interval of at least of 5 seconds. These notifications display the accurate number of users in the group for the time being, but do not display the list of all users entering or leaving the group. Once a group is upgraded to a super group, the user list of the group is immediately cleared. The super group cannot be restored to a normal group until all users in the group leave the group (that is, the group is closed). After you reopen the group, it is restored to a normal group.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n",
'changeSet' => [
['createdAt' => '2025-03-26T02:42:53.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [],
],
'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' => [
'summary' => 'Queries the interactive messaging groups in an interactive messaging application.',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'list',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '194270',
'abilityTreeNodes' => ['FEATUREliveSL6Y07'],
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'demo', 'title' => ''],
],
[
'name' => 'SortType',
'in' => 'query',
'schema' => [
'title' => '',
'description' => 'The sort order based on the time when the groups were created. Valid values:'."\n"
."\n"
.'* 1: ascending order'."\n"
.'* 2: descending order'."\n",
'type' => 'integer',
'format' => 'int32',
'required' => true,
'maximum' => '2',
'minimum' => '1',
'example' => '1',
'enum' => ['1', '2'],
],
],
[
'name' => 'NextPageToken',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The starting page number for the query. If you leave this parameter empty, the query starts from the first page.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1001'],
],
[
'name' => 'GroupStatus',
'in' => 'query',
'schema' => [
'description' => 'The status of the groups to query. Default value: 0. Valid values:'."\n"
."\n"
.'* 0: all groups'."\n"
.'* 1: existing groups'."\n"
.'* 2: deleted groups'."\n",
'type' => 'integer',
'format' => 'int32',
'required' => false,
'example' => '1',
'enum' => ['0', '1', '2'],
'title' => '',
],
],
[
'name' => 'DataCenter',
'in' => 'query',
'schema' => ['description' => 'The data center. It must be the same as the data center that was specified when you called the [CreateLiveMessageApp](~~2848162~~) operation to create the interactive messaging application. Valid values: cn-shanghai and ap-southeast-1 (Singapore).'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => '',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'B5D95365-5A46-1A6A-BBF5-C7B6BDED****'],
'Hasmore' => ['title' => '', 'description' => 'Indicates whether the current page is followed by another page.'."\n", 'type' => 'boolean', 'example' => 'false'],
'NextpageToken' => ['description' => 'The starting page number for the next query. This parameter is returned only if the value of Hasmore is true.'."\n", 'type' => 'string', 'example' => '1001', 'title' => ''],
'GroupList' => [
'description' => 'Details about the groups.'."\n",
'type' => 'array',
'items' => [
'description' => 'Details about the groups.',
'type' => 'object',
'properties' => [
'GroupId' => ['description' => 'The ID of the group.'."\n", 'type' => 'string', 'example' => 'cU9MeBqf****', 'title' => ''],
'CreatorId' => ['description' => 'The ID of the group creator.'."\n", 'type' => 'string', 'example' => 'user_77', 'title' => ''],
'AdminList' => [
'description' => 'The list of the IDs of the group administrators.'."\n",
'type' => 'array',
'items' => ['description' => 'Administrator.', 'type' => 'string', 'example' => 'uid1', 'title' => ''],
'title' => '',
'example' => '',
],
'Createtime' => ['description' => 'The time when the group was created. The value is a UNIX timestamp. Unit: seconds.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1698299727', 'title' => ''],
'GroupName' => ['description' => 'The name of the group.'."\n", 'type' => 'string', 'example' => 'mytestgroup', 'title' => ''],
'GroupInfo' => ['description' => 'The additional information about the group.'."\n", 'type' => 'string', 'example' => 'testgroupinfo', 'title' => ''],
'Delete' => ['description' => 'Indicates whether the group is deleted.'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'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' => 'ListLiveMessageGroups',
'description' => 'Before you call this operation, make sure that you have called the [CreateLiveMessageGroup](~~2848163~~) operation to create an interactive messaging group.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n",
'changeSet' => [
['createdAt' => '2024-05-23T05:54:49.000Z', 'description' => 'Request parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListLiveMessageGroups'],
],
],
'ramActions' => [
[
'operationType' => 'list',
'ramAction' => [
'action' => 'live:ListLiveMessageGroups',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'],
],
],
],
],
],
'ListLiveRealtimeLogDelivery' => [
'methods' => ['get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATURElive066BXV'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'LiveOpenapiReserve',
'in' => 'query',
'schema' => ['description' => 'This parameter is not used.', 'type' => 'string', 'required' => false, 'example' => '无', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The real-time log delivery information.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '30559C03-86C9-4EEC-B840-0DC5F5A2189B', 'title' => ''],
'Content' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'RealtimeLogDeliveryInfo' => [
'description' => 'The real-time log delivery information.',
'type' => 'array',
'items' => [
'description' => 'The real-time log delivery information.',
'type' => 'object',
'properties' => [
'Status' => ['description' => 'The status of the log service. Valid values:'."\n"
."\n"
.'- **online**: The service is running.'."\n"
."\n"
.'- **offline**: The service is stopped.', 'type' => 'string', 'example' => 'online', 'title' => ''],
'DmId' => ['description' => 'The domain ID.', 'type' => 'integer', 'format' => 'int32', 'example' => '1001010', 'title' => ''],
'Region' => ['description' => 'The region where logs are delivered to Simple Log Service (SLS).', 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''],
'Logstore' => ['description' => 'The name of the Logstore in SLS.', 'type' => 'string', 'example' => 'logstore_example', 'title' => ''],
'Project' => ['description' => 'The name of the project in SLS.', 'type' => 'string', 'example' => 'project_example', 'title' => ''],
'DomainName' => ['description' => 'The streaming domain.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'Unauthorized', 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', 'description' => ''],
],
],
'title' => 'ListLiveRealtimeLogDelivery',
'summary' => 'You can call the ListLiveRealtimeLogDelivery operation to query all real-time log delivery configurations.',
'description' => 'You can call this operation to query all real-time log delivery configurations. Make sure that the parameters are set as required.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 6,000 calls per minute for each user. API calls that exceed this limit are throttled, which may impact your business. Call this operation at a reasonable rate.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## 特定错误码'."\n"
.'| HttpCode| 错误码 | 错误信息|描述 |'."\n"
.'|--------------------------|----------------------|---------------------|-----------|'."\n"
.'| 403| Unauthorized |RealtimeLogDelivery Service Not Authorized | 没有开启实时投递授权。|',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:ListLiveRealtimeLogDelivery',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'ListLiveRealtimeLogDeliveryDomains' => [
'summary' => 'Call ListLiveRealtimeLogDeliveryDomains to query all streaming domains that are configured for the real-time log delivery service.',
'methods' => ['get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'list',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '107178',
'abilityTreeNodes' => ['FEATURElive066BXV'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'Project',
'in' => 'query',
'schema' => ['description' => 'The name of the SLS project for real-time log delivery.', 'type' => 'string', 'required' => true, 'example' => 'project_example', 'title' => ''],
],
[
'name' => 'Logstore',
'in' => 'query',
'schema' => ['description' => 'The name of the SLS Logstore for real-time log delivery.', 'type' => 'string', 'required' => true, 'example' => 'logstore_example', 'title' => ''],
],
[
'name' => 'Region',
'in' => 'query',
'schema' => ['description' => 'The region of the SLS project for real-time log delivery.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '95D5B69F-8AEC-419B-8F3A-612B35032B0D', 'title' => ''],
'Content' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Domains' => [
'itemNode' => true,
'description' => 'The details of the domain names.',
'title' => '',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Status' => ['description' => 'The status of the log delivery service. Valid values:'."\n"
."\n"
.'- **online**: The service is running.'."\n"
."\n"
.'- **offline**: The service is stopped.', 'type' => 'string', 'example' => 'online', 'title' => ''],
'DomainName' => ['description' => 'The streaming domain.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'Unauthorized', 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', 'description' => ''],
],
404 => [
['errorCode' => 'LogstoreNotExist', 'errorMessage' => 'Logstore does not exist', 'description' => ''],
],
],
'eventInfo' => [
'enable' => false,
'eventNames' => [],
],
'title' => 'ListLiveRealtimeLogDeliveryDomains',
'description' => '- This operation queries all streaming domains that are configured for the real-time log delivery service. The response indicates whether the service is online or offline for each domain.'."\n"
."\n"
.'- You can call [DescribeLiveDomainRealtimeLogDelivery](~~2848121~~) to query parameters such as Project, Logstore, and Region.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 6,000 calls per minute. If you exceed this limit, API calls are throttled. Throttling may affect your business. We recommend that you call this operation within the specified limit.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Special error codes'."\n"
."\n"
.'|HTTP status code|Error code|Error message|Description|'."\n"
.'|---|---|---|---|'."\n"
.'|403|Unauthorized|RealtimeLogDelivery Service Not Authorized|The error message returned because you are not authorized to use Log Service.|'."\n"
.'|404|LogstoreNotExist|Logstore does not exist|The error message returned because the specified Logstore is not found.|',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListLiveRealtimeLogDeliveryDomains'],
],
],
'ramActions' => [
[
'operationType' => 'list',
'ramAction' => [
'action' => 'live:ListLiveRealtimeLogDeliveryDomains',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"95D5B69F-8AEC-419B-8F3A-612B35032B0D\\",\\n \\"Content\\": {\\n \\"Domains\\": [\\n {\\n \\"Status\\": \\"online\\",\\n \\"DomainName\\": \\"example.com\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
],
'ListLiveRealtimeLogDeliveryInfos' => [
'summary' => 'Queries information about all real-time log delivery services.',
'methods' => ['get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATURElive066BXV'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'LiveOpenapiReserve',
'in' => 'query',
'schema' => ['description' => 'This parameter is reserved.', 'type' => 'string', 'required' => false, 'example' => '无', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '95D5B69F-8AEC-419B-8F3A-612B35032B0D', 'title' => ''],
'Content' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'RealtimeLogDeliveryInfos' => [
'itemNode' => true,
'description' => 'The information about the log delivery services.',
'title' => '',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Logstore' => ['description' => 'The name of the Logstore in Simple Log Service (SLS) for real-time log delivery.', 'type' => 'string', 'example' => 'logstore_example', 'title' => ''],
'Project' => ['description' => 'The name of the project in SLS for real-time log delivery.', 'type' => 'string', 'example' => 'project_example', 'title' => ''],
'Region' => ['description' => 'The region where the SLS project for real-time log delivery resides.', 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'Unauthorized', 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', 'description' => ''],
],
],
'title' => 'ListLiveRealtimeLogDeliveryInfos',
'description' => 'Make sure that you configure the parameters as required when you call this operation.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 6,000 calls per minute. If you exceed this limit, API calls are throttled. This can affect your business, so you should plan your calls accordingly.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## 特定错误码'."\n"
.'| HttpCode| 错误码 | 错误信息 | 描述 |'."\n"
.'|--------------------------|----------------|---------------------------|-----------|'."\n"
.'| 403| Unauthorized | RealtimeLogDelivery Service Not Authorized | 没有开启实时投递授权。 |',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:ListLiveRealtimeLogDeliveryInfos',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'ListLiveTagResources' => [
'summary' => 'Queries resources and tags that meet the specified conditions.',
'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' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'ResourceId',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The list of resource IDs. ResourceId and Tag cannot both be empty.',
'type' => 'array',
'items' => ['description' => 'The resource ID.'."\n"
."\n"
.'- When ResourceType is set to DOMAIN, specify the live streaming domain name (such as `example.alivecdn.com`). You can call DescribeLiveUserDomains to obtain the list of domain names under your account.', 'type' => 'string', 'required' => false, 'example' => 'my-resource-id', 'title' => ''],
'required' => false,
'maxItems' => 51,
'title' => '',
'example' => '',
],
],
[
'name' => 'Tag',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The list of tags. ResourceId and Tag cannot both be empty.',
'type' => 'array',
'items' => [
'description' => 'The tag information.',
'type' => 'object',
'properties' => [
'Key' => ['description' => 'The tag key of the resource.', 'type' => 'string', 'required' => false, 'example' => 'env', 'title' => ''],
'Value' => ['description' => 'The tag value that corresponds to the tag key.', 'type' => 'string', 'required' => false, 'example' => 'dev', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 21,
'title' => '',
'example' => '',
],
],
[
'name' => 'TagOwnerUid',
'in' => 'query',
'schema' => ['description' => 'The Alibaba Cloud account ID to which the tag belongs.', 'type' => 'string', 'required' => false, 'example' => 'xxx1234xxx', 'title' => ''],
],
[
'name' => 'TagOwnerBid',
'in' => 'query',
'schema' => ['description' => 'The Bid of the tag owner.', 'type' => 'string', 'required' => false, 'example' => '26842', 'title' => ''],
],
[
'name' => 'ResourceType',
'in' => 'query',
'schema' => [
'description' => 'The resource type.',
'enumValueTitles' => ['DOMAIN' => 'domain name resource.'],
'type' => 'string',
'required' => true,
'enum' => ['DOMAIN'],
'example' => 'DOMAIN',
'title' => '',
],
],
[
'name' => 'NextToken',
'in' => 'query',
'schema' => ['description' => 'The token for the next query.', 'type' => 'string', 'required' => false, 'example' => 'q2j8bLtBdhONLRkgaPBa6A==', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'NextToken' => ['description' => 'The token for the next query.', 'type' => 'string', 'example' => '6a5e8f4fae643e70d1a2ff1827cd91bd', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******', 'title' => ''],
'TagResources' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'TagResource' => [
'description' => 'The list of tag resources.',
'type' => 'array',
'items' => [
'description' => 'The tag resource.',
'type' => 'object',
'properties' => [
'ResourceId' => ['description' => 'The resource ID.', 'type' => 'string', 'example' => 'my-resource-id', 'title' => ''],
'ResourceType' => ['description' => 'The resource type.', 'type' => 'string', 'example' => 'DOMAIN', 'title' => ''],
'TagKey' => ['description' => 'The tag key.', 'type' => 'string', 'example' => 'env', 'title' => ''],
'TagValue' => ['description' => 'The tag value.', 'type' => 'string', 'example' => 'dev', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
401 => [
['errorCode' => 'InvalidResourceType', 'errorMessage' => 'The resourceType is invalid.', 'description' => 'The specified resourceType parameter is invalid.'],
['errorCode' => 'InvalidTagKey', 'errorMessage' => 'The tag key is invalid, %s.', 'description' => 'Invalid tag key.'],
],
403 => [
['errorCode' => 'InvalidResourcesCount', 'errorMessage' => 'The count of resources is invalid, %s.', 'description' => 'The input resource array. The total number of resources cannot exceed the maximum value and must be greater than 0.'],
['errorCode' => 'Duplicate.TagKey', 'errorMessage' => 'The tags should not contain duplicate keys.', 'description' => 'The tag should not contain duplicate keys.'],
],
],
'title' => 'Query resources and tags that meet specified conditions',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'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' => 'Queries the message list.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
'name' => 'GroupId',
'in' => 'formData',
'schema' => ['description' => 'The message group ID.', 'type' => 'string', 'required' => true, 'example' => 'AE35-****-T95F', 'title' => ''],
],
[
'name' => 'AppId',
'in' => 'formData',
'schema' => ['description' => 'The interactive message application ID.', 'type' => 'string', 'required' => true, 'example' => 'VKL3***', 'title' => ''],
],
[
'name' => 'Type',
'in' => 'formData',
'schema' => ['description' => 'The user-defined message type. The value must be greater than 10000.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10002', 'title' => ''],
],
[
'name' => 'SortType',
'in' => 'formData',
'schema' => ['description' => 'The sorting method. Valid values:'."\n"
."\n"
.'- 0: ascending order by time.'."\n"
."\n"
.'- 1: descending order by time.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'PageNum',
'in' => 'formData',
'schema' => ['description' => 'The page number. Default value: 1. Valid values: 1 to 100000.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '10', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'formData',
'schema' => ['description' => 'The number of users displayed per page. Default value: 20. Valid values: 1 to 50.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '20', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'],
'Result' => [
'description' => 'The returned results.',
'type' => 'object',
'properties' => [
'HasMore' => ['description' => 'Indicates whether there is a next page. Valid values:'."\n"
."\n"
.'- true: There is a next page.'."\n"
."\n"
.'- false: There is no next page.', 'type' => 'boolean', 'example' => 'false', 'title' => ''],
'MessageList' => [
'description' => 'The message list.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Data' => ['description' => 'The message body, in JSONString format.', 'type' => 'string', 'example' => 'test', 'title' => ''],
'GroupId' => ['description' => 'The message group ID.', 'type' => 'string', 'example' => 'AE35-****-T95F', 'title' => ''],
'MessageId' => ['description' => 'The message ID.', 'type' => 'string', 'example' => 'qt***', 'title' => ''],
'SenderId' => ['description' => 'The message sender ID.', 'type' => 'string', 'example' => 'yi***', 'title' => ''],
'Type' => ['description' => 'The message type.', 'type' => 'integer', 'format' => 'int32', 'example' => '10002', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'title' => 'ListMessage',
'description' => '## QPS limits'."\n"
."\n"
.'The single-user QPS limit for this API operation is 100 queries per second (QPS). If the limit is exceeded, API calls will be throttled, which may affect your business. You can call the API operation properly to avoid this issue. For more information, see [QPS limits](~~343507~~).',
'changeSet' => [
['createdAt' => '2022-11-24T12:44:21.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2022-09-13T02:27:23.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2022-09-13T02:27:23.000Z', 'description' => 'Request parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListMessage'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:ListMessage',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'ListMessageApp' => [
'summary' => 'Call ListMessageApp to query the list of interactive message applications.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
'name' => 'SortType',
'in' => 'formData',
'schema' => ['description' => 'Sorting method. Valid values:'."\n"
."\n"
.'- 0: Ascending order by time.'."\n"
.'- 1: Descending order by time.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'title' => '', 'example' => '1'],
],
[
'name' => 'PageNum',
'in' => 'formData',
'schema' => ['description' => 'Page number. Default value: 1. Valid values: 1 to 100000.'."\n"
."\n"
.'> This page number is the current display page.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'title' => '', 'example' => '10'],
],
[
'name' => 'PageSize',
'in' => 'formData',
'schema' => ['description' => 'Number of applications displayed per page. Default value: 20. Valid values: 1 to 50.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'title' => '', 'example' => '20'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'Request ID.', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'],
'Result' => [
'description' => 'Return result.',
'type' => 'object',
'properties' => [
'AppList' => [
'description' => 'Application list.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'AppConfig' => [
'description' => 'Application configuration.',
'type' => 'object',
'additionalProperties' => ['type' => 'string', 'description' => 'Application configuration.', 'title' => '', 'example' => '"appAlias":"localApp"'],
'title' => '',
'example' => '',
],
'AppId' => ['description' => 'Interactive message application ID.', 'type' => 'string', 'title' => '', 'example' => 'VKL3***'],
'AppName' => ['description' => 'Interactive message application name.', 'type' => 'string', 'title' => '', 'example' => 'test'],
'CreateTime' => ['description' => 'UTC timestamp when the application was created.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '502280113'],
'Extension' => [
'description' => 'Extension field.',
'type' => 'object',
'additionalProperties' => ['type' => 'string', 'description' => 'Extension field.', 'title' => '', 'example' => 'test001'],
'title' => '',
'example' => '',
],
'Status' => ['description' => 'Interactive message application status. A value of **1** indicates that the application status is Normal.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '1'],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'HasMore' => ['description' => 'Indicates whether there is a next page. Valid values:'."\n"
."\n"
.'- true: There is a next page.'."\n"
.'- false: There is no next page.', 'type' => 'boolean', 'title' => '', 'example' => 'false'],
'Total' => ['description' => 'Total number of interactive message applications.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '15'],
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'title' => 'ListMessageApp',
'description' => '## QPS limits'."\n"
."\n"
.'The single-user QPS limit for this API is 100 queries per second (QPS). API calls exceeding this limit will be throttled, which may affect your business. You can call this API at a reasonable rate. For more information, see [QPS limits](~~343507~~).',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListMessageApp'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:ListMessageApp',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'ListMessageGroup' => [
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
'name' => 'UserId',
'in' => 'formData',
'schema' => ['description' => 'User ID, which is customized by the user and must be unique within an AppId. Different users must use different UserIds.'."\n"
."\n"
.'> You must correctly fill in this parameter to perform a normal query.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'de1**a0'],
],
[
'name' => 'AppId',
'in' => 'formData',
'schema' => ['description' => 'Interactive Messages application ID.'."\n"
."\n"
.'> You must correctly fill in this parameter to perform a normal query.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'VKL3***'],
],
[
'name' => 'SortType',
'in' => 'formData',
'schema' => ['description' => 'Sorting method. Valid values:'."\n"
."\n"
.'- 0: Ascending order by time.'."\n"
.'- 1: Descending order by time.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'title' => '', 'example' => '1'],
],
[
'name' => 'PageNum',
'in' => 'formData',
'schema' => ['description' => 'Page number. Default value: 1. Valid values: 1 to 100000.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'title' => '', 'example' => '10'],
],
[
'name' => 'PageSize',
'in' => 'formData',
'schema' => ['description' => 'Number of message groups to display per page. Default value: 20.'."\n"
."\n"
.'Valid values: 1 to 50.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'title' => '', 'example' => '20'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'Request ID.', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'],
'Result' => [
'description' => 'Return result.',
'type' => 'object',
'properties' => [
'GroupList' => [
'description' => 'Message group list.',
'type' => 'array',
'items' => [
'description' => 'Message group details.',
'type' => 'object',
'properties' => [
'AppId' => ['description' => 'Interactive Messages application ID.', 'type' => 'string', 'title' => '', 'example' => 'VKL3***'],
'CreateTime' => ['description' => 'UTC timestamp when the message group was created.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '1502280113'],
'CreatorId' => ['description' => 'Creator ID.', 'type' => 'string', 'title' => '', 'example' => 'as****hs'],
'Extension' => [
'description' => 'Extension field.',
'type' => 'object',
'additionalProperties' => ['type' => 'string', 'description' => 'Extension field.', 'title' => '', 'example' => 'test001'],
'title' => '',
'example' => '',
],
'GroupId' => ['description' => 'Message group ID.', 'type' => 'string', 'title' => '', 'example' => 'AE35-****-T95F'],
'Status' => ['description' => 'Message group status. The default value is **1**, indicating that the message group status is normal.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '1'],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'HasMore' => ['description' => 'Indicates whether there is a next page. Valid values:'."\n"
."\n"
.'- true: There is a next page.'."\n"
.'- false: There is no next page.', 'type' => 'boolean', 'title' => '', 'example' => 'false'],
'Total' => ['description' => 'Total number of message groups.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '5'],
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'title' => 'ListMessageGroup',
'summary' => 'Call ListMessageGroup to query the message group list for a specified user.',
'description' => '## QPS limits'."\n"
."\n"
.'The single-user QPS limit for this API is 100 queries per second. If this limit is exceeded, API calls will be throttled, which may affect your business. You can call this API at a reasonable rate. For more information, see [QPS limits](~~343507~~).',
'changeSet' => [
['createdAt' => '2022-12-05T02:25:52.000Z', 'description' => 'Request parameters changed, Response parameters changed'],
['createdAt' => '2022-10-27T06:54:26.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2022-09-08T15:22:52.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListMessageGroup'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:ListMessageGroup',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'ListMessageGroupUser' => [
'summary' => 'Query message group members.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'formData',
'schema' => ['description' => 'Interactive Messages application ID.', 'type' => 'string', 'required' => true, 'example' => 'VKL3***', 'title' => ''],
],
[
'name' => 'GroupId',
'in' => 'formData',
'schema' => ['description' => 'Message group ID.', 'type' => 'string', 'required' => true, 'example' => 'AE35-****-T95F', 'title' => ''],
],
[
'name' => 'SortType',
'in' => 'formData',
'schema' => ['description' => 'Sorting method. Valid values:'."\n"
."\n"
.'- 0: Ascending order by time.'."\n"
.'- 1: Descending order by time.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'PageNum',
'in' => 'formData',
'schema' => ['description' => 'Page number. Default value: 1.'."\n"
."\n"
.'Valid values: 1 to 100000.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'formData',
'schema' => ['description' => 'Number of message group members to display per page. Default value: 20.'."\n"
."\n"
.'Valid values: 1 to 50.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'Request ID.', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'],
'Result' => [
'description' => 'Return results.',
'type' => 'object',
'properties' => [
'HasMore' => ['description' => 'Indicates whether there is a next page. Valid values:'."\n"
."\n"
.'- true: There is a next page.'."\n"
.'- false: There is no next page.', 'type' => 'boolean', 'example' => 'false', 'title' => ''],
'Total' => ['description' => 'Total number of message group users.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''],
'UserList' => [
'description' => 'User list.',
'type' => 'array',
'items' => [
'description' => 'User list.',
'type' => 'object',
'properties' => [
'JoinTime' => ['description' => 'UTC timestamp when the user joined the message group.', 'type' => 'integer', 'format' => 'int64', 'example' => '12**45', 'title' => ''],
'UserId' => ['description' => 'User ID.', 'type' => 'string', 'example' => 'de1**a0,hu**9', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'title' => 'ListMessageGroupUser',
'description' => '## QPS limits'."\n"
."\n"
.'The single-user QPS limit for this API is 100 queries per second (QPS). If you exceed this limit, API calls will be throttled, which may affect your business. You can make API calls at a reasonable rate. For more information, see [QPS limits](~~343507~~).',
'changeSet' => [
['createdAt' => '2022-11-24T09:12:47.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2022-09-08T15:22:52.000Z', 'description' => 'OpenAPI offline'],
],
'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' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'ListMessageGroupUserById' => [
'summary' => 'Call ListMessageGroupUserById to query user information by user ID list.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveSL6Y07'],
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'formData',
'schema' => ['description' => 'Interactive message application ID.', 'type' => 'string', 'required' => true, 'example' => 'VKL3***', 'title' => ''],
],
[
'name' => 'GroupId',
'in' => 'formData',
'schema' => ['description' => 'Message group ID.', 'type' => 'string', 'required' => true, 'example' => 'AE35-****-T95F', 'title' => ''],
],
[
'name' => 'UserIdList',
'in' => 'formData',
'style' => 'simple',
'schema' => [
'description' => 'User list.',
'type' => 'array',
'items' => ['description' => 'User ID.', 'type' => 'string', 'required' => false, 'example' => 'de1**a0', 'title' => ''],
'required' => true,
'title' => '',
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'Request ID.', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8', 'title' => ''],
'Result' => [
'description' => 'Return result.',
'type' => 'object',
'properties' => [
'HasMore' => ['description' => 'Indicates whether there is a next page. Valid values:'."\n"
."\n"
.'- true: There is a next page.'."\n"
."\n"
.'- false: There is no next page.', 'type' => 'boolean', 'example' => 'false', 'title' => ''],
'Total' => ['description' => 'Total number of users queried.', 'type' => 'integer', 'format' => 'int32', 'example' => '3', 'title' => ''],
'UserList' => [
'description' => 'User list information.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'IsMute' => ['description' => 'Indicates whether the user is muted. Valid values:'."\n"
."\n"
.'- true: Muted.'."\n"
."\n"
.'- false: Not muted.', 'type' => 'boolean', 'example' => 'true', 'title' => ''],
'MuteBy' => [
'description' => 'Mute type. Valid values:'."\n"
."\n"
.'- group: All members in the message group are muted.'."\n"
."\n"
.'- user: Individual user is muted.',
'type' => 'array',
'items' => ['description' => 'Mute type. Valid values:'."\n"
."\n"
.'- group: All members in the message group are muted.'."\n"
."\n"
.'- user: Individual user is muted.', 'type' => 'string', 'example' => 'user', 'title' => ''],
'title' => '',
'example' => '',
],
'UserAvatar' => ['description' => 'Profile picture URL.', 'type' => 'string', 'example' => '"http://www.aliyundoc.com/xxyy.png"', 'title' => ''],
'UserExtension' => ['description' => 'Custom user information content.', 'type' => 'string', 'example' => '12e', 'title' => ''],
'UserId' => ['description' => 'User ID.', 'type' => 'string', 'example' => 'ad***', 'title' => ''],
'UserNick' => ['description' => 'User nickname.', 'type' => 'string', 'example' => 'xxyy', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParam', 'errorMessage' => 'Parameter invalid.', 'description' => 'Illegal input parameters'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
],
'title' => 'Indicates whether the user is muted. Valid values:'."\n"
."\n"
.'* true'."\n"
.'* false'."\n",
'description' => '## QPS limits'."\n"
."\n"
.'The QPS limit for this API is 100 queries per second per user. If the limit is exceeded, API calls will be throttled, which may affect your business. You can call the API properly to avoid this issue. For more information, see [QPS limits](~~343507~~).',
'changeSet' => [
['createdAt' => '2023-03-16T02:40:01.000Z', 'description' => 'Request parameters changed'],
],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:ListMessageGroupUserById',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'ListMuteGroupUser' => [
'summary' => 'Call ListMuteGroupUser to query the list of muted members in a message group.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'formData',
'schema' => ['description' => 'The ID of the interactive message application.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'VKL3***'],
],
[
'name' => 'GroupId',
'in' => 'formData',
'schema' => ['description' => 'The ID of the message group.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'AE35-****-T95F'],
],
[
'name' => 'PageNum',
'in' => 'formData',
'schema' => ['description' => 'The page number. Default value: 1. Valid values: 1 to 100000.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'title' => '', 'example' => '10'],
],
[
'name' => 'PageSize',
'in' => 'formData',
'schema' => ['description' => 'The number of users to display on each page. Default value: 20. Valid values: 1 to 50.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'title' => '', 'example' => '20'],
],
[
'name' => 'OperatorUserId',
'in' => 'formData',
'schema' => ['description' => 'The user ID of the operator. This user must be the creator of the group.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'de1**a0'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'],
'Result' => [
'description' => 'The returned results.',
'type' => 'object',
'properties' => [
'HasMore' => ['description' => 'Indicates whether there is a next page. Valid values:'."\n"
."\n"
.'- true: There is a next page.'."\n"
.'- false: There is no next page.', 'type' => 'boolean', 'title' => '', 'example' => 'false'],
'Total' => ['description' => 'The total number of muted members.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '2'],
'UserList' => [
'description' => 'The list of muted users.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'UserId' => ['description' => 'The ID of the muted user.', 'type' => 'string', 'title' => '', 'example' => '1sd***,yu***'],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"HasMore\\": false,\\n \\"Total\\": 2,\\n \\"UserList\\": [\\n {\\n \\"UserId\\": \\"1sd***,yu***\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
'title' => 'ListMuteGroupUser',
'description' => '## QPS limits'."\n"
."\n"
.'The QPS limit for this API is 100 queries per second (QPS) per user. If the limit is exceeded, API calls will be throttled, which may affect your business. You can call this API at a reasonable rate. For more information, see [QPS limits](~~343507~~).',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '300', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListMuteGroupUser'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:ListMuteGroupUser',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
],
'ListPlaylist' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'ProgramId',
'in' => 'query',
'schema' => ['description' => 'The ID of the playlist. If you specify this parameter, only the information about the specified playlist is returned. If you leave this parameter empty, the information about all playlists that belong to your account is returned. Use the ProgramId value returned by the [AddPlaylistItems](~~2848078~~) operation.', 'type' => 'string', 'required' => false, 'example' => 'c09f3d63-eacf-4fbf-bd48-a07a6ba7****', 'title' => ''],
],
[
'name' => 'Page',
'in' => 'query',
'schema' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries to return on each page.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'ProgramList' => [
'description' => 'The list of playlists.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'CasterId' => ['description' => 'The ID of the production studio to which the playlist belongs. Use this ID as a request parameter to add, delete, modify, or query the layout of a virtual studio.', 'type' => 'string', 'example' => 'casdfasdfasfdasdflkasjdflaj****', 'title' => ''],
'DomainName' => ['description' => 'The streaming domain.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'ProgramId' => ['description' => 'The ID of the playlist.', 'type' => 'string', 'example' => 'c09f3d63-eacf-4fbf-bd48-a07a6ba7****', 'title' => ''],
'ProgramName' => ['description' => 'The name of the playlist.', 'type' => 'string', 'example' => 'playlist1', 'title' => ''],
'RepeatNumber' => ['description' => 'The number of times the playlist repeats after the first playback. Valid values:'."\n"
."\n"
.'- **0** (default): The playlist does not repeat.'."\n"
."\n"
.'- **-1**: The playlist plays in a loop.'."\n"
."\n"
.'- Other positive integers: The number of times the playlist repeats.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'Status' => ['description' => 'The status of the playlist. Valid values:'."\n"
."\n"
.'- **0**: stopped.'."\n"
."\n"
.'- **1**: running.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****', 'title' => ''],
'Total' => ['description' => 'The total number of playlists.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidPageSize.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter PageSize is invalid, please check and try again.'],
['errorCode' => 'InvalidPageNum.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter PageNum is invalid, please check and try again.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
],
404 => [
['errorCode' => 'PlayListNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'PlayList does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'ListPlaylist',
'summary' => 'Queries episode lists.',
'description' => 'Call the [AddPlaylistItems](~~2848078~~) operation to add items to a playlist before you query it.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'This operation is limited to 10 queries per second (QPS) per user. API calls that exceed this limit are throttled. Throttling may affect your business. Plan your calls accordingly.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:ListPlaylist',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'ListPlaylistItems' => [
'summary' => 'Queries the items in a specified playlist.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The ID of the region.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'ProgramId',
'in' => 'query',
'schema' => ['description' => 'The ID of the playlist. You can obtain the ID from the ProgramId parameter in the response of the [AddPlaylistItems](~~2848078~~) operation.', 'type' => 'string', 'required' => true, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
],
[
'name' => 'ProgramItemIds',
'in' => 'query',
'schema' => ['description' => 'The IDs of the playlist items. Separate multiple IDs with commas (,). If you specify this parameter, only the information about the specified items is returned. If you leave this parameter empty, the information about all items in the playlist is returned.', 'type' => 'string', 'required' => false, 'example' => 'c10f3d63-eacf-4fbf-bd48-a07a6ba7****,c09f3d63-eacf-4fbf-bd48-a07a6ba7****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'Total' => ['description' => 'The number of playlist items.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '5c6a2a0d-f228-4a64-af62-20e91b9****', 'title' => ''],
'ProgramItems' => [
'description' => 'The list of playlist items.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Index' => ['description' => 'The orchestration index.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'ResourceType' => ['description' => 'The type of the resource.', 'type' => 'string', 'example' => 'vod', 'title' => ''],
'ProgramItemId' => ['description' => 'The ID of the playlist item.', 'type' => 'string', 'example' => 'c10f3d63-eacf-4fbf-bd48-a07a6ba7****', 'title' => ''],
'ProgramId' => ['description' => 'The ID of the playlist. You can use this ID as a request parameter when you edit, delete, query, start, or stop the playlist.', 'type' => 'string', 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
'ProgramItemName' => ['description' => 'The name of the playlist item.', 'type' => 'string', 'example' => 'playlistItem1', 'title' => ''],
'ResourceValue' => ['description' => 'The ID of the resource.', 'type' => 'string', 'example' => 'asdfasdf8as9df8sa9df89****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidProgramId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ProgramId is invalid, please check and try again.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
],
404 => [
['errorCode' => 'PlayListNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'PlayList does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'ListPlaylistItems',
'description' => 'Before you call this operation, you must call the [AddPlaylistItems](~~2848078~~) operation to add items to a playlist.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'This operation has a queries per second (QPS) limit of 10 calls per user. If you exceed this limit, your API calls are throttled. Throttling can affect your business. We recommend that you call this operation at a reasonable rate.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListPlaylistItems'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:ListPlaylistItems',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'ListRTCLiveRooms' => [
'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' => ['type' => 'string', 'required' => true, 'title' => '', 'description' => 'The ID of the application.', 'example' => 'a494caec-***-695ef345db77'],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['type' => 'integer', 'format' => 'int32', 'maximum' => '100', 'minimum' => '10', 'default' => '50', 'title' => '', 'description' => 'The number of entries per page. Valid values: 10 to 100. Default value: 50.', 'required' => false, 'example' => '50'],
],
[
'name' => 'PageNo',
'in' => 'query',
'schema' => ['type' => 'integer', 'format' => 'int32', 'minimum' => '1', 'default' => '1', 'title' => '', 'description' => 'The page number. Page numbers start from 1.', 'required' => false, 'example' => '1'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['type' => 'string', 'title' => '', 'description' => 'The request ID.', 'example' => '5c6a2a0df228-4a64-af62-20e91b96****'],
'Total' => ['type' => 'integer', 'format' => 'int32', 'description' => 'The total number of entries returned.', 'title' => '', 'example' => '2'],
'Rooms' => [
'type' => 'array',
'items' => ['type' => 'string', 'description' => 'The channel ID.', 'title' => '', 'example' => 'room1'],
'title' => '',
'description' => 'The active channels.',
'example' => '',
],
],
'title' => '',
'description' => 'Schema of Response',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'ListRTCLiveRooms',
'summary' => 'Retrieves active ARTC channels.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'live:ListRTCLiveRooms',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b96****\\",\\n \\"Total\\": 2,\\n \\"Rooms\\": [\\n \\"room1\\"\\n ]\\n}","type":"json"}]',
],
'ListRtcMPUEventSubRecord' => [
'summary' => 'Queries the callback records of a subscription to mixed-stream relay events.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'list',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '225589',
'abilityTreeNodes' => ['FEATUREliveK6LRQR'],
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the application.'."\n"
."\n"
.'> The ID can be up to 64 characters in length and can contain letters, digits, underscores (\\_), and hyphens (-).', 'type' => 'string', 'required' => true, 'example' => 'yourAppId', 'title' => ''],
],
[
'name' => 'SubId',
'in' => 'query',
'schema' => ['description' => 'The ID of the subscription.', 'type' => 'string', 'required' => false, 'example' => 'yourSubId', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format.', 'type' => 'string', 'required' => true, 'example' => '1970-01-01T00:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format.', 'type' => 'string', 'required' => true, 'example' => '1970-01-01T00:00:00Z', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries per page. Valid values: 1 to 100.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '10', 'title' => ''],
],
[
'name' => 'PageNo',
'in' => 'query',
'schema' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '20', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******', 'title' => ''],
'Count' => ['description' => 'The number of entries per page.', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
'HasMore' => ['description' => 'Indicates whether the current page is followed by a page.', 'type' => 'boolean', 'example' => 'false', 'title' => ''],
'Logs' => [
'description' => 'The callback records.',
'type' => 'array',
'items' => [
'description' => 'The callback record.',
'type' => 'object',
'properties' => [
'AppId' => ['description' => 'The ID of the application.', 'type' => 'string', 'example' => 'yourAppId', 'title' => ''],
'SubId' => ['description' => 'The ID of the subscription.', 'type' => 'string', 'example' => 'Sub-******9799B2C4500******', 'title' => ''],
'MsgId' => ['description' => 'The ID of the callback record.', 'type' => 'string', 'example' => '42bba8b5-********-9b501dd6cb6e', 'title' => ''],
'Data' => ['description' => 'For more information about the callback, see [CreateRtcMPUEventSub](~~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\\":\\"\\"}}', 'title' => ''],
'Time' => ['description' => 'The time when the callback was invoked. The time follows the ISO 8601 standard in the YYYY-MM-DDThh:mm:ss format. The time is displayed in UTC.', 'type' => 'string', 'example' => '1970-01-01T00:00:00Z', 'title' => ''],
'Cost' => ['description' => 'The callback duration. Unit: milliseconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '22', 'title' => ''],
'CallbackUrl' => ['description' => 'The callback URL.', 'type' => 'string', 'example' => 'http://testcallback***.com/callback', 'title' => ''],
'HTTPCode' => ['description' => 'The HTTP status code. 200 indicates that the callback is successful.', 'type' => 'string', 'example' => '200', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => '%s.', 'description' => 'Parameter verification failed'],
['errorCode' => 'InvalidAppId', 'errorMessage' => '%s, please check and try again later.', 'description' => 'AppId is invalid, please check and try again.'],
['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is missing, please check and try again.'],
],
403 => [
['errorCode' => 'OperationDenied', 'errorMessage' => 'Your account has not enabled the Live service', 'description' => ''],
['errorCode' => 'Forbidden', 'errorMessage' => '%s, please check and try again later.', 'description' => 'No permission, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'InternalError', 'description' => ''],
],
],
'title' => 'ListRtcMPUEventSubRecord',
'description' => 'You can call this operation to query the callback records of a subscription to mixed-stream relay events in the last seven days.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 100 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.',
'changeSet' => [
['createdAt' => '2024-07-04T06:14:36.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'list',
'ramAction' => [
'action' => 'live:ListRtcMPUEventSubRecord',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'ListRtcMPUTaskDetail' => [
'summary' => 'Queries the parameters of mixed-stream relay tasks.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'list',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '226001',
'abilityTreeNodes' => ['FEATUREliveK6LRQR'],
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the application.'."\n"
."\n"
.'> The ID can be up to 64 characters in length and can contain letters, digits, underscores (\\_), and hyphens (-).', 'type' => 'string', 'required' => true, 'example' => 'yourAppId', 'title' => ''],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'The task ID.'."\n"
."\n"
.'>'."\n"
."\n"
.'- The ID can be up to 55 characters in length and can contain letters, digits, underscores (\\_), and hyphens (-).'."\n"
."\n"
.'- If you specify TaskId, the parameters of the specified tasks are returned.', 'type' => 'string', 'required' => false, 'example' => 'yourTaskId', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries per page. Valid values: 1 to 100.'."\n"
."\n"
.'> If you do not specify TaskId, you must specify PageSize and PageNo. Then, the parameters of all stream relay tasks for the specified application are returned in pages.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '10', 'title' => ''],
],
[
'name' => 'PageNo',
'in' => 'query',
'schema' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '20', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******', 'title' => ''],
'MPUTasks' => [
'description' => 'The parameters that you configured when you called the StartLiveMPUTask operation to create the tasks.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'AppId' => ['description' => 'The ID of the application.', 'type' => 'string', 'example' => 'yourAppId', 'title' => ''],
'ChannelId' => ['description' => 'The ID of the channel.', 'type' => 'string', 'example' => 'yourChannelId', 'title' => ''],
'TaskId' => ['description' => 'The ID of the stream relay task.', 'type' => 'string', 'example' => 'yourTaskId', 'title' => ''],
'MixMode' => ['description' => 'The stream mixing mode. Valid values:'."\n"
."\n"
.'- 0: relays the original single stream without mixing streams. If the value of this parameter is 0, the TranscodeParams parameter is empty.'."\n"
."\n"
.'- 1 (default): mixes multiple streams into a single stream and relays the mixed stream.', 'type' => 'string', 'example' => '0', 'title' => ''],
'StreamURL' => ['description' => 'The ingest URL.', 'type' => 'string', 'example' => 'rtmp://example.com/live/stream****', 'title' => ''],
'MultiStreamURL' => [
'description' => 'The multiple ingest URLs relayed.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'URL' => ['description' => 'The ingest URL.', 'type' => 'string', 'example' => 'rtmp://example.com/live/stream****', 'title' => ''],
'IsAliCdn' => ['description' => 'Indicates whether stream relay is performed by using Alibaba Cloud CDN. Valid values:'."\n"
."\n"
.'- false: Stream relay is performed by using a CDN service that is not Alibaba Cloud CDN.'."\n"
."\n"
.'- true: Stream relay is performed by using Alibaba Cloud CDN.', 'type' => 'boolean', 'example' => 'false', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'Region' => ['description' => 'The region in which the streams are mixed. Valid values:'."\n"
."\n"
.'- **CN-shanghai**'."\n"
."\n"
.'- **AP-Singapore (default)**'."\n"
."\n"
.'- **EMAA-Saudi**', 'type' => 'string', 'example' => 'CN-Shanghai', 'title' => ''],
'MaxIdleTime' => ['description' => 'The timeout period of an idle connection. Unit: seconds.'."\n"
."\n"
.'> If the task is idle for a period of time longer than the duration specified by the MaxIdleTime parameter, the task is automatically stopped. If the parameter is not specified, the task is stopped after the channel is closed.', 'type' => 'string', 'example' => '10', 'title' => ''],
'SingleSubParams' => [
'description' => 'The parameters of the single-stream relay task.',
'type' => 'object',
'properties' => [
'SourceType' => ['description' => 'The source of the video. This parameter is valid only if you set StreamType to 2. Valid values:'."\n"
."\n"
.'- camera (default): captures the video by using a camera.'."\n"
."\n"
.'- shareScreen: captures the content displayed on a screen.', 'type' => 'string', 'example' => 'camera', 'title' => ''],
'StreamType' => ['description' => 'The type of the stream that is relayed. Valid values:'."\n"
."\n"
.'- 0 (default): the original stream.'."\n"
."\n"
.'- 1: the audio-only stream.'."\n"
."\n"
.'- 2: the video-only stream.', 'type' => 'string', 'example' => '0', 'title' => ''],
'UserId' => ['description' => 'The ID of the user whose stream is relayed. In single-stream relay mode, you can relay only one stream in a request.', 'type' => 'string', 'example' => 'yourSubUserId', 'title' => ''],
],
'title' => '',
'example' => '',
],
'TranscodeParams' => [
'description' => 'The mixed-stream relay parameters.',
'type' => 'object',
'properties' => [
'Background' => [
'description' => 'The global background image.',
'type' => 'object',
'properties' => [
'RenderMode' => ['description' => 'The display mode. Valid values:'."\n"
."\n"
.'- 0: proportionally scales the video or background image to fit the pane. Black bars are added to fill the extra space.'."\n"
."\n"
.'- 1 (default): crops the video or background image to fit the pane.', 'type' => 'string', 'example' => '1', 'title' => ''],
'URL' => ['description' => 'The URL of the global background image.', 'type' => 'string', 'example' => 'yourImageUrl', 'title' => ''],
],
'title' => '',
'example' => '',
],
'EncodeParams' => [
'description' => 'The encoding parameters of the output stream.',
'type' => 'object',
'properties' => [
'AudioOnly' => ['description' => 'Indicates whether the output stream is an audio-only stream. Valid values:'."\n"
."\n"
.'- true'."\n"
."\n"
.'- false (default)', 'type' => 'string', 'example' => 'false', 'title' => ''],
'AudioBitrate' => ['description' => 'The bitrate of the audio. Unit: Kbit/s.', 'type' => 'string', 'example' => '128', 'title' => ''],
'AudioChannels' => ['description' => 'The number of audio channels. Valid values: 1 and 2.', 'type' => 'string', 'example' => '2', 'title' => ''],
'AudioSampleRate' => ['description' => 'The audio sampling rate. Unit: Hz.', 'type' => 'string', 'example' => '44100', 'title' => ''],
'VideoCodec' => ['description' => 'The video encoding format. Default value: H.264.', 'type' => 'string', 'example' => 'H.264', 'title' => ''],
'VideoBitrate' => ['description' => 'The bitrate of the video. Unit: Kbit/s.', 'type' => 'string', 'example' => '3500', 'title' => ''],
'VideoFramerate' => ['description' => 'The frame rate of the video. Unit: frames per second (FPS).', 'type' => 'string', 'example' => '25', 'title' => ''],
'VideoGop' => ['description' => 'The group of pictures (GOP) size of the video.', 'type' => 'string', 'example' => '20', 'title' => ''],
'VideoHeight' => ['description' => 'The height of the video. Unit: pixels.', 'type' => 'string', 'example' => '1000', 'title' => ''],
'VideoWidth' => ['description' => 'The width of the video. Unit: pixels.', 'type' => 'string', 'example' => '1920', 'title' => ''],
'EnhancedParam' => ['description' => 'The parameter for advanced video encoding. The value is a JSON string. Optional fields:'."\n"
."\n"
.'- profile: the encoding level. If the video encoding format is set to H.264, the valid values of this field are baseline, main, and high.'."\n"
."\n"
.'- preset: adjusts the trade-off between encoding speed and video quality. Valid values: ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow, and placebo. Each value specifies a level of trade-off between encoding speed and video quality. For example, the ultrafast preset has the fastest encoding speed but the lowest video quality, while the placebo preset sacrifices the encoding speed for the best video quality.', 'type' => 'string', 'example' => '{"profile": "high", "preset": "veryfast"}', 'title' => ''],
],
'title' => '',
'example' => '',
],
'Layout' => [
'description' => 'The video layout information.'."\n"
."\n"
.'> The video layout information includes the x-coordinate, y-coordinate, width, height, and layer of the pane. For audio-only transcoding, no video layout information is returned.',
'type' => 'object',
'properties' => [
'UserPanes' => [
'description' => 'The information about the panes.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'UserInfo' => [
'description' => 'The information about the user whose stream is played in the pane.',
'type' => 'object',
'properties' => [
'SourceType' => ['description' => 'The source of the video. This parameter is valid only if you set StreamType to 2. Valid values:'."\n"
."\n"
.'- camera (default): captures the video by using a camera.'."\n"
."\n"
.'- shareScreen: captures the content displayed on a screen.', 'type' => 'string', 'example' => 'camera', 'title' => ''],
'ChannelId' => ['description' => 'The ID of the channel where the user is.', 'type' => 'string', 'example' => 'yourChannelId', 'title' => ''],
'UserId' => ['description' => 'The ID of the user.', 'type' => 'string', 'example' => 'yourSubUserId', 'title' => ''],
],
'title' => '',
'example' => '',
],
'Height' => ['description' => 'The height of the pane. The value is normalized.', 'type' => 'string', 'example' => '0.2632', 'title' => ''],
'Width' => ['description' => 'The width of the pane. The value is normalized.', 'type' => 'string', 'example' => '0.3564', 'title' => ''],
'X' => ['description' => 'The x-coordinate of the pane. The value is normalized.', 'type' => 'string', 'example' => '0.2456', 'title' => ''],
'Y' => ['description' => 'The y-coordinate of the pane. The value is normalized.', 'type' => 'string', 'example' => '0.3789', 'title' => ''],
'ZOrder' => ['description' => 'The layer of the pane. A value of 0 indicates that the pane is placed at the bottom layer. A larger value indicates a higher layer.', 'type' => 'string', 'example' => '0', 'title' => ''],
'BackgroundImageUrl' => ['description' => 'The URL of the background image of the pane. This image is displayed if the user turns off the camera or is not present in the channel.', 'type' => 'string', 'example' => 'yourImageUrl', 'title' => ''],
'RenderMode' => ['description' => 'The display mode. Valid values:'."\n"
."\n"
.'- 0: proportionally scales the video or background image to fit the pane. Black bars are added to fill the extra space.'."\n"
."\n"
.'- 1 (default): crops the video or background image to fit the pane.', 'type' => 'string', 'example' => '1', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'UserInfos' => [
'description' => 'The information about the user whose stream is mixed. If an empty value is returned, streams from all users are mixed.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'ChannelId' => ['description' => 'The ID of the channel where the user is.', 'type' => 'string', 'example' => 'yourChannelId', 'title' => ''],
'UserId' => ['description' => 'The ID of the user.', 'type' => 'string', 'example' => 'yourSubUserId', 'title' => ''],
'SourceType' => ['description' => 'The source of the video. This parameter is valid only if you set StreamType to 2. Valid values:'."\n"
."\n"
.'- camera (default): captures the video by using a camera.'."\n"
."\n"
.'- shareScreen: captures the content displayed on a screen.', 'type' => 'string', 'example' => 'camera', 'title' => ''],
'StreamType' => ['description' => 'The type of the stream that is relayed. Valid values:'."\n"
."\n"
.'- 0 (default): the original stream.'."\n"
."\n"
.'- 1: the audio-only stream.'."\n"
."\n"
.'- 2: the video-only stream.', 'type' => 'string', 'example' => '0', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'SeiParams' => [
'description' => 'The supplemental enhancement information (SEI) parameters.',
'type' => 'object',
'properties' => [
'LayoutVolume' => [
'description' => 'The layout and volume SEI. If the return value is an empty string, the default layout and volume SEI is used.',
'type' => 'object',
'properties' => [
'FollowIdr' => ['description' => 'Indicates whether to add SEI messages to Instantaneous Decoder Refresh (IDR) frames. Valid values:'."\n"
."\n"
.'- 0: does not add SEI messages.'."\n"
."\n"
.'- 1: adds SEI messages.', 'type' => 'string', 'example' => '0', 'title' => ''],
'Interval' => ['description' => 'The interval at which the SEI messages are added. Unit: milliseconds.', 'type' => 'string', 'example' => '1000', 'title' => ''],
],
'title' => '',
'example' => '',
],
'PassThrough' => [
'description' => 'The custom SEI.',
'type' => 'object',
'properties' => [
'FollowIdr' => ['description' => 'Indicates whether to add SEI messages to Instantaneous Decoder Refresh (IDR) frames. Valid values:'."\n"
."\n"
.'- 0: does not add SEI messages.'."\n"
."\n"
.'- 1: adds SEI messages.', 'type' => 'string', 'example' => '0', 'title' => ''],
'Interval' => ['description' => 'The interval at which the SEI messages are added. Unit: milliseconds.', 'type' => 'string', 'example' => '1000', 'title' => ''],
'PayloadContent' => ['description' => 'The payload content of the custom SEI.', 'type' => 'string', 'example' => 'yourPayloadContent', 'title' => ''],
'PayloadContentKey' => ['description' => 'The key of the payload content. Default value: udd.', 'type' => 'string', 'example' => 'yourPayloadContentKey', 'title' => ''],
],
'title' => '',
'example' => '',
],
'PayloadType' => ['description' => 'The custom payload type. Valid values: 100 to 254. Default value: 5.', 'type' => 'string', 'example' => '100', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => '%s.', 'description' => 'Parameter verification failed'],
['errorCode' => 'InvalidAppId', 'errorMessage' => '%s, please check and try again later.', 'description' => 'AppId is invalid, please check and try again.'],
['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is missing, please check and try again.'],
],
403 => [
['errorCode' => 'OperationDenied', 'errorMessage' => 'Your account has not enabled the Live service', 'description' => ''],
['errorCode' => 'Forbidden', 'errorMessage' => '%s, please check and try again later.', 'description' => 'No permission, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'ListRtcMPUTaskDetail',
'description' => '- You can call the ListRtcMPUTaskDetail operation to query the parameters of mixed-stream relay tasks that were created by calling the StartLiveMPUTask operation.'."\n"
."\n"
.'- By default, the query results are sorted in reverse chronological order based on the task update time.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.',
'changeSet' => [
['createdAt' => '2024-11-14T09:21:05.000Z', 'description' => 'Response parameters changed'],
['createdAt' => '2024-10-30T09:33:19.000Z', 'description' => 'Response parameters changed'],
['createdAt' => '2024-08-13T08:23:10.000Z', 'description' => 'Response parameters changed'],
['createdAt' => '2024-08-06T07:59:23.000Z', 'description' => 'Response parameters changed'],
['createdAt' => '2024-07-04T07:02:35.000Z', 'description' => 'Error codes changed'],
],
'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' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'ModifyCasterComponent' => [
'summary' => 'Modifies a component of a production studio.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- The ID is returned after you call the [CreateCaster](~~2848009~~) operation.'."\n"
."\n"
.'- If you create a production studio in the LIVE console, go to the **LIVE** > **Production Studio** > **Cloud Production Studio** page to find the ID.'."\n"
."\n"
.'> The name of the production studio in the list on the Cloud Production Studio page is the production studio ID.', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', 'title' => ''],
],
[
'name' => 'ComponentId',
'in' => 'query',
'schema' => ['description' => 'The component ID. The ID is returned after you call the [AddCasterComponent](~~2848030~~) operation.', 'type' => 'string', 'required' => true, 'example' => '05ab713c-676e-49c0-96ce-cc408da1****', 'title' => ''],
],
[
'name' => 'ComponentName',
'in' => 'query',
'schema' => ['description' => 'The name of the component. The default value is the component ID.', 'type' => 'string', 'required' => false, 'example' => 'text01', 'title' => ''],
],
[
'name' => 'ComponentType',
'in' => 'query',
'schema' => ['description' => 'The type of the component. Valid values:'."\n"
."\n"
.'- **text**: A text component. The TextLayerContent parameter is required only if you set ComponentType to text.'."\n"
."\n"
.'- **image**: An image component. The ImageLayerContent parameter is required only if you set ComponentType to image.'."\n"
."\n"
.'- **caption**: A translation caption component. The CaptionLayerContent parameter is required only if you set ComponentType to caption.', 'type' => 'string', 'required' => false, 'example' => 'text', 'title' => ''],
],
[
'name' => 'Effect',
'in' => 'query',
'schema' => ['description' => 'The display effect of the component. Valid values:'."\n"
."\n"
.'- **none** (default): no effect.'."\n"
."\n"
.'- **animateH**: horizontal scroll.'."\n"
."\n"
.'- **animateV**: vertical scroll.', 'type' => 'string', 'required' => false, 'example' => 'animateV', 'title' => ''],
],
[
'name' => 'ComponentLayer',
'in' => 'query',
'schema' => ['description' => 'The size and layout of the layer. The value is a JSON string. The following properties are supported:'."\n"
."\n"
.'- **HeightNormalized**: The normalized height.'."\n"
."\n"
.'- **WidthNormalized**: The normalized width.'."\n"
."\n"
.'- **PositionNormalized**: The normalized position of the layer.'."\n"
."\n"
.'- **PositionRefer**: The reference point for the position of the layer.', 'type' => 'string', 'required' => false, 'example' => '{"HeightNormalized":"1","PositionRefer":"topRight","WidthNormalized":"0","PositionNormalized":["0.1","0.2"]}', 'title' => ''],
],
[
'name' => 'TextLayerContent',
'in' => 'query',
'schema' => ['description' => 'The properties of the text layer. The value is a JSON string. The following properties are supported:'."\n"
."\n"
.'>'."\n"
."\n"
.'This parameter is required if you set ComponentType to text.'."\n"
."\n"
.'>'."\n"
."\n"
.'- **SizeNormalized**: The normalized font size. The font size is calculated using the formula: font\\_size/output\\_height. The value must be in the range of `[0,1]`. If the calculated font size is greater than 1024, the value 1024 is used.'."\n"
."\n"
.'- **BorderWidthNormalized**: The normalized width of the text border. The normalized width is calculated based on the font size using the formula: BorderWidth/FontSize. The value must be in the range of `[0,1]`. If the calculated value is greater than 16, the value 16 is used. Default value: 0.'."\n"
."\n"
.'- **FontName**: The font name. For more information about valid values, see **Production studio fonts**. Default value: KaiTi.'."\n"
."\n"
.'- **BorderColor**: The color of the text border. Valid values are from 0x000000 to 0xffffff. The default value is an empty string, which indicates that this parameter is not used.'."\n"
."\n"
.'- **Text**: The text content. The default value is an empty string.'."\n"
."\n"
.'- **Color**: The color of the text. Default value: 0xff0000, which is red.', 'type' => 'string', 'required' => false, 'example' => '{"BorderWidthNormalized":"1","SizeNormalized":"0.2","Color":"0x000000","FontName":"KaiTi","BorderColor":"0x000000","Text":"hello world!"}', 'title' => ''],
],
[
'name' => 'ImageLayerContent',
'in' => 'query',
'schema' => ['description' => 'The properties of the image layer. The value is a JSON string.'."\n"
."\n"
.'>'."\n"
."\n"
.'This parameter is required if you set ComponentType to image.'."\n"
."\n"
.'>'."\n"
."\n"
.'MaterialId is the ID of the material in the media asset library.', 'type' => 'string', 'required' => false, 'example' => '{"MaterialId":"6cf724c6ebfd4a59b5b3cec6f10d5ecf"}', 'title' => ''],
],
[
'name' => 'CaptionLayerContent',
'in' => 'query',
'schema' => ['description' => 'The properties of the caption layer. The value is a JSON string. The following properties are supported:'."\n"
."\n"
.'>'."\n"
."\n"
.'This parameter is required if you set ComponentType to caption.'."\n"
."\n"
.'>'."\n"
."\n"
.'- **SizeNormalized**: The normalized font size. The font size is calculated using the formula: font\\_size/output\\_height. The value must be in the range of `[0,1]`. If the calculated font size is greater than 1024, the value 1024 is used.'."\n"
."\n"
.'- **BorderWidthNormalized**: The normalized width of the text border. The normalized width is calculated based on the font size using the formula: BorderWidth/FontSize. The value must be in the range of `[0,1]`. If the calculated value is greater than 16, the value 16 is used. Default value: 0.'."\n"
."\n"
.'- **FontName**: The font name. For more information about valid values, see **Production studio fonts**. Default value: KaiTi.'."\n"
."\n"
.'- **BorderColor**: The color of the text border. Valid values are from 0x000000 to 0xffffff. The default value is an empty string, which indicates that this parameter is not used.'."\n"
."\n"
.'- **LocationId**: The channel ID of the translation source.'."\n"
."\n"
.'- **SourceLan**: The source language of the audio in the video source. Valid values are en (English), cn (Chinese), es (Spanish), and ru (Russian). Default value: cn.'."\n"
."\n"
.'- **TargetLan**: The target language for translation. If you do not set this parameter, only speech recognition is performed. If you set this parameter, translation is also performed. Valid values are en (English), cn (Chinese), es (Spanish), and ru (Russian).'."\n"
."\n"
.'- **ShowSourceLan**: Specifies whether to display the source language. Valid values are true (display) and false (do not display). Default value: false.'."\n"
."\n"
.'- **Truncation**: Specifies whether to truncate the caption. Valid values are true (truncate) and false (do not truncate). Default value: false.'."\n"
."\n"
.'- **SourceLanPerLineWordCount**: The number of words per line for the source language. This parameter takes effect only if Truncation is set to true. Default value: 20.'."\n"
."\n"
.'- **TargetLanPerLineWordCount**: The number of words per line for the target language. This parameter takes effect only if Truncation is set to true. Default value: 20.', 'type' => 'string', 'required' => false, 'example' => '{"BorderWidthNormalized":0.01,"SizeNormalized":0.05,"Color":"0x000000","LocationId":"RV01","SourceLan":"cn","FontName":"KaiTi","BorderColor":"0xffffff"}', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'ComponentId' => ['description' => 'The component ID. You can use this ID as a request parameter to query the components of the production studio.', 'type' => 'string', 'example' => '05ab713c-676e-49c0-96ce-cc408da1****', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'InvalidPositionNormalized.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter PositionNormalized is invalid, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidComponent.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The component to be operated does not exist. Please check and try again.'],
['errorCode' => 'CanvasNotExist', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Canvas does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'ModifyCasterComponent',
'description' => 'You can call this operation to modify a production studio component, such as a text, image, or translation caption component.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 10 calls per second. If the limit is exceeded, API calls are throttled, which may affect your business. Call this operation as needed.',
'requestParamsDescription' => '## Production studio fonts'."\n"
."\n"
.'| Font | Value of FontName |'."\n"
.'| ----------------------- | ---------------------- |'."\n"
.'| KaiTi | KaiTi |'."\n"
.'| Alibaba PuHuiTi-Regular | AlibabaPuHuiTi-Regular |'."\n"
.'| Alibaba PuHuiTi-Bold | AlibabaPuHuiTi-Bold |'."\n"
.'| Alibaba PuHuiTi-Light | AlibabaPuHuiTi-Light |'."\n"
.'| Source Han Sans-Regular | NotoSansHans-Regular |'."\n"
.'| Source Han Sans-Bold | NotoSansHans-Bold |'."\n"
.'| Source Han Sans-Light | NotoSansHans-Light |',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:ModifyCasterComponent',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"ComponentId\\": \\"05ab713c-676e-49c0-96ce-cc408da1****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]',
],
'ModifyCasterEpisode' => [
'summary' => 'Modifies the configuration of a production studio episode. The episode type cannot be modified.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The ID of the region.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'ComponentId',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The IDs of the components. The components are arranged from bottom to top and are switched in sync with the video source.'."\n"
."\n"
.'- This parameter is required and takes effect only if EpisodeType is set to **Component**.'."\n"
."\n"
.'- If EpisodeType is set to **Resource**, this parameter specifies the components that are attached to the video source and switched in sync.'."\n"
."\n"
.'> N specifies the Nth component ID. For example, ComponentId.1 specifies the first component ID and ComponentId.2 specifies the second component ID.',
'type' => 'array',
'items' => ['description' => 'A list of components.', 'type' => 'string', 'required' => false, 'example' => '["16A96B9A-F203-4EC5-8E43-CB92E68F****"]', 'title' => ''],
'required' => false,
'example' => '["16A96B9A-F203-4EC5-8E43-CB92E68F****"]',
'maxItems' => 10,
'title' => '',
],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you created the production studio by calling the [CreateCaster](~~2848009~~) operation, use the CasterId value that is returned in the response.'."\n"
."\n"
.'- If you created the production studio in the LIVE console, find the ID on the Cloud Production Studio page. To go to the page, choose **LIVE Console** > **Production Studio** > **Cloud Production Studio**.'."\n"
."\n"
.'> The name of a production studio in the list on the Cloud Production Studio page is the production studio ID.', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', 'title' => ''],
],
[
'name' => 'EpisodeId',
'in' => 'query',
'schema' => ['description' => 'The ID of the episode.', 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf938623****', 'title' => ''],
],
[
'name' => 'EpisodeName',
'in' => 'query',
'schema' => ['description' => 'The name of the episode.', 'type' => 'string', 'required' => false, 'example' => 'episode_name_1', 'title' => ''],
],
[
'name' => 'ResourceId',
'in' => 'query',
'schema' => ['description' => 'The ID of the video source.'."\n"
."\n"
.'- This parameter is required and takes effect only if EpisodeType is set to **Resource**.'."\n"
."\n"
.'- This parameter is not available if EpisodeType is set to **Component**.', 'type' => 'string', 'required' => false, 'example' => '16A96B9A-F203-4EC5-8E43-CB92E683****', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time. The time must be in UTC. The format is *yyyy-MM-dd*T*HH:mm:ss*Z.', 'type' => 'string', 'required' => false, 'example' => '2016-06-29T09:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. The time must be in UTC. The format is *yyyy-MM-dd*T*HH:mm:ss*Z.', 'type' => 'string', 'required' => false, 'example' => '2016-06-29T10:20:00Z', 'title' => ''],
],
[
'name' => 'SwitchType',
'in' => 'query',
'schema' => ['description' => 'The switch policy. This parameter takes effect only if EpisodeType is set to **Resource**.'."\n"
."\n"
.'- **TimeFirst**: time-priority. This is the only policy available for live stream video sources.'."\n"
."\n"
.'- **ContentFirst**: content-priority.', 'type' => 'string', 'required' => false, 'example' => 'TimeFirst', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'CasterId' => ['description' => 'The ID of the production studio. You can use this ID to perform operations on the scenario. These operations include copying, updating, querying, starting, and stopping the scenario. You can also use the ID to query the audio configuration of the scenario.', 'type' => 'string', 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', 'title' => ''],
'EpisodeId' => ['description' => 'The ID of the episode. You can use this ID to manage the episode list and its items. For the episode list, you can perform operations such as query, edit, delete, start, and stop. For episode items, you can perform operations such as create, add, delete, and query.', 'type' => 'string', 'example' => 'a2b8e671-2fe5-4642-a2ec-bf938623****', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'SwitchTypeInvalid.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter SwitchType is invalid, please check and try again.'],
['errorCode' => 'IncorrectStartTime', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter StartTime is invalid, please check and try again.'],
['errorCode' => 'IncorrectEndTime', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter EndTime is invalid, please check and try again.'],
['errorCode' => 'IncorrectEpisodeStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The current status of the program is not operational, please check and try again.'],
['errorCode' => 'EpisodeConflict.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'There is a conflict with the program time, please check and try again.'],
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidResource.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The resource does not exist. Please check and try again.'],
['errorCode' => 'InvalidEpisode.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Episode does not exist, please check and try again.'],
['errorCode' => 'InvalidComponent.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The component to be operated does not exist. Please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'ModifyCasterEpisode',
'description' => 'You can call this operation to modify the configuration of a production studio episode. The episode type cannot be modified.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 4 calls per second. If this limit is exceeded, API calls are throttled. This may affect your business. We recommend that you call this API operation at a reasonable rate.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '4', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyCasterEpisode'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:ModifyCasterEpisode',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"CasterId\\": \\"LIVEPRODUCER_POST-cn-0pp1czt****\\",\\n \\"EpisodeId\\": \\"a2b8e671-2fe5-4642-a2ec-bf938623****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]',
],
'ModifyCasterLayout' => [
'summary' => 'Modifies a layout configuration. Only the items to be modified need to be passed. Items that do not require modification do not need to be included.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'VideoLayer',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The video information.',
'type' => 'array',
'items' => [
'description' => 'The video information.',
'type' => 'object',
'properties' => [
'FillMode' => ['description' => 'The element fill mode. '."\n"
."\n"
.'- **none** (default): no fill. The Layer settings are configured with the image as the target.'."\n"
.'- **fit**: adaptive. The Layer settings are configured with the fill area (box) as the target. The image is scaled based on the original aspect ratio and centered within the fill area (box) using a long-edge alignment method. If the aspect ratio of the fill area does not match the image, the short edges are not filled (the lower Layer image is displayed. If no lower Layer is configured, the default black background is displayed).', 'type' => 'string', 'required' => false, 'example' => 'fit', 'title' => ''],
'FixedDelayDuration' => ['description' => 'The fixed delay for the video. This can be used for subtitle synchronization. Unit: milliseconds. Default value: **0**. Valid values: **0 to 5000**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '5000', 'title' => ''],
'HeightNormalized' => ['description' => 'The normalized height ratio of the Layer element. '."\n"
.' '."\n"
.'- If the no-fill mode is used, the width of the element is proportionally scaled based on this height. Default value: **0**, which indicates that the image is displayed at its original size.'."\n"
.'- If the adaptive mode is used, this field is required and must be greater than **0**. It specifies the normalized height ratio of the fill area (box).', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '1', 'title' => ''],
'PositionNormalized' => [
'description' => 'The normalized position values `[x,y]` of the Layer element. Default value: `[0,0]`.'."\n"
."\n"
.'>Note: The x and y values must be normalized.',
'type' => 'array',
'items' => ['description' => 'The normalized position values `[x,y]` of the Layer element. Default value: `[0,0]`.'."\n"
."\n"
.'>Note: The x and y values must be normalized.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.5', 'title' => ''],
'required' => false,
'example' => '0.3',
'maxItems' => 2,
'title' => '',
],
'PositionRefer' => ['description' => 'The reference coordinate for the position of the element. Valid values:'."\n"
.'- **topLeft** (default): top-left.'."\n"
.'- **topRight**: top-right.'."\n"
.'- **bottomLeft**: bottom-left.'."\n"
.'- **bottomRight**: bottom-right.'."\n"
.'- **center**: center.'."\n"
.'- **topCenter**: top-center.'."\n"
.'- **bottomCenter**: bottom-center.'."\n"
.'- **leftCenter**: left-center.'."\n"
.'- **rightCenter**: right-center.', 'type' => 'string', 'required' => false, 'example' => 'topLeft', 'title' => ''],
'WidthNormalized' => ['description' => 'The normalized width ratio of the Layer element. '."\n"
."\n"
.'- If the no-fill mode is used, the height of the element is proportionally scaled based on this width. Default value: **0**, which indicates that the image is displayed at its original size.'."\n"
.'- If the adaptive mode is used, this field is required and must be greater than **0**. It specifies the normalized width ratio of the fill area (box).', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '1', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => true,
'maxItems' => 12,
'title' => '',
'example' => '',
],
],
[
'name' => 'AudioLayer',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The audio information.',
'type' => 'array',
'items' => [
'description' => 'The audio information.',
'type' => 'object',
'properties' => [
'FixedDelayDuration' => ['description' => 'The fixed delay for the audio. This can be used for subtitle synchronization. Unit: milliseconds. Default value: **0**. Valid values: **0 to 5000**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '5000', 'title' => ''],
'ValidChannel' => ['description' => 'The audio channels that can be used as volume input. Valid values:'."\n"
.'- **leftChannel**: left channel.'."\n"
.'- **rightChannel**: right channel.'."\n"
.'- **all** (default): both channels.', 'type' => 'string', 'required' => false, 'example' => 'all', 'title' => ''],
'VolumeRate' => ['description' => 'The normalized height ratio of the Layer element. The width of the element is proportionally scaled based on this height. '."\n"
."\n"
.'Default value: **0**, which indicates that the element is displayed at its original size.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '1', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => true,
'maxItems' => 12,
'title' => '',
'example' => '',
],
],
[
'name' => 'BlendList',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The location ID (LocationId) of the video resource element.'."\n"
."\n"
.'For the LocationId, see [Add a video source](~~2848020~~). The elements correspond to the VideoLayers elements in order.',
'type' => 'array',
'items' => ['description' => 'The location ID (LocationId) of the video resource element.'."\n"
."\n"
.'For the LocationId, see [Add a video source](~~2848020~~). The elements correspond to the VideoLayers elements in order.', 'type' => 'string', 'required' => false, 'example' => 'RV02', 'title' => ''],
'required' => true,
'example' => 'RV02',
'maxItems' => 12,
'title' => '',
],
],
[
'name' => 'MixList',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The location ID (LocationId) of the audio resource element.'."\n"
."\n"
.'For the LocationId, see [Add a video source](~~2848020~~). The elements correspond to the AudioLayers elements in order.',
'type' => 'array',
'items' => ['description' => 'The location ID (LocationId) of the audio resource element.'."\n"
."\n"
.'For the LocationId, see [Add a video source](~~2848020~~). The elements correspond to the AudioLayers elements in order.', 'type' => 'string', 'required' => false, 'example' => 'RV02', 'title' => ''],
'required' => true,
'example' => 'RV02',
'maxItems' => 12,
'title' => '',
],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The production studio ID.'."\n"
."\n"
.'- If you created the production studio by calling the [CreateCaster operation](~~2848009~~), check the CasterId parameter returned by the CreateCaster operation.'."\n"
."\n"
.'- If you created the production studio in the ApsaraVideo Live console, go to **ApsaraVideo Live console** > **Production Studio** > **Cloud Production Studio** to view the ID.'."\n"
."\n"
.'> The production studio name in the production studio list on the Cloud Production Studio page of the ApsaraVideo Live console is the production studio ID.', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', 'title' => ''],
],
[
'name' => 'LayoutId',
'in' => 'query',
'schema' => ['description' => 'The layout ID. If you added the production studio layout by calling the [AddCasterLayout operation](~~2848025~~), check the LayoutId parameter returned by the AddCasterLayout operation.', 'type' => 'string', 'required' => true, 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'LayoutId' => ['description' => 'The layout ID. This can be used as a request parameter to query the list of production studio layouts.', 'type' => 'string', 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidLayoutId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The LayoutId is invalid, please check and try again.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'InvalidVideoLayersAndBlendListSize.Mismatch', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The size of the VideoLayers does not match the size of the BlendList, please check and try again.'],
['errorCode' => 'InvalidAudioLayersAndMixListSize.Mismatch', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The size of the AudioLayers does not match the size of the MixList, please check and try again.'],
['errorCode' => 'InvalidPositionNormalized.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter PositionNormalized is invalid, please check and try again.'],
['errorCode' => 'InvalidBlendList.ExceedNorm', 'errorMessage' => '%s, please check and try again later.', 'description' => 'BlendList size exceeds specification, please check and try again.'],
['errorCode' => 'InvalidMixList.ExceedNorm', 'errorMessage' => '%s, please check and try again later.', 'description' => 'MixList size exceeds specification, please check and try again.'],
['errorCode' => 'InvalidHeightOrWidthNormalized', 'errorMessage' => '%s, please check and try again later.', 'description' => 'HeightNormalized or WidthNormalized parameters are invalid, please check and try again.'],
['errorCode' => 'InvalidVideoLayersConfig', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The size of the VideoLayers does not match the size of the BlendList, please check and try again.'],
['errorCode' => 'InvalidAudioLayersConfig', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The size of the AudioLayers does not match the size of the MixList, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidLayout.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'LayoutId does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"LayoutId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]',
'title' => 'Modify production studio layout',
'description' => 'Create a production studio by calling the [CreateCaster operation](~~2848009~~) first, and then call this operation to modify the layout configuration. Only the items to be modified need to be passed. Items that do not require modification do not need to be included. This operation currently supports the following element fill modes: default and adaptive.'."\n"
."\n\n"
."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this operation is 10 calls per second. If the limit is exceeded, the API call is throttled, which may affect your business. Call this operation appropriately.',
'requestParamsDescription' => '> N in the request parameters indicates the sequence number of the element. For example, VideoLayer.N.FillMode specifies the fill mode of the Nth element. VideoLayer.1.FillMode specifies the fill mode of the first element, and VideoLayer.2.FillMode specifies the fill mode of the second element.',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'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' => 'This operation modifies the program list of a production studio.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'Episode',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The program information.',
'type' => 'array',
'items' => [
'description' => 'The program information.',
'type' => 'object',
'properties' => [
'ComponentId' => [
'description' => 'The list of component IDs. The components are layered from bottom to top in the order they are listed. The components are switched in sync with the video source.'."\n"
."\n"
.'- This parameter is required and takes effect only when the node type is **Component**.'."\n"
."\n"
.'- If the node type is **Resource**, the components are attached to the video source and switched in sync.',
'type' => 'array',
'items' => ['description' => 'The list of component IDs. The components are layered from bottom to top in the order they are listed. The components are switched in sync with the video source.'."\n"
."\n"
.'- This parameter is required and takes effect only when the node type is **Component**.'."\n"
."\n"
.'- If the node type is **Resource**, the components are attached to the video source and switched in sync.', 'type' => 'string', 'required' => false, 'example' => '["a2b8e671-2fe5-4642-a2ec-bf93888****" ]', 'title' => ''],
'required' => false,
'example' => '["a2b8e671-2fe5-4642-a2ec-bf93888****" ]',
'maxItems' => 10,
'title' => '',
],
'EndTime' => ['description' => 'The end time. The time is in UTC. The format is *yyyy-MM-dd*T*HH:mm:ss*Z.', 'type' => 'string', 'required' => false, 'example' => '2016-06-29T10:04:00Z', 'title' => ''],
'EpisodeId' => ['description' => 'The program ID. If you add a program for the production studio by calling the [AddCasterEpisode]() operation, use the value of the EpisodeId parameter that is returned in the response.', 'type' => 'string', 'required' => false, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf938887****', 'title' => ''],
'EpisodeName' => ['description' => 'The program name.', 'type' => 'string', 'required' => false, 'example' => 'program_name_2', 'title' => ''],
'EpisodeType' => ['description' => 'The program type. Valid values:'."\n"
."\n"
.'- **Resource**: video source.'."\n"
."\n"
.'- **Component**: component.', 'type' => 'string', 'required' => false, 'example' => 'Resource', 'title' => ''],
'ResourceId' => ['description' => 'The ID of the video source. If you add a video source for the production studio by calling the [AddCasterVideoResource]() operation, use the value of the ResourceId parameter that is returned in the response.', 'type' => 'string', 'required' => false, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf938887****', 'title' => ''],
'StartTime' => ['description' => 'The start time. The time is in UTC. The format is *yyyy-MM-dd*T*HH:mm:ss*Z.', 'type' => 'string', 'required' => false, 'example' => '2016-06-29T09:02:00Z', 'title' => ''],
'SwitchType' => ['description' => 'The switch policy. This parameter is valid only when the node type is **Resource**.'."\n"
."\n"
.'- **TimeFirst**: time-first. This is the only valid policy for live stream video sources.'."\n"
."\n"
.'- **ContentFirst**: content-first.', 'type' => 'string', 'required' => false, 'example' => 'TimeFirst', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => true,
'maxItems' => 100,
'title' => '',
'example' => '',
],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you create a production studio by calling the [CreateCaster]() operation, use the value of the CasterId parameter that is returned in the response.'."\n"
."\n"
.'- If you create a production studio in the ApsaraVideo Live console, go to the **Production Studio** > **Cloud Production Studio** page to view the ID.'."\n"
."\n"
.'> The name of the production studio in the list on the Cloud Production Studio page is the production studio ID.', 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'CasterId' => ['description' => 'The ID of the production studio.', 'type' => 'string', 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'SwitchTypeInvalid.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter SwitchType is invalid, please check and try again.'],
['errorCode' => 'IncorrectStartTime', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter StartTime is invalid, please check and try again.'],
['errorCode' => 'IncorrectEndTime', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter EndTime is invalid, please check and try again.'],
['errorCode' => 'IncorrectEpisodeStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The current status of the program is not operational, please check and try again.'],
['errorCode' => 'EpisodeConflict.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'There is a conflict with the program time, please check and try again.'],
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidResource.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The resource does not exist. Please check and try again.'],
['errorCode' => 'InvalidEpisode.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Episode does not exist, please check and try again.'],
['errorCode' => 'InvalidComponent.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The component to be operated does not exist. Please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'ModifyCasterProgram',
'description' => 'You can call the [AddCasterProgram](~~2848074~~) operation to add a program list for a production studio. Then, you can call this operation to modify the program list. This operation supports programs of the video source and component types.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 4 calls per second. If you exceed this limit, API calls are throttled, which may affect your business. Plan your calls accordingly.',
'requestParamsDescription' => 'A request must include at least one Episode property to specify the program content to be modified.'."\n"
."\n"
.'> In the request parameters, N indicates the sequence number of a parameter. For example, Episode.N.EpisodeName specifies the name of the Nth program. Episode.1.EpisodeName specifies the name of the first program and Episode.2.EpisodeName specifies the name of the second program.',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '4', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyCasterProgram'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:ModifyCasterProgram',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]',
],
'ModifyCasterVideoResource' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you create a production studio by calling the [CreateCaster](~~2848009~~) operation, use the CasterId returned in the response.'."\n"
."\n"
.'- If you create a production studio in the console, find the ID on the **Cloud Production Studio** page. To go to this page, choose **LIVE Console** > **Production Studio**.'."\n"
."\n"
.'> The name of the production studio in the list on the Cloud Production Studio page is its ID.', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', 'title' => ''],
],
[
'name' => 'ResourceId',
'in' => 'query',
'schema' => ['description' => 'The resource ID. If you add a video source to the production studio by calling the [AddCasterVideoResource](~~2848020~~) operation, use the ResourceId returned in the response.', 'type' => 'string', 'required' => true, 'example' => '05ab713c-676e-49c0-96ce-cc408da1****', 'title' => ''],
],
[
'name' => 'ResourceName',
'in' => 'query',
'schema' => ['description' => 'The name of the video source.', 'type' => 'string', 'required' => false, 'example' => 'test001', 'title' => ''],
],
[
'name' => 'LiveStreamUrl',
'in' => 'query',
'schema' => ['description' => 'The URL of the live stream.'."\n"
."\n"
.'>'."\n"
."\n"
.'This parameter is required only if the video source is a live stream.'."\n"
."\n"
.'>', 'type' => 'string', 'required' => false, 'example' => 'rtmp://guide.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-ac8c628078541d7055a170ec59a5****', 'title' => ''],
],
[
'name' => 'MaterialId',
'in' => 'query',
'schema' => ['description' => 'The material ID.', 'type' => 'string', 'required' => false, 'example' => 'f080575eb5f4427684fc0715159a****', 'title' => ''],
],
[
'name' => 'VodUrl',
'in' => 'query',
'schema' => ['description' => 'The URL of the video on demand (VOD) file.'."\n"
."\n"
.'>'."\n"
."\n"
.'This parameter is available only if the video source is a video file that has not been imported to the material library.'."\n"
."\n"
.'>'."\n"
."\n"
.'> VOD files must be in MP4, FLV, or TS format.', 'type' => 'string', 'required' => false, 'example' => 'http://developer.aliyundoc.com/AppName/StreamName.flv', 'title' => ''],
],
[
'name' => 'BeginOffset',
'in' => 'query',
'schema' => ['description' => 'The start offset of the video file. Unit: milliseconds.'."\n"
."\n"
.'>'."\n"
."\n"
.'This parameter is valid only if the video source is a video file.'."\n"
."\n"
.'>'."\n"
."\n"
.'> A value greater than 0 specifies the start time to read the file. The time is an offset from the first frame.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
],
[
'name' => 'EndOffset',
'in' => 'query',
'schema' => ['description' => 'This parameter is valid only for video files. Unit: milliseconds.'."\n"
."\n"
.'- If the value is greater than **0**, it specifies the end time to read the file. The time is an offset from the first frame.'."\n"
."\n"
.'- If the value is less than **0**, it specifies the end time to read the file. The time is an offset from the last frame.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10000', 'title' => ''],
],
[
'name' => 'RepeatNum',
'in' => 'query',
'schema' => ['description' => 'This parameter is valid only for video files. It specifies the number of times to loop the video after playback is complete.'."\n"
."\n"
.'- **0** (default): The video does not loop.'."\n"
."\n"
.'- **-1**: The video loops indefinitely.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '60', 'minimum' => '-1', 'example' => '0', 'title' => ''],
],
[
'name' => 'PtsCallbackInterval',
'in' => 'query',
'schema' => ['description' => 'The Presentation Time Stamp (PTS) callback interval. Unit: milliseconds. This parameter is valid only for VOD materials.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '0', 'example' => '2000', 'title' => ''],
],
[
'name' => 'ImageId',
'in' => 'query',
'schema' => ['description' => 'The ID of the image material in the media asset library.'."\n"
."\n"
.'> This parameter is required only if the video source is an image.', 'type' => 'string', 'required' => false, 'example' => 'a089175eb5f4427684fc0715159a****', 'title' => ''],
],
[
'name' => 'ImageUrl',
'in' => 'query',
'schema' => ['description' => 'The URL of the image material.'."\n"
."\n"
.'> This parameter is available only if the video source is an image that has not been imported to the material library. The image must be in JPG or PNG format, and its size cannot exceed 10 MB.', 'type' => 'string', 'required' => false, 'example' => 'http://learn.aliyundoc.com/AppName/image.jpg', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'CasterId' => ['description' => 'The ID of the production studio. You can use this ID to query video sources, add layouts, or query layout lists for the production studio.', 'type' => 'string', 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7', 'title' => ''],
'ResourceId' => ['description' => 'The resource ID.', 'type' => 'string', 'example' => '98461064-1c94-4dc1-85ce-94098764****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'InvalidResourceId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ResourceId is invalid, please check and try again.'],
['errorCode' => 'InvalidLiveStreamUrl.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter LiveStreamUrl is invalid, please check and try again.'],
['errorCode' => 'InvalidMaterialId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter MaterialId is invalid, please check and try again.'],
['errorCode' => 'InvalidVodUrl.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter VodUrl is invalid, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidResource.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The resource does not exist. Please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'ModifyCasterVideoResource',
'summary' => 'Modifies the video resources of a production studio.',
'description' => 'Before calling this operation, you must create a production studio by calling the [CreateCaster](~~2848009~~) operation.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'This operation supports up to 10 queries per second (QPS) per user. If you exceed this limit, your API calls are throttled, which may affect your business. Plan your calls accordingly.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2023-03-31T11:03:01.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2023-03-31T08:26:54.000Z', 'description' => 'Request parameters changed, Response parameters changed'],
],
'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' => '[{"errorExample":"","example":"{\\n \\"CasterId\\": \\"LIVEPRODUCER_POST-cn-0pp1czt****\\",\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\",\\n \\"ResourceId\\": \\"98461064-1c94-4dc1-85ce-94098764****\\"\\n}","type":"json"}]',
],
'ModifyLiveAIStudio' => [
'summary' => 'This API is used to modify the specified virtual studio template.',
'methods' => ['post', 'get'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '250887',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'Region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'StudioName',
'in' => 'query',
'schema' => ['description' => 'Virtual studio template name, same as the StudioName parameter in the create API.', 'type' => 'string', 'required' => true, 'example' => 'stu02', 'title' => ''],
],
[
'name' => 'Description',
'in' => 'query',
'schema' => ['description' => 'Custom description.', 'type' => 'string', 'required' => false, 'example' => 'custom', 'title' => ''],
],
[
'name' => 'Width',
'in' => 'query',
'schema' => ['description' => 'Preview screen width, unit: px.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1920', 'title' => ''],
],
[
'name' => 'Height',
'in' => 'query',
'schema' => ['description' => 'Preview screen height, unit: px.'."\n"
."\n"
.'The preview screen width x height only supports the following specifications:'."\n"
."\n"
.'- Landscape Smooth 360P 640x360'."\n"
.'- Portrait Smooth 360P 360x640'."\n"
.'- Landscape Standard Definition 480P 854x480'."\n"
.'- Portrait Standard Definition 480P 480x854'."\n"
.'- Landscape HD 720P 1280x720'."\n"
.'- Portrait HD 720P 720x1280'."\n"
.'- Landscape Full HD 1080P 1920x1080'."\n"
.'- Portrait Full HD 1080P 1080x1920', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1080', 'title' => ''],
],
[
'name' => 'BackgroundType',
'in' => 'query',
'schema' => [
'description' => 'Background material type:'."\n"
.'- VOD: Video on demand'."\n"
.'- PIC: Image'."\n"
.'- LIVE: Live stream',
'enumValueTitles' => ['VOD' => 'Video on demand', 'PIC' => 'Image', 'LIVE' => 'Live stream'],
'type' => 'string',
'enum' => ['VOD', 'LIVE', 'PIC'],
'required' => false,
'example' => 'VOD'."\n",
'title' => '',
],
],
[
'name' => 'BackgroundResourceId',
'in' => 'query',
'schema' => [
'description' => 'VOD resource ID of the background material, obtained from the VOD console.',
'type' => 'string',
'enum' => [],
'required' => false,
'example' => 'd0eb493192c771efba644531858c0102',
'title' => '',
],
],
[
'name' => 'BackgroundResourceUrl',
'in' => 'query',
'schema' => [
'description' => 'Resource access URL of the background material.',
'type' => 'string',
'enum' => [],
'required' => false,
'example' => 'https://xxx.com/2.mp4'."\n",
'title' => '',
],
],
[
'name' => 'MediaType',
'in' => 'query',
'schema' => [
'description' => 'Multimedia material type:'."\n"
.'- VOD: Video on demand'."\n"
.'- PIC: Image'."\n"
.'- LIVE: Live stream',
'enumValueTitles' => ['VOD' => 'Video on demand', 'PIC' => 'Image', 'LIVE' => 'Live stream'],
'type' => 'string',
'enum' => ['VOD', 'LIVE', 'PIC'],
'required' => false,
'example' => 'VOD',
'title' => '',
],
],
[
'name' => 'MediaResourceId',
'in' => 'query',
'schema' => [
'description' => 'VOD resource ID of the multimedia material, obtained from the VOD console.',
'type' => 'string',
'enum' => [],
'required' => false,
'example' => 'd0eb493192c771efba644531858c01102',
'title' => '',
],
],
[
'name' => 'MediaResourceUrl',
'in' => 'query',
'schema' => [
'description' => 'Resource access URL of the multimedia material. Either this or the resource ID should be provided.',
'type' => 'string',
'enum' => [],
'required' => false,
'example' => 'https://xxx.com/1.mp4'."\n",
'title' => '',
],
],
[
'name' => 'MediaLayout',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'Layout position information of the multimedia material.',
'type' => 'object',
'properties' => [
'PositionX' => ['description' => 'Position parameter, X coordinate. Value range: **0~1**. The material position uses the upper-left corner as the reference point.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0', 'title' => ''],
'PositionY' => ['description' => 'Position parameter, Y coordinate. Value range: **0~1**. The material position uses the upper-left corner as the reference point.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0', 'title' => ''],
'HeightNormalized' => ['description' => 'Normalized height value of the material, which is the height ratio of the material to the background. Value range: **0~1**.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.5', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
],
[
'name' => 'MattingType',
'in' => 'query',
'schema' => [
'description' => 'Matting type:'."\n"
.'- green: Green screen matting'."\n"
.'- blue: Blue screen matting'."\n"
.'- complex: Real-scene matting',
'enumValueTitles' => ['green' => 'Green screen matting', 'blue' => 'Blue screen matting', 'complex' => 'Real-scene matting'],
'type' => 'string',
'required' => true,
'enum' => ['green', 'blue', 'complex'],
'example' => 'complex',
'title' => '',
],
],
[
'name' => 'MattingLayout',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'Layout position information of the source stream after matting.',
'type' => 'object',
'properties' => [
'PositionX' => ['description' => 'Position parameter, X coordinate. Value range: **0~1**. The material position uses the upper-left corner as the reference point.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0', 'title' => ''],
'PositionY' => ['description' => 'Position parameter, Y coordinate. Value range: **0~1**. The material position uses the upper-left corner as the reference point.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0', 'title' => ''],
'HeightNormalized' => ['description' => 'Normalized height value, which is the height ratio of the matted portrait to the background. Value range: **0~1**.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.5', 'title' => ''],
],
'required' => true,
'title' => '',
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Response structure.',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'Request ID.', 'type' => 'string', 'example' => '0BA6B3C4-525A-5381-A2B0-5351323F31C5'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'LiveServiceNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The live service is not enabled. Please check and try again.'],
['errorCode' => 'InvalidParameter.PurchaseTime', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter PurchaseTime is invalid, please check and try again.'],
['errorCode' => 'InvalidParameter.ExpireTime', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ExpireTime is invalid, please check and try again.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'InvalidChargeType.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ChargeType is invalid, please check and try again.'],
['errorCode' => 'InvalidChargeType.PostSupport', 'errorMessage' => '%s, please check and try again later.', 'description' => 'ChargeType only supports post-paid, please check and try again.'],
['errorCode' => 'InvalidCasterTemplate.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterTemplate is invalid, please check and try again.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'InvalidParameter.ChargeType', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ChargeType is invalid, please check and try again.'],
['errorCode' => 'InvalidPeriod.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Invalid time interval, please check and try again.'],
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidClientToken.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ClientToken is invalid, please check and try again.'],
['errorCode' => 'IncorrectCasterStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Guide station status error, please check and try again.'],
],
[
['errorCode' => 'CasterNumberExceed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The number of casters exceeds the limit. Please check and try again.'],
],
403 => [
['errorCode' => 'PermissionDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Access denied, please check and try again.'],
],
[
['errorCode' => 'InvalidParameter.NormType', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter NormType is invalid, please check and try again.'],
['errorCode' => 'InvalidConfiguration.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Configuration does not exist, please check and try again.'],
],
408 => [
['errorCode' => 'ModifyLiveAIStudio.Timeout', 'errorMessage' => '%s, please try again later.', 'description' => 'Call ModifyLiveAIStudio timed out, please try again later.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0BA6B3C4-525A-5381-A2B0-5351323F31C5\\"\\n}","type":"json"}]',
'title' => 'Modify Virtual Studio Template',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyLiveAIStudio'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:ModifyLiveAIStudio',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'ModifyLiveDomainSchdmByProperty' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '107191',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The live streaming domain for which you want to modify the acceleration region.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'Property',
'in' => 'query',
'schema' => ['description' => 'The acceleration region. A value of {"coverage":"overseas"} specifies that the configuration is for regions outside mainland China. The following list describes the valid values for coverage:'."\n"
."\n"
.'- domestic: mainland China.'."\n"
."\n"
.'- overseas: regions outside mainland China.'."\n"
."\n"
.'- global: regions in and outside mainland China.', 'type' => 'string', 'required' => true, 'example' => '{"coverage":"global"}', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '15C66C7B-671A-4297-9187-2C4477247A74', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['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' => 'This operation is not allowed because the domain name is registered in the Chinese mainland.'],
['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' => 'The domain name is being used by another operation, please try again later'],
],
],
'title' => 'ModifyLiveDomainSchdmByProperty',
'summary' => 'Modifies the acceleration region of a domain name.',
'description' => '### QPS limit'."\n"
."\n"
.'You can call this operation up to 100 queries per second (QPS) per user. API calls that exceed this limit are throttled, which may affect your business. Plan your calls accordingly.',
'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' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"15C66C7B-671A-4297-9187-2C4477247A74\\"\\n}","type":"json"}]',
],
'ModifyLiveMessageAppAudit' => [
'summary' => 'Modifies the content moderation settings of an interactive messaging application.'."\n",
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the interactive messaging application whose content moderation settings you want to modify.'."\n", 'type' => 'string', 'required' => true, 'example' => 'demo', 'title' => ''],
],
[
'name' => 'AuditType',
'in' => 'query',
'schema' => [
'title' => '',
'description' => 'The content moderation method. Valid values:'."\n"
."\n"
.'* 0: disables content moderation.'."\n"
.'* 1: uses built-in content moderation.'."\n"
.'* 2: uses custom content moderation.'."\n",
'type' => 'integer',
'format' => 'int32',
'required' => false,
'example' => '2',
'enum' => ['0', '1', '2'],
],
],
[
'name' => 'AuditUrl',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The URL for content moderation. This parameter is required if you set AuditType to 2. The URL must start with http:// or https:// and cannot contain a private IP address or a port number.'."\n", 'type' => 'string', 'required' => false, 'example' => 'http://example.aliyundoc.com/exampleaudit'],
],
[
'name' => 'DataCenter',
'in' => 'query',
'schema' => ['description' => 'The data center. It must be the same as the data center that was specified when you called the [CreateLiveMessageApp](~~2848162~~) operation to create the interactive messaging application. Valid values: cn-shanghai and ap-southeast-1 (Singapore).'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => '',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '4C4E8440-3838-1831-9BDE-AFC15803****'],
'AppId' => ['description' => 'The ID of the interactive messaging application.'."\n", 'type' => 'string', 'example' => 'demo', 'title' => ''],
'AppSign' => ['description' => 'The signature of the interactive messaging application. It is required by the interactive messaging SDK.'."\n", 'type' => 'string', 'example' => '**************************************************************************', 'title' => ''],
'AuditType' => ['description' => 'The content moderation method.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''],
'AuditUrl' => ['description' => 'The URL for content moderation. This parameter is returned when the value of AuditType is 2.'."\n", 'type' => 'string', 'example' => 'http: //example.aliyundoc.com/exampleaudit', 'title' => ''],
'AuditNeedAuthentication' => ['description' => 'Indicates whether authentication is enabled. If custom content moderation is used, the value of this parameter is true by default.'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
['errorCode' => 'ErrorInvalidAuditUrl', 'errorMessage' => '%s.', 'description' => 'The AuditUrl is invalid, please check and try again.'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'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' => 'ModifyLiveMessageAppAudit',
'description' => 'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n",
'changeSet' => [
['createdAt' => '2024-02-02T01:46:06.000Z', 'description' => 'Error codes changed'],
],
'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}'],
],
],
],
],
],
'ModifyLiveMessageAppCallback' => [
'summary' => 'Modifies the callback settings of an interactive messaging application.'."\n",
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the interactive messaging application whose callback settings you want to modify.'."\n", 'type' => 'string', 'required' => true, 'example' => 'demo', 'title' => ''],
],
[
'name' => 'EventCallbackUrl',
'in' => 'query',
'schema' => ['description' => 'The callback URL for events such as user logon, logoff, joining a group, and leaving a group. If you leave this parameter empty, callbacks are disabled. The callback URL must start with http:// or https:// and cannot contain a private IP address or a port number.'."\n", 'type' => 'string', 'required' => false, 'example' => 'http://example.aliyundoc.com/examplecallback', 'title' => ''],
],
[
'name' => 'DataCenter',
'in' => 'query',
'schema' => ['description' => 'The data center. It must be the same as the data center that was specified when you called the [CreateLiveMessageApp](~~2848162~~) operation to create the interactive messaging application. Valid values: cn-shanghai and ap-southeast-1 (Singapore).'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'The response parameters.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '1F0FFEAD-B7D5-1D4A-A6B9-8C63ADF6****'],
'AppId' => ['description' => 'The ID of the interactive messaging application.'."\n", 'type' => 'string', 'example' => 'demo', 'title' => ''],
'AppSign' => ['description' => 'The signature of the interactive messaging application. It is required by the interactive messaging SDK.'."\n", 'type' => 'string', 'example' => '**************************************************************************', 'title' => ''],
'EventCallbackUrl' => ['description' => 'The callback URL for events such as user logon, logoff, joining a group, and leaving a group. This parameter is not returned if it has an empty value.'."\n", 'type' => 'string', 'example' => 'http://example.aliyundoc.com/examplecallback', 'title' => ''],
'EventCallbackNeedAuthentication' => ['description' => 'Indicates whether authentication is required for event callbacks. Default value: true.'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
['errorCode' => 'ErrorInvalidEventCallbackUrl', 'errorMessage' => '%s.', 'description' => 'The EventCallbackUrl is invalid, please check and try again.'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'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' => 'ModifyLiveMessageAppCallback',
'description' => 'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n",
'changeSet' => [
['createdAt' => '2024-02-02T01:46:07.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyLiveMessageAppCallback'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:ModifyLiveMessageAppCallback',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'],
],
],
],
],
],
'ModifyLiveMessageAppDisable' => [
'summary' => 'Disables or enables an interactive messaging application.'."\n",
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the interactive messaging application.'."\n", 'type' => 'string', 'required' => true, 'example' => 'demo', 'title' => ''],
],
[
'name' => 'Disable',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to disable the interactive messaging application.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''],
],
[
'name' => 'DataCenter',
'in' => 'query',
'schema' => ['description' => 'The data center. It must be the same as the data center that was specified when you called the [CreateLiveMessageApp](~~2848162~~) operation to create the interactive messaging application. Valid values: cn-shanghai and ap-southeast-1 (Singapore).'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'The response parameters.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '6AA1AE11-EA78-1FD4-A966-6BA84307****'],
'AppId' => ['description' => 'The ID of the interactive messaging application.'."\n", 'type' => 'string', 'example' => 'demo', 'title' => ''],
'AppSign' => ['description' => 'The signature of the interactive messaging application. It is required by the interactive messaging SDK.'."\n", 'type' => 'string', 'example' => '********************', 'title' => ''],
'Disable' => ['description' => 'Indicates whether the interactive messaging application is disabled.'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'ModifyLiveMessageAppDisable',
'description' => 'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n",
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyLiveMessageAppDisable'],
],
],
'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-6BA843073F6D\\n ab6b5740****\\n H4sIAAAAAAAE/wBwAI//zguHB+lYCilkv7diSkk4GhHQAvMXs5tWyI+I09+uEBiB5sqa28ycJSJFmsd50Mhz8nDrvvqmti+fVaNLC5CMgLvNIy48v1aV9x74LRNFN0+Dxd2Al51xuDNkEIDaEwjqfyxscTXjSr0iQjHu2WgkpQAAAP//AQAA//+yR5XCc****\\n true\\n","errorExample":""}]',
],
'ModifyLiveMessageGroup' => [
'summary' => 'You can call the ModifyLiveMessageGroup operation to modify information about an interactive message group.',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID.', 'type' => 'string', 'required' => true, 'example' => 'demo', 'title' => ''],
],
[
'name' => 'GroupId',
'in' => 'query',
'schema' => ['description' => 'The group ID.', 'type' => 'string', 'required' => true, 'example' => 'grouptest', 'title' => ''],
],
[
'name' => 'ModifyAdmin',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to modify the group administrators.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''],
],
[
'name' => 'AdminList',
'in' => 'query',
'style' => 'simple',
'schema' => [
'description' => 'The updated list of administrators. Separate multiple administrators with commas (,). You can specify up to three administrators.',
'type' => 'array',
'items' => ['description' => 'The user ID of the administrator. The ID can contain uppercase letters, lowercase letters, and digits. The ID can be up to 64 bytes in length.', 'type' => 'string', 'required' => false, 'example' => 'uid1', 'title' => ''],
'required' => false,
'title' => '',
'example' => '',
],
],
[
'name' => 'ModifyInfo',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to modify the extended information of the group.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''],
],
[
'name' => 'GroupInfo',
'in' => 'query',
'schema' => ['description' => 'The updated extended information of the group. The information can be up to 32 KB in length.', 'type' => 'string', 'required' => false, 'example' => 'newmeta', 'title' => ''],
],
[
'name' => 'DataCenter',
'in' => 'query',
'schema' => ['description' => 'The data center. It must be the same as the data center specified in the [CreateLiveMessageApp](~~2848162~~) call. Valid values: cn-shanghai (Shanghai) and ap-southeast-1 (Singapore).', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '84AF36BF-0B39-1F8A-A416-FAC7C484****'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"84AF36BF-0B39-1F8A-A416-FAC7C484****\\"\\n}","type":"json"}]',
'title' => 'ModifyLiveMessageGroup',
'description' => 'Before you call this operation, call [CreateLiveMessageGroup](~~2848163~~) to create an interactive message group.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'This operation has a queries per second (QPS) limit of 50 for each user. If you exceed the limit, API calls are throttled. This may affect your business. Plan your calls accordingly.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyLiveMessageGroup'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:ModifyLiveMessageGroup',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'],
],
],
],
],
],
'ModifyLiveMessageGroupBand' => [
'summary' => 'Changes the mute status of users in a group.',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID.', 'type' => 'string', 'required' => true, 'example' => 'demo', 'title' => ''],
],
[
'name' => 'GroupId',
'in' => 'query',
'schema' => ['description' => 'The group ID.', 'type' => 'string', 'required' => true, 'example' => 'grouptest', 'title' => ''],
],
[
'name' => 'BannedAll',
'in' => 'query',
'schema' => ['title' => 'false', 'description' => 'Specifies whether to mute all users in the group.', 'type' => 'boolean', 'required' => false, 'example' => 'false'],
],
[
'name' => 'BannnedUsers',
'in' => 'query',
'style' => 'simple',
'schema' => [
'title' => '',
'description' => 'The list of users to mute. You can specify up to 30 users. Separate multiple user IDs with a comma (,).',
'type' => 'array',
'items' => ['description' => 'The user to mute.', 'type' => 'string', 'required' => false, 'example' => 'uid1', 'title' => ''],
'required' => false,
'example' => '',
],
],
[
'name' => 'ExceptUsers',
'in' => 'query',
'style' => 'simple',
'schema' => [
'title' => '',
'description' => 'The list of users who are not muted when all users in the group are muted. You can specify up to 30 users. Separate multiple user IDs with a comma (,).',
'type' => 'array',
'items' => ['description' => 'A user who is not muted when all users in the group are muted.', 'type' => 'string', 'required' => false, 'example' => 'uid3', 'title' => ''],
'required' => false,
'example' => '',
],
],
[
'name' => 'DataCenter',
'in' => 'query',
'schema' => ['description' => 'The data center. This must be the same data center specified in the [CreateLiveMessageApp](~~2848162~~) call. Valid values: \\`cn-shanghai\\` (Shanghai) and \\`ap-southeast-1\\` (Singapore).', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '84AF36BF-0B39-1F8A-A416-FAC7C484****'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"84AF36BF-0B39-1F8A-A416-FAC7C484****\\"\\n}","type":"json"}]',
'title' => 'ModifyLiveMessageGroupBand',
'description' => 'Before you call this operation, you must call the [CreateLiveMessageGroup](~~2848163~~) operation to create an interactive messaging group.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'A single user can make up to 10 queries per second (QPS). If you exceed this limit, API calls are throttled, which may impact your business. Call this operation at a reasonable rate.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyLiveMessageGroupBand'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:ModifyLiveMessageGroupBand',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'],
],
],
],
],
],
'ModifyLiveMessageUserInfo' => [
'summary' => 'Modifies the information about a user.',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '198649',
'abilityTreeNodes' => ['FEATUREliveSL6Y07'],
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the interactive messaging application whose user information you want to modify.'."\n", 'type' => 'string', 'required' => true, 'example' => 'demo', 'title' => ''],
],
[
'name' => 'UserId',
'in' => 'query',
'schema' => ['description' => 'The ID of the user whose information you want to modify.'."\n", 'type' => 'string', 'required' => true, 'example' => 'uid2', 'title' => ''],
],
[
'name' => 'UserMetaInfo',
'in' => 'query',
'schema' => ['description' => 'The additional information about the user after the modification. The value can be up to 512 bytes in length.'."\n", 'type' => 'string', 'required' => false, 'example' => 'uid2meta2', 'title' => ''],
],
[
'name' => 'DataCenter',
'in' => 'query',
'schema' => ['description' => 'The data center. It must be the same as the data center that was specified when you called the [CreateLiveMessageApp](~~2593195~~) operation to create the interactive messaging application. Valid values: cn-shanghai and ap-southeast-1 (Singapore).'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => '',
'type' => 'object',
'properties' => [
'FailList' => [
'description' => 'The users whose information failed to be modified.'."\n",
'type' => 'array',
'items' => [
'description' => '',
'type' => 'object',
'properties' => [
'Code' => ['description' => 'The error code.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '440', 'title' => ''],
'GroupId' => ['description' => 'The ID of the group to which the user belongs. For failed modification, the information of the user is not updated when you query the users in the group. You can try again after you check the failure reason and fix the issue.'."\n", 'type' => 'string', 'example' => 'grouptest2', 'title' => ''],
'Reason' => ['description' => 'The reason why the information of the user failed to be modified.'."\n", 'type' => 'string', 'example' => 'group not exists or already deleted', 'title' => ''],
'Success' => ['description' => 'Indicates whether the group to which the user belongs is modified. In this case, the group is not modified.'."\n", 'type' => 'boolean', 'example' => 'false', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '3271ACD2-F143-1204-AFDB-9A87C131****'],
'SuccessList' => [
'description' => 'The users whose information was modified.'."\n",
'type' => 'array',
'items' => [
'description' => '',
'type' => 'object',
'properties' => [
'GroupId' => ['description' => 'The ID of the group to which the user belongs. For successful modification, the information of the user is updated when you query the users in the group.'."\n", 'type' => 'string', 'example' => 'grouptest1', 'title' => ''],
'Success' => ['description' => 'Indicates whether the group to which the user belongs is modified. In this case, the group is modified.'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'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' => 'ModifyLiveMessageUserInfo',
'description' => '本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。',
'changeSet' => [
['createdAt' => '2024-05-10T02:46:38.000Z', 'description' => 'Response parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyLiveMessageUserInfo'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:ModifyLiveMessageUserInfo',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'ModifyLiveRealtimeLogDelivery' => [
'summary' => 'Modifies the real-time log delivery configuration for a domain name.',
'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' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'Project',
'in' => 'query',
'schema' => ['description' => 'The name of the Simple Log Service (SLS) project to which logs are delivered.', 'type' => 'string', 'required' => true, 'example' => 'project_example', 'title' => ''],
],
[
'name' => 'Logstore',
'in' => 'query',
'schema' => ['description' => 'The name of the Logstore in SLS to which logs are delivered.', 'type' => 'string', 'required' => true, 'example' => 'logstore_example', 'title' => ''],
],
[
'name' => 'Region',
'in' => 'query',
'schema' => ['description' => 'The region where the SLS project is located.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The primary streaming domain for which you want to change the real-time log delivery configuration.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '9732E117-8A37-49FD-A36F-ABBB87556CA7', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'Unauthorized', 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', 'description' => ''],
],
404 => [
['errorCode' => 'Domain.NotFound', 'errorMessage' => 'Domain not found', 'description' => ''],
['errorCode' => 'LogstoreNotExist', 'errorMessage' => 'Logstore does not exist', 'description' => ''],
],
],
'title' => 'ModifyLiveRealtimeLogDelivery',
'description' => '- Call this operation to modify the real-time log delivery configuration for a domain name. A domain name can deliver logs to only one Logstore at a time. Currently, only streaming domains can be configured. To push real-time upstream logs (by configuring an ingest domain), [submit a ticket](https://workorder.console.aliyun.com/console.htm#/ticket/add?productCode=live\\&commonQuestionId=4545\\&isSmart=true\\&iatraceid=1608439120675-2a5c48de0b84805313c708\\&channel=selfservice).Currently, only streaming domains can be configured. To push real-time upstream logs (by configuring an ingest domain), [submit a ticket](https://workorder-intl.console.aliyun.com/?spm=5176.12818093.nav-right.dticket.6cb216d07otFWR#/ticket/createIndex).'."\n"
."\n"
.'- Call [DescribeLiveDomainRealtimeLogDelivery](~~2848121~~) to query information about the Project, Logstore, and Region parameters.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'You can call this operation up to 6,000 times per minute per user. If you exceed the queries per second (QPS) limit, API calls are throttled, which may affect your business. Plan your calls accordingly.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Special error codes'."\n"
."\n"
.'|HTTP status code|Error code|Description|'."\n"
.'|---|---|---|'."\n"
.'|403|LogstoreNotExist|The error message returned because the specified Logstore was not found.|'."\n"
.'|404|Domain.NotFound|The error message returned because Log Service is not activated for the domain name.|',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:ModifyLiveRealtimeLogDelivery',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9732E117-8A37-49FD-A36F-ABBB87556CA7\\"\\n}","type":"json"}]',
],
'ModifyShowList' => [
'summary' => 'Modifies the attributes of an episode list.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you created the production studio by calling the [CreateCaster](~~2848009~~) operation, use the CasterId value returned in the response.'."\n"
."\n"
.'- If you created the production studio in the LIVE console, find the production studio name on the Cloud Production Studio page. To go to the page, choose **LIVE Console** > **Production Studio** > **Cloud Production Studio**.'."\n"
."\n"
.'> The name of the production studio on the Cloud Production Studio page is the production studio ID.', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', 'title' => ''],
],
[
'name' => 'ShowId',
'in' => 'query',
'schema' => ['description' => 'The ID of the show whose position in the playlist you want to modify.'."\n"
."\n"
.'> Obtain the ShowId value from the response of the [AddShowIntoShowList](~~2848051~~) or [DescribeShowList](~~2848054~~) operation.', 'type' => 'string', 'required' => false, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
],
[
'name' => 'RepeatTimes',
'in' => 'query',
'schema' => ['description' => 'The number of times the playlist loops.'."\n"
."\n"
.'> - RepeatTimes specifies the number of repetitions. For example, a value of **0** means the playlist is played once without repetition. A value of **1** means the playlist is played twice (one initial playback and one repetition).'."\n"
.'>'."\n"
.'> - A value of -1 indicates that the playlist loops indefinitely.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '5', 'title' => ''],
],
[
'name' => 'Spot',
'in' => 'query',
'schema' => ['description' => 'The new position of the show in the playlist. The show specified by ShowId is moved to the position specified by **Spot**.'."\n"
."\n"
.'> The value must be greater than or equal to 0 and less than or equal to the total number of shows in the playlist.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'HighPriorityShowId',
'in' => 'query',
'schema' => ['description' => 'The highest-priority show.'."\n"
."\n"
.'> This parameter can be configured only before the playlist starts.', 'type' => 'string', 'required' => false, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
],
[
'name' => 'HighPriorityShowStartTime',
'in' => 'query',
'schema' => ['description' => 'The time to play the highest-priority show. The format is yyyy-MM-dd\'T\'HH:mm:ss.'."\n"
."\n"
.'> This parameter can be configured only before the playlist starts. '."\n"
.'> After this parameter is configured, the system switches from the currently playing show to the highest-priority show at the specified time.', 'type' => 'string', 'required' => false, 'example' => '2021-11-23T12:30:00', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'InvalidVodUrl.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter VodUrl is invalid, please check and try again.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'IncorrectCasterStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Guide station status error, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidShowList.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'ShowList does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'ModifyShowList',
'description' => 'This API operation modifies the position of a show in a playlist, the total number of playback loops for the playlist, and the specific playback time of the highest-priority show.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for this API operation is 10 calls per second per user. If this limit is exceeded, API calls are throttled, which may affect your business. We recommend that you call this operation at a reasonable rate.',
'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"
.'```',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:ModifyShowList',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]',
],
'ModifyStudioLayout' => [
'summary' => 'Modifies the layout of a production studio.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The ID of the region.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio. >The production studio must be created in advance and must be of the virtual studio type.>'."\n"
."\n"
.'- If you create a production studio by calling the [CreateCaster](~~2848009~~) operation, use the CasterId value returned in the response.'."\n"
."\n"
.'- If you create a production studio in the ApsaraVideo Live console, go to the **ApsaraVideo Live console** > **Production Studio** > **Cloud Production Studio** page to view the ID.'."\n"
."\n"
.'> The name of the production studio in the list on the Cloud Production Studio page is the production studio ID.', 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
],
[
'name' => 'LayoutId',
'in' => 'query',
'schema' => ['description' => 'The ID of the layout. If you add a layout for a production studio by calling the [AddStudioLayout](~~2848062~~) operation, use the LayoutId value returned in the response.', 'type' => 'string', 'required' => true, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
],
[
'name' => 'LayoutName',
'in' => 'query',
'schema' => ['description' => 'The name of the production studio layout.', 'type' => 'string', 'example' => 'Test layout', 'required' => false, 'title' => ''],
],
[
'name' => 'CommonConfig',
'in' => 'query',
'schema' => ['description' => 'The configuration of the common layout. This parameter is a JSON string. For more information, see **CommonConfig**. >This parameter is required only when LayoutType is set to common.>', 'type' => 'string', 'required' => false, 'example' => '{ "ChannelId":"RV01" }', 'title' => ''],
],
[
'name' => 'BgImageConfig',
'in' => 'query',
'schema' => ['description' => 'The configuration of the background resource. This parameter is a JSON string. For more information, see **BgImageConfig**.'."\n"
."\n"
.'>'."\n"
."\n"
.'This parameter is required only when LayoutType is set to studio.'."\n"
."\n"
.'>', 'type' => 'string', 'required' => false, 'example' => '{ "Id":"k12kj31****", "MaterialId":"f080575eb5f4427684fc0715159a****" }', 'title' => ''],
],
[
'name' => 'ScreenInputConfigList',
'in' => 'query',
'schema' => ['description' => 'The settings for the chroma keying input. This parameter is a JSON string. For more information, see **ScreenInputConfig**.'."\n"
."\n"
.'>'."\n"
."\n"
.'This parameter is required only when LayoutType is set to studio.'."\n"
."\n"
.'>', 'type' => 'string', 'required' => false, 'example' => '[ { "Index":"1", "ChannelId":"RV01", "Color":"green", "PositionX":"0.1", "PositionY":"0.2", "HeightNormalized":"0.4" } ]', 'title' => ''],
],
[
'name' => 'MediaInputConfigList',
'in' => 'query',
'schema' => ['description' => 'The settings for the multimedia input resource. This parameter is a JSON string. For more information, see **MediaInputConfig**.'."\n"
."\n"
.'>'."\n"
."\n"
.'This parameter is valid and optional only when LayoutType is set to 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]" } ]', 'title' => ''],
],
[
'name' => 'LayerOrderConfigList',
'in' => 'query',
'schema' => ['description' => 'The layer order settings. This parameter is a JSON string. For more information, see **layerOrderConfig**. You can sort background and multimedia materials. Chroma keying layers are not supported. The earlier an item appears in the list, the lower its layer.', 'type' => 'string', 'required' => false, 'example' => '[ { "Type":"media", "Id":"k12kj31****" }, { "Type":"media", "Id":"k12kj31****" } ]', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '5c6a2a0d-f228-4a64-af62-20e91b9676b3', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidPositionNormalized.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter PositionNormalized is invalid, please check and try again.'],
['errorCode' => 'InvalidHeightOrWidthNormalized', 'errorMessage' => '%s, please check and try again later.', 'description' => 'HeightNormalized or WidthNormalized parameters are invalid, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidLayout.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'LayoutId does not exist, please check and try again.'],
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b9676b3\\"\\n}","type":"json"}]',
'title' => 'ModifyStudioLayout',
'description' => 'You can call this operation to modify the layout of a production studio. When you modify the layout settings, pass only the parameters that you want to change.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The QPS limit for this operation is 10 calls per second for each user. If you exceed the limit, API calls are throttled. This may affect your business. We recommend that you call this operation at a reasonable rate.',
'requestParamsDescription' => '## CommonConfig'."\n"
."\n"
.'| Name | Type | Example | Description |'."\n"
.'| --------- | ------ | ------- | -------------------------------------------------------------- |'."\n"
.'| ChannelId | String | RV01 | The ID of the channel to which the video resource is attached. |'."\n"
."\n"
.'## BgImageConfig'."\n"
."\n"
.'> ImageUrl and MaterialId are mutually exclusive.'."\n"
."\n"
.'## ScreenInputConfig'."\n"
."\n"
.'| Name | Type | Example | Description |'."\n"
.'| ---------------- | ------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n"
.'| Index | Integer | 1 | The ID of the chroma keying source. This ID is used for frontend display and has no logical function. It must be a positive integer (>0). |'."\n"
.'| ChannelId | String | RV01 | The ID of the channel to which the video resource is attached. |'."\n"
.'| Color | String | green | The chroma keying color domain. Valid values: **blue**: Blue screen background. **green**: Green screen background. **auto**: Automatic detection. **complex**: Real-world scene matting. |'."\n"
.'| PositionX | Float | 0.1 | The position parameter for the x-coordinate. The value must be between 0 and 1, inclusive. The material\'s position is based on the top-left corner as the reference point. |'."\n"
.'| PositionY | Float | 0.2 | The position parameter for the y-coordinate. The value must be between 0 and 1, inclusive. The material\'s position is based on the top-left corner as the reference point. |'."\n"
.'| HeightNormalized | Float | 0.4 | The normalized height. This is the height ratio of the keyed portrait to the background. The value must be between 0 and 1, inclusive. |'."\n"
."\n"
.'## MediaInputConfig'."\n"
."\n"
.'- For a video source, specify ChannelId.'."\n"
."\n"
.'- For an image, specify ImageMaterialId.'."\n"
."\n"
.'- ChannelId and ImageMaterialId are mutually exclusive. You can specify only one.'."\n"
."\n"
.'| Name | Type | Example | Description |'."\n"
.'| ------------------ | ------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n"
.'| Id | String | k12kj31**** | The unique ID of the multimedia material. |'."\n"
.'| Index | Integer | 1 | The ID of the multimedia material. This ID is used for frontend display and has no logical function. It must be a positive integer (>0). |'."\n"
.'| ChannelId | String | RV01 | The ID of the channel to which the video resource is attached. |'."\n"
.'| ImageMaterialId | String | lkajsdfsa8fd89asd8**** | The ID of the VOD image material. |'."\n"
.'| FillMode | String | none | The fill type. Set this parameter to **none**. |'."\n"
.'| PositionRefer | String | topLeft | The reference coordinate for the material\'s position. Set this parameter to **topLeft** to use the top-left corner as the reference point. |'."\n"
.'| WidthNormalized | Float | 0.4 | The normalized width of the material. This is the width ratio of the material to the background. The value must be between 0 and 1, inclusive. |'."\n"
.'| HeightNormalized | Float | 0.4 | The normalized height of the material. This is the height ratio of the material to the background. The value must be between 0 and 1, inclusive. |'."\n"
.'| PositionNormalized | Float | \\[0.1, 0.2] | The normalized position [x,y] of the material\'s fill area. The values of x and y must be between 0 and 1, inclusive. For example, a value of [0.1, 0.2] represents a horizontal offset of 10% and a vertical offset of 20% from the top-left corner. |'."\n"
."\n"
.'## layerOrderConfig'."\n"
."\n"
.'| Name | Type | Example | Description |'."\n"
.'| ---- | ------ | ----------- | ------------------------------------------------------------------------------------------------------ |'."\n"
.'| Id | String | k12kj31**** | The unique ID of the resource. |'."\n"
.'| Type | String | media | The type of resource configuration. background: Background material. media: Multimedia material. |',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyStudioLayout'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:ModifyStudioLayout',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
],
'translator' => 'machine',
],
'MuteAllGroupUser' => [
'summary' => 'Call MuteAllGroupUser to mute a message group, enabling group-wide muting.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'formData',
'schema' => ['description' => 'The application ID for interactive messages.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'VKL3***'],
],
[
'name' => 'GroupId',
'in' => 'formData',
'schema' => ['description' => 'The message group ID.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'AE35-****-T95F'],
],
[
'name' => 'OperatorUserId',
'in' => 'formData',
'schema' => ['description' => 'The user ID of the operator. This user must be the creator of the group.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'de1**a0'],
],
[
'name' => 'BroadCastType',
'in' => 'formData',
'schema' => ['description' => 'The system message diffusion type. Valid values:'."\n"
."\n"
.'- 0: No diffusion.'."\n"
.'- 1: Diffusion to specified users.'."\n"
.'- 2: Diffusion to the group.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'title' => '', 'example' => '2'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'],
'Result' => [
'description' => 'The returned results.',
'type' => 'object',
'properties' => [
'Success' => ['description' => 'Indicates whether the muting was successful. Valid values:'."\n"
."\n"
.'- true: Successful.'."\n"
.'- false: Unsuccessful.', 'type' => 'boolean', 'title' => '', 'example' => 'true'],
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'title' => 'MuteAllGroupUser',
'description' => '## QPS limits'."\n"
."\n"
.'The QPS limit for this API is 100 queries per second (QPS) per user. If you exceed this limit, API calls will be throttled, which may affect your business. You can make API calls at a reasonable rate. For more information, see [QPS limits](~~343507~~).',
'changeSet' => [
['createdAt' => '2023-04-04T06:09:59.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2022-12-08T09:05:53.000Z', 'description' => 'Request parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '300', 'countWindow' => 1, 'regionId' => '*', 'api' => 'MuteAllGroupUser'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:MuteAllGroupUser',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": true\\n }\\n}","type":"json"}]',
],
'MuteGroupUser' => [
'summary' => 'Call MuteGroupUser to mute multiple members in a message group.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'formData',
'schema' => ['description' => 'Interactive message application ID.', 'type' => 'string', 'required' => true, 'example' => 'VKL3***', 'title' => ''],
],
[
'name' => 'GroupId',
'in' => 'formData',
'schema' => ['description' => 'Message group ID.', 'type' => 'string', 'required' => true, 'example' => 'AE35-****-T95F', 'title' => ''],
],
[
'name' => 'MuteUserList',
'in' => 'formData',
'style' => 'simple',
'schema' => [
'description' => 'Mute details.',
'type' => 'array',
'items' => ['description' => 'List of user IDs to be muted.', 'type' => 'string', 'required' => false, 'example' => 'qu***,yu1***', 'title' => ''],
'required' => true,
'title' => '',
'example' => '',
],
],
[
'name' => 'MuteTime',
'in' => 'formData',
'schema' => ['description' => 'Mute duration in seconds.'."\n"
."\n"
.'> If this parameter is not specified or set to 0, the default mute duration (86400 seconds) is used.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '3600', 'title' => ''],
],
[
'name' => 'OperatorUserId',
'in' => 'formData',
'schema' => ['description' => 'Operator\'s user ID.'."\n"
."\n"
.'> This parameter must be specified and the user must be the creator of the group.', 'type' => 'string', 'required' => false, 'example' => 'de1**a0', 'title' => ''],
],
[
'name' => 'BroadCastType',
'in' => 'formData',
'schema' => ['description' => 'System message diffusion type. Valid values:'."\n"
."\n"
.'- 0: No diffusion.'."\n"
.'- 1: Diffusion to specified users.'."\n"
.'- 2: Diffusion to the group.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'Request ID.', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'],
'Result' => [
'description' => 'Return result.',
'type' => 'object',
'properties' => [
'Success' => ['description' => 'Indicates whether the mute operation was successful. Valid values:'."\n"
."\n"
.'- true: Successful.'."\n"
.'- false: Unsuccessful.', 'type' => 'boolean', 'example' => 'true', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": true\\n }\\n}","type":"json"}]',
'title' => 'MuteGroupUser',
'description' => '## QPS limits'."\n"
."\n"
.'The QPS limit for this API is 100 queries per second (QPS) per user. If the limit is exceeded, API calls will be throttled, which may affect your business. You can make API calls at a reasonable rate. For more information, see [QPS limits](~~343507~~).',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '300', 'countWindow' => 1, 'regionId' => '*', 'api' => 'MuteGroupUser'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:MuteGroupUser',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
],
'OpenLiveShift' => [
'summary' => 'You can call the OpenLiveShift operation to enable time shifting for a specific domain name, application, or stream.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'none',
'riskType' => 'none',
'chargeType' => 'paid',
'abilityTreeNodes' => ['FEATUREliveGDJYFA'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain name.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the application. The wildcard character (\\*) is supported. An asterisk (\\*) represents all applications under the specified domain name. For more information, see [Stream management](~~197397~~).', 'type' => 'string', 'required' => false, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The name of the stream. The wildcard character (\\*) is supported. An asterisk (\\*) represents all streams under the specified application. For more information, see [Stream management](~~197397~~).', 'type' => 'string', 'required' => false, 'example' => 'liveStream****', 'title' => ''],
],
[
'name' => 'Duration',
'in' => 'query',
'schema' => ['description' => 'The duration of an HTTP Live Streaming (HLS) transport stream (TS) segment. Unit: seconds.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '3', 'title' => ''],
],
[
'name' => 'Vision',
'in' => 'query',
'schema' => ['description' => 'The data retention period. The default value is 7. Unit: days.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''],
],
[
'name' => 'IgnoreTranscode',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to enable time shifting for transcoded streams. Valid values:'."\n"
."\n"
.'- **true**: Time shifting is disabled for transcoded streams.'."\n"
."\n"
.'- **false**: Time shifting is enabled for transcoded streams.'."\n"
."\n"
.'Default value: true.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => '%s Please check and try again later.', 'description' => 'Configuration already exists, please check and try again.'],
['errorCode' => 'InvalidParam', 'errorMessage' => '%s.', 'description' => 'Parameter verification failed'],
],
404 => [
['errorCode' => 'InvalidDataNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Data does not exist, please check and try again.'],
],
409 => [
['errorCode' => 'InvalidStreamNum', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The number of streams is abnormal. Please check and try again.'],
],
],
'title' => 'OpenLiveShift',
'description' => 'You cannot configure time shifting and delayed transcoding at the same time.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'This operation supports up to 10 queries per second (QPS) per user. If you exceed this limit, the system throttles your API calls, which can impact your business. To prevent throttling, call this operation at a reasonable rate.',
'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'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:OpenLiveShift',
'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"}]',
],
'PlayChoosenShow' => [
'summary' => 'Switches to a specified episode.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'none',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The ID of the region.'."\n", 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'* If the production studio was created by calling the [CreateCaster](~~2848009~~) operation, check the value of the response parameter CasterId to obtain the ID.'."\n"
.'* If the production studio was created by using the ApsaraVideo Live console, obtain the ID on the **Production Studio Management** page. To go to the page, log on to the **ApsaraVideo Live console** and click **Production Studios** in the left-side navigation pane.'."\n"
."\n"
.'> You can find the ID of the production studio in the Instance ID/Name column.'."\n", 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', 'title' => ''],
],
[
'name' => 'ShowId',
'in' => 'query',
'schema' => ['description' => 'The ID of the episode that you want to switch to.'."\n"
."\n"
.'> You can call the [AddShowIntoShowList](~~2848051~~) or [DescribeShowList](~~2848054~~) operation and check the value of the response parameter ShowId to obtain the ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
'ShowId' => ['description' => 'The ID of the episode.'."\n", 'type' => 'string', 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'IncorrectCasterStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Guide station status error, please check and try again.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidShowList.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'ShowList does not exist, please check and try again.'],
['errorCode' => 'InvalidShow.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Show does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'PlayChoosenShow',
'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' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"ShowId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\"\\n}","type":"json"}]',
],
'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' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'required' => true, 'example' => 'developer.aliyundoc.com', 'title' => ''],
],
[
'name' => 'FunctionName',
'in' => 'query',
'schema' => ['description' => 'The name of the feature. To obtain the feature name, call the [DescribeLiveDomainStagingConfig](~~297374~~) operation.', 'type' => 'string', 'required' => true, 'example' => 'aliauth', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'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' => 'PublishLiveStagingConfigToProduction',
'summary' => 'Publishes the configurations of an accelerated domain name from the canary release environment to the production environment.',
'description' => '## Usage notes'."\n"
."\n"
.'You can call the [DescribeLiveDomainStagingConfig](~~297374~~) operation to obtain the feature name. Then, you can call this operation to publish the configurations from the canary release environment to the production environment.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'You can call this operation up to 30 times per second per user. Throttling is triggered if the number of calls exceeds the limit. This may affect your business operations. We recommend that you plan your calls accordingly. For more information, see [QPS limits](~~343507~~).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'PublishLiveStagingConfigToProduction'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'live:PublishLiveStagingConfigToProduction',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","type":"json"}]',
],
'QueryLiveDomainMultiStreamList' => [
'summary' => 'Queries dual-stream disaster recovery online records.',
'methods' => ['get'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '250498',
'abilityTreeNodes' => ['FEATURElive9P39J9'],
],
'parameters' => [
[
'name' => 'Domain',
'in' => 'query',
'schema' => ['description' => 'The primary streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The name of the live stream. This parameter is used for exact match filtering.', 'type' => 'string', 'required' => false, 'example' => 'teststream', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time of the query range. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format (UTC time). The interval between StartTime and EndTime must be within 7 days.', 'type' => 'string', 'required' => false, 'example' => '2024-12-01T01:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format (UTC time).'."\n"
."\n"
.'The end time must be later than the start time. The interval between the start time and end time cannot exceed 7 days. Default value: the last 24 hours.', 'type' => 'string', 'required' => false, 'example' => '2024-12-02T01:00:00Z', 'title' => ''],
],
[
'name' => 'PageNumber',
'in' => 'query',
'schema' => ['description' => 'The page number. Default value: **1**.', 'type' => 'integer', 'format' => 'int64', 'default' => '1', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries per page. Default value: 10.'."\n"
."\n"
.'Valid values: 1 to 100.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '100', 'minimum' => '1', 'default' => '10', 'required' => false, 'example' => '10', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A5****'],
'PageNumber' => ['description' => 'The current page number.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'PageSize' => ['description' => 'The number of entries per page.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''],
'TotalCount' => ['description' => 'The total number of entries.', 'type' => 'integer', 'format' => 'int32', 'example' => '19', 'title' => ''],
'OnlineStreams' => [
'description' => 'The number of online records.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Domain' => ['description' => 'The streaming domain of the streamer.', 'type' => 'string', 'example' => 'play.***.com', 'title' => ''],
'AppName' => ['description' => 'The application name.', 'type' => 'string', 'example' => 'apptest', 'title' => ''],
'StreamName' => ['description' => 'The name of the live stream.', 'type' => 'string', 'example' => 'teststream', 'title' => ''],
'OptimalMode' => [
'description' => 'The feature switch. Valid values:'."\n"
.'- **on**: enabled.'."\n"
.'- **off**: disabled.',
'enumValueTitles' => ['off' => 'off', 'on' => 'on'],
'type' => 'string',
'example' => 'on',
'title' => '',
],
'UpstreamList' => [
'description' => 'The list of all candidate streams.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'UpstreamSequence' => ['description' => 'The unique identifier of the ingest stream.', 'type' => 'string', 'example' => '***test_Alirewrite1', 'title' => ''],
'UpstreamIp' => ['description' => 'The IP address of the ingest client.', 'type' => 'string', 'example' => '1.1.1.1', 'title' => ''],
'UpstreamTime' => ['description' => 'The stream ingest time. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format (UTC+0).', 'type' => 'string', 'example' => '2024-11-13T09:20:47Z', 'title' => ''],
'MasterFlag' => [
'description' => 'The primary/secondary flag.'."\n"
.'> Indicates which stream is currently being used for merged distribution.',
'enumValueTitles' => ['true' => 'true', 'false' => 'false'],
'type' => 'boolean',
'example' => 'false',
'title' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'ChangeLogs' => [
'description' => 'The stream switching records.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'ChangeTime' => ['description' => 'The stream switching time. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format (UTC+0).', 'type' => 'string', 'example' => '2024-11-13T09:20:47Z', 'title' => ''],
'ChangeReason' => ['description' => 'The reason for stream switching.'."\n"
.'* merge cut manually: The user manually switched the stream.'."\n"
.'* master stream no data: The primary stream has no data.'."\n"
.'* master stream low quality: The primary stream quality degraded.', 'type' => 'string', 'example' => 'merge cut manually', 'title' => ''],
'MasterUpstream' => ['description' => 'The stream that is actually used after the switch.', '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', 'title' => ''],
'UpstreamSequence' => ['description' => 'The stream identifier after the switch.', 'type' => 'string', 'example' => '***test_AliRewrite_2', 'title' => ''],
'UpstreamIp' => ['description' => 'The IP address used after the stream switch.', 'type' => 'string', 'example' => '1.1.1.1', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => 'Parameter error'],
['errorCode' => 'InvalidParam.CodeIllegalDuration', 'errorMessage' => '%s.', 'description' => 'The value of start time should be less than the value of end time .'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => 'error on the live liveapi server.'],
],
],
'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' => 'Query dual-stream disaster recovery online records',
'changeSet' => [
['createdAt' => '2025-04-27T04:00:13.000Z', 'description' => 'Error codes changed'],
],
'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' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'QueryMessageApp' => [
'summary' => 'Call QueryMessageApp to query interactive message applications based on specified conditions.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'formData',
'schema' => ['description' => 'Interactive message application ID.', 'type' => 'string', 'required' => false, 'example' => 'VKL3***', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'formData',
'schema' => ['description' => 'Interactive message application name.', 'type' => 'string', 'required' => false, 'example' => 'testApp', 'title' => ''],
],
[
'name' => 'SortType',
'in' => 'formData',
'schema' => ['description' => 'Sorting method. Valid values:'."\n"
."\n"
.'- 0: Ascending order by time.'."\n"
.'- 1: Descending order by time.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'PageNum',
'in' => 'formData',
'schema' => ['description' => 'Page number. Default value: 1. Valid values: 1 to 100000.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'formData',
'schema' => ['description' => 'Number of applications displayed per page. Default value: 20. Valid values: 1 to 50.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'Request ID.', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'],
'Result' => [
'description' => 'Return result.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'AppList' => [
'description' => 'Interactive Messages application list.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'AppConfig' => [
'description' => 'Application configuration.',
'type' => 'object',
'additionalProperties' => ['type' => 'string', 'description' => 'Application configuration.', 'example' => 'dawd', 'title' => ''],
'title' => '',
'example' => '',
],
'AppId' => ['description' => 'Interactive Messages application ID.', 'type' => 'string', 'example' => 'VKL3***', 'title' => ''],
'AppName' => ['description' => 'Interactive Messages application name.', 'type' => 'string', 'example' => 'test', 'title' => ''],
'CreateTime' => ['description' => 'UTC timestamp when the application was created.', 'type' => 'integer', 'format' => 'int64', 'example' => '502280113', 'title' => ''],
'Extension' => [
'description' => 'Extension field.',
'type' => 'object',
'additionalProperties' => ['type' => 'string', 'description' => 'Extension field.', 'example' => 'test001', 'title' => ''],
'title' => '',
'example' => '',
],
'Status' => ['description' => 'Interactive Messages application status. A value of **1** indicates that the application status is Normal.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'HasMore' => ['description' => 'Indicates whether there is a next page. Valid values:'."\n"
."\n"
.'- true: There is a next page.'."\n"
.'- false: There is no next page.', 'type' => 'boolean', 'example' => 'false', 'title' => ''],
'TotalCount' => ['description' => 'Total number of query results.', 'type' => 'integer', 'format' => 'int32', 'example' => '4', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'QueryMessageApp',
'description' => '## QPS limits'."\n"
."\n"
.'The QPS limit for this API is 100 queries per second per user. If the limit is exceeded, API calls will be throttled, which may affect your business. You can call the API properly to avoid this issue. For more information, see [QPS limits](~~343507~~).',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryMessageApp'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:QueryMessageApp',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
],
'QueryRtcAsrTasks' => [
'summary' => 'Queries the status of created real-time speech-to-text or translation tasks.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '219787',
'abilityTreeNodes' => ['FEATUREliveK6LRQR'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'The ID of the task to query. If you do not specify this parameter, all running tasks under your user ID are queried.', 'type' => 'string', 'required' => false, 'example' => 'asr-a6ac15e0-9118-4b4c-9e64-306163a0****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'Description' => ['description' => 'The description of the result. A value of \\`success\\` indicates that the call is successful. If the call fails, an error message is returned.', 'type' => 'string', 'example' => 'success', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'D8ADAB55-1BB8-5C01-8434-C45D353BB1FD', 'title' => ''],
'RetCode' => ['description' => 'The status code. A value of 2000 indicates that the call is successful. Other values indicate that an error occurred.', 'type' => 'integer', 'format' => 'int64', 'example' => '2000', 'title' => ''],
'Tasks' => [
'description' => 'The result set of tasks.',
'type' => 'object',
'additionalProperties' => ['description' => 'The result set of tasks.', '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": "" }', 'title' => ''],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ConfigNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Configuration does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => 'error on the live liveapi server.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'QueryRtcAsrTasks',
'description' => 'The queries per second (QPS) limit for a single user is 20 calls per second. If you exceed this limit, your API calls are throttled, which can affect your business. Call this API only as needed.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryRtcAsrTasks'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:QueryRtcAsrTasks',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'QuerySnapshotCallbackAuth' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveMH1XD3'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.aliyundoc.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD5', 'title' => ''],
'CallbackAuthKey' => ['description' => 'The authentication key for callbacks.', 'type' => 'string', 'example' => 'yourkey', 'title' => ''],
'DomainName' => ['description' => 'The streaming domain.', 'type' => 'string', 'example' => 'example.aliyundoc.com', 'title' => ''],
'CallbackReqAuth' => ['description' => 'Indicates whether authentication for callbacks is enabled. Valid values:'."\n"
."\n"
.'- **yes**: enabled.'."\n"
."\n"
.'- **no**: disabled.', 'type' => 'string', 'example' => 'yes', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is missing, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => 'error on the live liveapi server.'],
],
],
'title' => 'QuerySnapshotCallbackAuth',
'summary' => 'Queries the authentication configuration for snapshot callbacks.',
'description' => 'You can call this operation to query the authentication configuration for snapshot callbacks for a streaming domain. Before you call this operation, you must configure authentication. For more information, see [Set snapshot callback authentication](~~2847907~~).'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'This operation is limited to 30 queries per second (QPS) per user. If you exceed this limit, throttling is triggered, which can affect your services.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QuerySnapshotCallbackAuth'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:QuerySnapshotCallbackAuth',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD5\\",\\n \\"CallbackAuthKey\\": \\"yourkey\\",\\n \\"DomainName\\": \\"example.aliyundoc.com\\",\\n \\"CallbackReqAuth\\": \\"yes\\"\\n}","type":"json"}]',
],
'RealTimeRecordCommand' => [
'summary' => 'Controls recordings manually on demand. You can start or stop recording at any time.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'none',
'riskType' => 'none',
'chargeType' => 'paid',
'abilityTreeNodes' => ['FEATUREliveL04ZVK'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'Command',
'in' => 'query',
'schema' => ['description' => 'The action to perform. Valid values:'."\n"
."\n"
.'- **start**: Starts the recording. This command must be the first one called for a session and cannot be called again before a stop command is issued.'."\n"
."\n"
.'- stop: Stops the recording. A recording file is generated after the configured stream merge window (default: 180 seconds). Call this command only after start or restart. To generate the recording file immediately, call **cancel\\_delay** after this command.'."\n"
."\n"
.'- cancel\\_delay: Immediately finalizes the recording file, terminating the waiting period. This must be called after stop to generate the file ahead of schedule.'."\n"
."\n"
.'- **restart**: Restarts the recording. If a recording is already in progress, this command first finalizes the current recording file and then immediately starts a new one. This can only be called when the recording session is in a started or stopped state.', 'type' => 'string', 'required' => true, 'example' => 'start', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The AppName of the live stream. View AppNames on the [Stream Management](~~197397~~) page.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The stream name. Make sure the StreamName is correct. View StreamNames on the [Stream Management](~~197397~~) page.'."\n"
."\n"
.'> This API only supports operations on a single stream. Wildcard are not supported.', 'type' => 'string', 'required' => true, 'example' => 'liveStream****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MalformedParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Invalid parameter, please check and try again.'],
['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is missing, please check and try again.'],
['errorCode' => 'CodeConfigNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Configuration does not exist, please check and try again.'],
],
409 => [
['errorCode' => 'StreamNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Stream does not exist, please check and try again.'],
['errorCode' => 'TaskAlreadyStarted', 'errorMessage' => '%s, please do not start again.', 'description' => 'Task already started, do not start again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => 'error on the live liveapi server.'],
],
],
'title' => 'RealTimeRecordCommand',
'description' => '- Before you call this API, review the billing methods and pricing of live stream recording. For more information, see [Billing of live stream recording](~~195287~~).'."\n"
."\n"
.'- This API applies to live streams that have an active recording configuration. You must first [add a recording configuration](~~2847881~~).'."\n"
."\n"
.'- You can use this API to stop a recording that was started either automatically or manually. However, if you call this API to start a recording that is already in progress, the system returns a TaskAlreadyStarted error.'."\n"
."\n"
.'- If a manually started recording is interrupted, the recording stops. If automatic recording is not configured, the recording does not automatically restart when stream ingest resumes.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## 注意事项: '."\n"
.'- 视频直播支持触发拉流,当使用触发拉流域名对应的播放地址进行播放时,会自动触发阿里云视频直播服务进行拉流直播,无人播放时则不会回源站进行拉流。自动录制、按需录制、手动录制功能应用在触发拉流场景时,如果触发拉流无人播放,则不会回源站拉流,自动录制、按需录制、手动录制同样也不会进行录制。',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RealTimeRecordCommand'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'live:RealTimeRecordCommand',
'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"}]',
],
'RecoverLiveMessageDeletedGroup' => [
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '227785',
'abilityTreeNodes' => ['FEATUREliveSL6Y07'],
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'demo', 'title' => ''],
],
[
'name' => 'GroupId',
'in' => 'query',
'schema' => ['description' => 'The ID of the group that you want to restore.'."\n", 'type' => 'string', 'required' => true, 'example' => 'grouptest', 'title' => ''],
],
[
'name' => 'DataCenter',
'in' => 'query',
'schema' => ['description' => 'The data center. It must be the same as the data center that was specified when you called the [CreateLiveMessageApp](~~2848162~~) operation to create the interactive messaging application. Valid values: cn-shanghai and ap-southeast-1 (Singapore).'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Schema of Response'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'B95BE680-5A6A-1CAD-8AB1-09DFF5D6****'],
'GroupId' => ['description' => 'The ID of the group that was restored.'."\n", 'type' => 'string', 'example' => 'grouptest', 'title' => ''],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
['errorCode' => 'ErrorTooManyGroups', 'errorMessage' => '%s.', 'description' => 'For each AppId, a maximum of 5000 groups are allowed to be created at the same time.'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'RecoverLiveMessageDeletedGroup',
'summary' => 'Restores a deleted interactive messaging group.',
'description' => '* You can call this operation to restore a deleted interactive messaging group within 30 days after you call the [DeleteLiveMessageGroup](~~2848163~~) to delete the group.'."\n"
.'* After you restore a group, the messages that were stored in the group before it was deleted can still be queried.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n",
'changeSet' => [
['createdAt' => '2024-07-19T03:44:22.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RecoverLiveMessageDeletedGroup'],
],
],
'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' => 'Unmutes users in a live interactive message group.',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '235211',
'abilityTreeNodes' => ['FEATUREliveSL6Y07'],
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID.', 'type' => 'string', 'required' => true, 'example' => 'demo', 'title' => ''],
],
[
'name' => 'GroupId',
'in' => 'query',
'schema' => ['description' => 'The group ID.', 'type' => 'string', 'required' => true, 'example' => 'grouptest', 'title' => ''],
],
[
'name' => 'UnbannedUsers',
'in' => 'query',
'style' => 'simple',
'schema' => [
'description' => 'The list of users to unmute. You can specify up to 30 users. Separate multiple user IDs with commas (,).',
'type' => 'array',
'items' => ['description' => 'The user to unmute.'."\n"
."\n"
.'- To unmute all muted users, set this parameter to an asterisk (\\*).', 'type' => 'string', 'required' => false, 'example' => 'uid1', 'title' => ''],
'required' => true,
'title' => '',
'example' => '',
],
],
[
'name' => 'DataCenter',
'in' => 'query',
'schema' => ['description' => 'The data center. This must be the same data center that you specified when you called [CreateLiveMessageApp](~~2848162~~).'."\n"
."\n"
.'> Valid values: \\`cn-shanghai\\` (Shanghai) and \\`ap-southeast-1\\` (Singapore).', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Response schema',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '84AF36BF-0B39-1F8A-A416-FAC7C484****'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"84AF36BF-0B39-1F8A-A416-FAC7C484****\\"\\n}","type":"json"}]',
'title' => 'RemoveLiveMessageGroupBand',
'description' => 'You must call [CreateLiveMessageGroup](~~2848163~~) to create an interactive message group before you call this operation.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 10 calls per second. Exceeding this limit triggers API throttling, which may affect your business. We recommend that you call this operation at a reasonable rate.',
'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}'],
],
],
],
],
],
'RemoveShowFromShowList' => [
'summary' => 'Removes an episode from an episode list.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'showIdList',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The IDs of the shows to delete.',
'type' => 'array',
'items' => ['description' => 'The ID of the show to delete.', 'type' => 'string', 'required' => false, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
'required' => false,
'maxItems' => 80,
'title' => '',
'example' => '',
],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you created the production studio by calling the [CreateCaster](~~2848009~~) operation, use the CasterId value that is returned in the response.'."\n"
."\n"
.'- If you created the production studio in the LIVE console, find the production studio name in the LIVE console by choosing **LIVE Console** > **Production Studio** > **Cloud Production Studio**.'."\n"
."\n"
.'> The name of the production studio in the list on the Cloud Production Studio page is the production studio ID.', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', 'title' => ''],
],
[
'name' => 'ShowId',
'in' => 'query',
'schema' => ['description' => 'The show ID.'."\n"
."\n"
.'> Obtain the ShowId from the response of the [AddShowIntoShowList](~~2848051~~) operation.', 'type' => 'string', 'required' => false, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
],
[
'name' => 'isBatchMode',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to delete shows in a batch. Valid values:'."\n"
."\n"
.'- true: Deletes shows in a batch.'."\n"
."\n"
.'- false: Deletes a single show.'."\n"
."\n"
.'> If you do not specify this parameter or leave it empty, a single show is deleted.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
'ShowId' => ['description' => 'The show ID.', 'type' => 'string', 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
'failedList' => ['description' => 'A list of IDs of the shows that failed to be deleted and the failure information.', 'type' => 'string', 'example' => 'failedList[Show1, Show2...]', 'title' => ''],
'successfulShowIds' => ['description' => 'The IDs of the shows that were successfully deleted.', 'type' => 'string', 'example' => 'f1933f16-5467-4308-b3a9-e8d451a90999', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidShowList.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'ShowList does not exist, please check and try again.'],
['errorCode' => 'InvalidShow.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Show does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'RemoveShowFromShowList',
'description' => 'This operation deletes a show from a show list. You must first call the [AddShowIntoShowList](~~2848051~~) operation to add the show.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The limit for this operation is 10 queries per second (QPS) per user. API calls that exceed this limit are throttled, which may affect your business. Plan your API calls to avoid exceeding this limit.',
'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'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:RemoveShowFromShowList',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'RemoveTerminals' => [
'summary' => 'Removes users from a channel.',
'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' => 'The ID of the application. You can specify only one application ID in each request.'."\n", 'type' => 'string', 'required' => true, 'example' => 'aec****', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'The ID of the channel. You can specify only one channel ID in each request.'."\n", 'type' => 'string', 'required' => true, 'example' => 'testId', 'title' => ''],
],
[
'name' => 'TerminalIds',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The IDs of the users that you want to remove.',
'type' => 'array',
'items' => ['description' => 'The IDs of the users that you want to remove. Valid values of N: **1 to 30**. Format:'."\n"
."\n"
.'```'."\n"
."\n"
.'TerminalIds.1=****'."\n"
.'TerminalIds.2=****'."\n"
.'......'."\n"
.' '."\n"
.'```', 'type' => 'string', 'required' => false, 'example' => '1811****', 'title' => ''],
'required' => true,
'maxItems' => 30,
'title' => '',
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => '',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4AF8'],
'Terminals' => [
'description' => 'The information about the users.'."\n",
'type' => 'array',
'items' => [
'description' => '',
'type' => 'object',
'properties' => [
'Code' => ['description' => 'The returned status code. A value of 0 indicates that the request is successful. If the request fails, an error message is returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'Message' => ['description' => 'The result of removing the specified users from the channel. Valid values:'."\n"
."\n"
.'* Success'."\n"
.'* Failed'."\n", 'type' => 'string', 'example' => 'Success', 'title' => ''],
'Id' => ['description' => 'The ID of the user.'."\n", 'type' => 'string', 'example' => '1811****', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'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' => 'RemoveTerminals',
'description' => 'You can call this operation to remove one or more users from a channel.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 100 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n",
'changeSet' => [
['createdAt' => '2024-10-18T03:59:13.000Z', 'description' => 'Error codes changed'],
['createdAt' => '2023-08-31T01:48:03.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RemoveTerminals'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'live:RemoveTerminals',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live:*:{#accountId}:rtc/{#AppId}'],
],
],
],
],
],
'RestartCaster' => [
'summary' => 'Restarts a production studio.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you created the production studio by calling the [CreateCaster](~~2848009~~) operation, use the CasterId value that is returned in the response.'."\n"
."\n"
.'- If you created a production studio in the Live console, go to **Live console** > **Production Studio** > **Cloud Production Studio** to view the ID.'."\n"
."\n"
.'> The name of the production studio in the list on the Cloud Production Studio page is the production studio ID.', 'type' => 'string', 'required' => true, 'example' => '80787064-1c94-4dc1-85ce-9409960a****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '6EBD1AC4-C34D-4AE1-963E-B688A228BE31', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'IncorrectSceneStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene status is not supported, please check and try again.'],
['errorCode' => 'IncorrectCasterStatus.Idle', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The caster is not open, please check and try again.'],
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'InvalidNormType.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The norm type is invalid, please check and try again.'],
['errorCode' => 'IncorrectCasterStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Guide station status error, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidScene.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'RestartCaster',
'description' => '- This operation supports only production studios in playlist mode (carousel) or general mode. Virtual studios are not supported.'."\n"
."\n"
.'- When you restart a production studio, its current settings, such as resolution and screen orientation, are reloaded to restore the previous playback status.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'This operation is limited to 10 queries per second (QPS) per user. Calls that exceed this limit are throttled, which may affect your business. Plan your calls accordingly.',
'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' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}","type":"json"}]',
],
'RestartLivePullToPush' => [
'summary' => 'Restarts a stream pulling task.',
'methods' => ['get'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '257299',
'abilityTreeNodes' => ['FEATURElive9P39J9'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'default' => 'cn-shanghai', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'Region',
'in' => 'query',
'schema' => [
'description' => 'The live center to query. Valid values:'."\n"
.'- ap-southeast-1 (Singapore)'."\n"
.'- ap-southeast-5 (Indonesia)'."\n"
.'- cn-beijing (Beijing)'."\n"
.'- cn-shanghai (Shanghai).',
'enumValueTitles' => ['cn-shenzhen' => 'Shenzhen.', 'cn-qingdao' => 'Qingdao.', 'preregion' => 'Pre-release.', 'cn-beijing' => 'Beijing.', 'cn-shanghai' => 'Shanghai.', 'ap-southeast-1' => 'Singapore.', 'eu-central-1' => 'Germany (Frankfurt).', 'ap-northeast-1' => 'Japan (Tokyo).', 'ap-southeast-5' => 'Indonesia.', 'me-central-1' => 'Saudi Arabia (Riyadh).'],
'type' => 'string',
'required' => true,
'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'],
'example' => 'preregion',
'title' => '',
],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => [
'description' => 'The task ID.',
'type' => 'string',
'required' => true,
'enum' => [],
'example' => '6f869419-0692-4fd5-8cf0-66cab659****',
'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'a05e6b15-15af-405b-a4a2-01522450****'],
'TaskId' => ['description' => 'The node ID returned when you create task.', 'type' => 'string', 'example' => 'fb0d4ac7-c7e3-4978-9743-0bf2f6e8****', 'title' => ''],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => 'Parameter error'],
['errorCode' => 'LiveServiceNotFound', 'errorMessage' => 'Your account does not open Live service yet', 'description' => 'Your account has not yet activated ApsaraVideo Live.'],
['errorCode' => 'InvalidParam.CodeIllegalDuration', 'errorMessage' => '%s.', 'description' => 'The value of start time should be less than the value of end time .'],
['errorCode' => 'CodeInvalidAliUid', 'errorMessage' => 'This aliuid does not have a live domain name.', 'description' => 'This aluid does not have a live domain name.'],
['errorCode' => 'CodeTaskNotExist', 'errorMessage' => 'Task does not exist.', 'description' => 'The task does not exist.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => 'error on the live liveapi server.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"a05e6b15-15af-405b-a4a2-01522450****\\",\\n \\"TaskId\\": \\"fb0d4ac7-c7e3-4978-9743-0bf2f6e8****\\"\\n}","type":"json"}]',
'title' => 'Restart a stream pulling task',
'description' => '- Calls this operation to restart a stream pulling task.'."\n"
.'- You can restart a task that is running (including tasks in abnormal retry status) or stopped. A running task is stopped and then started again. A non-running task is started directly.'."\n"
.'- If the task has not reached the configured start time, the restart does not take effect.'."\n"
.'- The restarted task runs based on the latest task configuration, which causes stream ingest interruption.'."\n"
.'- After a video-on-demand task is restarted, playback starts from the beginning based on the latest playlist. You can call the update operation to set the video index and video playback progress to resume playback.'."\n"
."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this operation is 10 calls per second. If the limit is exceeded, API calls are throttled, which may affect your business. Call this operation appropriately.',
'changeSet' => [
['createdAt' => '2025-04-27T08:03:58.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RestartLivePullToPush'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:RestartLivePullToPush',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'ResumeLiveStream' => [
'summary' => 'Resumes stream ingest for a specified stream.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The ingest domain.', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com', 'title' => ''],
],
[
'name' => 'LiveStreamType',
'in' => 'query',
'schema' => [
'description' => 'Specifies whether the stream is a streamer ingest stream or a client playback stream. Currently supported value: **publisher** (streamer ingest).',
'enumValueTitles' => ['publisher' => 'streamer ingest.'],
'type' => 'string',
'required' => true,
'enum' => ['publisher'],
'example' => 'publisher',
'title' => '',
],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the application to which the ingest stream belongs. You can set this parameter to * to indicate all AppName values (no restriction on AppName). You can view the AppName on the [Stream Management](~~197397~~) page.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The name of the ingest stream. You can view the StreamName on the [Stream Management](~~197397~~) page.', 'type' => 'string', 'required' => true, 'example' => 'liveStream****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16BFE188-B193-4C3C-ADC5-79A7E31486EA', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16BFE188-B193-4C3C-ADC5-79A7E31486EA\\"\\n}","type":"json"}]',
'title' => 'Resume stream ingest for a live stream',
'description' => 'Calls this operation to resume stream ingest for a specified stream. This operation currently supports only publisher (streamer ingest).'."\n"
."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this operation is 30 calls per second. If this limit is exceeded, the API call is throttled, which may affect your business. Call this operation appropriately.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ResumeLiveStream'],
],
],
'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' => 'Rolls back the configurations of an accelerated domain name in the canary release environment.',
'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' => 'The ID of the region.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'required' => true, 'example' => 'developer.aliyundoc.com', 'title' => ''],
],
[
'name' => 'FunctionName',
'in' => 'query',
'schema' => ['description' => 'The name of the feature. To obtain the feature name, call the [DescribeLiveDomainStagingConfig](~~297374~~) operation.', 'type' => 'string', 'required' => true, 'example' => 'aliauth', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
404 => [
['errorCode' => 'StagingConfig.NotFound', 'errorMessage' => 'The staging configuration does not exist.', 'description' => ''],
],
],
'title' => 'RollbackLiveStagingConfig',
'description' => '## Usage notes'."\n"
."\n"
.'You must first call the [DescribeLiveDomainStagingConfig](~~297374~~) operation to obtain the feature name. Then, you can call this operation to roll back the configurations in the canary release environment.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'You can call this operation up to 30 times per second per user. API calls that exceed this limit are throttled. This can affect your business. For more information, see [QPS limits](~~343507~~).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RollbackLiveStagingConfig'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'live:RollbackLiveStagingConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","type":"json"}]',
],
'SendLike' => [
'summary' => 'Call SendLike to configure system like messages.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'formData',
'schema' => ['title' => '', 'description' => 'Interactive Messages application ID.', 'type' => 'string', 'required' => true, 'example' => 'VKL3***'],
],
[
'name' => 'GroupId',
'in' => 'formData',
'schema' => ['title' => '', 'description' => 'Message group ID.', 'type' => 'string', 'required' => true, 'example' => 'AE35-****-T95F'],
],
[
'name' => 'OperatorUserId',
'in' => 'formData',
'schema' => ['title' => '', 'description' => 'Operator user ID.', 'type' => 'string', 'required' => false, 'example' => 'de1**a0'],
],
[
'name' => 'Count',
'in' => 'formData',
'schema' => ['title' => '', 'description' => 'Number of likes.', 'type' => 'string', 'required' => true, 'example' => '10'],
],
[
'name' => 'BroadCastType',
'in' => 'formData',
'schema' => ['title' => '', 'description' => 'System message diffusion type. Valid values:'."\n"
."\n"
.'- 0: No diffusion.'."\n"
.'- 1: Diffusion to specified users.'."\n"
.'- 2: Diffusion to a group.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'Request ID.', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'],
'Result' => [
'description' => 'Return result.',
'type' => 'object',
'properties' => [
'LikeCount' => ['description' => 'Number of likes.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"LikeCount\\": 10\\n }\\n}","type":"json"}]',
'title' => 'SendLike',
'description' => '## QPS limits'."\n"
."\n"
.'The QPS limit for this API is 100 queries per second (QPS) per user. If the limit is exceeded, API calls will be throttled, which may affect your business. You can call the API properly to avoid this issue. For more information, see [QPS limits](~~343507~~).',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SendLike'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:SendLike',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
],
'SendLiveMessageGroup' => [
'summary' => 'Sends a message to a group.',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
'operationType' => 'none',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '198196',
'abilityTreeNodes' => ['FEATUREliveSL6Y07'],
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the interactive messaging application that is used to receive the message.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'demo'],
],
[
'name' => 'GroupId',
'in' => 'query',
'schema' => ['description' => 'The ID of the group that receives the message.'."\n"
."\n"
.'> Make sure that the specified GroupId is available. Otherwise, a ResourceNotExist error is returned.', 'type' => 'string', 'required' => true, 'minLength' => 1, 'title' => '', 'example' => 'grouptest'],
],
[
'name' => 'SenderId',
'in' => 'query',
'schema' => ['description' => 'The ID of the user who sends the message. The ID can be up to 64 bytes in length and can contain letters and digits.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'uid1'],
],
[
'name' => 'SenderMetaInfo',
'in' => 'query',
'schema' => ['description' => 'The additional information about the user who sends the message. The value can be up to 512 bytes in length.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'uid1meta1'],
],
[
'name' => 'Body',
'in' => 'query',
'schema' => ['description' => 'The message body. It can be up to 15 KB in length.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'hello,group'],
],
[
'name' => 'MsgType',
'in' => 'query',
'schema' => ['description' => 'The message type. The total number of message types sent within a single group cannot exceed 30.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'title' => '', 'example' => '1'],
],
[
'name' => 'MsgTid',
'in' => 'query',
'schema' => ['description' => 'The unique identifier of the message. This parameter is used to delete the message. The ID can contain only letters and digits and can be up to 64 bytes in length.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '169830****'],
],
[
'name' => 'StaticsIncrease',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The contribution of the message to the increase in the number of messages of this type. Default value: 1.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1'],
],
[
'name' => 'Weight',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The weight of the message. Default value: 1.'."\n"
."\n"
.'- For low-priority messages such as likes, you can set the weight to 1.'."\n"
.'- For regular text messages such as bullet comments, you can set the weight to 5.'."\n"
.'- For high-priority messages such as red envelopes and gifts, you can set the weight to 1000000.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1'],
],
[
'name' => 'NoStorage',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Specifies whether to disable message storage. Valid values: true and false. Default value: false, which indicates that the message is stored for a validity period of 30 days. You can find the message in the response of the ListLiveMessageGroupMessages operation. If you do not need to store the message, set this parameter to true.', 'type' => 'boolean', 'required' => false, 'example' => 'false'],
],
[
'name' => 'NoCache',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Specifies whether to disable message caching to the list of the latest messages in the group. Valid values: true and false. Default value: false, which indicates that the message is cached.', 'type' => 'boolean', 'required' => false, 'example' => 'false'],
],
[
'name' => 'DataCenter',
'in' => 'query',
'schema' => ['description' => 'The data center, which must be the same as the data center specified in [CreateLiveMessageApp](~~2848162~~). Valid values:'."\n"
."\n"
.'- cn-shanghai: Shanghai'."\n"
.'- ap-southeast-1: Singapore', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'cn-shanghai'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'The returned results.',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The ID of the request.', 'type' => 'string', 'example' => 'E4C1245F-597B-1BD1-B9BB-9D220E99****'],
'MsgTid' => ['description' => 'The unique identifier of the message, which can be used to delete the message. The ID can contain only letters and digits and can be up to 64 bytes in length.', 'type' => 'string', 'title' => '', 'example' => '169830****'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
['errorCode' => 'ErrorTooManyMsgTypes', 'errorMessage' => '%s.', 'description' => ''],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"E4C1245F-597B-1BD1-B9BB-9D220E99****\\",\\n \\"MsgTid\\": \\"169830****\\"\\n}","type":"json"}]',
'title' => 'SendLiveMessageGroup',
'description' => 'Before you call this operation, you must call [](t2586945.xdita#)to create an interactive messaging group. You can send messages to a group only if the group is active, which means that one or more users have joined the group. Offline messages are not supported. If you fail to send a message, check whether there are users in the group. If you want to send an offline message, we recommend that you store the message locally and send it after users come online.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions. We recommend that you consider this limit when calling this operation.',
'changeSet' => [
['createdAt' => '2025-01-23T12:00:00.000Z', 'description' => 'Response parameters changed'],
['createdAt' => '2025-01-13T05:40:40.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2024-01-09T03:34:27.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2023-12-13T07:06:40.000Z', 'description' => 'Request parameters changed'],
],
'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}'],
],
],
],
],
],
'SendLiveMessageUser' => [
'summary' => 'Sends a message to a specified user. The user is identified by ReceiverId.'."\n",
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '194332',
'abilityTreeNodes' => ['FEATUREliveSL6Y07'],
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the interactive messaging application in which the message is sent.'."\n", 'type' => 'string', 'required' => true, 'example' => 'demo', 'title' => ''],
],
[
'name' => 'ReceiverId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The ID of the user who receives the message. The ID can be up to 64 bytes in length and can contain letters and digits.'."\n"
."\n"
.'> Make sure that the user who receives the message is online. You can call the CheckLiveMessageUsersOnline operation to query whether the user is online.'."\n", 'type' => 'string', 'required' => true, 'example' => 'uid2'],
],
[
'name' => 'SenderId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The ID of the user who sends the message. The ID can be up to 64 bytes in length and can contain letters and digits.'."\n", 'type' => 'string', 'required' => true, 'example' => 'uid1'],
],
[
'name' => 'SenderInfo',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The additional information about the user who sends the message. It can be up to 512 bytes in length.'."\n", 'type' => 'string', 'required' => false, 'example' => 'uid1meta1'],
],
[
'name' => 'Body',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The message body. It can be up to 15 KB in length.'."\n", 'type' => 'string', 'required' => false, 'example' => 'hello, user'],
],
[
'name' => 'MsgType',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The message type.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '2'],
],
[
'name' => 'MsgTid',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The ID of the message, which is a unique identifier that can be used to delete the message. The ID can be up to 64 bytes in length and can contain letters and digits.'."\n", 'type' => 'string', 'required' => false, 'example' => '169830****'],
],
[
'name' => 'DataCenter',
'in' => 'query',
'schema' => ['description' => 'The data center. It must be the same as the data center that was specified when you called the [CreateLiveMessageApp](~~2848162~~) operation to create the interactive messaging application. Valid values: cn-shanghai and ap-southeast-1 (Singapore).'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'HighReliability',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to set the message as a highly reliable message. A highly reliable message ensures that success is returned only after the receiver has received the message and responded. If the receiver does not respond within 3 seconds, failure is returned.'."\n"
."\n"
.'* true: sets the message as a highly reliable message.'."\n"
.'* false (default): does not set the message as a highly reliable message.'."\n"
."\n"
.'> This parameter is supported only by the client SDK V1.5.1 and later. When you send a message to a client with an earlier SDK version, the message can be successfully sent without waiting for an acknowledgement (ACK) response.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
],
[
'name' => 'Storage',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to store the message.'."\n"
."\n"
.'* true: stores the message.'."\n"
.'* false (default): does not store the message.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'The response parameters.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '6CFDE7AB-571A-14EA-B072-989FF753****'],
'MsgTid' => ['description' => 'The ID of the message, which is a unique identifier that can be used to delete the message. The ID can be up to 64 bytes in length and can contain letters and digits.'."\n", 'type' => 'string', 'example' => '169830****', 'title' => ''],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
408 => [
['errorCode' => 'UserNotAck', 'errorMessage' => '%s.', 'description' => 'Send a highly reliable message to the user, but the user does not respond.'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'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' => 'SendLiveMessageUser',
'description' => 'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n",
'changeSet' => [
['createdAt' => '2025-01-23T12:00:01.000Z', 'description' => 'Error codes changed, Request parameters changed, Response parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SendLiveMessageUser'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:SendLiveMessageUser',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'],
],
],
],
],
],
'SendMessageToGroup' => [
'summary' => 'Call SendMessageToGroup to send messages to all members of a message group.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'formData',
'schema' => ['description' => 'Interactive Messages application ID.', 'type' => 'string', 'required' => true, 'example' => 'VKL3***', 'title' => ''],
],
[
'name' => 'GroupId',
'in' => 'formData',
'schema' => ['description' => 'Message group ID.', 'type' => 'string', 'required' => true, 'example' => 'AE35-****-T95F', 'title' => ''],
],
[
'name' => 'OperatorUserId',
'in' => 'formData',
'schema' => ['description' => 'Operator user ID.', 'type' => 'string', 'required' => true, 'example' => 'de1**a0', 'title' => ''],
],
[
'name' => 'Type',
'in' => 'formData',
'schema' => ['description' => 'Message type. When the type field value is less than or equal to 10000, it indicates a system message. When the value is greater than 10000, it indicates a custom message.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '12000', 'title' => ''],
],
[
'name' => 'Data',
'in' => 'formData',
'schema' => ['description' => 'Message body, JSONString type.', 'type' => 'string', 'required' => true, 'example' => 'test', 'title' => ''],
],
[
'name' => 'SkipAudit',
'in' => 'query',
'schema' => ['description' => 'Specifies whether the current message content requires Alibaba Cloud Content Moderation. Valid values:'."\n"
."\n"
.'- **true**: Content Moderation is not required.'."\n"
.'- **false** (default): Content Moderation is required.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'Request ID.', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'],
'Result' => [
'description' => 'Return result.',
'type' => 'object',
'properties' => [
'MessageId' => ['title' => '', 'description' => 'Message ID.', 'type' => 'string', 'example' => 'qt***'],
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'title' => 'SendMessageToGroup',
'description' => '## QPS limits'."\n"
."\n"
.'The single-user QPS limit for this API is 100 queries per second (QPS). If the limit is exceeded, API calls will be throttled, which may affect your business. You can call the API properly to avoid this issue. For more information, see [QPS limits](~~343507~~).',
'changeSet' => [
['createdAt' => '2023-03-14T02:59:22.000Z', 'description' => 'Response parameters changed'],
['createdAt' => '2022-12-04T11:00:37.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2022-09-08T15:22:52.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:SendMessageToGroup',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"MessageId\\": \\"qt***\\"\\n }\\n}","type":"json"}]',
],
'SendMessageToGroupUsers' => [
'summary' => 'Call SendMessageToGroupUsers to send messages to specified users in a message group.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'formData',
'schema' => ['description' => 'Interactive Messages application', 'type' => 'string', 'required' => true, 'example' => 'VKL3***', 'title' => ''],
],
[
'name' => 'GroupId',
'in' => 'formData',
'schema' => ['description' => 'Message group ID.', 'type' => 'string', 'required' => true, 'example' => 'AE35-****-T95F', 'title' => ''],
],
[
'name' => 'Type',
'in' => 'formData',
'schema' => ['description' => 'Message type. When the type field value is less than or equal to 10000, it indicates a system message. When the value is greater than 10000, it indicates a custom message.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '12000', 'title' => ''],
],
[
'name' => 'OperatorUserId',
'in' => 'formData',
'schema' => ['description' => 'Operator user ID.', 'type' => 'string', 'required' => true, 'example' => 'de1**a0', 'title' => ''],
],
[
'name' => 'ReceiverIdList',
'in' => 'formData',
'style' => 'simple',
'schema' => [
'description' => 'User list.',
'type' => 'array',
'items' => ['description' => 'ID of the user receiving the message.', 'type' => 'string', 'required' => false, 'example' => 'hj***,3h***', 'title' => ''],
'required' => false,
'title' => '',
'example' => '',
],
],
[
'name' => 'Data',
'in' => 'formData',
'schema' => ['description' => 'Message body in JSONString format.', 'type' => 'string', 'required' => true, 'example' => 'test', 'title' => ''],
],
[
'name' => 'SkipAudit',
'in' => 'query',
'schema' => ['description' => 'Specifies whether the current message content requires Content Moderation by Alibaba Cloud. Valid values:'."\n"
."\n"
.'- **true**: Content Moderation is not required.'."\n"
.'- **false** (default): Content Moderation is required.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'Request ID.', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'],
'Result' => [
'description' => 'Return result.',
'type' => 'object',
'properties' => [
'MessageId' => ['title' => '', 'description' => 'Message ID.', 'type' => 'string', 'example' => 'hp***'],
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"MessageId\\": \\"hp***\\"\\n }\\n}","type":"json"}]',
'title' => 'SendMessageToGroupUsers',
'description' => '## QPS limits'."\n"
."\n"
.'The single-user QPS limit for this API is 100 queries per second (QPS). If this limit is exceeded, API calls will be throttled, which may affect your business. You can make API calls at a reasonable rate. For more information, see [QPS limits](~~343507~~).',
'changeSet' => [
['createdAt' => '2023-03-28T07:17:22.000Z', 'description' => 'Response parameters changed'],
['createdAt' => '2022-12-05T08:42:18.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2022-12-04T11:00:37.000Z', 'description' => 'Request parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SendMessageToGroupUsers'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:SendMessageToGroupUsers',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
],
'SetCasterChannel' => [
'summary' => 'Sets a channel for a production studio.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you create a production studio by calling the [CreateCaster](~~2848009~~) operation, use the CasterId value returned in the response.'."\n"
."\n"
.'- If you create a production studio in the ApsaraVideo Live console, go to the **Production Studio** > **Cloud Production Studio** page to view the ID.'."\n"
."\n"
.'> The production studio name in the list on the Cloud Production Studio page is the production studio ID.', 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'The channel ID.'."\n"
."\n"
.'The reference ID for the layout scene. You can set a maximum of one resource for each channel. The total number of channels is determined when you create the production studio. The format is \\`RV01\\` to \\`RV12\\`.', 'type' => 'string', 'required' => true, 'example' => 'RV01', 'title' => ''],
],
[
'name' => 'ResourceId',
'in' => 'query',
'schema' => ['description' => 'The ID of the video source.', 'type' => 'string', 'required' => false, 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', 'title' => ''],
],
[
'name' => 'SeekOffset',
'in' => 'query',
'schema' => ['description' => 'This parameter applies only to video files, not live streams. The value must be greater than or equal to 0. It specifies the offset from the first frame at which to start reading the file. Unit: milliseconds (ms).', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1000', 'title' => ''],
],
[
'name' => 'PlayStatus',
'in' => 'query',
'schema' => ['description' => 'The playback status. This parameter applies only to video files, not live streams. Valid values:'."\n"
."\n"
.'- **1** (default): Playback.'."\n"
."\n"
.'- **0**: Pause.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'FaceBeauty',
'in' => 'query',
'schema' => ['description' => 'The facial retouching settings. Valid values: 0 (whole), 1 (skin smoothing), 2 (skin whitening), 3 (dark circle removal), and 4 (nasolabial fold removal).', 'type' => 'string', 'required' => false, 'example' => '0', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'DuplicateLocationID', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter LocationID duplicate. Check and try again.'],
['errorCode' => 'InvalidParameter.PlayStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter PlayStatus is invalid, please check and try again.'],
['errorCode' => 'InvalidChannelId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ChannelId is invalid, please check and try again.'],
['errorCode' => 'InvalidParameter.SeekOffset', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter SeekOffset is invalid, please check and try again.'],
['errorCode' => 'IncorrectChannel.Disable', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The Channel is in a non-settable state, please check and try again.'],
['errorCode' => 'ResourceOfChannelExist', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Resource already exists in the channel, please check and try again.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidResource.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The resource does not exist. Please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'SetCasterChannel',
'description' => 'Call the [CreateCaster](~~2848009~~) operation to create a production studio. You can then call this operation to set a channel for the production studio.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 10 for each user. Exceeding this limit triggers throttling, which may affect your business. Call this operation at a reasonable rate to prevent interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetCasterChannel'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:SetCasterChannel',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]',
],
'SetCasterConfig' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '107215',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you create a production studio by calling the [CreateCaster](~~2848009~~) operation, use the CasterId value that is returned in the response.'."\n"
."\n"
.'- If you create a production studio in the ApsaraVideo Live console, go to the **ApsaraVideo Live console** > **Production Studio** > **Cloud Production Studio** page to view the ID.'."\n"
."\n"
.'> The name of the production studio in the list on the Cloud Production Studio page is the production studio ID.', 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
],
[
'name' => 'CasterName',
'in' => 'query',
'schema' => ['description' => 'The name of the production studio.', 'type' => 'string', 'required' => false, 'example' => 'liveCaster****', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain for the streamer.'."\n"
."\n"
.'Configure the domain name before you start the production studio. If you leave this parameter empty, the domain name configuration of the production studio is cleared.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'TranscodeConfig',
'in' => 'query',
'schema' => ['description' => 'The transcoding configuration.'."\n"
."\n"
.'A JSON string. The fields in the struct must be in UpperCamelCase. If you leave this parameter empty, the transcoding configuration is cleared. If no transcoding template is specified, an error is reported when you start the production studio.', 'type' => 'string', 'required' => false, 'example' => '{"casterTemplate": "lp_ld"}', 'title' => ''],
],
[
'name' => 'RecordConfig',
'in' => 'query',
'schema' => ['description' => 'The recording configuration. This parameter is a JSON string. The elements are described as follows:'."\n"
."\n"
.'- **endpoint**: The API endpoint of the Alibaba Cloud service.'."\n"
."\n"
.'- **ossBucket**: The name of the OSS bucket.'."\n"
."\n"
.'- **videoFormat**: The file formats of the videos that can be exported. Example: `[{\\"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"
."\n"
.'- **interval**: The time interval. Unit: milliseconds (ms).'."\n"
."\n"
.'> If you leave this parameter empty, the recording feature is disabled and the existing recording configuration is cleared.', '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 }', 'title' => ''],
],
[
'name' => 'Delay',
'in' => 'query',
'schema' => ['description' => 'The stream delay. Unit: seconds.'."\n"
."\n"
.'- **0** (default): Disables stream delay.'."\n"
."\n"
.'- A value greater than **0**: Enables stream delay.'."\n"
."\n"
.'- **Empty**: Clears the stream delay configuration.'."\n"
."\n"
.'> The maximum value is 300.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0', 'title' => ''],
],
[
'name' => 'UrgentMaterialId',
'in' => 'query',
'schema' => ['description' => 'The ID of the standby video, which is a media asset. If you leave this parameter empty, the standby video configuration is cleared.', 'type' => 'string', 'required' => false, 'example' => 'a2b8e671', 'title' => ''],
],
[
'name' => 'UrgentLiveStreamUrl',
'in' => 'query',
'schema' => ['description' => 'The URL of the standby live stream.', 'type' => 'string', 'required' => false, 'example' => 'rtmp://demo.aliyundoc.com', 'title' => ''],
],
[
'name' => 'SideOutputUrl',
'in' => 'query',
'schema' => ['description' => 'The custom ingest URL for bypass output from the production studio. If you leave this parameter empty, the system uses the automatically generated ingest URL for the output.'."\n"
."\n"
.'> The SideOutputUrl parameter supports only stream ingest over RTMP.', 'type' => 'string', 'required' => false, 'example' => 'rtmp://****/aliyundoc.com:8000/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-53f0758162964516ac850f2ddc3f****', 'title' => ''],
],
[
'name' => 'SideOutputUrlList',
'in' => 'query',
'schema' => ['description' => 'The list of ingest URLs for multi-channel stream ingest. The URLs can be ingest URLs of Alibaba Cloud CDN or third-party CDNs. You can add up to 20 RTMP ingest URLs for a production studio.'."\n"
."\n"
.'> Specify multiple URLs in an array. Example: \\["rtmp\\://domain/app1/stream1","rtmp\\://domain/app2/stream2"].', 'type' => 'string', 'required' => false, 'example' => 'rtmp://domain/app/stream?***', 'title' => ''],
],
[
'name' => 'CallbackUrl',
'in' => 'query',
'schema' => ['description' => 'The webhook address. To receive callback notifications, enter a valid address that accepts HTTP requests. If you leave this parameter empty, callback notifications for the production studio are canceled.'."\n"
."\n"
.'> For more information about production studio callbacks, see [Callback information for production studios](~~213633~~).', 'type' => 'string', 'required' => false, 'example' => 'http://****/aliyundoc.com:8000/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-53f0758162964516ac850f2ddc3f****', 'title' => ''],
],
[
'name' => 'ProgramEffect',
'in' => 'query',
'schema' => ['description' => 'The flag that indicates whether the carousel is effective.'."\n"
."\n"
.'- **0**: Not effective.'."\n"
."\n"
.'- **1**: Effective.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'ProgramName',
'in' => 'query',
'schema' => ['description' => 'The name of the carousel. You can configure this parameter when you use the carousel feature.', 'type' => 'string', 'required' => false, 'example' => 'program_name', 'title' => ''],
],
[
'name' => 'ChannelEnable',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to enable channels.'."\n"
."\n"
.'- **0** (default): Disables channels.'."\n"
."\n"
.'- **1**: Enables channels.'."\n"
."\n"
.'> By default, this feature is disabled. After you enable this feature, you cannot disable it. If channels are disabled, resources are directly referenced by layouts. To enable channels for the first time, the production studio must be in the Stopped state. Existing layouts are discarded. You must first add resources to channels. New layouts directly reference channels. You can use channels to adjust the playback progress and status of video sources. In this mode, if the video source, Preview (PVW), and Program (PGM) areas reference the same resource, their screens remain synchronized.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'SyncGroupsConfig',
'in' => 'query',
'schema' => ['description' => 'The configuration for multi-view synchronization, which synchronizes multiple video sources. Multi-view synchronization has two modes:'."\n"
."\n"
.'- mode: 0 (Streamer mode. Multiple video sources are synchronized based on the specified mode.)'."\n"
."\n"
.'- mode: 1 (Conference mode. All video sources are synchronized with each other. There is no concept of a streamer video.)'."\n"
."\n"
.'Streamer mode: The hostResourceId parameter specifies the video source of the streamer.'."\n"
."\n"
.'Conference mode: The hostResourceId parameter is not used. You only need to provide the resource IDs in the resourceIds parameter.', 'type' => 'string', 'required' => false, 'example' => '"[{\\"mode\\":0,\\"resourceIds\\":[\\"5a6c1c33-8424-46f6-813c-c152220a****\\",\\"4e6521dc-a40a-4077-b6bf-1fb12a76****\\"],\\"hostResourceId\\":\\"3aa2b39a-fd0e-4b8c-be73-b7af31c4****\\"}]"', 'title' => ''],
],
[
'name' => 'UrgentImageId',
'in' => 'query',
'schema' => ['description' => 'The ID of the standby image, which is a media asset.', 'type' => 'string', 'required' => false, 'example' => 'a089175eb5f4427684fc0715159a****', 'title' => ''],
],
[
'name' => 'UrgentImageUrl',
'in' => 'query',
'schema' => ['description' => 'The URL of the standby image.', 'type' => 'string', 'required' => false, 'example' => 'http://learn.aliyundoc.com/AppName/image.jpg', 'title' => ''],
],
[
'name' => 'AutoSwitchUrgentOn',
'in' => 'query',
'allowEmptyValue' => false,
'schema' => ['description' => 'Specifies whether to enable automatic switchover to the standby resource.'."\n"
."\n"
.'- **true**: Enable.'."\n"
."\n"
.'- **false**: Disable.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''],
],
[
'name' => 'AutoSwitchUrgentConfig',
'in' => 'query',
'allowEmptyValue' => false,
'schema' => ['description' => 'The configuration for automatic switchover to the standby resource. `eofThres`: the period of time after which the system automatically switches to the standby resource if the stream is interrupted. Unit: seconds.', 'type' => 'string', 'required' => false, 'example' => '{"eofThres":3}', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'CasterId' => ['description' => 'The ID of the production studio. You can use this ID to query ingest URLs, start the studio, add video resources, add layouts, query layouts, add components, and add playlists.', 'type' => 'string', 'example' => 'b4810848-bcf9-4aef-bd4a-e6bba2d9****', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'IncorrectCasterStatus.Inuse', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Caster status is inuse, please check and try again later.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'InvalidCaster.ChannelDisableUnsupported', 'errorMessage' => '%s, please check.', 'description' => 'Disabling an enabled Channel is not supported.'],
['errorCode' => 'IncorrectCasterStatus.EnableChannel', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Caster status does not support EnableChannel settings, please check and try again.'],
],
403 => [
['errorCode' => 'PermissionDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Access denied, please check and try again.'],
],
[
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidDomainName.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Domain name does not exist, please check and try again.'],
],
],
'title' => 'SetCasterConfig',
'summary' => 'Call this operation to configure a production studio in detail, including the name, transcoding configuration, recording configuration, and other parameters of the production studio.',
'description' => 'You must call the [CreateCaster](~~2848009~~) operation to create a production studio before you call this operation. This operation replaces all existing configurations. If you set a parameter to an empty value, the existing configuration for that parameter is cleared.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 10 calls per second. API calls that exceed this limit are throttled, which may affect your business. Plan your calls accordingly.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2024-08-21T03:33:21.000Z', 'description' => 'Error codes changed'],
['createdAt' => '2023-11-22T01:24:18.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2023-03-31T08:26:54.000Z', 'description' => 'Request parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetCasterConfig'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:SetCasterConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"CasterId\\": \\"b4810848-bcf9-4aef-bd4a-e6bba2d9****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]',
],
'SetCasterSceneConfig' => [
'summary' => 'Configures all settings of a scene. This operation clears all previous settings of the scene and applies new settings, including the layout setting, to the scene.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'ComponentId',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The list of component IDs. The components in the array are ordered from bottom to top.'."\n"
."\n"
.'> N specifies the position of the component. For example, ComponentId.1 is the first component ID and ComponentId.2 is the second component ID.',
'type' => 'array',
'items' => ['description' => 'The list of component IDs. The components in the array are ordered from bottom to top.'."\n"
."\n"
.'> N specifies the position of the component. For example, ComponentId.1 is the first component ID and ComponentId.2 is the second component ID.', 'type' => 'string', 'required' => false, 'example' => '[ "a2b8e671-2fe5-4642-a2ec-bf931826****", "a2b8e671-2fe5-4642-a2ec-28374657****"]', 'title' => ''],
'required' => false,
'example' => '[ "a2b8e671-2fe5-4642-a2ec-bf931826****", "a2b8e671-2fe5-4642-a2ec-28374657****"]',
'maxItems' => 10,
'title' => '',
],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you created the production studio by calling the [CreateCaster](~~2848009~~) operation, use the CasterId value returned in the response.'."\n"
."\n"
.'- If you created the production studio in the ApsaraVideo Live console, go to the **Production Studio** > **Cloud Production Studio** page in the **ApsaraVideo Live console** to view the ID.'."\n"
."\n"
.'> The name of the production studio in the list on the Cloud Production Studio page is the production studio ID.', 'type' => 'string', 'required' => true, 'example' => '80787064-1c94-4dc1-85ce-9409960a****', 'title' => ''],
],
[
'name' => 'SceneId',
'in' => 'query',
'schema' => ['description' => 'The scene ID.', 'type' => 'string', 'required' => true, 'example' => '242b4e2c-c30f-4442-85ba-2e3e4e3d****', 'title' => ''],
],
[
'name' => 'LayoutId',
'in' => 'query',
'schema' => ['description' => 'The layout ID. If you query the layout list for the production studio by calling the [DescribeCasterLayouts](~~2848028~~) operation, use the LayoutId value returned in the response.', 'type' => 'string', 'required' => false, 'example' => '0c6da077-f037-49e8-8440-3be13393****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidSceneId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter SceneId is invalid, please check and try again.'],
['errorCode' => 'InvalidCaptionResource', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The resource referenced by the voice caption component does not exist or is not a live source. Please check and try again.'],
['errorCode' => 'IncorrectSceneStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene status is not supported, please check and try again.'],
['errorCode' => 'ComponentNumberExceed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The number of components exceeds the limit. Please check and try again.'],
['errorCode' => 'IncorrectSceneStatus.Idle', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene status is idle, please check and try again.'],
['errorCode' => 'IncorrectSceneStatus.ConfigError', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene configuration error, please check and try again.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidScene.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene does not exist, please check and try again.'],
['errorCode' => 'InvalidLayout.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'LayoutId does not exist, please check and try again.'],
['errorCode' => 'InvalidComponent.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The component to be operated does not exist. Please check and try again.'],
['errorCode' => 'ResourceInChannel.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The resource does not exist. Please check and try again.'],
],
412 => [
['errorCode' => 'ResourceInChannel.PreConditionFailed', 'errorMessage' => '%s, please try again later.', 'description' => 'Resource pre-verification failed, please try again later.'],
['errorCode' => 'ResourceInChannel.Invalid', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Resource and channel material address are inconsistent, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'SetCasterSceneConfig',
'description' => 'This operation sets all configurations for a scene. It clears the existing configuration and applies the new layout to the specified scene.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for this API is 10 calls per second per user. API calls that exceed this limit are throttled, which may affect your business. Plan your API calls to avoid service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetCasterSceneConfig'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:SetCasterSceneConfig',
'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-122CC1A52FA7\\"\\n}","type":"json"}]',
],
'SetLiveDomainCertificate' => [
'summary' => 'Sets whether the certificate feature is enabled for a domain and modifies certificate information.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The accelerated domain name to which the certificate belongs. This parameter belongs to the `https` acceleration type.', 'type' => 'string', 'required' => true, 'example' => 'developer.aliyundoc.com', 'title' => ''],
],
[
'name' => 'CertName',
'in' => 'query',
'schema' => ['description' => 'The certificate name.', 'type' => 'string', 'required' => false, 'example' => 'Cert-****', 'title' => ''],
],
[
'name' => 'CertType',
'in' => 'query',
'schema' => [
'description' => 'The certificate type. Valid values:'."\n"
."\n"
.'- **upload**: Upload certificate.'."\n"
.'- **cas**: Certificate Authority Service certificate.'."\n"
.'- **free**: Personal test certificate (free edition).',
'enumValueTitles' => ['cas' => 'Certificate Authority Service certificate', 'upload' => 'Upload certificate', 'free' => 'Personal test certificate'],
'type' => 'string',
'required' => false,
'enum' => ['free', 'cas', 'upload'],
'example' => 'free',
'title' => '',
],
],
[
'name' => 'SSLProtocol',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to enable the HTTPS certificate. Valid values:'."\n"
.'- **on**: Enable. If this parameter is set to **on**, you must also specify the SSLPub and SSLPri request parameters.'."\n"
.'- **off** (default): Disable.', 'type' => 'string', 'required' => true, 'example' => 'off', 'title' => ''],
],
[
'name' => 'SSLPub',
'in' => 'query',
'schema' => ['description' => 'The public key content.'."\n"
."\n"
.'> This parameter is required only when SSLProtocol is set to on.'."\n", 'type' => 'string', 'required' => false, 'example' => '****', 'title' => ''],
],
[
'name' => 'SSLPri',
'in' => 'query',
'schema' => ['description' => 'The private key content.'."\n"
."\n"
.'> This parameter is required only when SSLProtocol is set to on.'."\n"
."\n", 'type' => 'string', 'required' => false, 'example' => '****', 'title' => ''],
],
[
'name' => 'ForceSet',
'in' => 'query',
'schema' => ['description' => 'Ignores the duplicate certificate name check and overwrites the existing certificate information with the same name. Fixed value: **1**.', 'type' => 'string', 'required' => false, 'example' => '1', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['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' => 'The domain is not online, please check the domain status and try again later.'],
],
403 => [
['errorCode' => 'IllegalOperation', 'errorMessage' => 'Illegal domain operate is not permitted.', 'description' => ''],
],
[
['errorCode' => 'CertName.MissingParameter', 'errorMessage' => 'The CertName parameter is required.', 'description' => ''],
],
],
'eventInfo' => [
'enable' => false,
'eventNames' => [],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]',
'title' => 'Set domain certificate',
'description' => 'First obtain the live streaming domain, then call this API operation to set whether the certificate is enabled for the domain and to modify certificate information.'."\n"
."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this API operation is 30 calls per second. If the limit is exceeded, API calls will be throttled, which may affect your business. Please make calls appropriately.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetLiveDomainCertificate'],
],
],
'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' => 'Calls SetLiveDomainMultiStreamConfig to enable or disable the dual-stream disaster recovery switch.',
'methods' => ['get'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '250492',
'abilityTreeNodes' => ['FEATURElive9P39J9'],
],
'parameters' => [
[
'name' => 'Domain',
'in' => 'query',
'schema' => ['description' => 'The primary streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'Switch',
'in' => 'query',
'schema' => [
'description' => 'The feature switch. Valid values:'."\n"
.'- **on**: enabled'."\n"
.'- **off**: disabled.',
'enumValueTitles' => ['off' => 'Disabled.', 'on' => 'Enabled.'],
'type' => 'string',
'required' => true,
'enum' => ['on', 'off'],
'example' => 'on',
'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '5c6a2a0df228-4a64-af62-20e91b96****'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => 'Parameter error'],
['errorCode' => 'CodeGetPushbackDomainError', 'errorMessage' => 'Unable to get the push domain name, please check the domain name mapping configuration.', 'description' => 'Unable to get the push domain name, please check the domain name mapping configuration.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => 'error on the live liveapi server.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b96****\\"\\n}","type":"json"}]',
'title' => 'Set dual-stream disaster recovery switch',
'description' => 'Calls this operation to enable the dual-stream disaster recovery feature, which allows stream ingest to the same live stream name.'."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this operation is 10 calls per second. If this limit is exceeded, the API call is throttled, which may affect your business. Call this operation appropriately.',
'changeSet' => [
['createdAt' => '2025-04-27T04:00:13.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetLiveDomainMultiStreamConfig'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:SetLiveDomainMultiStreamConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'SetLiveDomainMultiStreamMaster' => [
'summary' => 'Manually switches between the active stream and standby stream.',
'methods' => ['get'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '250500',
'abilityTreeNodes' => ['FEATURElive9P39J9'],
],
'parameters' => [
[
'name' => 'Domain',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.aliyundoc.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => [
'description' => 'The name of the application to which the live stream belongs.',
'type' => 'string',
'required' => true,
'enum' => [],
'example' => 'testapp',
'title' => '',
],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The name of the live stream.', 'type' => 'string', 'required' => true, 'example' => 'teststream', 'title' => ''],
],
[
'name' => 'UpstreamSequence',
'in' => 'query',
'schema' => [
'description' => 'The unique identifier of the stream ingest. You can obtain this identifier by calling the [QueryLiveDomainMultiStreamList](~~2871872~~) operation.',
'type' => 'string',
'required' => true,
'enum' => [],
'example' => 'teststream_***',
'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4E*****43-CB92E68F4CD8'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => 'Parameter error'],
['errorCode' => 'LiveServiceNotFound', 'errorMessage' => 'Your account does not open Live service yet', 'description' => 'Your account has not yet activated ApsaraVideo Live.'],
['errorCode' => 'CodeTaskNotExist', 'errorMessage' => 'Task does not exist.', 'description' => 'The task does not exist.'],
['errorCode' => 'CodeTaskNotStarted', 'errorMessage' => 'Task not started, cannot operate.', 'description' => 'Task not started, cannot operate.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => 'error on the live liveapi server.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'SetLiveDomainMultiStreamMaster',
'changeSet' => [
['createdAt' => '2025-04-27T04:00:13.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetLiveDomainMultiStreamMaster'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:SetLiveDomainMultiStreamMaster',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4E*****43-CB92E68F4CD8\\"\\n}","type":"json"}]',
],
'SetLiveDomainMultiStreamOptimalMode' => [
'summary' => 'Sets the automatic mode switch for dual-stream disaster recovery.',
'methods' => ['get'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '250499',
'abilityTreeNodes' => ['FEATURElive9P39J9'],
],
'parameters' => [
[
'name' => 'Domain',
'in' => 'query',
'schema' => ['description' => 'The primary streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => [
'description' => 'The application name.',
'type' => 'string',
'required' => true,
'enum' => [],
'example' => 'testapp',
'title' => '',
],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The live stream name.', 'type' => 'string', 'required' => true, 'example' => 'teststream', 'title' => ''],
],
[
'name' => 'OptimalMode',
'in' => 'query',
'schema' => [
'description' => 'The automatic mode switch. Valid values:'."\n"
.'- **on**: enabled'."\n"
.'- **off**: disabled.',
'enumValueTitles' => ['off' => 'Disabled.', 'on' => 'Enabled.'],
'type' => 'string',
'required' => true,
'enum' => ['on', 'off'],
'example' => 'on',
'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => 'Parameter error'],
['errorCode' => 'CodeTaskNotExist', 'errorMessage' => 'Task does not exist.', 'description' => 'The task does not exist.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => 'error on the live liveapi server.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\"\\n}","type":"json"}]',
'title' => 'Set dual-stream disaster recovery automatic mode switch',
'changeSet' => [
['createdAt' => '2025-04-27T04:00:13.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetLiveDomainMultiStreamOptimalMode'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:SetLiveDomainMultiStreamOptimalMode',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'SetLiveDomainStagingConfig' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'required' => true, 'example' => 'developer.aliyundoc.com', 'title' => ''],
],
[
'name' => 'Functions',
'in' => 'query',
'schema' => ['description' => 'The list of features. Specify ConfigId only when you modify a configuration. For more information, see **Functions format description**.', 'type' => 'string', 'required' => true, 'example' => '[{"functionArgs":[{"argName":"enable","argValue":"on"},{"argName":"pri","argValue":"1"},{"argName":"rule","argValue":"xxx"}],"functionName":"edge_function"}]', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['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' => 'The input function name is not supported.'],
['errorCode' => 'InvalidArgName.ValueNotSupported', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The ArgName passed in is invalid.'],
['errorCode' => 'InvalidArgValue.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The ArgValue passed in is invalid.'],
['errorCode' => 'InvalidRule.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The Rule passed in is invalid.'],
],
],
'title' => 'SetLiveDomainStagingConfig',
'summary' => 'Sets or modifies domain configurations in the canary release environment.',
'description' => '## Usage notes'."\n"
."\n"
.'Obtain an accelerated domain name. You can then call this operation to set or modify domain name configurations in the staging environment. For more information, see **Functions format description**.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'This operation is limited to 30 queries per second (QPS) per user. API calls that exceed this limit are throttled, which may affect your business. For more information, see [QPS limits](~~343507~~).',
'requestParamsDescription' => '## Function format description'."\n"
."\n"
.'- To set a configuration, see the following example: `[{"functionArgs":[{"argName":"enable","argValue":"on"},{"argName":"pri","argValue":"1"},{"argName":"rule","argValue":"xxx"}],"functionName":"edge_function"}]`'."\n"
."\n"
.'- To modify a configuration, specify the configuration item using the ConfigId parameter, which is of the Long data type. See the following example: `[{"functionArgs":[{"argName":"enable","argValue":"on"},{"argName":"pri","argValue":"1"},{"argName":"rule","argValue":"yyy"}],"ConfigId":123456,"functionName":"edge_function"}]`'."\n"
."\n"
.'Note: All parameter values are strings.'."\n"
."\n"
.'| Feature name | Required parameters | Optional parameters |'."\n"
.'| -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n"
.'| edge_function: The Edge Routine. | \\- **rule**: The DSL rule. - **pri**: The priority. - **enable**: Specifies whether the rule is enabled. Valid values: on and off. | \\- **name**: The rule name. - **pos**: The position where the rule is executed. - **brk**: Specifies whether to skip the remaining rules at the current execution position after the current rule is hit. - **option**: The option control. - **grammar**: The grammar control. Valid values: empty, es2, and js. - **jsmode**: The JavaScript domain name whitelist control. Valid values: redirect and bypass. |',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetLiveDomainStagingConfig'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:SetLiveDomainStagingConfig',
'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"}]',
],
'SetLiveEdgeTransfer' => [
'summary' => 'Calls SetLiveEdgeTransfer to configure live stream relay settings.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The ingest domain name. Live stream relay is configured at the granularity of the ingest DomainName. Each domain can have only one live stream relay configuration.', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The application name to which the live stream belongs. Regular expressions are supported for configuration with exceptions. For more information, see **AppName and StreamName Parameter Configuration Instructions** below. For example: liveApp****[1,2,3] indicates that the three apps liveApp****1, liveApp****2, and liveApp****3 are allowed for stream relay.'."\n"
."\n"
.'> - This parameter only takes effect for the TargetDomainList in the request parameters.'."\n"
.'> - When configuring the `AppName` parameter value using regular expressions, the ^ or $ characters cannot be used, otherwise stream relay will fail.', 'type' => 'string', 'required' => false, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The stream name. Regular expressions are supported for configuration with exceptions. For more information, see **AppName and StreamName Parameter Configuration Instructions** below. For example: liveStream****[1,2,3] indicates that the three streams liveStream****1, liveStream****2, and liveStream****3 are allowed for stream relay.'."\n"
."\n"
.'> - This parameter only takes effect for the TargetDomainList in the request parameters.'."\n"
.'> - When configuring the `StreamName` parameter value using regular expressions, the ^ or $ characters cannot be used, otherwise stream relay will fail.', 'type' => 'string', 'required' => false, 'example' => 'liveStream****', 'title' => ''],
],
[
'name' => 'TargetDomainList',
'in' => 'query',
'schema' => ['description' => 'The list of target domains specified by the user for stream relay. Multiple domains are separated by commas (,). The request must contain one of the `TargetDomainList` and `HttpDns` parameters, and the two are mutually exclusive.'."\n"
."\n"
.'> - When `TargetDomainList` is set in the request parameters, the `AppName` and `StreamName` parameters take effect.'."\n"
.'> - When `TargetDomainList` is set in the request parameters, the `HttpDns` parameter cannot be set.', 'type' => 'string', 'required' => false, 'example' => 'learn.aliyundoc.com,guide.aliyundoc.com', 'title' => ''],
],
[
'name' => 'HttpDns',
'in' => 'query',
'schema' => ['description' => 'The HTTPDNS interface for obtaining the stream relay target address. The request must contain one of the `TargetDomainList` and `HttpDns` parameters, and the two are mutually exclusive.'."\n"
."\n"
.'> If `HttpDns` is set in the request parameters, the `TargetDomainList` parameter cannot be set, and the `AppName` and `StreamName` restrictions do not take effect.'."\n"
."\n"
.'Live stream relay has requirements for the message structure returned by the HTTPDNS interface. For more information, see **HTTPDNS Instructions** below.', 'type' => 'string', 'required' => false, 'example' => 'http://developer.aliyundoc.com', 'title' => ''],
],
[
'name' => 'TransferArgs',
'in' => 'query',
'schema' => [
'description' => 'Specifies whether to pass through ingest parameters. Valid values:'."\n"
.'- **yes**: Ingest parameters are passed through.'."\n"
.'- **no** (default): Ingest parameters are not passed through.',
'enumValueTitles' => ['no' => 'Ingest parameters are not passed through', 'yes' => 'Ingest parameters are passed through'],
'type' => 'string',
'required' => false,
'default' => 'no',
'enum' => ['yes', 'no'],
'example' => 'yes',
'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => 'Illegal input parameters'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\"\\n}","type":"json"}]',
'title' => 'Configure live stream relay settings',
'description' => 'The live edge stream relay configuration made by calling SetLiveEdgeTransfer only takes effect for streams that start after the configuration is completed. The following are examples of some typical scenarios:'."\n"
."\n"
.'| Scenario | Analysis | Result |'."\n"
.'| -------------- | -------------- | ------ |'."\n"
.'| 1. The user has already started streaming before calling SetLiveEdgeTransfer. | The live edge stream relay configuration does not exist at this point. | The stream is not affected by the SetLiveEdgeTransfer configuration, meaning live edge stream relay will not be initiated. |'."\n"
.'| 2. The user interrupts streaming that was started before calling SetLiveEdgeTransfer, and then resumes streaming. | The live edge stream relay configuration already exists at this point. | The resumed stream will initiate live stream relay according to the SetLiveEdgeTransfer configuration. |'."\n"
.'| 3. The user starts streaming after calling SetLiveEdgeTransfer. | The live edge stream relay configuration already exists at this point. | This stream will initiate live stream relay according to the SetLiveEdgeTransfer configuration. |'."\n"
."\n"
.'## QPS Limit'."\n"
.'The single-user QPS limit for this API is 100 calls/second. Exceeding the limit will result in API throttling, which may affect your business. Please call this API appropriately.',
'requestParamsDescription' => '### AppName and StreamName Parameter Configuration Instructions'."\n"
.'Neither AppName nor StreamName supports `^` or `$` matching. If either value contains `^` or `$`, stream relay will fail.'."\n"
.'### HTTPDNS Instructions'."\n"
.'If `HttpDns` is set in the request parameters of SetLiveEdgeTransfer, live stream relay will access the HTTPDNS interface set through `HttpDns` to obtain the stream relay target address.'."\n"
."\n"
.'Request example:'."\n"
.'http://developer.aliyundoc.com/?host={}&app={}&name={}{<_ali_user_args>}'."\n"
.'Note: When actually requesting the HTTPDNS interface, the following parameters will be replaced with information from the ingest URL:'."\n"
."\n"
.'- {}: The ingest domain name.'."\n"
.'- {}: The application name to which the live stream belongs.'."\n"
.'- {}: The stream name.'."\n"
.'- {<_ali_user_args>}: The parameters carried by the user\'s ingest stream.'."\n"
."\n"
.'The requirements for the interface return code and return data for live stream relay are as follows:'."\n"
.'- A return code of 403 indicates access failure, and stream relay is not required.'."\n"
.'- A return code of 200 indicates successful access, and the result is returned in JSON format. The structure and parameter examples are as follows:'."\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"
.'| Parameter | Description | Example |'."\n"
.'| -------------- | -------------- | ------ |'."\n"
.'| name | The CDN name. It can be customized but must not be duplicated. | cdnA**** |'."\n"
.'| upstream_url | The ingest address to relay to. | rtmp://developer.aliyundoc.com/live/testedge**** |'."\n"
."\n"
.'> The relay domains are obtained from the returned JSON result. If multiple relay domains are returned, it means the original stream needs to be pushed to multiple destinations.'."\n"
.'- If the returned data structure does not meet the requirements, stream relay will fail.',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetLiveEdgeTransfer'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:SetLiveEdgeTransfer',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'SetLiveLazyPullStreamInfoConfig' => [
'summary' => 'Configures triggered stream pulling.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain name.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the application.'."\n"
."\n"
.'> To trigger origin fetch for all applications, set this parameter to **ali\\_all\\_app**.', 'type' => 'string', 'required' => true, 'example' => 'ali_all_app', 'title' => ''],
],
[
'name' => 'PullDomainName',
'in' => 'query',
'schema' => ['description' => 'The origin server that hosts the live stream. To specify multiple origin servers, separate them with semicolons (;).', 'type' => 'string', 'required' => true, 'example' => 'guide.aliyundoc.com', 'title' => ''],
],
[
'name' => 'PullAppName',
'in' => 'query',
'schema' => ['description' => 'The source application name.'."\n"
."\n"
.'> Leave this parameter empty to use the application name from the playback URL of the source stream.', 'type' => 'string', 'required' => false, 'example' => 'livePullApp****', 'title' => ''],
],
[
'name' => 'TranscodeLazy',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to trigger stream pulling when a request for a transcoded stream is made. Default value: **no**. Valid values:'."\n"
."\n"
.'- **yes**'."\n"
."\n"
.'- **no**', 'type' => 'string', 'required' => false, 'example' => 'no', 'title' => ''],
],
[
'name' => 'PullProtocol',
'in' => 'query',
'schema' => ['description' => 'The protocol to use for pulling the stream from the source. Valid values:'."\n"
."\n"
.'- **rtmp**'."\n"
."\n"
.'- **httpflv**'."\n"
."\n"
.'- **hls**', 'type' => 'string', 'required' => true, 'example' => 'rtmp', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [],
'title' => 'SetLiveLazyPullStreamInfoConfig',
'description' => 'This API configures triggered stream pulling. When a live stream starts on the origin server, ApsaraVideo Live automatically pulls the stream for live playback.'."\n"
."\n"
.'> This API does not support the IPv6 protocol.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'You can call this operation up to 1,000 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'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' => 'Error codes changed'],
],
'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' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\"\\n}","type":"json"}]',
],
'SetLiveMpuTaskSei' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '167350',
'abilityTreeNodes' => ['FEATUREliveK6LRQR'],
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID.'."\n"
."\n"
.'> The ID can be up to 64 characters in length and can contain letters, digits, underscores (\\_), and hyphens (-).', 'type' => 'string', 'required' => true, 'example' => 'yourAppId', 'title' => ''],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'The task ID.'."\n"
."\n"
.'> The ID can be up to 55 characters in length and can contain letters, digits, underscores (\\_), and hyphens (-).', 'type' => 'string', 'required' => true, 'example' => 'yourTaskId', 'title' => ''],
],
[
'name' => 'CustomSei',
'in' => 'query',
'schema' => ['description' => 'The custom SEI.'."\n"
."\n"
.'> The value is a JSON string that can be up to 4,096 characters in length.', 'type' => 'string', 'required' => true, 'example' => '{"key": "value"}', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => '%s.', 'description' => 'Parameter verification failed'],
['errorCode' => 'InvalidAppId', 'errorMessage' => '%s, please check and try again later.', 'description' => 'AppId is invalid, please check and try again.'],
['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is missing, please check and try again.'],
],
403 => [
['errorCode' => 'OperationDenied', 'errorMessage' => 'Your account has not enabled the Live service', 'description' => ''],
['errorCode' => 'Forbidden', 'errorMessage' => '%s, please check and try again later.', 'description' => 'No permission, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'InternalError', 'description' => ''],
],
],
'title' => 'SetLiveMpuTaskSei',
'summary' => 'Configures custom supplemental enhancement information (SEI) for co-streaming.',
'description' => '## [](#)Usage notes'."\n"
."\n"
.'You can call this operation to configure custom SEI for a mixed-stream relay task.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.',
'changeSet' => [
['createdAt' => '2024-07-04T06:14:35.000Z', 'description' => 'Error codes changed'],
],
'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' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","type":"json"}]',
],
'SetLiveStreamBlock' => [
'summary' => 'Sets stream-level blocking for live streams by calling SetLiveStreamBlock.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'high',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveOLG5VH'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the application to which the live stream belongs. You can view the AppName on the [Stream Management](~~197397~~) page.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The name of the live stream. You can view the StreamName on the [Stream Management](~~197397~~) page.', 'type' => 'string', 'required' => true, 'example' => 'liveStream****', 'title' => ''],
],
[
'name' => 'BlockType',
'in' => 'query',
'schema' => [
'description' => 'The blocking mode. Valid values:'."\n"
.'- blacklist: blacklist.'."\n"
.'- whitelist: whitelist.',
'enumValueTitles' => ['blacklist' => 'Blacklist.', 'whitelist' => 'Whitelist.'],
'type' => 'string',
'required' => true,
'enum' => ['blacklist', 'whitelist'],
'example' => 'blacklist',
'title' => '',
],
],
[
'name' => 'LocationList',
'in' => 'query',
'schema' => ['description' => 'The blocked regions, such as CN and AS. Separate multiple regions with commas (,).', 'type' => 'string', 'required' => true, 'example' => 'CN', 'title' => ''],
],
[
'name' => 'ReleaseTime',
'in' => 'query',
'schema' => ['description' => 'The end time of the blocking period in UTC. If this parameter is not specified, the blocking lasts for 7 days by default.', 'type' => 'string', 'required' => false, 'example' => '2016-06-29T19:00:00Z', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'Description' => ['description' => 'The result description.'."\n"
.'- Success: ok.'."\n"
.'- Failure: failure details.', 'type' => 'string', 'example' => 'ok', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '3be7ade8-d907-483c-b24a-0dad4595beaf', 'title' => ''],
'Status' => ['description' => 'The task status. Valid values:'."\n"
.'- ok: succeeded.'."\n"
.'- fail: failed.'."\n"
."\n"
.'> The task is considered failed if any single subtask fails to be created.', 'type' => 'string', 'example' => 'ok', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidReleaseTime.Malformed', 'errorMessage' => 'Specified ReleaseTime is malformed.', 'description' => ''],
['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => 'Illegal input parameters'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Description\\": \\"ok\\",\\n \\"RequestId\\": \\"3be7ade8-d907-483c-b24a-0dad4595beaf\\",\\n \\"Status\\": \\"ok\\"\\n}","type":"json"}]',
'title' => 'Set live stream-level blocking',
'description' => 'You can configure up to 200 live stream area blocking rules for a domain name. If duplicate rules with the same AppName and StreamName exist in the live stream area blocking rules, the most recently updated rule takes effect.'."\n"
.'### QPS limit'."\n"
.'The single-user QPS limit for this operation is 50 calls per second. If this limit is exceeded, the API invocations are throttled, which may affect your business. Invoke this operation appropriately.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetLiveStreamBlock'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:SetLiveStreamBlock',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
],
'SetLiveStreamDelayConfig' => [
'summary' => 'You can call SetLiveStreamDelayConfig to configure live streaming latency.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'HlsDelay',
'in' => 'query',
'schema' => ['description' => 'The HLS playback latency. Unit: seconds.'."\n"
."\n"
.'> If this parameter is left empty, the latency is set based on the value of HlsLevel.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '4', 'title' => ''],
],
[
'name' => 'HlsLevel',
'in' => 'query',
'schema' => ['description' => 'The HLS latency level. This parameter is ignored if HlsDelay is set.'."\n"
."\n"
.'Valid values:'."\n"
."\n"
.'- **short** (default): 3 seconds.'."\n"
."\n"
.'- **medium**: 6 seconds.'."\n"
."\n"
.'- **long**: 15 seconds.'."\n"
."\n"
.'> If both HlsDelay and HlsLevel are left empty, the default value **short** is used.', 'type' => 'string', 'required' => false, 'example' => 'short', 'title' => ''],
],
[
'name' => 'FlvDelay',
'in' => 'query',
'schema' => ['description' => 'The FLV playback latency. Unit: seconds.'."\n"
."\n"
.'> If this parameter is left empty, the latency is set based on the value of FlvLevel.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '8', 'title' => ''],
],
[
'name' => 'FlvLevel',
'in' => 'query',
'schema' => ['description' => 'The FLV latency level. This parameter is ignored if FlvDelay is set.'."\n"
."\n"
.'Valid values:'."\n"
."\n"
.'- **short** (default): 2 seconds.'."\n"
."\n"
.'- **medium**: 4 seconds.'."\n"
."\n"
.'- **long**: more than 4 seconds.'."\n"
."\n"
.'> If both FlvDelay and FlvLevel are left empty, the default value **short** is used.', 'type' => 'string', 'required' => false, 'example' => 'medium', 'title' => ''],
],
[
'name' => 'RtmpDelay',
'in' => 'query',
'schema' => ['description' => 'The RTMP playback latency. Unit: seconds.'."\n"
."\n"
.'> If this parameter is left empty, the latency is set based on the value of RtmpLevel.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '4', 'title' => ''],
],
[
'name' => 'RtmpLevel',
'in' => 'query',
'schema' => ['description' => 'The RTMP latency level. This parameter is ignored if RtmpDelay is set.'."\n"
."\n"
.'Valid values:'."\n"
."\n"
.'- **short** (default): 2 seconds.'."\n"
."\n"
.'- **medium**: 4 seconds.'."\n"
."\n"
.'- **long**: more than 4 seconds.'."\n"
."\n"
.'> If both RtmpDelay and RtmpLevel are left empty, the default value **short** is used.', 'type' => 'string', 'required' => false, 'example' => 'short', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '4C747C97-7ECD-4C61-8A92-67AD806331FF', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [],
'title' => 'SetLiveStreamDelayConfig',
'description' => '- This operation configures the latency for a streaming domain.'."\n"
."\n"
.'- The server-side cache stores an integer number of Groups of Pictures (GOPs). Therefore, the latency cannot be less than the GOP size. The actual latency is estimated based on the GOP size. For example, if you set RtmpDelay to 4 seconds for an RTMP stream and the GOP size is 2 seconds, the actual latency ranges from 2 seconds (4 - 2) to 6 seconds (4 + 2). If the GOP size is larger than the configured RtmpDelay, for example, GOP = 5 seconds and RtmpDelay = 4 seconds, the latency fluctuates between 0 and 9 seconds.'."\n"
."\n"
.'- Latency configurations do not take effect for audio-only streams. The default latency is close to 0 seconds.'."\n"
."\n"
.'- For an HLS configuration, the segment size is calculated as \\`Delay / 3\\` and rounded down to the nearest integer. The minimum segment size is 1 second. The maximum number of segments is 4 if the segment size is 3 seconds or more. Otherwise, the maximum is 6 segments.'."\n"
."\n"
.'- The actual HLS segment size cannot be smaller than the GOP size.'."\n"
."\n"
.'- The HLS latency is calculated as: Configured Segment Size × 3.'."\n"
."\n"
.'- If you do not call this operation, the system uses the default values. The default latency is 2 seconds for RTMP and 4 seconds for FLV. For HLS, the default segment size is 5 seconds, which results in a latency of 15 seconds with a maximum of 6 segments.'."\n"
."\n"
.'## Queries per second (QPS) limit'."\n"
."\n"
.'The QPS limit for this operation is 1,000 calls per second per user. If you exceed this limit, API calls are throttled, which may affect your business. Plan your calls accordingly.',
'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' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:SetLiveStreamDelayConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4C747C97-7ECD-4C61-8A92-67AD806331FF\\"\\n}","type":"json"}]',
],
'SetLiveStreamPreloadTasks' => [
'summary' => 'Sets live stream prefetch tasks. You can prefetch up to 100 live streams in a batch.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'none',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'PlayUrl',
'in' => 'query',
'schema' => ['description' => 'The live stream URLs. You can specify multiple URLs separated by commas (,). A maximum of 100 URLs can be specified.', 'type' => 'string', 'required' => true, 'example' => 'rtmp://guide.aliyundoc.com/liveApp****/liveStream****', 'title' => ''],
],
[
'name' => 'Area',
'in' => 'query',
'schema' => [
'description' => 'The prefetch area. Valid values:'."\n"
.'- domestic: the Chinese mainland.'."\n"
.'- overseas: outside the Chinese mainland, including Hong Kong (China), Macao (China), and Taiwan (China).'."\n"
.'- global: global acceleration.'."\n"
.' '."\n"
.'If you do not specify this parameter, the default prefetch area is the acceleration region configured for your domain name.',
'enumValueTitles' => ['domestic' => 'The Chinese mainland.', 'global' => 'Global acceleration.', 'overseas' => 'Outside the Chinese mainland, including Hong Kong (China), Macao (China), and Taiwan (China).'],
'type' => 'string',
'required' => false,
'enum' => ['domestic', 'overseas', 'global'],
'example' => 'domestic',
'title' => '',
],
],
[
'name' => 'PreloadedStartTime',
'in' => 'query',
'schema' => ['description' => 'The start time of the prefetch task in UTC. Example: 2016-06-29T19:00:00Z. If you do not specify this parameter, the default prefetch duration is 1 hour.', 'type' => 'string', 'required' => false, 'example' => '2016-06-29T19:00:00Z', 'title' => ''],
],
[
'name' => 'PreloadedEndTime',
'in' => 'query',
'schema' => ['description' => 'The end time of the prefetch task in UTC. Example: 2016-06-30T19:00:00Z. The interval between EndTime and StartTime cannot exceed 6 hours.', 'type' => 'string', 'required' => false, 'example' => '2016-06-30T19:00:00Z', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'FailedURL' => ['description' => 'The number of URLs for which the prefetch task failed.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'PreloadTasksMessages' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'PreloadTasksMessage' => [
'description' => 'The details of the live stream prefetch task.',
'type' => 'array',
'items' => [
'description' => 'The details of the live stream prefetch task.',
'type' => 'object',
'properties' => [
'Description' => ['description' => 'Indicates whether the prefetch task is successful. Valid values:'."\n"
.'- Successfully: successful.'."\n"
.'- InternalError: failed.', 'type' => 'string', 'example' => 'Successfully', 'title' => ''],
'PlayUrl' => ['description' => 'The live stream URL.', 'type' => 'string', 'example' => 'rtmp://guide.aliyundoc.com/liveApp****/liveStream****', 'title' => ''],
'TaskId' => ['description' => 'The task ID.', 'type' => 'string', 'example' => 'yourTaskId', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '36E0E523-E0C6-5D95-A465-A8EA2DCBA2A5', 'title' => ''],
'Status' => ['description' => 'The task status. Valid values:'."\n"
.'- Success: successful.'."\n"
.'- Failed: failed.'."\n"
."\n"
.'> The status is Failed if any task fails to be created.', 'type' => 'string', 'example' => 'Success', 'title' => ''],
'SuccessURL' => ['description' => 'The number of URLs for which the prefetch task succeeded.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'TotalURL' => ['description' => 'The total number of URLs in the prefetch task.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => 'Illegal input parameters'],
['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' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
'title' => 'Set live stream prefetch tasks',
'description' => '- You can call this operation to set live stream prefetch tasks in batches. You can set up to 100 live stream URLs at a time.'."\n"
.'- Live stream prefetch does not support HLS URLs.'."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this operation is 50 calls per second. If the limit is exceeded, API calls are throttled, which may affect your business. Call this operation as needed.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetLiveStreamPreloadTasks'],
],
],
'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' => 'Sets the stream ingest callback configuration.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '107234',
'abilityTreeNodes' => ['FEATUREliveYUZBM3'],
'tenantRelevance' => 'tenant',
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The ingest domain.', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com', 'title' => ''],
],
[
'name' => 'SwitchNotifyUrl',
'in' => 'query',
'schema' => ['description' => 'The callback URL for stream switching information.', 'type' => 'string', 'required' => false, 'example' => 'http://guide.aliyundoc.com/switchnotify', 'title' => ''],
],
[
'name' => 'NotifyUrl',
'in' => 'query',
'schema' => ['description' => 'The URL to which live stream information is pushed.', 'type' => 'string', 'required' => false, 'example' => 'http://guide.aliyundoc.com/notify', 'title' => ''],
],
[
'name' => 'ExceptionNotifyUrl',
'in' => 'query',
'schema' => ['description' => 'The callback URL for exception events.', 'type' => 'string', 'required' => false, 'example' => 'https://4a7e5f08.r37.cpolar.top/live/Rsssd/call-back/streamStart', 'title' => ''],
],
[
'name' => 'NotifyReqAuth',
'in' => 'query',
'schema' => [
'description' => 'Specifies whether to enable authentication. Valid values:'."\n"
."\n"
.'- **yes**: Enabled. If you set this parameter to **yes**, you must also set the NotifyAuthKey request parameter.'."\n"
.'- **no**: Disabled.'."\n"
."\n"
.'> If this parameter is not specified, the default value is **no**.'."\n"
."\n"
.'For the authentication logic, see **Stream ingest callback authentication description** below.',
'enumValueTitles' => ['no' => 'Disabled.', 'yes' => 'Enabled.'],
'type' => 'string',
'required' => false,
'default' => 'no',
'enum' => ['yes', 'no'],
'example' => 'yes',
'title' => '',
],
],
[
'name' => 'NotifyAuthKey',
'in' => 'query',
'schema' => ['description' => 'The authentication key.'."\n"
."\n"
.'> This parameter is required when the NotifyReqAuth request parameter is set to **yes**.'."\n"
."\n"
.'Value requirements:'."\n"
."\n"
.'- 16 to 64 characters in length.'."\n"
."\n"
.'- Supports uppercase letters, lowercase letters, and digits.', 'type' => 'string', 'required' => false, 'example' => '123456', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => ' 40A4F36D-A7CC-473A-88E7-154F92242566', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => 'Illegal input parameters'],
['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => 'Config has already exist.', 'description' => ''],
['errorCode' => 'CodeGetMainPlaybackDomainError', 'errorMessage' => 'Failed to obtain the main playback domain name.', 'description' => 'Failed to get primary playback domain name.'],
['errorCode' => 'CodeNotPushDomain', 'errorMessage' => 'The domain name is not a push domain name.', 'description' => 'The domain name is not a push domain name.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\" 40A4F36D-A7CC-473A-88E7-154F92242566\\"\\n}","type":"json"}]',
'title' => 'Set stream ingest callback notification URL configuration',
'description' => '- This operation allows you to configure the callback URL and authentication information for an ingest domain.'."\n"
."\n"
.'- The real-time stream status callback promptly notifies you of the results of stream ingest or stream disconnection operations. For more information, see [Stream ingest callback format description](~~54787~~).'."\n"
."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this operation is 15 calls per second. If this limit is exceeded, API calls are throttled, which may affect your business. Call this operation appropriately.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Callback logic description'."\n"
.'The publish callback logic in the live stream ingest status callback:'."\n"
."\n"
.'For RTMP stream ingest, after ApsaraVideo Live receives the On Publish message, if the ingest client does not actively disconnect within 2 seconds, ApsaraVideo Live sends a successful stream ingest callback.'."\n"
."\n"
.'Assume that you have an ingest domain A and a streaming domain B. If your domain B uses pull-based live streaming (fixed pull or triggered back-to-origin pull) and requires callbacks, configure the stream ingest callback on domain A. After configuration, the pull callback logic for domain B is the same as described above. By default, if no active disconnection occurs within 2 seconds after the connection is established, the pull is considered successful.'."\n"
.'> We recommend that you not only rely on callback notifications to determine whether stream ingest or pull access is normal, but also use the online stream list to verify that stream ingest is normal before distributing the live streaming URL to your application.'."\n"
."\n"
.'## Stream ingest callback authentication description'."\n"
.'The stream ingest callback authentication feature is disabled by default. You can enable authentication when configuring the stream ingest callback URL. After the feature is enabled, the authentication logic is as follows:'."\n"
."\n"
.'1. When ApsaraVideo Live initiates a callback request, it includes the `ALI-LIVE-TIMESTAMP` and `ALI-LIVE-SIGNATURE` fields in the HTTP(S) request header for the callback message receiving server to perform signature authentication. The value of `ALI-LIVE-SIGNATURE` is calculated as follows:'."\n"
.'`ALI-LIVE-SIGNATURE=MD5SUM(MD5CONTENT)`'."\n"
.'`MD5CONTENT=||`'."\n"
."\n"
.'2. When the callback message receiving server receives the callback message, it concatenates the callback domain name, the ALI-LIVE-TIMESTAMP value, and the authentication key, calculates the MD5 value to obtain an encrypted string, and then compares the calculated encrypted string with the ALI-LIVE-SIGNATURE field value in the HTTP(S) request header initiated by ApsaraVideo Live. If they do not match, the request is invalid.'."\n"
."\n"
.'## Special error codes'."\n"
.'|Error code |Description |HTTP status code |Meaning |'."\n"
.'|------------|--------|---------|------|'."\n"
.'|InternalError |The request processing has failed due to some unknown error. |500 |An unknown error occurred in the backend. |'."\n"
.'|InvalidDomain.NotFound | The domain provided does not exist in our records. |404 |The domain name is not found under the current account. |'."\n"
.'|IllegalOperation |Illegal domain operate is not permitted. |403 |The current operation is not supported, such as for non-live streaming domain names. |'."\n"
.'|InvalidNotifyUrl.Malformed |Specified parameter NotifyUrl is not valid. |400 |The callback URL is not a valid HTTP address. |'."\n"
.'|InvalidNotifyUrl.Unsafe |Specified NotifyUrl is not safe. |400 |The NotifyUrl value is not safe. |.',
'changeSet' => [
['createdAt' => '2025-05-14T02:41:18.000Z', 'description' => 'Error codes changed, Request parameters changed'],
['createdAt' => '2025-04-01T06:32:41.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2025-02-20T08:25:18.000Z', 'description' => 'Request parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetLiveStreamsNotifyUrlConfig'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:SetLiveStreamsNotifyUrlConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'SetShowListBackground' => [
'summary' => 'Sets the background for a playlist mode production studio.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '227260',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'allowEmptyValue' => false,
'schema' => ['description' => 'The production studio ID.'."\n"
.'- If you created the production studio by calling the [CreateCaster](~~2848009~~) operation, check the CasterId value returned by the CreateCaster operation.'."\n"
."\n"
.'- If you created the production studio in the ApsaraVideo Live console, navigate to **ApsaraVideo Live console** > **Production Studios** > **Cloud Production Studio** to view the production studio name.'."\n"
."\n"
.'> The production studio name in the production studio list on the Cloud Production Studio page is the production studio ID.', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', 'title' => ''],
],
[
'name' => 'ResourceType',
'in' => 'query',
'schema' => [
'description' => 'The material type. Valid values:'."\n"
."\n"
.'- LIVE: live streaming material. Supports live streaming materials and third-party URLs.'."\n"
."\n"
.'- VOD: video-on-demand material. Supports video-on-demand materials and third-party URLs.'."\n"
."\n"
.'- PIC: image material. Supports video-on-demand materials and third-party URLs.'."\n"
."\n"
.'> Specify one of the three values or leave this parameter empty.',
'enumValueTitles' => ['VOD' => 'video-on-demand material.', 'PIC' => 'image material.', 'LIVE' => 'live streaming material.'],
'type' => 'string',
'required' => false,
'enum' => ['VOD', 'PIC', 'LIVE'],
'example' => 'VOD',
'title' => '',
],
],
[
'name' => 'MaterialId',
'in' => 'query',
'schema' => ['description' => 'The video-on-demand material ID.'."\n"
."\n"
.'> Specify either this parameter or ResourceUrl.', 'type' => 'string', 'required' => false, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', 'title' => ''],
],
[
'name' => 'ResourceUrl',
'in' => 'query',
'schema' => ['description' => 'The URL of the external material.', 'type' => 'string', 'required' => false, 'example' => 'http://****/atestObject****.m3u8', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '987DA143-A39C-5B5D-AF5B-3B07944A0036'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'InvalidParameter.Status', 'errorMessage' => '%s, please check and try again.', 'description' => 'Status is invalid, please check and try again.'],
['errorCode' => 'InvalidParameter.StartTime', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter StartTime is invalid, please check and try again.'],
['errorCode' => 'InvalidParameter.EndTime', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter EndTime is invalid, please check and try again.'],
['errorCode' => 'LiveServiceNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The live service is not enabled. Please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => 'The caster does not exist.', 'description' => 'The caster does not exist.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"987DA143-A39C-5B5D-AF5B-3B07944A0036\\"\\n}","type":"json"}]',
'title' => 'Set playlist background',
'description' => '- Create a playlist mode production studio before calling this operation to add background materials. To create a production studio by using an API operation, see [CreateCaster](~~2848009~~).'."\n"
.'- You can use this operation to create, update, or delete a playlist background. To delete the background, leave the ResourceType, ResourceUrl, and MaterialId parameters empty. '."\n"
."\n"
.'>'."\n"
."\n"
.'- When using ApsaraVideo VOD resources, use managed bucket resources first. Resources in your own bucket may expire. If you use resources in your own bucket, check the resource validity period.'."\n"
."\n"
.'- Use ApsaraVideo Live and ApsaraVideo VOD resources as material input first. Resources from third-party URLs may fail to play. Verify the quality and validity of such resources.'."\n"
."\n"
.'>'."\n"
."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this operation is 10 calls per second. If the limit is exceeded, the API call is throttled, which may affect your business. Call this operation appropriately.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetShowListBackground'],
],
],
'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' => 'Configures authentication for snapshot callbacks.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveMH1XD3'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.aliyundoc.com', 'title' => ''],
],
[
'name' => 'CallbackReqAuth',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to enable callback authentication. Valid values:'."\n"
."\n"
.'- **yes**: enables'."\n"
."\n"
.'- **no**: disables', 'type' => 'string', 'required' => true, 'example' => 'yes', 'title' => ''],
],
[
'name' => 'CallbackAuthKey',
'in' => 'query',
'schema' => ['description' => 'The authentication key.', 'type' => 'string', 'required' => true, 'example' => 'yourkey', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD5', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is missing, please check and try again.'],
['errorCode' => 'MalformedParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Invalid parameter, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => 'error on the live liveapi server.'],
],
],
'title' => 'SetSnapshotCallbackAuth',
'description' => '- Before calling this API, configure a callback URL first. For more information, see [AddLiveAppSnapshotConfig](~~2847897~~).'."\n"
."\n"
.'- The snapshot service supports adding a signature header to HTTP or HTTPS callback requests. This allows the receiving server to authenticate the signature and prevent unauthorized or invalid requests. For more information, see [Usage notes for callback authentication](~~417349~~).'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'You can call this operation up to 30 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetSnapshotCallbackAuth'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:SetSnapshotCallbackAuth',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD5\\"\\n}","type":"json"}]',
],
'StartCaster' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'paid',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you create the production studio by calling the [CreateCaster](~~2848009~~) operation, use the CasterId value returned in the response.'."\n"
."\n"
.'- If you create the production studio in the ApsaraVideo Live console, go to the **Production Studio** > **Cloud Production Studio** page to view the ID.'."\n"
."\n"
.'> The name of the production studio in the list on the Cloud Production Studio page is the production studio ID.', 'type' => 'string', 'required' => true, 'example' => '80787064-1c94-4dc1-85ce-9409960a****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The information about the production studio.',
'type' => 'object',
'properties' => [
'PgmSceneInfos' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'SceneInfo' => [
'itemNode' => true,
'description' => 'The list of PGM scenarios.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'A PGM scenario.',
'type' => 'object',
'properties' => [
'SceneId' => ['description' => 'The scenario ID.', 'type' => 'string', 'example' => 'b5f8c837-ceeb-424f-b30b-68e94e86****', 'title' => ''],
'StreamInfos' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'StreamInfo' => [
'description' => 'The list of bypass output streams.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'A bypass output stream.',
'type' => 'object',
'properties' => [
'OutputStreamUrl' => ['description' => 'The playback URL.', 'type' => 'string', 'example' => 'rtmp://abclive/caster/example.net', 'title' => ''],
'TranscodeConfig' => ['description' => 'The transcoding configuration. Valid values:'."\n"
."\n"
.'- **lsd**: standard definition.'."\n"
."\n"
.'- **lld**: low definition.'."\n"
."\n"
.'- **lud**: ultra-high definition.'."\n"
."\n"
.'- **lhd**: high definition.', 'type' => 'string', 'example' => 'lld', 'title' => ''],
'VideoFormat' => ['description' => 'The format. Valid values:'."\n"
."\n"
.'- **flv**.'."\n"
."\n"
.'- **rtmp**.'."\n"
."\n"
.'- **m3u8**.', 'type' => 'string', 'example' => 'flv', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'StreamUrl' => ['description' => 'The playback stream URL for the PGM scenario of the production studio. This is not the URL for the bypass output stream.', 'type' => 'string', 'example' => 'rtmp://abclive/caster/example.edu', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'PvwSceneInfos' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'SceneInfo' => [
'itemNode' => true,
'description' => 'The list of PVW scenarios.',
'title' => '',
'type' => 'array',
'items' => [
'description' => 'A PVW scenario.',
'type' => 'object',
'properties' => [
'SceneId' => ['description' => 'The scenario ID.', 'type' => 'string', 'example' => 'b5f8c837-ceeb-424f-b30b-68e94e86****', 'title' => ''],
'StreamUrl' => ['description' => 'The playback stream URL for the PVW scenario of the production studio. This is not the URL for the bypass output stream.', 'type' => 'string', 'example' => 'rtmp://abclive/caster/example.net', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '6EBD1AC4-C34D-4AE1-963E-B688A228BE31', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'IncorrectSceneStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene status is not supported, please check and try again.'],
['errorCode' => 'IncorrectCasterStatus.Inuse', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Caster status is inuse, please check and try again later.'],
['errorCode' => 'IncorrectSceneStatus.Inuse', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene is on, please check and try again.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'IncorrectChannel.Disable', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The Channel is in a non-settable state, please check and try again.'],
['errorCode' => 'IncorrectCasterStatus.Cease', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The caster has stopped service due to arrears, please settle and try again.'],
['errorCode' => 'IncorrectCasterStatus.Expire', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The prepaid instance of the caster has expired, please renew it and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
403 => [
['errorCode' => 'UserQuotaExceed', 'errorMessage' => 'Quota exceeded: %s.', 'description' => 'Quota exceeded: %s.'],
],
[
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidDomainName.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Domain name does not exist, please check and try again.'],
['errorCode' => 'InvalidCasterTemplate.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide template does not exist. Please check and try again.'],
['errorCode' => 'InvalidConfiguration.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Configuration does not exist, please check and try again.'],
['errorCode' => 'InvalidResource.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The resource does not exist. Please check and try again.'],
['errorCode' => 'InvalidTranscode.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Transcoding is not configured, please check and try again.'],
['errorCode' => 'InvalidDelay.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Delayed playback is not configured, please check and try again.'],
],
],
'title' => 'StartCaster',
'summary' => 'Starts a production studio. If the Preview (PVW) and Program (PGM) scenarios do not exist, this operation creates them, and then starts the scenarios and the underlying audio and video processing tasks.',
'description' => 'Before starting a production studio, call the [CreateCaster](~~2848009~~) operation to create the studio. Then, call this operation to start it. If the Preview (PVW) and Program (PGM) scenarios do not exist, this operation creates them, and then starts the scenarios and their underlying audio and video processing tasks.'."\n"
."\n"
.'## QPS Limit'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 10 calls per second per user. If you exceed this limit, API calls are throttled. Throttling may affect your business. Call this operation within the limit.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartCaster'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:StartCaster',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'StartCasterScene' => [
'summary' => 'Starts a specified Program View (PVW) scene. This operation is used to start preview scenes.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The ID of the region.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you created the production studio by calling the [CreateCaster](~~2848009~~) operation, use the CasterId value returned in the response.'."\n"
."\n"
.'- If you created the production studio in the ApsaraVideo Live console, go to the **Production Studio** > **Cloud Production Studio** page to view the ID.'."\n"
."\n"
.'> The production studio ID is displayed as its name on the Cloud Production Studio page.', 'type' => 'string', 'required' => true, 'example' => '80787064-1c94-4dc1-85ce-9409960a****', 'title' => ''],
],
[
'name' => 'SceneId',
'in' => 'query',
'schema' => ['description' => 'The ID of the scene.'."\n"
."\n"
.'This parameter is valid only for PVW scenes.', 'type' => 'string', 'required' => true, 'example' => '242b4e2c-c30f-4442-85ba-2e3e4e3d****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7', 'title' => ''],
'StreamUrl' => ['description' => 'The output stream URL of the current scene. This URL is used for playback in the production studio and is not a bypass output.', 'type' => 'string', 'example' => 'http://live/caster/example.org', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'IncorrectSceneStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene status is not supported, please check and try again.'],
['errorCode' => 'IncorrectSceneStatus.Inuse', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene is on, please check and try again.'],
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'InvalidSceneId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter SceneId is invalid, please check and try again.'],
['errorCode' => 'IncorrectCasterStatus.Idle', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The caster is not open, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
403 => [
['errorCode' => 'UserQuotaExceed', 'errorMessage' => 'Quota exceeded: %s.', 'description' => 'Quota exceeded: %s.'],
],
[
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidScene.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene does not exist, please check and try again.'],
['errorCode' => 'InvalidLayout.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'LayoutId does not exist, please check and try again.'],
['errorCode' => 'InvalidConfiguration.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Configuration does not exist, please check and try again.'],
['errorCode' => 'InvalidCasterTemplate.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide template does not exist. Please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'StartCasterScene',
'description' => 'You can call this operation to start a specified Program View (PVW) scene. A PVW scene is a preview scene.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 10. If you exceed this limit, API calls are throttled. Throttling can affect your business. We recommend that you call this operation within the specified limit.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartCasterScene'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:StartCasterScene',
'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-122CC1A52FA7\\",\\n \\"StreamUrl\\": \\"http://live/caster/example.org\\"\\n}","type":"json"}]',
],
'StartEdgeTranscodeJob' => [
'summary' => 'Starts an edge transcoding task.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'paid',
'abilityTreeNodes' => ['FEATUREliveHVN9B2'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'ClusterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the data center.', 'type' => 'string', 'required' => true, 'example' => '******3b-4d18-395c-8106-ff21a6******', 'title' => ''],
],
[
'name' => 'JobId',
'in' => 'query',
'schema' => ['description' => 'The ID of the edge transcoding job.', 'type' => 'string', 'required' => true, 'example' => '****20b48fb04483915d4f2cd8ac****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'JobId' => ['description' => 'The ID of the edge transcoding job.', 'type' => 'string', 'example' => '****20b48fb04483915d4f2cd8ac****', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'UserTaskExceed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'User tasks have reached the upper limit, please check and try again.'],
],
403 => [
['errorCode' => 'UserQuotaExceed', 'errorMessage' => 'Quota exceeded: %s.', 'description' => 'Quota exceeded: %s.'],
['errorCode' => 'OperationDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation rejected, please check and try again.'],
['errorCode' => 'Forbidden', 'errorMessage' => '%s, please check and try again later.', 'description' => 'No permission, please check and try again.'],
],
[
['errorCode' => 'JobNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Task does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'StartEdgeTranscodeJob',
'description' => '- This operation is used to start an edge transcoding job.'."\n"
."\n"
.'- Before you call this operation, make sure that you have the required permissions to access the edge transcoding service and that the specified transcoding job is not running.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 6,000 calls per minute for each user. API calls that exceed this limit are throttled, which may affect your business. We recommend that you call this operation as needed.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartEdgeTranscodeJob'],
],
],
'ramActions' => [
[
'operationType' => '',
'ramAction' => [
'action' => 'live:StartEdgeTranscodeJob',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"****20b48fb04483915d4f2cd8ac****\\",\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","type":"json"}]',
],
'StartLiveDomain' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '107241',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The ingest domain or streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['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' => ''],
],
],
'eventInfo' => [
'enable' => false,
'eventNames' => [],
],
'title' => 'StartLiveDomain',
'summary' => 'Starts a disabled live streaming domain. This operation changes the DomainStatus to online.',
'description' => 'This API operation fails if your account has an overdue payment or if the domain name is in an invalid state.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 30 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartLiveDomain'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:StartLiveDomain',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","type":"json"}]',
],
'StartLiveMPUTask' => [
'summary' => 'Creates a stream mixing and transcoding task.',
'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' => 'The application ID. Only one ID is supported. It can contain uppercase letters, lowercase letters, digits, underscores (\\_), and hyphens (-). The maximum length is 64 characters.', 'type' => 'string', 'required' => true, 'example' => 'yourAppId', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'The channel ID. Only one ID is supported. It can contain uppercase letters, lowercase letters, digits, underscores (\\_), and hyphens (-). The maximum length is 64 characters.', 'type' => 'string', 'required' => true, 'example' => 'yourChannelId', 'title' => ''],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'The task ID. Only one ID is supported. It can contain uppercase letters, lowercase letters, digits, underscores (\\_), and hyphens (-). The maximum length is 55 characters. This ID is the unique identifier for the bypass ingest task.'."\n"
.'If a task with the same ID still exists and has not been cleared when you start a new task, \\`InvalidParam\\` is returned.', 'type' => 'string', 'required' => true, 'example' => 'yourTaskId', 'title' => ''],
],
[
'name' => 'MixMode',
'in' => 'query',
'schema' => ['description' => 'The stream mixing mode. Valid values:'."\n"
."\n"
.'- **0**: Single-stream ingest. The original single stream is ingested without stream mixing or transcoding. You do not need to configure stream mixing and transcoding parameters.'."\n"
."\n"
.'- **1** (default): Stream mixing and transcoding.', 'type' => 'string', 'required' => true, 'example' => '0', 'title' => ''],
],
[
'name' => 'StreamURL',
'in' => 'query',
'schema' => ['description' => 'The live ingest URL. Only the RTMP protocol is supported. Only one URL is supported. The maximum length is 2048 characters. For information about how to generate the URL, see [Ingest URLs and playback URLs](~~199339~~).'."\n"
."\n"
.'> - For domain names with hotlink protection enabled, the ingest URL must include an access token.'."\n"
."\n"
.'- Do not use the same StreamURL in different tasks at the same time.'."\n"
."\n"
.'- Do not use the same StreamURL within 10 seconds after a task stops.', 'type' => 'string', 'required' => false, 'example' => 'rtmp://example.com/live/stream', 'title' => ''],
],
[
'name' => 'MultiStreamURL',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The parameters for ingesting to multiple URLs. You can specify multiple live ingest URLs.'."\n"
."\n"
.'> When you set the ingest URL for a task, you must configure either the StreamURL parameter or the MultiStreamURL parameter, but not both.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'URL' => ['description' => 'The live ingest URL. Only the RTMP protocol is supported. The maximum length is 2048 characters. For information about how to generate the URL, see [Ingest URLs and playback URLs](~~199339~~).', 'type' => 'string', 'required' => false, 'example' => 'rtmp://example.com/live/stream****', 'title' => ''],
'IsAliCdn' => ['description' => 'Specifies whether to ingest the stream to Alibaba Cloud CDN.'."\n"
."\n"
.'- false: Ingest to a non-Alibaba Cloud CDN.'."\n"
."\n"
.'- true: Ingest to Alibaba Cloud CDN.'."\n"
."\n"
.'> The default value is false.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
],
'required' => false,
'description' => '',
'title' => '',
'example' => '',
],
'required' => false,
'title' => '',
'example' => '',
],
],
[
'name' => 'Region',
'in' => 'query',
'schema' => ['description' => 'The region where the stream mixing service is located. Valid values:'."\n"
."\n"
.'- **CN-Shanghai(default)**: Shanghai.'."\n"
."\n"
.'- **AP-Singapore(default)**: Singapore.'."\n"
."\n"
.'- **EMAA-Saudi**: Saudi Arabia.', 'type' => 'string', 'required' => false, 'example' => 'CN-Shanghai', 'title' => ''],
],
[
'name' => 'MaxIdleTime',
'in' => 'query',
'schema' => ['description' => 'The idle timeout period. Unit: seconds. The value must be in the range of \\[10, 86400].'."\n"
."\n"
.'> If you set this parameter, the task is automatically stopped when it has been idle for a period longer than MaxIdleTime. If you do not set this parameter, the task is stopped immediately after the channel is closed.', 'type' => 'string', 'required' => false, 'example' => '10', 'title' => ''],
],
[
'name' => 'SingleSubParams',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The parameters for single-stream ingest. This parameter is required when MixMode is set to 0. Do not set this parameter for stream mixing and transcoding.',
'type' => 'object',
'properties' => [
'SourceType' => ['description' => 'The type of video input stream in single-stream ingest mode. This parameter is valid only for video streams (StreamType=2). Valid values:'."\n"
."\n"
.'- **camera** (default): Camera stream.'."\n"
."\n"
.'- **shareScreen**: Screen sharing stream.', 'type' => 'string', 'required' => false, 'example' => 'camera', 'title' => ''],
'StreamType' => ['description' => 'The type of stream to ingest in single-stream ingest mode. Valid values:'."\n"
."\n"
.'- **0** (default): Ingest the original stream.'."\n"
."\n"
.'- **1**: Ingest only the audio stream.'."\n"
."\n"
.'- **2**: Ingest only the video stream.', 'type' => 'string', 'required' => false, 'example' => '0', 'title' => ''],
'UserId' => ['description' => 'The ID of the user whose stream is ingested. Only one stream can be ingested at a time.', 'type' => 'string', 'required' => true, 'example' => 'yourSubUserId', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
],
[
'name' => 'TranscodeParams',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The parameters for stream mixing and transcoding. This parameter is required when MixMode is set to 1. Do not set this parameter for single-stream ingest.',
'type' => 'object',
'properties' => [
'Background' => [
'description' => 'The global background image for the mixed stream.',
'type' => 'object',
'properties' => [
'RenderMode' => ['description' => 'The display mode of the output video. Valid values:'."\n"
."\n"
.'- **0**: Scale and display a black background.'."\n"
."\n"
.'- **1** (default): Clip.', 'type' => 'string', 'required' => false, 'example' => '1', 'title' => ''],
'URL' => ['description' => 'The URL of the global background image. The maximum length is 2048 characters.', 'type' => 'string', 'required' => false, 'example' => 'yourImageUrl', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'EncodeParams' => [
'description' => 'The encoding parameters for the output stream.',
'type' => 'object',
'properties' => [
'AudioOnly' => ['description' => 'Specifies whether the stream is audio-only. Valid values:'."\n"
."\n"
.'- **true**: Audio-only. You only need to set audio-related parameters.'."\n"
."\n"
.'- **false** (default): Not audio-only. All parameters except VideoCodec and EnhancedParam must be specified.', 'type' => 'string', 'required' => false, 'example' => 'false', 'title' => ''],
'AudioBitrate' => ['description' => 'The audio bitrate. Unit: kbps. The value must be in the range of \\[8, 500].', 'type' => 'string', 'required' => false, 'example' => '128', 'title' => ''],
'AudioChannels' => ['description' => 'The number of audio channels. Valid values: 1, 2.', 'type' => 'string', 'required' => false, 'example' => '2', 'title' => ''],
'AudioSampleRate' => ['description' => 'The audio sampling rate. Unit: Hz. Valid values: 8000, 16000, 32000, 44100, 48000.', 'type' => 'string', 'required' => false, 'example' => '44100', 'title' => ''],
'VideoCodec' => ['description' => 'The video encoding format. Valid values:'."\n"
."\n"
.'- H.264 (default).'."\n"
."\n"
.'- H.265.', 'type' => 'string', 'required' => false, 'example' => 'H.264', 'title' => ''],
'VideoBitrate' => ['description' => 'The video bitrate. Unit: kbps. The value must be in the range of \\[1, 10000].', 'type' => 'string', 'required' => false, 'example' => '3500', 'title' => ''],
'VideoFramerate' => ['description' => 'The video frame rate. Unit: fps. The value must be in the range of \\[1, 60].', 'type' => 'string', 'required' => false, 'example' => '25', 'title' => ''],
'VideoGop' => ['description' => 'The video GOP size. The value must be in the range of \\[1, 60].', 'type' => 'string', 'required' => false, 'example' => '20', 'title' => ''],
'VideoHeight' => ['description' => 'The video height. Unit: pixels. The value must be in the range of \\[0, 1920].', 'type' => 'string', 'required' => false, 'example' => '1000', 'title' => ''],
'VideoWidth' => ['description' => 'The video width. Unit: pixels. The value must be in the range of \\[0, 1920].', 'type' => 'string', 'required' => false, 'example' => '1920', 'title' => ''],
'EnhancedParam' => ['description' => 'The enhanced encoding parameters. This is a JSON string. The supported optional configurations include \\`profile\\` and \\`preset\\`.'."\n"
."\n"
.'- \\`profile\\`: The encoding profile. If the video encoding format is H.264, valid values for \\`profile\\` include "baseline", "main", and "high". If the video encoding format is H.265, the valid value for \\`profile\\` is "main".'."\n"
."\n"
.'- \\`preset\\`: Balances encoding speed and quality. Valid values for \\`preset\\` include "ultrafast", "superfast", "veryfast", "faster", "fast", "medium", "slow", "slower", "veryslow", and "placebo". Each value represents a strategy for balancing encoding speed and output video quality, from "ultrafast" (fastest encoding speed) to "placebo" (highest quality, slowest encoding speed).'."\n"
."\n"
.'> For example, "superfast" is mainly used for real-time communication. If you are not an expert in encoders, do not set this option.', 'type' => 'string', 'required' => false, 'example' => '{"profile": "high", "preset": "veryfast"}', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'Layout' => [
'description' => 'The video layout information.'."\n"
."\n"
.'> For video transcoding, you must specify the video layout information, including coordinates (X, Y), pane dimensions (Width, Height), and stacking order (ZOrder). For audio-only transcoding, do not specify video layout information.',
'type' => 'object',
'properties' => [
'UserPanes' => [
'description' => 'The information about user panes in the mixed stream.',
'type' => 'array',
'items' => [
'description' => 'The information about user panes in the mixed stream.',
'type' => 'object',
'properties' => [
'UserInfo' => [
'description' => 'The information about the user corresponding to this pane. If you do not set this parameter, the system automatically fills it based on the order in which streamers join the channel.'."\n"
."\n"
.'> - If you specify user information, that user must already be configured in the \\`TranscodeParams.UserInfos\\` parameter.'."\n"
."\n"
.'- This parameter is valid only for original streams and video streams.',
'type' => 'object',
'properties' => [
'SourceType' => ['description' => 'The type of video input stream in stream mixing and transcoding mode. This parameter is valid only for video streams (StreamType=2). Valid values:'."\n"
."\n"
.'- **camera** (default): Camera stream.'."\n"
."\n"
.'- **shareScreen**: Screen sharing stream.', 'type' => 'string', 'required' => false, 'example' => 'camera', 'title' => ''],
'ChannelId' => ['description' => 'The ID of the channel where the user is located. You do not need to set this parameter for users in the same channel. For cross-channel stream mixing, set this parameter.', 'type' => 'string', 'required' => false, 'example' => 'yourChannelId', 'title' => ''],
'UserId' => ['description' => 'The user ID.', 'type' => 'string', 'required' => false, 'example' => 'yourSubUserId', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'Height' => ['description' => 'The height of the pane, as a normalized percentage.', 'type' => 'string', 'required' => false, 'example' => '0.2632', 'title' => ''],
'Width' => ['description' => 'The width of the pane, as a normalized percentage.', 'type' => 'string', 'required' => false, 'example' => '0.3564', 'title' => ''],
'X' => ['description' => 'The X-coordinate, as a normalized percentage.', 'type' => 'string', 'required' => false, 'example' => '0.2456', 'title' => ''],
'Y' => ['description' => 'The Y-coordinate, as a normalized percentage.', 'type' => 'string', 'required' => false, 'example' => '0.3789', 'title' => ''],
'ZOrder' => ['description' => 'The stacking order. 0 is the bottom layer. Layer 1 is on top of layer 0, and so on.', 'type' => 'string', 'required' => false, 'example' => '0', 'title' => ''],
'BackgroundImageUrl' => ['description' => 'The URL of the background image for the video pane. The maximum length is 2048 characters. When a user turns off their camera or has not joined the channel, this image is displayed in their layout position.', 'type' => 'string', 'required' => false, 'example' => 'yourImageUrl', 'title' => ''],
'RenderMode' => ['description' => 'The display mode of the output video pane. Valid values:'."\n"
."\n"
.'- **0**: Scale and display a black background.'."\n"
."\n"
.'- **1** (default): Clip.', 'type' => 'string', 'default' => '1', 'required' => false, 'example' => '1', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'title' => '',
'example' => '',
],
],
'required' => false,
'title' => '',
'example' => '',
],
'UserInfos' => [
'description' => 'The information about the users to subscribe to for stream mixing. If you do not specify users, all users are included in the mixed stream.',
'type' => 'array',
'items' => [
'description' => 'The user information for stream mixing.',
'type' => 'object',
'properties' => [
'SourceType' => ['description' => 'The type of video input stream to subscribe to for stream mixing. This parameter is valid only for video streams (StreamType=2). Valid values:'."\n"
."\n"
.'- **camera** (default): Camera stream.'."\n"
."\n"
.'- **shareScreen**: Screen sharing stream.', 'type' => 'string', 'required' => false, 'example' => 'camera', 'title' => ''],
'StreamType' => ['description' => 'The type of stream to subscribe to for stream mixing. Valid values:'."\n"
."\n"
.'- **0** (default): Ingest the original stream.'."\n"
."\n"
.'- **1**: Ingest only the audio stream.'."\n"
."\n"
.'- **2**: Ingest only the video stream.', 'type' => 'string', 'required' => false, 'example' => '0', 'title' => ''],
'ChannelId' => ['description' => 'The ID of the channel where the subscribed user is located. You do not need to set this parameter for users in the same channel. For cross-channel stream mixing, set this parameter.', 'type' => 'string', 'required' => false, 'example' => 'yourChannelId', 'title' => ''],
'UserId' => ['description' => 'The ID of the user to subscribe to for stream mixing.', 'type' => 'string', 'required' => true, 'example' => 'yourSubUserId', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'title' => '',
'example' => '',
],
],
'required' => false,
'title' => '',
'example' => '',
],
],
[
'name' => 'SeiParams',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The SEI configuration parameters.',
'type' => 'object',
'properties' => [
'LayoutVolume' => [
'description' => 'The layout and volume SEI. The content of this parameter can be empty, which means the default layout and volume SEI is carried.',
'type' => 'object',
'properties' => [
'FollowIdr' => ['description' => 'Specifies whether to ensure that SEI is carried when sending an IDR keyframe. Valid values:'."\n"
."\n"
.'- **0**: Does not ensure SEI is carried.'."\n"
."\n"
.'- **1**: Ensures SEI is carried.', 'type' => 'string', 'required' => false, 'example' => '0', 'title' => ''],
'Interval' => ['description' => 'The SEI sending interval. Unit: milliseconds. The value must be in the range of \\[1000, 5000].', 'type' => 'string', 'required' => false, 'example' => '1000', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'PassThrough' => [
'description' => 'The pass-through SEI.',
'type' => 'object',
'properties' => [
'FollowIdr' => ['description' => 'Specifies whether to ensure that SEI is carried when sending an IDR keyframe. Valid values:'."\n"
."\n"
.'- **0**: Does not ensure SEI is carried.'."\n"
."\n"
.'- **1**: Ensures SEI is carried.', 'type' => 'string', 'required' => false, 'example' => '0', 'title' => ''],
'Interval' => ['description' => 'The SEI sending interval. Unit: milliseconds. The value must be in the range of \\[1000, 5000].', 'type' => 'string', 'required' => false, 'example' => '1000', 'title' => ''],
'PayloadContent' => ['description' => 'The payload content of the pass-through SEI.', 'type' => 'string', 'required' => false, 'example' => 'yourPayloadContent', 'title' => ''],
'PayloadContentKey' => ['description' => 'The key corresponding to the payload content of the pass-through SEI. If not set, the default key is \\`udd\\`.', 'type' => 'string', 'required' => false, 'example' => 'yourPayloadContentKey', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'PayloadType' => ['description' => 'The custom payload\\_type of the SEI message. The value must be in the range of 100-254. If not set, the default payload\\_type is 5.', 'type' => 'string', 'required' => false, 'example' => '100', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The request ID.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '0F72851F-5DC1-1979-9B2C-450040316C3E', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => '%s.', 'description' => 'Parameter verification failed'],
['errorCode' => 'InvalidAppId', 'errorMessage' => '%s, please check and try again later.', 'description' => 'AppId is invalid, please check and try again.'],
['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is missing, please check and try again.'],
],
403 => [
['errorCode' => 'OperationDenied', 'errorMessage' => 'Your account has not enabled the Live service', 'description' => ''],
['errorCode' => 'Forbidden', 'errorMessage' => '%s, please check and try again later.', 'description' => 'No permission, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'InternalError', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0F72851F-5DC1-1979-9B2C-450040316C3E\\"\\n}","type":"json"}]',
'title' => 'StartLiveMPUTask',
'description' => 'By default, each application ID supports a maximum of 200 single-stream ingest tasks and 40 stream mixing and transcoding tasks. To increase the quota, [submit a ticket](https://smartservice.console.aliyun.com/service/create-ticket).'."\n"
."\n"
.'### Stream mixing task lifecycle'."\n"
."\n"
.'**Start**'."\n"
."\n"
.'- When a streamer starts streaming for the first time, you can call StartLiveMPUTask to start a bypass task.'."\n"
."\n"
.' - If no users are in the channel, a "channel does not exist" error is returned.'."\n"
."\n"
.' - The bypass stream is output only when a user starts stream ingest. If the user in a single-stream task does not ingest a stream, the bypass stream cannot be played.'."\n"
."\n"
.' - For a stream mixing task, at least one user must be ingesting a stream for the bypass stream to be playable. The layout area for users who are not ingesting streams shows a black screen.'."\n"
."\n"
.'- You can record the bypass task status, task type, and task parameters on your business server.'."\n"
."\n"
.' - Task status: Started, Stopped.'."\n"
."\n"
.' - Task type: Single-stream, Stream mixing.'."\n"
."\n"
.' - Task parameters: The latest input parameters. For example, after a successful call to UpdateLiveMPUTask, record the latest task parameters.'."\n"
."\n"
.'- In co-streaming or PK scenarios, if a task has been updated to a stream mixing task and the streamer unexpectedly leaves and then rejoins the channel, your business server can call StartLiveMPUTask to restart the stream mixing task based on the saved task type and parameters.'."\n"
."\n"
.' - If the system has not automatically cleared the task before you start it, the task starts successfully.'."\n"
."\n"
.' - If the system has not yet cleared the task, a **Task already exists** error code is returned.'."\n"
."\n"
.'**End**'."\n"
."\n"
.'- When a streamer leaves the channel, call [StopLiveMPUTask](~~2362742~~) to stop the bypass task.'."\n"
."\n"
.'- If all users in the task leave the channel and StopLiveMPUTask is not called, the system automatically stops the bypass task after 2 minutes.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for a single user for this API is 500 calls/second. If you exceed this limit, API calls are throttled. This may affect your business. We recommend that you call this API reasonably.',
'requestParamsDescription' => '### Layout and volume SEI'."\n"
."\n"
.'| Parameter | Description |'."\n"
.'| --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n"
.'| canvas | Canvas information. Parameters: \\- w: Canvas width in pixels. \\- h: Canvas height in pixels. \\- bgnd: Canvas background color, as a hexadecimal integer in RGB format. |'."\n"
.'| stream | Video stream information. Parameters: \\- uid: User ID of the streamer. \\- paneid: Pane ID of the region, in the range of [0, 8]. \\- zorder: Stacking order of the region, in the range of [0, 99]. \\- x: X-coordinate of the region on the canvas, as a normalized percentage. \\- y: Y-coordinate of the region on the canvas, as a normalized percentage. \\- w: Width of the region, as a normalized percentage. \\- h: Height of the region, as a normalized percentage. \\- type: Type of video stream in the region. 0: Camera. 1: Screen sharing. \\- status: Status of the video stream in the region. 0: Not yet pulled. 1: Pulled. \\- muted: Mute status of the streamer. 0: Not muted. 1: Muted. In a PK scenario, if streamer A mutes streamer B, the `muted` field for streamer B shows the muted status. \\- vol: Volume of the streamer in decibels, in the range of [0, 255]. \\- vad: Voice activity detection. The value is in the range of [0, 150]. 150 indicates that voice is detected. A value other than 150 indicates the trail-off time from voice to silence. |'."\n"
.'| ts | The operating system timestamp when this information was generated, in milliseconds. |'."\n"
.'| ver | The SEI format version, such as 1.0.0.20220915. |'."\n"
.'| udd | A custom scenario-based event sent through the `PassThrough` parameter. The content is specified by the `PayloadContent` parameter. |'."\n"
."\n"
.'> When a user pulls an ingested stream, the streaming media data contains SEI information. You can use this feature to pass custom information. SEI information can be retrieved from the video frame data during video stream decoding. For the specific format, see the \\`PassThrough\\` parameter.'."\n"
."\n"
.'**Example for a co-streaming scenario:**'."\n"
."\n"
.'If there is only one streamer, the \\`stream\\` collection in the SEI information that the viewer receives contains information for only one member. If the streamer is in a co-streaming or PK session, the \\`stream\\` collection contains information for multiple members.'."\n"
.'For example, when streamer \\`streamer111\\` is streaming alone, the SEI frame format that the viewer receives is as follows: `{"canvas":{"w":1920,"h":1080,"bgnd":0},"stream":[{"uid":"streamer111","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"
.'When streamer \\`streamer111\\` is co-streaming with viewer \\`viewer222\\`, the SEI frame format that the viewer receives is as follows: `{"canvas":{"w":1920,"h":1080,"bgnd":0},"stream":[{"uid":"streamer111","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":"viewer222","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"
.'By checking the number of elements in the \\`stream\\` array, you can determine whether the live layout has changed. If the \\`stream\\` array has one element, a single streamer is ingesting a stream. If the \\`stream\\` array has more than one element, the streamer is in a co-streaming or PK session. The layout information for each member indicates their specific position in the mixed stream layout.
'."\n"
."\n"
.'### Pass-through SEI'."\n"
."\n"
.'- To use custom SEI, you can call the StartLiveMPUTask command to start a stream mixing and ingest task and specify \\`PayloadContent\\` in the \\`PassThrough\\` parameter. You can also call the UpdateLiveMPUTask command to update the task and specify \\`PayloadContent\\` in the \\`PassThrough\\` parameter.'."\n"
."\n"
.'- Custom SEI can be sent periodically. You can set the period using the \\`Interval\\` parameter in \\`PassThrough\\`. The unit is milliseconds.'."\n"
."\n"
.'- Custom SEI can also be sent with keyframes. You can set this using the \\`FollowIdr\\` parameter in \\`PassThrough\\`.'."\n"
."\n"
.' - You can send SEI both periodically and with keyframes. For example, \\`Interval:1000\\` and \\`FollowIdr: 1\\` means that custom SEI is sent every 1000 ms and also with every keyframe.'."\n"
."\n"
.' - If you do not set \\`Interval\\` or \\`FollowIdr\\`, the custom SEI is sent only once when the API is called.'."\n"
."\n"
.'For example, when streamer \\`streamer111\\` is streaming alone, you can call the UpdateLiveMPUTask command to send periodic SEI. In the \\`PassThrough\\` parameter, set \\`Interval\\` to 1000, \\`FollowIdr\\` to 0, and \\`PayloadContent\\` to "hello world". A custom SEI message is then sent every 1000 ms. The SEI frame format that the viewer receives is as follows: `{"canvas":{"w":1920,"h":1080,"bgnd":0},"stream":[{"uid":"streamer111","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"
.'### Cross-channel multi-user stream mixing'."\n"
."\n"
.'To mix streams from multiple streamers across multiple channels and ingest the mixed stream to the live streaming service, you must provide the UserID and ChannelID of the streamer who initiates the cross-channel call, along with the UserIDs of the other participants, as input parameters when you create the stream mixing task. See the following example:'."\n"
.'In a live PK scenario, streamer \\`userA\\` in channel \\`channelA\\` initiates a cross-channel PK with streamer \\`userB\\` in channel \\`channelB\\` using a client API. The mixed stream of both streamers is output to the viewers in channel \\`channelA\\`. In this case, the channel and user parameters for creating the stream mixing task are specified as follows:'."\n"
."\n"
.'- ChannelID: Specify \\`channelA\\`.'."\n"
."\n"
.'- UserInfos->UserId: Specify \\`userA\\` and \\`userB\\` respectively.'."\n"
."\n"
.'> Before you can create a cross-channel multi-user stream mixing task, a cross-channel call must be initiated through a client software development kit (SDK). If users in different channels are not in a call, you cannot create a cross-channel stream mixing task. For more information about how to initiate a cross-channel call, see [Cross-channel subscription](~~2642837~~).',
'changeSet' => [
['createdAt' => '2024-11-14T09:21:05.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2024-10-30T08:35:05.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2024-08-13T08:23:10.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2024-08-06T07:59:24.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2024-07-04T07:02:35.000Z', 'description' => 'Error codes changed'],
['createdAt' => '2024-06-12T05:51:31.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2024-03-06T17:46:44.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2024-03-01T07:39:35.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2023-12-26T06:01:15.000Z', 'description' => 'Request parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartLiveMPUTask'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:StartLiveMPUTask',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'StartLiveStreamMonitor' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'paid',
'abilityTreeNodes' => ['FEATUREliveSM955S'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'MonitorId',
'in' => 'query',
'schema' => ['description' => 'The ID of the monitoring session.'."\n"
."\n"
.'> Obtain the MonitorId value from the response of the [CreateLiveStreamMonitor](~~2848129~~) operation.', 'type' => 'string', 'required' => true, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5c6a2a0d-f228-4a64-af62-20e91b9676b3', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidMonitorId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter MonitorId is invalid, please check and try again.'],
['errorCode' => 'StreamMonitorAlreadyStarted', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The monitoring room has been opened, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
403 => [
['errorCode' => 'UserQuotaExceed', 'errorMessage' => 'Quota exceeded: %s.', 'description' => 'Quota exceeded: %s.'],
],
[
['errorCode' => 'StreamMonitorNotExist', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The monitoring room does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'StartLiveStreamMonitor',
'summary' => 'Starts live monitoring.',
'description' => 'You can call the [CreateLiveStreamMonitor](~~2848129~~) operation to create a monitoring session. Then, you can use the **MonitorId** value from the response to start the session.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 10 calls per second for each user. Calls that exceed this limit are throttled. Throttling may affect your business. Plan your calls accordingly.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartLiveStreamMonitor'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:StartLiveStreamMonitor',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b9676b3\\"\\n}","type":"json"}]',
],
'StartPlaylist' => [
'summary' => 'Starts a playlist.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'paid',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'ProgramId',
'in' => 'query',
'schema' => ['description' => 'The ID of the playlist. If you add items to the playlist by calling the [AddPlaylistItems](~~2848078~~) operation, use the value of the ProgramId parameter that is returned.', 'type' => 'string', 'required' => true, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
],
[
'name' => 'ResumeMode',
'in' => 'query',
'schema' => ['description' => 'The restart mode. Valid values:'."\n"
."\n"
.'- **Restart**: Starts from the beginning.'."\n"
."\n"
.'- **Continue**: Resumes playback from where it was stopped. The **StartItemId** parameter is required only when you set the **ResumeMode** parameter to **Custom**.'."\n"
."\n"
.'- **Custom**: Custom start point.', 'type' => 'string', 'required' => false, 'example' => 'Custom', 'title' => ''],
],
[
'name' => 'StartItemId',
'in' => 'query',
'schema' => ['description' => 'The ID of the item to play first. When the carousel starts, this item is played.'."\n"
."\n"
.'>'."\n"
."\n"
.'This parameter is required only when you set **ResumeMode** to **Custom**.'."\n"
."\n"
.'>', 'type' => 'string', 'required' => false, 'example' => 'asdfasdfasdf****', 'title' => ''],
],
[
'name' => 'Offset',
'in' => 'query',
'schema' => ['description' => 'The start offset for the video file. This parameter is valid only for video files. Unit: milliseconds.'."\n"
."\n"
.'A value greater than 0 specifies the start time relative to the first frame.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10000', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'ProgramId' => ['description' => 'The ID of the playlist. You can use this ID as a request parameter to stop the playlist.', 'type' => 'string', 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****', 'title' => ''],
'StreamInfo' => [
'description' => 'The information about the stream.',
'type' => 'object',
'properties' => [
'AppName' => ['description' => 'The application name.', 'type' => 'string', 'example' => 'liveApp****', 'title' => ''],
'DomainName' => ['description' => 'The streaming domain.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'StreamName' => ['description' => 'The stream name.', 'type' => 'string', 'example' => 'liveStream****', 'title' => ''],
'Streams' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Stream' => [
'description' => 'The list of stream information.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'PullFlvUrl' => ['description' => 'The FLV streaming URL.', 'type' => 'string', 'example' => 'http://aliyundoc.com/caster/liveStream****.flv?auth_key=1612772224-0-0-3632be7cd9907169e8b09e91099c****', 'title' => ''],
'PullM3U8Url' => ['description' => 'The RTMP streaming URL.', 'type' => 'string', 'example' => 'rtmp:///aliyundoc.com/caster/liveStream****?auth_key=1612772224-0-0-4404ca59c0246226d49d01f734b1****', 'title' => ''],
'PullRtmpUrl' => ['description' => 'The M3U8 streaming URL.', 'type' => 'string', 'example' => 'http://aliyundoc.com/caster/liveStream****.m3u8?auth_key=1612772224-0-0-919a023a127156fe82e3562c3b3b****', 'title' => ''],
'Quality' => ['description' => 'The video quality. Valid value: **original**: original quality.', 'type' => 'string', 'example' => 'original', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'IncorrectSceneStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene status is not supported, please check and try again.'],
['errorCode' => 'IncorrectCasterStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Guide station status error, please check and try again.'],
['errorCode' => 'IncorrectSceneStatus.Inuse', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene is on, please check and try again.'],
['errorCode' => 'InvalidProgramId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ProgramId is invalid, please check and try again.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'InvalidNormType.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The norm type is invalid, please check and try again.'],
['errorCode' => 'InvalidParameter.Offset', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter Offset is invalid. Check and try again.'],
['errorCode' => 'InvalidParameter.StartItemId', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter StartItemId is invalid, please check and try again.'],
],
403 => [
['errorCode' => 'UserQuotaExceed', 'errorMessage' => 'Quota exceeded: %s.', 'description' => 'Quota exceeded: %s.'],
],
[
['errorCode' => 'PlayListNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'PlayList does not exist, please check and try again.'],
['errorCode' => 'PlayListItemNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'PlayListItem does not exist, please check and try again.'],
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidCasterTemplate.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide template does not exist. Please check and try again.'],
['errorCode' => 'IncorrectCasterStatus.EnableChannel', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Caster status does not support EnableChannel settings, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'StartPlaylist',
'description' => 'Call the [AddPlaylistItems](~~2848078~~) operation to add items to a playlist. Then, call this operation to start the playlist.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'This operation has a queries per second (QPS) limit of 10 for each user. If you exceed this limit, your API calls are throttled, which may affect your business. Call this operation within the specified limit.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartPlaylist'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:StartPlaylist',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","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}","type":"json"}]',
],
'StartRtcCloudRecording' => [
'summary' => 'Starts an RTC cloud recording task.',
'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' => 'The ID of the app to which the channel to be recorded belongs. The app must belong to the primary account of the current API caller.', 'type' => 'string', 'required' => true, 'example' => '********-7074-****-9ef5-85c19a4*****', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'The ID of the channel to be recorded. Ensure that users are present in the channel when this operation is called. Otherwise, the recording task fails to be created.', 'type' => 'string', 'required' => true, 'example' => 'room1024', 'title' => ''],
],
[
'name' => 'SubscribeParams',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The subscription parameters.',
'type' => 'object',
'properties' => [
'SubscribeUserIdList' => [
'description' => 'The list of subscribed UserId information. In single-stream recording mode, each UserId is recorded separately. In stream mixing recording mode, the audio and video of all UserIds are mixed into one set of audio and video.'."\n"
.'> - The array cannot be empty and supports a maximum of 17 elements.',
'type' => 'array',
'items' => [
'description' => 'The information of a subscribed UserId.',
'type' => 'object',
'properties' => [
'UserId' => ['description' => 'The subscribed UserId.', 'type' => 'string', 'required' => true, 'example' => 'userA', 'title' => ''],
'StreamType' => [
'description' => 'The media type of the subscribed UserId. Valid values:'."\n"
."\n"
.'- 0: original stream, which includes both audio and video. (Default)'."\n"
."\n"
.'- 1: audio-only stream.'."\n"
."\n"
.'- 2: video-only stream (valid only in stream mixing recording mode).',
'enumValueTitles' => ['original stream, which includes both audio and video.', 'audio-only stream.', 'video-only stream.'],
'type' => 'integer',
'format' => 'int32',
'default' => '0',
'enum' => ['0', '1', '2'],
'required' => false,
'example' => '0',
'title' => '',
],
'SourceType' => [
'description' => 'The video input stream type of the UserId. This parameter is valid only when subscribing to a non-audio-only stream (StreamType!=1). Valid values:'."\n"
."\n"
.'- 0: camera. (Default)'."\n"
."\n"
.'- 1: screen sharing.',
'enumValueTitles' => ['camera.', 'screen sharing.'],
'type' => 'integer',
'format' => 'int32',
'default' => '0',
'enum' => ['0', '1'],
'required' => false,
'example' => '0',
'title' => '',
],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => true,
'maxItems' => 17,
'minItems' => 1,
'title' => '',
'example' => '',
],
],
'required' => true,
'title' => '',
'example' => '',
],
],
[
'name' => 'RecordParams',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The recording parameters.',
'type' => 'object',
'properties' => [
'RecordMode' => [
'description' => 'The recording mode. Valid values:'."\n"
."\n"
.'- 0: single-stream recording mode. A separate recording file is generated for each subscribed UserId.'."\n"
."\n"
.'- 1: stream mixing recording mode. The streams of all subscribed UserIds are mixed and transcoded, and only one set of recording files is generated.',
'enumValueTitles' => ['single-stream recording mode, where a separate recording file is generated for each subscribed UserId.', 'stream mixing recording mode, where the streams of all subscribed UserIds are mixed and transcoded, and only one set of recording files is generated.'],
'type' => 'integer',
'format' => 'int32',
'required' => true,
'enum' => ['0', '1'],
'example' => '0',
'title' => '',
],
'StreamType' => [
'description' => 'The media type of the recording output stream. Valid values:'."\n"
."\n"
.'- 0: original stream, which includes both audio and video. (Default)'."\n"
."\n"
.'- 1: audio-only stream.'."\n"
."\n"
.'- 2: video-only stream.',
'enumValueTitles' => ['original stream, which includes both audio and video.', 'audio-only stream.', 'video-only stream.'],
'type' => 'integer',
'format' => 'int32',
'default' => '0',
'enum' => ['0', '1', '2'],
'required' => false,
'example' => '0',
'title' => '',
],
'MaxFileDuration' => ['description' => 'The maximum duration of a recording file, in seconds. Recording files that exceed this duration are split. The value must be within the range of [180, 7200], which is a maximum of 2 hours. If not specified, the default value is 2 hours.', 'type' => 'integer', 'format' => 'int64', 'maximum' => '7200', 'minimum' => '180', 'default' => '7200', 'required' => false, 'example' => '7200', 'title' => ''],
],
'required' => true,
'title' => '',
'example' => '',
],
],
[
'name' => 'StorageParams',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The storage parameters.',
'type' => 'object',
'properties' => [
'StorageType' => [
'description' => 'The storage method. Valid values:'."\n"
."\n"
.'- 0: VOD'."\n"
.'- 1: OSS',
'enumValueTitles' => ['VOD', 'OSS'],
'type' => 'integer',
'format' => 'int32',
'required' => true,
'enum' => ['0', '1'],
'example' => '1',
'title' => '',
],
'FileInfo' => [
'description' => 'The file storage information, used to specify the format, storage location, and naming of recording files. This parameter is valid only when StorageType is set to OSS.'."\n"
."\n"
.'> A recording file is generated for each element in the array based on the corresponding configuration. If no format is specified, the HLS format is used by default.',
'type' => 'array',
'items' => [
'description' => 'The storage configuration for different file formats.',
'type' => 'object',
'properties' => [
'Format' => [
'description' => 'The file storage format. Valid values:'."\n"
."\n"
.'- HLS'."\n"
.'- MP4'."\n"
.'- MP3',
'enumValueTitles' => ['MP4' => 'MP4 format.', 'MP3' => 'MP3 format.', 'HLS' => 'HLS format.'],
'type' => 'string',
'required' => true,
'enum' => ['HLS', 'MP4', 'MP3'],
'example' => 'HLS',
'title' => '',
],
'FileNamePattern' => ['description' => 'The file naming format. You can combine the following variables in any order:'."\n"
."\n"
.'- AppId'."\n"
.'- ChannelId'."\n"
.'- UserId (required in single-stream mode; invalid in stream mixing mode, where it is retained as the {UserId} string if selected)'."\n"
.'- RecordMode'."\n"
.' - When the value is 0, it corresponds to Single'."\n"
.' - When the value is 1, it corresponds to Mix'."\n"
."\n"
.'- SourceType'."\n"
.' - In single-stream mode, when the stream type is video-only, this parameter takes effect. SourceType can be configured as:'."\n"
.' - When the value is 0, it corresponds to C (Camera) for camera video stream.'."\n"
.' - When the value is 1, it corresponds to S (Screen) for screen sharing video stream.'."\n"
.' - In single-stream mode, when the stream type is audio-only, SourceType is automatically configured as A (Audio) to indicate that the recording content is an audio-only stream.'."\n"
.' - In single-stream mode, when the stream type is original stream, this parameter takes effect. SourceType can be configured as:'."\n"
.' - When the value is 0, it corresponds to OC (Original Camera) for camera original stream.'."\n"
.' - When the value is 1, it corresponds to OS (Original Screen) for screen sharing original stream.'."\n"
.' - In other scenarios, the SourceType configuration is invalid. If you manually configure SourceType, the system retains the {SourceType} placeholder string.'."\n"
."\n"
.'- StreamType (uses the StreamType parameter under RecordParams)'."\n"
.' - When the value is 0, it corresponds to AV (Audio Video) for audio and video streams.'."\n"
.' - When the value is 1, it corresponds to A (Audio) for audio stream.'."\n"
.' - When the value is 2, it corresponds to V (Video) for video stream.'."\n"
."\n"
.'- StartTime: the time when recording starts, in UTC+8 time zone, in a format similar to 2025-03-25-11:27:28. (Required when not using the default value)'."\n"
."\n"
.'Default values:'."\n"
.'- Single-stream recording mode'."\n"
.' - {AppId}\\_{ChannelId}\\_{UserId}\\_{StartTime}'."\n"
.' - If different StreamType or SourceType values are subscribed for the same UserId, the default value is {AppId}\\_{ChannelId}\\_{UserId}\\_{SourceType}\\_{StartTime}'."\n"
.'- Stream mixing recording mode'."\n"
.' - {AppId}\\_{ChannelId}\\_{StartTime}'."\n"
."\n"
.'> - The string can only consist of the variables listed above. Variable names must be enclosed in {}. Variables are separated by a single underscore (_). Each variable can appear at most once in the string.'."\n"
.'> - After naming as xxx, the file is saved in a format similar to TaskId/xxx.m3u8, where TaskId is the task ID generated when the cloud recording task is started and is automatically added to the storage path.', 'type' => 'string', 'required' => false, 'example' => '{AppId}_{ChannelId}_{StartTime}_{UserId}', 'title' => ''],
'SliceNamePattern' => ['description' => 'The segment naming format. This parameter is valid only in HLS format. Similar to FileNamePattern, but with an additional variable Sequence:'."\n"
."\n"
.'- AppId'."\n"
.'- ChannelId'."\n"
.'- UserId (required in single-stream mode; invalid in stream mixing mode, where it is retained as the {UserId} string if selected)'."\n"
.'- RecordMode'."\n"
.' - When the value is 0, it corresponds to Single'."\n"
.' - When the value is 1, it corresponds to Mix'."\n"
."\n"
.'- SourceType'."\n"
.' - In single-stream mode, when the stream type is video-only, this parameter takes effect. SourceType can be configured as:'."\n"
.' - When the value is 0, it corresponds to C (Camera) for camera video stream.'."\n"
.' - When the value is 1, it corresponds to S (Screen) for screen sharing stream.'."\n"
.' - In single-stream mode, when the stream type is audio-only, SourceType is automatically configured as A (Audio) to indicate that the recording content is an audio-only stream.'."\n"
.' - In single-stream mode, when the stream type is original stream, this parameter takes effect. SourceType can be configured as:'."\n"
.' - When the value is 0, it corresponds to OC (Original Camera) for camera original stream.'."\n"
.' - When the value is 1, it corresponds to OS (Original Screen) for screen sharing original stream.'."\n"
.' - In other scenarios, the SourceType configuration is invalid. If you manually configure this parameter, the system retains the `{SourceType}` placeholder string.'."\n"
."\n"
.'- StreamType (uses the StreamType parameter under RecordParams)'."\n"
.' - When the value is 0, it corresponds to AV (Audio Video) for audio and video streams.'."\n"
.' - When the value is 1, it corresponds to A (Audio) for audio stream.'."\n"
.' - When the value is 2, it corresponds to V (Video) for video stream.'."\n"
.'- StartTime: the time when recording starts, in UTC+8 time zone, in a format similar to 2025-03-25-11:27:28. (Required when not using the default value).'."\n"
."\n"
.'- Sequence: in HLS format, the ts file name contains Sequence. This variable is invalid for other formats. (Required when not using the default value).'."\n"
."\n"
.'Default values:'."\n"
.'- Single-stream recording mode'."\n"
.' - {AppId}\\_{ChannelId}\\_{UserId}\\_{StartTime}\\_{Sequence}'."\n"
.' - If different StreamType or SourceType values are subscribed for the same UserId, the default value is {AppId}\\_{ChannelId}\\_{UserId}\\_{SourceType}\\_{StartTime}\\_{Sequence}'."\n"
.'- Stream mixing recording mode'."\n"
.' - {AppId}\\_{ChannelId}\\_{StartTime}\\_{Sequence}'."\n"
."\n"
.'> - The string can only consist of the variables listed above. Variable names must be enclosed in {}. Variables are separated by a single underscore (_). Each variable can appear at most once in the string.'."\n"
.'> - After naming as xxx, the segment file is saved in a format similar to TaskId/xxx.ts, where TaskId is the task ID generated when the cloud recording task is started and is automatically added to the storage path.', 'type' => 'string', 'required' => false, 'example' => '{AppId}_{ChannelId}_{StartTime}_{Sequence}', 'title' => ''],
'FilePathPrefix' => [
'description' => 'The file storage path. Each element in the array corresponds to a directory level. For example, if the parameter value is ["dir1","dir2"], the xxx.m3u8 file is saved as dir1/dir2/TaskId/xxx.m3u8. If this parameter is empty, the file is saved directly as TaskId/xxx.m3u8.'."\n"
.'- The TaskId of the task is automatically appended to the end of the path to prevent recording files from different tasks from being mixed together.'."\n"
.'- If FilePathPrefix is set, each element in the array can only contain letters (a-zA-Z), digits (0-9), hyphens (-), and underscores (_), and cannot be an empty string.'."\n"
.'- The total length of all directory levels concatenated together cannot exceed 128 characters (including the connecting \'/\' characters, but excluding the automatically appended TaskId). For example, if the parameter value is ["dir1","dir2"], the concatenated path is "dir1/dir2/", meaning the total character count of all elements in the array plus the array length (corresponding to the "/" after each directory level) cannot exceed 128.'."\n"
.'- The array can contain a maximum of 5 elements, meaning you can customize up to 5 directory levels.',
'type' => 'array',
'items' => ['description' => 'The name of each directory level.', 'type' => 'string', 'required' => false, 'example' => 'dir1', 'title' => ''],
'required' => false,
'title' => '',
'example' => '',
],
'SliceDuration' => ['title' => '', 'description' => 'The segment length in seconds. This parameter is valid only in HLS format. The value must be within the range of [10, 30]. (Default value: 30)'."\n"
."\n"
.'If you do not have special requirements, use the default value.', 'type' => 'integer', 'format' => 'int64', 'example' => '30', 'required' => false],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'title' => '',
'example' => '',
],
'OSSParams' => [
'description' => 'The OSS storage configuration. This parameter is required when the storage method is OSS and is invalid when the storage method is VOD.',
'type' => 'object',
'properties' => [
'OSSEndpoint' => ['description' => 'The endpoint of the OSS storage. The corresponding region ID must be consistent with the selected endpoint.', 'type' => 'string', 'required' => true, 'example' => 'oss-cn-shanghai.aliyuncs.com', 'title' => ''],
'OSSBucket' => ['description' => 'The bucket name of the OSS storage. The bucket must belong to the primary account of the current API caller.', 'type' => 'string', 'required' => true, 'example' => 'mytest-bucket', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'VodParams' => [
'description' => 'The VOD storage configuration. This parameter is required when the storage method is VOD and is invalid when the storage method is OSS.'."\n"
."\n\n"
.'> '."\n"
.'> - The US (Virginia) region does not currently support recording to VOD.',
'type' => 'object',
'properties' => [
'StorageLocation' => ['description' => 'The storage address included in the video-on-demand console > Media Asset Management Configuration > Storage Management. Recording files are first saved to this location and then uploaded to VOD.'."\n"
."\n"
.'> '."\n"
.'> - Ensure that the region of this storage address is consistent with the selected endpoint.', 'type' => 'string', 'required' => false, 'example' => 'mytest.oss-cn-shenzhen.aliyuncs.com', 'title' => ''],
'VodTranscodeGroupId' => ['description' => 'The ID of the video-on-demand transcoding template group.'."\n"
."\n"
.'> '."\n"
.'> - Ensure that the area of this transcoding template group ID is consistent with the selected service registration endpoint.', 'type' => 'string', 'required' => false, 'example' => '****8a914d3989e9825eb90530b2****', 'title' => ''],
'AutoCompose' => [
'description' => 'Specifies whether to enable automatic merging. Valid values:'."\n"
.'- 0: Disabled. (Default)'."\n"
.'- 1: Enabled. When enabled, the ComposeVodTranscodeGroupId parameter must be set.',
'enumValueTitles' => ['automatic merging disabled.', 'automatic merging enabled. When enabled, the ComposeVodTranscodeGroupId parameter must be set.'],
'type' => 'integer',
'format' => 'int32',
'default' => '0',
'enum' => ['0', '1'],
'required' => false,
'example' => '0',
'title' => '',
],
'ComposeVodTranscodeGroupId' => ['description' => 'The ID of the VOD transcoding template group used to transcode the automatically composed new video in the video-on-demand service.'."\n"
."\n"
.'> - This parameter is required only when AutoCompose (whether to enable automatic merging) is set to 1.'."\n"
.'> - If only one media resource file exists when recording ends, automatic merging is not triggered even if it is enabled.'."\n"
.'> - For common issues about automatic composition and transcoding, see [Live-to-VOD FAQ](~~99726~~).'."\n"
.'> - For VOD transcoding billing details, see [Media transcoding billing](~~188308~~).', 'type' => 'string', 'required' => false, 'example' => '****4c34112cfe68248f2f77759c****', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
],
'required' => true,
'title' => '',
'example' => '',
],
],
[
'name' => 'MixTranscodeParams',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The transcoding parameters. This parameter is not required in single-stream recording mode and is required in stream mixing recording mode.',
'type' => 'object',
'properties' => [
'FrameFillType' => [
'description' => 'The frame fill type when a stream is interrupted. Valid values:'."\n"
.'- 0: Fill with the last frame. (Default)',
'enumValueTitles' => ['fill with the last frame.'],
'type' => 'integer',
'format' => 'int32',
'default' => '0',
'enum' => ['0'],
'required' => false,
'example' => '0',
'title' => '',
],
'AudioBitrate' => ['description' => 'The audio bitrate in kbps. The value must be within the range of [8, 500]. Required in stream mixing mode.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '500', 'minimum' => '8', 'example' => '300', 'title' => ''],
'AudioChannels' => [
'description' => 'The number of audio channels. Valid values:'."\n"
.'- 1: mono.'."\n"
.'- 2: stereo.'."\n"
."\n"
.'Required in stream mixing mode.',
'enumValueTitles' => [1 => 'mono.', 'stereo.'],
'type' => 'integer',
'format' => 'int32',
'required' => true,
'enum' => ['1', '2'],
'example' => '2',
'title' => '',
],
'AudioSampleRate' => [
'description' => 'The audio sample rate in Hz. Valid values:'."\n"
.'- 8000'."\n"
.'- 16000'."\n"
.'- 32000'."\n"
.'- 44100'."\n"
.'- 48000'."\n"
."\n"
.'Required in stream mixing mode.',
'enumValueTitles' => [8000 => '8000HZ', 16000 => '16000HZ', 32000 => '32000HZ', 44100 => '44100HZ', 48000 => '48000HZ'],
'type' => 'integer',
'format' => 'int64',
'required' => true,
'enum' => ['8000', '16000', '32000', '44100', '48000'],
'example' => '32000',
'title' => '',
],
'VideoCodec' => [
'description' => 'The video encoding format. Valid values:'."\n"
.'- H.264 (Default)'."\n"
.'- H.265',
'enumValueTitles' => ['H.264' => 'H.264 encoding.', 'H.265' => 'H.265 encoding.'],
'type' => 'string',
'default' => 'H.264',
'enum' => ['H.264', 'H.265'],
'required' => false,
'example' => 'H.264',
'title' => '',
],
'VideoBitrate' => ['description' => 'The video bitrate in kbps. The value must be within the range of [1, 10000]. Required in stream mixing mode when the recording output is expected to contain video. Invalid in other cases.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '10000', 'minimum' => '1', 'required' => false, 'example' => '5000', 'title' => ''],
'VideoFramerate' => ['description' => 'The video frame rate in fps. The value must be within the range of [1, 60]. Required in stream mixing mode when the recording output is expected to contain video. Invalid in other cases.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '60', 'minimum' => '1', 'required' => false, 'example' => '30', 'title' => ''],
'VideoGop' => ['description' => 'The video GOP. One I-frame exists for every VideoGop frames. The value must be within the range of [1, 60]. Required in stream mixing mode when the recording output is expected to contain video. Invalid in other cases.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '60', 'minimum' => '1', 'required' => false, 'example' => '30', 'title' => ''],
'VideoHeight' => ['description' => 'The video height in pixels. The value must be within the range of [0, 1920]. (Default value: 0)', 'type' => 'integer', 'format' => 'int32', 'maximum' => '1920', 'minimum' => '0', 'default' => '0', 'required' => false, 'example' => '480', 'title' => ''],
'VideoWidth' => ['description' => 'The video width in pixels. The value must be within the range of [0, 1920]. (Default value: 0)', 'type' => 'integer', 'format' => 'int32', 'maximum' => '1920', 'minimum' => '0', 'default' => '0', 'required' => false, 'example' => '640', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
],
[
'name' => 'MixLayoutParams',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The layout parameters. This parameter is not required in single-stream recording mode. In stream mixing recording mode, this parameter is required when the recording output is expected to contain video.',
'type' => 'object',
'properties' => [
'MixBackground' => [
'description' => 'The global background image for stream mixing.',
'type' => 'object',
'properties' => [
'RenderMode' => [
'description' => 'The display mode for the output. Valid values:'."\n"
.'- 0: Crop. (Default)'."\n"
.'- 1: Scale and display with black borders.',
'enumValueTitles' => ['crop.', 'scale and display with black borders.'],
'type' => 'integer',
'format' => 'int32',
'default' => '0',
'enum' => ['0', '1'],
'required' => false,
'example' => '0',
'title' => '',
],
'Url' => ['description' => 'The URL of the background image. The maximum length is 2048 characters.', 'type' => 'string', 'maxLength' => 2048, 'required' => false, 'example' => 'https://xxxx.com/photos/my-test-picture.png', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'UserPanes' => [
'description' => 'The window layout information for subscribed users. Only UserIds with layout information configured are placed in the video. Required in stream mixing mode when recording non-audio-only files.',
'type' => 'array',
'items' => [
'description' => 'The window configuration in the video.',
'type' => 'object',
'properties' => [
'UserId' => ['description' => 'The UserId corresponding to this window.'."\n"
.'- If UserId is not set, subscribed users are filled into windows in the order they join the channel.'."\n"
.'- The combination of UserId and SourceType set here must be included in SubscribeUserIdList.'."\n"
.'- Audio-only streams cannot be added to the layout.', 'type' => 'string', 'required' => false, 'example' => 'userA', 'title' => ''],
'SourceType' => [
'description' => 'The video input stream type of the UserId. Setting SourceType is invalid when UserId is not specified. Valid values:'."\n"
.'- 0: camera. (Default)'."\n"
.'- 1: screen sharing.'."\n"
."\n"
.'The combination of UserId and SourceType set here must be included in SubscribeUserIdList.',
'enumValueTitles' => ['camera.', 'screen sharing.'],
'type' => 'integer',
'format' => 'int32',
'default' => '0',
'enum' => ['0', '1'],
'required' => false,
'example' => '0',
'title' => '',
],
'Height' => ['description' => 'The pane height as a normalized percentage. The value must be within the range of [0, 1]. (Default value: 0)', 'type' => 'string', 'default' => '0', 'required' => false, 'example' => '0.5', 'title' => ''],
'Width' => ['description' => 'The pane width as a normalized percentage. The value must be within the range of [0, 1]. (Default value: 0)', 'type' => 'string', 'default' => '0', 'required' => false, 'example' => '0.5', 'title' => ''],
'X' => ['description' => 'The X coordinate as a normalized percentage. The value must be within the range of [0, 1]. (Default value: 0)', 'type' => 'string', 'default' => '0', 'required' => false, 'example' => '0', 'title' => ''],
'Y' => ['description' => 'The Y coordinate as a normalized percentage. The value must be within the range of [0, 1]. (Default value: 0)', 'type' => 'string', 'default' => '0', 'required' => false, 'example' => '0', 'title' => ''],
'ZOrder' => ['description' => 'The stacking order. 0 is the bottom layer, layer 1 is above layer 0, and so on. (Default value: 0)', 'type' => 'integer', 'format' => 'int32', 'default' => '0', 'required' => false, 'example' => '0', 'title' => ''],
'SubBackground' => [
'description' => 'The sub-pane background image. When a user turns off the camera, has not started streaming after joining, or leaves the channel midway, the corresponding image is displayed at the layout position.',
'type' => 'object',
'properties' => [
'RenderMode' => [
'description' => 'The display mode for the sub-pane output. Valid values:'."\n"
.'- 0: Crop. (Default)'."\n"
.'- 1: Scale and display with black borders.',
'enumValueTitles' => ['crop.', 'scale and display with black borders.'],
'type' => 'integer',
'format' => 'int32',
'default' => '0',
'enum' => ['0', '1'],
'required' => false,
'example' => '0',
'title' => '',
],
'Url' => ['description' => 'The URL of the background image. The maximum length is 2048 characters.', 'type' => 'string', 'maxLength' => 2048, 'required' => false, 'example' => 'https://xxxx.com/photos/my-test-pane-picture.png', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'title' => '',
'example' => '',
],
],
'required' => false,
'title' => '',
'example' => '',
],
],
[
'name' => 'NotifyUrl',
'in' => 'query',
'schema' => ['description' => 'The URL for receiving callback messages. Task status messages are pushed to this URL via POST in JSON format. The maximum length is 2048 characters.'."\n"
."\n"
.'For callback message details, see [documentation](https://www.alibabacloud.com/help/en/live/on-cloud-recording-callback-message).', 'type' => 'string', 'required' => false, 'example' => 'http://xxxx/test/mycallback', 'title' => ''],
],
[
'name' => 'NotifyAuthKey',
'in' => 'query',
'schema' => ['description' => 'The authentication key for callback messages. If not specified, no authentication is performed. If specified, the length must be within [16, 64] characters and consist of only uppercase and lowercase letters and digits.'."\n"
.'- If NotifyUrl is not specified, NotifyAuthKey is also invalid.'."\n"
.'- When a valid NotifyAuthKey is set, authentication content is included in the callback message.', 'type' => 'string', 'required' => false, 'example' => 'mytestkeymytestkey', 'title' => ''],
],
[
'name' => 'NotifyFileUploadedFormat',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'title' => '',
'description' => 'The specified formats for which a callback message is sent when the recording file generation event (RecordFileUploaded) is triggered.',
'type' => 'array',
'items' => ['title' => '', 'description' => 'The specific file formats for which callbacks are received. Valid values (case-insensitive):'."\n"
."\n"
.'- SLICE'."\n"
.'- HLS'."\n"
.'- MP4'."\n"
.'- MP3'."\n"
."\n"
.'VOD storage mode is not currently supported.'."\n"
.'For OSS storage mode, the selected formats must be included in the file formats specified in StorageParams.FileInfo.', 'type' => 'string', 'example' => 'MP4', 'required' => false],
'required' => false,
'maxItems' => 100,
'example' => '',
],
],
[
'name' => 'MaxIdleTime',
'in' => 'query',
'schema' => ['description' => 'The idle timeout period. When the task remains idle for longer than MaxIdleTime, the task is automatically stopped. Unit: seconds. The value must be within the range of [10, 14400], which is a maximum of 4 hours. (Default value: 300 seconds)'."\n"
.'- In stream mixing recording mode, the task is considered idle when all subscribed user streams stop streaming.'."\n"
.'- In single-stream recording mode, subscribed streams are independent of each other. When any stream stops streaming, it is considered idle. After MaxIdleTime is reached, recording for that stream is stopped. When all subscribed streams have been idle beyond the timeout, the entire cloud recording task is stopped.', 'type' => 'integer', 'format' => 'int64', 'maximum' => '86400', 'minimum' => '10', 'required' => false, 'example' => '600', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '******58-5876-****-83CA-B56278******'],
'TaskId' => ['description' => 'The task ID.', 'type' => 'string', 'example' => '******73-8501-****-8ac1-72295a******', 'title' => ''],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameter.NotifyUrl', 'errorMessage' => '%s, please check the notifyUrl.', 'description' => 'The parameter NotifyUrl format is invalid, please check.'],
['errorCode' => 'InvalidParameter.StorageParams.FileInfo', 'errorMessage' => '%s, please check the fileInfo of storageParams.', 'description' => 'The parameter FileInfo has invalid fields, please check.'],
['errorCode' => 'InvalidParameter.StorageParams.OSSParams', 'errorMessage' => '%s, please check the ossParams of storageParams.', 'description' => 'The parameter OSSParams has invalid fields, please check.'],
['errorCode' => 'NotFound.OSSBucket', 'errorMessage' => '%s, please check the ossBucket of storageParams.', 'description' => 'The parameter OSSBucket does not exist.'],
['errorCode' => 'InvalidParameter.SubscribeParams.SubscribeUserIdList', 'errorMessage' => '%s, please check the subscribeUserIdList of subscribeParams.', 'description' => 'The parameter SubscribeUserIdList is invalid, please check.'],
['errorCode' => 'InvalidParameter.MixLayoutParams.UserPanes', 'errorMessage' => '%s, please check the userPanes of mixLayoutParams.', 'description' => 'The parameter UserPanes has invalid fields, please check.'],
['errorCode' => 'InvalidParameter.MixTranscodeParams', 'errorMessage' => '%s, please check the transcodeParams.', 'description' => 'The parameter MixTranscodeParams has invalid fields, please check.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
],
403 => [
['errorCode' => 'InvalidParameter.UserId', 'errorMessage' => '%s, please check the UserId.', 'description' => 'UserId is invalid, please check.'],
],
[
['errorCode' => 'InvalidParameter.ChannelId', 'errorMessage' => '%s, please check the channelId.', 'description' => ''],
['errorCode' => 'InvalidParameter.AppId', 'errorMessage' => '%s, please check the appId.', 'description' => 'The parameter AppId is invalid. Check it.'],
],
[
['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' => 'The parameter StorageType is invalid, please check.'],
['errorCode' => 'InvalidParameter.NotifyFileUploadedFormat', 'errorMessage' => '%s, please check the notifyFileUploadedFormat.', 'description' => 'The parameter NotifyFileUploadedFormat is invalid, please check.'],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"******58-5876-****-83CA-B56278******\\",\\n \\"TaskId\\": \\"******73-8501-****-8ac1-72295a******\\"\\n}","type":"json"}]',
'title' => 'Start an RTC cloud recording task',
'description' => 'Cloud recording is a paid feature. For billing details, see [Cloud recording fees](~~2976391~~).'."\n"
.'## Endpoint'."\n"
.'The following endpoints are active for this operation:'."\n"
."\n"
.' |Region |Region ID | Public endpoint |'."\n"
.' | --- | --- | --- |'."\n"
.' | Shanghai | cn-shanghai | live.aliyuncs.com |'."\n"
.' | Singapore | ap-southeast-1 | live.ap-southeast-1.aliyuncs.com |'."\n"
.' | US (Virginia) | us-east-1 | live.us-east-1.aliyuncs.com |'."\n"
."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this operation is 50 calls per second. If this limit is exceeded, the API call is throttled, which may affect your business. Invoke this operation as needed.',
'requestParamsDescription' => '- For single-stream recording mode:'."\n"
.' - You can subscribe to both the camera and screen sharing streams of the same UserId simultaneously, but the FileNamePattern and SliceNamePattern parameters must include the SourceType variable (to avoid recording files overwriting each other).'."\n"
.' - Subscribing to only the video-only stream of a UserId is not currently supported. In single-stream mode, UserInfo.StreamType cannot be set to 2.'."\n"
."\n"
.'- In single-stream recording mode:'."\n"
.' - If RecordParams.StreamType is audio-only (value 1), SubscribeParams cannot contain a video-only subscription (SubscribeParams value 2).'."\n"
.' - If RecordParams.StreamType is video-only (value 2), SubscribeParams cannot contain an audio-only subscription (SubscribeParams value 1).'."\n"
."\n"
.'- In stream mixing recording mode:'."\n"
.' - If RecordParams.StreamType is audio-only (value 1), SubscribeParams cannot have all UserIds subscribing to video-only streams (all SubscribeParams values set to 2).'."\n"
.' - If RecordParams.StreamType is video-only (value 2), SubscribeParams cannot have all UserIds subscribing to audio-only streams (all SubscribeParams values set to 1).'."\n"
."\n"
.'- During recording, if the channel is closed midway, users must rejoin and resume streaming within the idle timeout period. Otherwise, the task is automatically stopped.',
'extraInfo' => '- The relationship between the actual stream published by a UserId and the subscribed stream must match the scenarios marked with "✅" in the following table:'."\n"
."\n"
.' | |Subscribe to audio stream | Subscribe to video stream | Subscribe to audio and video stream |'."\n"
.' | --- |--- | --- | --- |'."\n"
.' | Publish audio stream | ✅ | ❌ | ❌ |'."\n"
.' | Publish video stream | ❌ | ✅ | ✅ |'."\n"
.' | Publish audio and video stream | ✅ | ✅ | ✅ |'."\n"
."\n"
.'- Otherwise, the recorded files may not match expectations, or no files may be generated temporarily.'."\n"
."\n"
.'- In single-stream recording mode, if the resolution of a UserId\'s source stream changes during streaming and MP4 recording is required, compatibility issues may occur. Specifically, when a player that does not support dynamic resolution switching opens the MP4 file, the video may freeze from the point where the resolution changed.'."\n"
."\n"
.'- When recording to VOD, receiving the STOPPED callback only indicates that the file has started uploading to VOD, not that the upload is complete. This differs from recording to OSS.'."\n"
."\n"
.'- When recording to VOD with automatic merging enabled, at least two media resource files must exist when recording ends for automatic merging to occur. If only one recording file exists when recording ends, no merged file is generated.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartRtcCloudRecording'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:StartRtcCloudRecording',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'translator' => 'machine',
],
'StartRtcCloudTranscode' => [
'summary' => 'Creates a cloud transcoding job.',
'path' => '',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'none',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveK6LRQR'],
'tenantRelevance' => 'tenant',
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the application to which the channel belongs. The ID can contain uppercase letters, lowercase letters, digits, underscores (\\_), and hyphens (-). The maximum length is 64 characters.', 'type' => 'string', 'required' => true, 'example' => '********-7074-****-9ef5-85c19a4*****', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'The ID of the channel to which the user to be transcoded belongs. The ID can contain uppercase letters, lowercase letters, digits, underscores (\\_), and hyphens (-). The maximum length is 64 characters.', 'type' => 'string', 'required' => true, 'example' => 'myChannel', 'title' => ''],
],
[
'name' => 'InputParam',
'in' => 'query',
'style' => 'json',
'schema' => [
'type' => 'object',
'properties' => [
'SingleSubUserParam' => [
'type' => 'object',
'properties' => [
'UserId' => ['description' => 'The ID of the user whose stream you want to subscribe to.', 'type' => 'string', 'required' => true, 'example' => 'userA', 'title' => ''],
'StreamType' => ['description' => 'The media type of the subscribed stream. Valid values:'."\n"
."\n"
.'- 0 (default): The original stream, which includes both the audio and video streams.'."\n"
."\n"
.'- 1: The audio-only stream. (This value is not supported. The setting is invalid.)'."\n"
."\n"
.'- 2: The video-only stream. (This value is not supported. The setting is invalid.)', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '0', 'title' => ''],
'SourceType' => ['description' => 'The type of the video input stream. This parameter is valid only if the subscribed media type includes a video stream. Valid values:'."\n"
."\n"
.'- 0 (default): The camera stream.'."\n"
."\n"
.'- 1: The screen sharing stream. (This value is not supported. The setting is invalid.)', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '0', 'title' => ''],
],
'required' => true,
'description' => 'The input parameters for a single-stream subscription.',
'title' => '',
'example' => '',
],
],
'required' => true,
'description' => 'The parameters for the input stream subscription.',
'title' => '',
'example' => '',
],
],
[
'name' => 'OutputParams',
'in' => 'query',
'style' => 'json',
'schema' => [
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'ChannelId' => ['description' => 'The ID of the channel to which the transcoded stream is pushed. The ID can contain uppercase letters, lowercase letters, digits, underscores (\\_), and hyphens (-). The maximum length is 64 characters. (Pushing streams to a different channel is not supported. This setting is invalid.)', 'type' => 'string', 'required' => true, 'example' => 'myChannel', 'title' => ''],
'UserId' => ['description' => 'The user ID for the transcoded stream in the destination channel. This ID must be unique within the channel.', 'type' => 'string', 'required' => true, 'example' => 'userA_360p', 'title' => ''],
'UserToken' => ['description' => 'The token required to push the transcoded stream to the channel. For more information, see [Token-based authentication](https://www.alibabacloud.com/help/en/apsaravideo-live/latest/token-based-authentication).', 'type' => 'string', 'required' => true, 'example' => 'eyJhcHBpZCI********', 'title' => ''],
'TranscodeTemplate' => ['description' => 'The name of the transcoding template. Valid values:'."\n"
."\n"
.'- alimcopy'."\n"
."\n"
.'- lld'."\n"
."\n"
.'- lsd'."\n"
."\n"
.'- lhd'."\n"
."\n"
.'- lud', 'type' => 'string', 'required' => true, 'example' => 'lhd', 'title' => ''],
],
'description' => 'The parameters for a transcoded output stream.',
'required' => false,
'title' => '',
'example' => '',
],
'required' => true,
'description' => 'The parameters for the transcoded output.',
'title' => '',
'example' => '',
],
],
[
'name' => 'MaxIdleTime',
'in' => 'query',
'schema' => ['description' => 'The idle timeout period in seconds. If a task cannot subscribe to the specified streamer\'s stream and remains idle for longer than this period, the task automatically stops. The value must be an integer from 10 to 14,400. The default value is 300.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '600', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '******3B-0E1A-586A-AC29-742247******'],
'TaskId' => ['description' => 'The ID of the cloud transcoding job.', 'type' => 'string', 'example' => '******73-8501-****-8ac1-72295a******', 'title' => ''],
],
'title' => '',
'description' => 'The response.',
'example' => '',
],
],
],
'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' => ''],
],
[
['errorCode' => 'NotFound%s', 'errorMessage' => '%s.', 'description' => ''],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => 'error on the live liveapi server.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'StartRtcCloudTranscode',
'description' => '## Endpoints'."\n"
."\n"
.'The following endpoints are available for this operation.'."\n"
."\n"
.'| Region | Region ID | Public endpoint |'."\n"
.'| --------- | -------------- | -------------------------------- |'."\n"
.'| Singapore | ap-southeast-1 | live.ap-southeast-1.aliyuncs.com |',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\",\\n \\"TaskId\\": \\"******73-8501-****-8ac1-72295a******\\"\\n}","type":"json"}]',
],
'StopCaster' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'paid',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio. Make sure that the specified CasterId is correct.'."\n"
."\n"
.'- If you create a production studio by calling the [CreateCaster](~~2848009~~) operation, obtain the ID from the CasterId parameter in the response.'."\n"
."\n"
.'- If you create a production studio in the ApsaraVideo Live console, go to **ApsaraVideo Live console** > **Production Studio** > **Cloud Production Studio** to view the ID.'."\n"
."\n"
.'> The name of the production studio in the list on the Cloud Production Studio page is the production studio ID.', 'type' => 'string', 'required' => true, 'example' => '80787064-1c94-4dc1-85ce-9409960a****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'IncorrectSceneStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene status is not supported, please check and try again.'],
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidScene.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene does not exist, please check and try again.'],
],
],
'title' => 'StopCaster',
'summary' => 'Stops a production studio. This stops the PVW (preview scene) and PGM (program output scene) scenes.',
'description' => 'You must first call the [CreateCaster](~~2848009~~) operation to create a production studio. You can then call this operation to stop the production studio, which stops the Preview (PVW) and Program (PGM) scenes.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 10 calls per second per user. API calls that exceed this limit are throttled. This may affect your business. Plan your calls accordingly.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopCaster'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:StopCaster',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]',
],
'StopCasterScene' => [
'summary' => 'Stops a specified preview (PVW) scene.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The ID of the region.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you created the production studio by calling the [CreateCaster](~~2848009~~) operation, use the CasterId value that is returned in the response.'."\n"
."\n"
.'- If you created the production studio in the ApsaraVideo Live console, go to the **Production Studio** > **Cloud Production Studio** page to view the ID.'."\n"
."\n"
.'> The name of the production studio in the list on the Cloud Production Studio page is the production studio ID.', 'type' => 'string', 'required' => true, 'example' => '80787064-1c94-4dc1-85ce-9409960a****', 'title' => ''],
],
[
'name' => 'SceneId',
'in' => 'query',
'schema' => ['description' => 'The ID of the scene.'."\n"
."\n"
.'This operation is available only for preview (PVW) scenes. For more information about scene types, see [Query production studio scenes](~~2848102~~).', 'type' => 'string', 'required' => true, 'example' => '242b4e2c-c30f-4442-85ba-2e3e4e3d****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidSceneId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter SceneId is invalid, please check and try again.'],
['errorCode' => 'IncorrectSceneStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene status is not supported, please check and try again.'],
['errorCode' => 'IncorrectSceneStatus.Idle', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene status is idle, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidScene.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'StopCasterScene',
'description' => 'Call this operation to stop a specified preview (PVW) scene.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'This operation is limited to 10 queries per second (QPS) per user. Exceeding this limit results in API call throttling, which may affect your business. We recommend that you call this operation at a reasonable frequency.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopCasterScene'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:StopCasterScene',
'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-122CC1A52FA7\\"\\n}","type":"json"}]',
],
'StopEdgeTranscodeJob' => [
'summary' => 'Stops an edge transcoding task.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveHVN9B2'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'ClusterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the data center.', 'type' => 'string', 'required' => true, 'example' => '******3b-4d18-395c-8106-ff21a6******', 'title' => ''],
],
[
'name' => 'JobId',
'in' => 'query',
'schema' => ['description' => 'The ID of the edge transcoding job.', 'type' => 'string', 'required' => true, 'example' => '****20b48fb04483915d4f2cd8ac****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'JobId' => ['description' => 'The ID of the edge transcoding job.', 'type' => 'string', 'example' => '****20b48fb04483915d4f2cd8ac****', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
],
403 => [
['errorCode' => 'OperationDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation rejected, please check and try again.'],
['errorCode' => 'Forbidden', 'errorMessage' => '%s, please check and try again later.', 'description' => 'No permission, please check and try again.'],
],
[
['errorCode' => 'JobNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Task does not exist, please check and try again.'],
],
],
'title' => 'StopEdgeTranscodeJob',
'description' => '- This operation stops an edge transcoding job.'."\n"
."\n"
.'- To call this operation, you must have permissions to access the edge transcoding service, and the transcoding job must be in the running state.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 6,000 calls per minute for each account. Calls that exceed this limit are throttled, which may affect your business. Plan your calls accordingly.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopEdgeTranscodeJob'],
],
],
'ramActions' => [
[
'operationType' => '',
'ramAction' => [
'action' => 'live:StopEdgeTranscodeJob',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"****20b48fb04483915d4f2cd8ac****\\",\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","type":"json"}]',
],
'StopLiveDomain' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '107251',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The ingest domain or streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '324AEFFF-308C-4DA7-8CD3-01B277B98F28', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'eventInfo' => [
'enable' => false,
'eventNames' => [],
],
'title' => 'StopLiveDomain',
'summary' => 'Disables a live streaming domain. This operation changes the DomainStatus to offline.',
'description' => 'After a live streaming domain is disabled, its information is retained. The system automatically performs an origin fetch for requests to the domain.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 30 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2024-09-29T06:29:45.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopLiveDomain'],
],
],
'ramActions' => [
[
'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' => 'Stops a mixed-stream relay task.',
'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' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. You can specify only one application ID. The ID can be up to 64 characters in length and can contain letters, digits, underscores (\\_), and hyphens (-).', 'type' => 'string', 'required' => true, 'example' => 'yourAppId', 'title' => ''],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'The task ID. You can specify only one task ID. The ID can be up to 55 characters in length and can contain letters, digits, underscores (\\_), and hyphens (-). The ID must be unique.', 'type' => 'string', 'required' => true, 'example' => 'yourTaskId', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => '',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '0F72851F-5DC1-1979-9B2C-450040316C3E', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => '%s.', 'description' => 'Parameter verification failed'],
['errorCode' => 'InvalidAppId', 'errorMessage' => '%s, please check and try again later.', 'description' => 'AppId is invalid, please check and try again.'],
['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is missing, please check and try again.'],
],
403 => [
['errorCode' => 'OperationDenied', 'errorMessage' => 'Your account has not enabled the Live service', 'description' => ''],
['errorCode' => 'Forbidden', 'errorMessage' => '%s, please check and try again later.', 'description' => 'No permission, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'InternalError', 'description' => ''],
],
],
'title' => 'StopLiveMPUTask',
'description' => '- Make sure that a mixed-stream relay task is started before you call this operation. You can call the [StartLiveMPUTask](~~2848199~~) operation to start a mixed-stream relay task.'."\n"
."\n"
.'- If a mixed-stream relay task becomes abnormal, the task is automatically stopped 2 minutes after the last person leaves the channel. In this case, you do not need to call the StopLiveMPUTask operation. If you need to resume a mixed-stream relay task that is stopped, call the [StartLiveMPUTask](~~2848199~~) operation again.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 500 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.',
'changeSet' => [
['createdAt' => '2024-07-04T07:02:34.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopLiveMPUTask'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:StopLiveMPUTask',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0F72851F-5DC1-1979-9B2C-450040316C3E\\"\\n}","type":"json"}]',
],
'StopLivePullToPush' => [
'summary' => 'Stops a stream pulling task.',
'methods' => ['get'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '257294',
'abilityTreeNodes' => ['FEATURElive9P39J9'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'default' => 'cn-shanghai', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'Region',
'in' => 'query',
'schema' => [
'description' => 'The live center to query. Valid values:'."\n"
.'- ap-southeast-1 (Singapore)'."\n"
.'- ap-southeast-5 (Indonesia)'."\n"
.'- cn-beijing (Beijing)'."\n"
.'- cn-shanghai (Shanghai).',
'enumValueTitles' => ['cn-shenzhen' => 'Shenzhen.', 'cn-qingdao' => 'Qingdao.', 'preregion' => 'Pre-release.', 'cn-beijing' => 'Beijing.', 'cn-shanghai' => 'Shanghai.', 'ap-southeast-1' => 'Singapore.', 'eu-central-1' => 'Germany (Frankfurt).', 'ap-northeast-1' => 'Japan (Tokyo).', 'ap-southeast-5' => 'Indonesia.', 'me-central-1' => 'Saudi Arabia (Riyadh).'],
'type' => 'string',
'required' => true,
'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'],
'example' => 'preregion',
'title' => '',
],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => [
'description' => 'The task ID.',
'type' => 'string',
'required' => true,
'enum' => [],
'example' => '3bb44350-0c34-49c7-8c5e-cba5e6c0****',
'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'a05e6b15-15af-405b-a4a2-0152245d****'],
'TaskId' => ['description' => 'The node ID returned when you create task.', 'type' => 'string', 'example' => 'fb0d4ac7-c7e3-4978-9743-0bf2f6e8****', 'title' => ''],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => 'Parameter error'],
['errorCode' => 'LiveServiceNotFound', 'errorMessage' => 'Your account does not open Live service yet', 'description' => 'Your account has not yet activated ApsaraVideo Live.'],
['errorCode' => 'CodeInvalidAliUid', 'errorMessage' => 'This aliuid does not have a live domain name.', 'description' => 'This aluid does not have a live domain name.'],
['errorCode' => 'InvalidParam.CodeIllegalDuration', 'errorMessage' => '%s.', 'description' => 'The value of start time should be less than the value of end time .'],
['errorCode' => 'CodeTaskNotExist', 'errorMessage' => 'Task does not exist.', 'description' => 'The task does not exist.'],
['errorCode' => 'CodeTaskHasStopped', 'errorMessage' => 'The task has been stopped.', 'description' => 'The task has been stopped.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => 'error on the live liveapi server.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"a05e6b15-15af-405b-a4a2-0152245d****\\",\\n \\"TaskId\\": \\"fb0d4ac7-c7e3-4978-9743-0bf2f6e8****\\"\\n}","type":"json"}]',
'title' => 'Stop a stream pulling task',
'description' => '- Call this operation to stop a stream pulling task.'."\n"
.'- You can forcibly stop a running task (including tasks in the abnormal retry state). This operation does not take effect on tasks that are not running.'."\n"
."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this operation is 10 calls per second. If the limit is exceeded, API calls are throttled, which may affect your business. Call this operation appropriately.',
'changeSet' => [
['createdAt' => '2025-04-27T08:03:58.000Z', 'description' => 'Error codes changed'],
],
'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' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'StopLiveStreamMonitor' => [
'summary' => 'Stops a monitoring session.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveSM955S'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'MonitorId',
'in' => 'query',
'schema' => ['description' => 'The ID of the monitoring session.'."\n"
."\n"
.'> Check the response of the [CreateLiveStreamMonitor](~~2848129~~) operation to obtain the **MonitorId**.', 'type' => 'string', 'required' => true, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5c6a2a0d-f228-4a64-af62-20e91b9676b3', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidMonitorId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter MonitorId is invalid, please check and try again.'],
['errorCode' => 'StreamMonitorAlreadyStop', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The monitoring room has been stopped, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
403 => [
['errorCode' => 'UserQuotaExceed', 'errorMessage' => 'Quota exceeded: %s.', 'description' => 'Quota exceeded: %s.'],
],
[
['errorCode' => 'StreamMonitorNotExist', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The monitoring room does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'StopLiveStreamMonitor',
'description' => 'You can obtain a **MonitorId** by calling the [CreateLiveStreamMonitor](~~2848129~~) operation. After a monitoring session starts, call this operation to stop the session.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'This operation is limited to 10 queries per second (QPS) per user. Calls that exceed this limit are throttled, which may affect your business. Plan your calls accordingly.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopLiveStreamMonitor'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:StopLiveStreamMonitor',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b9676b3\\"\\n}","type":"json"}]',
],
'StopPlaylist' => [
'summary' => 'Stops playing an episode list.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'ProgramId',
'in' => 'query',
'schema' => ['description' => 'The playlist ID. If you add items to a playlist by calling the [AddPlaylistItems](~~2848078~~) operation, check the value of the ProgramId parameter that is returned.', 'type' => 'string', 'required' => true, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'ProgramId' => ['description' => 'The playlist ID.', 'type' => 'string', 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidProgramId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ProgramId is invalid, please check and try again.'],
],
404 => [
['errorCode' => 'PlayListNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'PlayList does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'StopPlaylist',
'description' => 'First, call the [AddPlaylistItems](~~2848078~~) operation to add items to a playlist. You can then call this operation to stop the playlist.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 10 calls per second. If the limit is exceeded, API calls are throttled, which may affect your business. Call this operation based on your business needs.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopPlaylist'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:StopPlaylist',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"ProgramId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b96****\\"\\n}","type":"json"}]',
],
'StopRtcAsrTask' => [
'summary' => 'Stops a live subtitle task.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '219794',
'abilityTreeNodes' => ['FEATUREliveK6LRQR'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'The task ID.', 'type' => 'string', 'required' => true, 'example' => 'asr-d794cc89-a63e-4d08-8b44-242a6597****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'Description' => ['description' => 'The result of the call. The value is \\`success\\` if the call is successful. Otherwise, an error message is returned.', 'type' => 'string', 'example' => 'success', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '3D208CC1-27C9-51E9-82B8-A6682D466421', 'title' => ''],
'RetCode' => ['description' => 'The status code. A value of \\`2000\\` indicates that the call was successful. Other values indicate that the call failed.', 'type' => 'integer', 'format' => 'int64', 'example' => '2000', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ConfigNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Configuration does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => 'error on the live liveapi server.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'StopRtcAsrTask',
'description' => 'This operation is limited to 20 queries per second (QPS) for each account. If you exceed the limit, API calls are throttled, which may affect your business. We recommend that you call this operation at a reasonable rate.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopRtcAsrTask'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:StopRtcAsrTask',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Description\\": \\"success\\",\\n \\"RequestId\\": \\"3D208CC1-27C9-51E9-82B8-A6682D466421\\",\\n \\"RetCode\\": 2000\\n}","type":"json"}]',
],
'StopRtcCloudRecording' => [
'summary' => 'Stops an RTC cloud recording task.',
'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' => 'The ID of the task that is returned when you start an RTC cloud recording.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => '******73-8501-****-8ac1-72295a******'."\n"],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '******58-5876-****-83CA-B56278******'],
'TaskId' => ['description' => 'The task ID.', 'type' => 'string', 'title' => '', 'example' => '******73-8501-****-8ac1-72295a******'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'NotFound.Task', 'errorMessage' => '%s, please check the TaskId.', 'description' => 'The parameter TaskId does not exist.'],
['errorCode' => 'InvalidParameter.TaskId', 'errorMessage' => '%s, please check the TaskId.', 'description' => 'The specified task must be in the running or recovering state.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
],
403 => [
['errorCode' => 'InvalidParameter.UserId', 'errorMessage' => '%s, please check the UserId.', 'description' => 'UserId is invalid, please check.'],
],
],
'title' => 'StopRtcCloudRecording',
'description' => '## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 50 calls per second. If the number of calls exceeds the limit, throttling is triggered, which may affect your business. We recommend that you call this operation at a reasonable rate.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopRtcCloudRecording'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:StopRtcCloudRecording',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', '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' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'none',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveK6LRQR'],
'tenantRelevance' => 'tenant',
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. The ID can be up to 64 characters long and can contain uppercase letters, lowercase letters, digits, underscores (\\_), and hyphens (-).', 'type' => 'string', 'required' => true, 'example' => '********-7074-****-9ef5-85c19a4*****', 'title' => ''],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'The ID of the cloud transcoding job. The ID can be up to 64 characters long and can contain uppercase letters, lowercase letters, digits, underscores (\\_), and hyphens (-).', 'type' => 'string', 'required' => true, 'example' => '******73-8501-****-8ac1-72295a******', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '******3B-0E1A-586A-AC29-742247******'],
],
'title' => '',
'description' => 'The response.',
'example' => '',
],
],
],
'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' => ''],
],
[
['errorCode' => 'NotFound%s', 'errorMessage' => '%s.', 'description' => ''],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => 'error on the live liveapi server.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'StopRtcCloudTranscode',
'summary' => 'Stops a cloud transcoding job.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","type":"json"}]',
],
'TagLiveResources' => [
'summary' => 'Adds labels to ApsaraVideo Live resources by calling TagLiveResources.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '107259',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'ResourceId',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The resource ID. Set this parameter to a live streaming domain name.'."\n"
.'Valid values of N: **1 to 50**.',
'type' => 'array',
'items' => ['description' => 'The resource ID.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
'required' => true,
'example' => 'example.com',
'maxItems' => 51,
'title' => '',
],
],
[
'name' => 'Tag',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The list of labels.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Key' => ['description' => 'The label key. Valid values of N: **1 to 20**.', 'type' => 'string', 'required' => true, 'example' => 'env', 'title' => ''],
'Value' => ['description' => 'The label value. Valid values of N: **1 to 20**.', 'type' => 'string', 'required' => false, 'example' => 'product', 'title' => ''],
],
'required' => false,
'description' => '',
'title' => '',
'example' => '',
],
'required' => true,
'maxItems' => 21,
'title' => '',
'example' => '',
],
],
[
'name' => 'ResourceType',
'in' => 'query',
'schema' => [
'description' => 'The resource type. Set this parameter to **DOMAIN**.',
'enumValueTitles' => ['DOMAIN' => 'domain name resource.', 'domain' => 'domain name resource.'],
'type' => 'string',
'required' => true,
'enum' => ['DOMAIN', 'domain'],
'example' => 'DOMAIN',
'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '34AB41F1-04A5-496F-8C8D-634BDBE6A9FB', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
401 => [
['errorCode' => 'InvalidResourceType', 'errorMessage' => 'The resourceType is invalid.', 'description' => 'The specified resourceType parameter is invalid.'],
['errorCode' => 'QuotaExceed.TagsPerResource', 'errorMessage' => 'The maximum number of tags for each resource is exceeded.', 'description' => 'The number of tags for the resource exceeds the upper limit.'],
['errorCode' => 'InvalidTagKey', 'errorMessage' => 'The tag key is invalid, %s.', 'description' => 'Invalid tag key.'],
],
403 => [
['errorCode' => 'Duplicate.TagKey', 'errorMessage' => 'The tags should not contain duplicate keys.', 'description' => 'The tag should not contain duplicate keys.'],
['errorCode' => 'InvalidResourcesCount', 'errorMessage' => 'The count of resources is invalid, %s.', 'description' => 'The input resource array. The total number of resources cannot exceed the maximum value and must be greater than 0.'],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"34AB41F1-04A5-496F-8C8D-634BDBE6A9FB\\"\\n}","type":"json"}]',
'title' => 'Add labels to live resources',
'description' => ' The maximum number of times that each user can call this operation per second is 100.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '### Special error codes'."\n"
.'|Error code |Description |HTTP status code |Meaning |'."\n"
.'|------------|--------|---------|------|'."\n"
.'|InvalidRegionId.Malformed |The specified RegionId is invalid. |400 |The RegionId is invalid.|'."\n"
.'|Resource.NotExist |Resources doesn\'t exist. |400 |The resource does not exist.|'."\n"
.'|TagKeyIsInvalid |The specified TagKey is invalid. |400 |The TagKey format is invalid.|'."\n"
.'|TooManyTags |Too many tags. |400 |The number of labels exceeds the limit.|'."\n"
.'|TagValueIsInvalid |The specified TagValue is invalid. |400 |The TagValue format is invalid.|'."\n"
.'|TagKeyRepeated |The specified TagKey is duplicated. |400 |The TagKey contains duplicate values.|'."\n"
.'|TagIsInvalid |The number of Tag exceeds 20. |400 |The number of labels cannot exceed 20.|'."\n"
.'|ResourceIdIsInvalid |The number of ResourceId exceeds 50. |400 |The number of resource IDs cannot exceed 50.|'."\n"
.'|SystemTagIsInvalid |The number of System Tag exceeds 50. |400 |The total number of system labels cannot exceed 50.|'."\n"
.'|CustomTagIsInvalid |The number of Custom Tag exceeds 20. |400 |The total number of custom labels cannot exceed 20.|.',
'changeSet' => [
['createdAt' => '2023-12-14T02:40:09.000Z', 'description' => 'Request parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'TagLiveResources'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:TagLiveResources',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
],
'UnTagLiveResources' => [
'summary' => 'Calls UnTagLiveResources to delete tags from ApsaraVideo Live resources.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '107264',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'ResourceId',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The resource ID. The live streaming domain name. Valid values of N: 1 to 50.',
'type' => 'array',
'items' => ['description' => 'The resource ID.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
'required' => true,
'example' => 'example.com',
'maxItems' => 51,
'title' => '',
],
],
[
'name' => 'TagKey',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The tag key. Valid values of N: **1 to 20**.',
'type' => 'array',
'items' => ['description' => 'The tag key.', 'type' => 'string', 'required' => false, 'example' => 'testKey', 'title' => ''],
'required' => false,
'example' => 'env',
'maxItems' => 21,
'title' => '',
],
],
[
'name' => 'ResourceType',
'in' => 'query',
'schema' => [
'description' => 'The resource type. Enumeration type.',
'enumValueTitles' => ['DOMAIN' => 'domain resource.', 'domain' => 'domain resource.', 'Domain' => 'domain resource.'],
'type' => 'string',
'required' => true,
'enum' => ['DOMAIN', 'domain', 'Domain'],
'example' => 'DOMAIN',
'title' => '',
],
],
[
'name' => 'All',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to delete all tags. Valid values:'."\n"
."\n"
.'- **true**: Yes.'."\n"
.'- **false**: No.'."\n"
."\n"
.'Default value: **false**.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '97C68796-EB7F-4D41-9D5B-12B909D76508', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
401 => [
['errorCode' => 'InvalidResourceType', 'errorMessage' => 'The resourceType is invalid.', 'description' => 'The specified resourceType parameter is invalid.'],
],
403 => [
['errorCode' => 'Duplicate.TagKey', 'errorMessage' => 'The tags should not contain duplicate keys.', 'description' => 'The tag should not contain duplicate keys.'],
['errorCode' => 'InvalidResourcesCount', 'errorMessage' => 'The count of resources is invalid, %s.', 'description' => 'The input resource array. The total number of resources cannot exceed the maximum value and must be greater than 0.'],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"97C68796-EB7F-4D41-9D5B-12B909D76508\\"\\n}","type":"json"}]',
'title' => 'Delete apsaraVideo live resource tags',
'description' => 'The maximum call frequency for a single user is 100 calls per second.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '### Special error codes'."\n"
.'|Error code |Description |HTTP status code |Meaning |'."\n"
.'|------------|--------|---------|------|'."\n"
.'|TagIsInvalid |The number of Tag exceeds 20. |400 |The number of tags cannot exceed 20.|'."\n"
.'|ResourceIdIsInvalid |The number of ResourceId exceeds 50. |400 |The number of resource IDs cannot exceed 50.|.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UnTagLiveResources'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UnTagLiveResources',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
],
'UnbanLiveMessageGroup' => [
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '237380',
'abilityTreeNodes' => ['FEATUREliveSL6Y07'],
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'demo', 'title' => ''],
],
[
'name' => 'GroupId',
'in' => 'query',
'schema' => ['description' => 'The group ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'grouptest', 'title' => ''],
],
[
'name' => 'DataCenter',
'in' => 'query',
'schema' => ['description' => 'The data center. It must be the same as the data center that was specified when you called the [CreateLiveMessageApp](~~2848162~~) operation to create the interactive messaging application.'."\n"
."\n"
.'> Valid values: cn-shanghai and ap-southeast-1 (Singapore).'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '84AF36BF-0B39-1F8A-A416-FAC7C484****'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'UnbanLiveMessageGroup',
'summary' => 'Unmutes a group.',
'description' => '* Before you call this operation, make sure that you have called the [CreateLiveMessageGroup](~~2848163~~) operation to create an interactive messaging group.'."\n"
.'* If a user was muted by calling the AddLiveMessageGroupBand operation, the user remains muted even after you call the UnbanLiveMessageGroup operation.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 10 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n",
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UnbanLiveMessageGroup'],
],
],
'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',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '233607',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'NewResourceGroupId',
'in' => 'query',
'schema' => ['description' => 'The ID of the destination resource group.', 'type' => 'string', 'required' => true, 'example' => 'rg-aekz7***34cn5ty', 'title' => ''],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.', 'type' => 'string', 'required' => true, 'example' => 'a41300c9-23d3-470e-b9bd-****663e0700', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '0D776BD1-****-59D0-9A1B-272832D999F6'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameter.PurchaseTime', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter PurchaseTime is invalid, please check and try again.'],
['errorCode' => 'InvalidParameter.ExpireTime', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ExpireTime is invalid, please check and try again.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'InvalidChargeType.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ChargeType is invalid, please check and try again.'],
['errorCode' => 'InvalidChargeType.PostSupport', 'errorMessage' => '%s, please check and try again later.', 'description' => 'ChargeType only supports post-paid, please check and try again.'],
['errorCode' => 'InvalidCasterTemplate.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterTemplate is invalid, please check and try again.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'InvalidParameter.ChargeType', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ChargeType is invalid, please check and try again.'],
['errorCode' => 'InvalidPeriod.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Invalid time interval, please check and try again.'],
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidClientToken.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter ClientToken is invalid, please check and try again.'],
['errorCode' => 'IncorrectCasterStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Guide station status error, please check and try again.'],
],
[
['errorCode' => 'CasterNumberExceed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The number of casters exceeds the limit. Please check and try again.'],
],
403 => [
['errorCode' => 'PermissionDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Access denied, please check and try again.'],
],
[
['errorCode' => 'InvalidParameter.NormType', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter NormType is invalid, please check and try again.'],
['errorCode' => 'InvalidConfiguration.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Configuration does not exist, please check and try again.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'UpdateCasterResourceGroup',
'summary' => 'Updates the resource group of a production studio.',
'description' => '## Usage notes'."\n"
."\n"
.'When you call this operation, your account must have permissions on both the source and destination resource groups.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 10 calls per second per user. If you exceed the limit, your API calls are throttled. This may affect your business. Make sure that you call this operation within the limit. For more information, see [QPS limits](~~343507~~).',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateCasterResourceGroup'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:UpdateCasterResourceGroup',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0D776BD1-****-59D0-9A1B-272832D999F6\\"\\n}","type":"json"}]',
],
'UpdateCasterSceneAudio' => [
'summary' => 'Modifies the audio configurations of a scene. This operation also lets you add an audio configuration or apply an existing audio configuration to a new scene.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The ID of the region.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'AudioLayer',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The audio configurations.',
'type' => 'array',
'items' => [
'description' => 'The audio configuration.',
'type' => 'object',
'properties' => [
'Filter' => ['description' => 'Specifies whether to enable the features provided by the 3A audio algorithm. This parameter consists of the following fields:'."\n"
."\n"
.'- **enableAgc**: (Optional) Specifies whether to enable the automatic gain control (AGC) feature of the 3A algorithm. Valid values: **0** (disabled, default) and **1** (enabled).'."\n"
."\n"
.'- **enableAns**: (Optional) Specifies whether to enable the intelligent noise reduction feature of the 3A algorithm. Valid values: **0** (disabled, default) and **1** (enabled).'."\n"
."\n"
.'- **ansMode**: (Optional) The mode of the intelligent noise reduction feature. This field is active only when **enableAns** is set to **1**. Valid values: **0** (speech noise reduction, default) and **1** (music noise reduction).'."\n"
."\n"
.'> For better noise reduction, set ansMode to 1.'."\n"
."\n"
.'- **enableBeautify**: (Optional) Specifies whether to enable voice beautification. Valid values: **0** (disabled, default) and **1** (enabled).'."\n"
."\n"
.'- **voiceBeautifyMode**: (Optional) The voice beautification mode. This field is active only when **enableBeautify** is set to **1**. Valid values: **0** (magnetic male voice, default) and **1** (fresh female voice).', 'type' => 'string', 'required' => false, 'example' => '{ "enableAgc":0, "enableAns":1 }', 'title' => ''],
'FixedDelayDuration' => ['description' => 'The fixed latency of the audio layer. This parameter is used to synchronize the audio with captions.'."\n"
."\n"
.'Unit: milliseconds. Valid values: 0 to **5000**. Default value: **0**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'ValidChannel' => ['description' => 'The sound channels that are used for volume input. Valid values:'."\n"
."\n"
.'- **leftChannel**: the left sound channel.'."\n"
."\n"
.'- **rightChannel**: the right sound channel.'."\n"
."\n"
.'- **all** (default): both sound channels.', 'type' => 'string', 'required' => false, 'example' => 'all', 'title' => ''],
'VolumeRate' => ['description' => 'The volume multiplier for the audio stream. Valid values: 0 to **10.0**. Default value: **1.0**.'."\n"
."\n"
.'- **1.0**: The original volume is used.'."\n"
."\n"
.'- A value less than **1** decreases the volume.'."\n"
."\n"
.'- A value greater than **1** increases the volume.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '1', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 12,
'title' => '',
'example' => '',
],
],
[
'name' => 'MixList',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The list of associated location IDs. The order of the location IDs must be the same as the order of the audio layers.',
'type' => 'array',
'items' => ['description' => 'The location ID of the resource.'."\n"
."\n"
.'The order of location IDs must be consistent with the order of the audio layers. If a channel is enabled, use the location ID of the channel. Otherwise, use the location ID of the video source.', 'type' => 'string', 'required' => false, 'example' => 'RV01', 'title' => ''],
'required' => false,
'example' => 'RV01',
'maxItems' => 12,
'title' => '',
],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you create a production studio by calling the [CreateCaster](~~2848009~~) operation, you can obtain the ID from the CasterId parameter in the response.'."\n"
."\n"
.'- If you create a production studio in the LIVE console, go to the **LIVE Console** > **Production Studio** > **Cloud Production Studio** page to view the ID.'."\n"
."\n"
.'> The name of the production studio in the list on the Cloud Production Studio page is the ID of the production studio.', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', 'title' => ''],
],
[
'name' => 'SceneId',
'in' => 'query',
'schema' => ['description' => 'The ID of the scene. If you query the list of scenes in a production studio by calling the [DescribeCasterScenes](~~2848039~~) operation, you can obtain the ID from the ComponentId parameter in the response.', 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e1****', 'title' => ''],
],
[
'name' => 'FollowEnable',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to enable the AFV mode. If you leave this parameter empty, the last configuration is retained. Valid values:'."\n"
."\n"
.'- **0**: audio mixing mode.'."\n"
."\n"
.'- **1**: audio-follows-video mode.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'InvalidAudioLayersAndMixListSize.Mismatch', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The size of the AudioLayers does not match the size of the MixList, please check and try again.'],
['errorCode' => 'IncorrectSceneStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene status is not supported, please check and try again.'],
['errorCode' => 'IncorrectSceneStatus.ConfigError', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene configuration error, please check and try again.'],
['errorCode' => 'InvalidMixList.ExceedNorm', 'errorMessage' => '%s, please check and try again later.', 'description' => 'MixList size exceeds specification, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidScene.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene does not exist, please check and try again.'],
['errorCode' => 'ResourceInChannel.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The resource does not exist. Please check and try again.'],
],
412 => [
['errorCode' => 'ResourceInChannel.PreConditionFailed', 'errorMessage' => '%s, please try again later.', 'description' => 'Resource pre-verification failed, please try again later.'],
['errorCode' => 'ResourceInChannel.Invalid', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Resource and channel material address are inconsistent, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'UpdateCasterSceneAudio',
'description' => 'First, call the [CreateCaster](~~2848009~~) operation to create a production studio. Then, you can call this operation to update the audio configuration of a scene. This operation supports the audio mixing mode and the audio-follows-video (AFV) mode.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'You can make up to 10 queries per second (QPS) per Alibaba Cloud account. API calls that exceed this limit are throttled, which may affect your business. We recommend that you adhere to this limit.',
'requestParamsDescription' => 'In the request parameters, N indicates the sequence number. For example:'."\n"
."\n"
.'- AudioLayer.N.VolumeRate specifies the volume multiplier for the Nth element.'."\n"
."\n"
.'- AudioLayer.1.VolumeRate specifies the volume multiplier for the first element.'."\n"
."\n"
.'- AudioLayer.2.VolumeRate specifies the volume multiplier for the second element.',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2023-03-06T07:31:05.000Z', 'description' => 'Request parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateCasterSceneAudio'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateCasterSceneAudio',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]',
],
'UpdateCasterSceneConfig' => [
'summary' => 'Modifies a scene, including the layout, without invalidating the previous configurations. This operation is more efficient than the SetCasterSceneConfig operation.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The ID of the region.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'ComponentId',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'A list of component IDs. The components in the array are layered from bottom to top.'."\n"
."\n"
.'> N indicates the sequence number. For example, ComponentId.1 is the ID of the first component and ComponentId.2 is the ID of the second component.',
'type' => 'array',
'items' => ['description' => 'A list of component IDs. The components in the array are layered from bottom to top.'."\n"
."\n"
.'> N indicates the sequence number. For example, ComponentId.1 is the ID of the first component and ComponentId.2 is the ID of the second component.', 'type' => 'string', 'required' => false, 'example' => '["98778372-c30f-4442-85ba-2e3e4e3d****"]', 'title' => ''],
'required' => false,
'example' => '["98778372-c30f-4442-85ba-2e3e4e3d****"]',
'maxItems' => 10,
'title' => '',
],
],
[
'name' => 'CasterId',
'in' => 'query',
'schema' => ['description' => 'The ID of the production studio.'."\n"
."\n"
.'- If you create a production studio by calling the [CreateCaster](~~2848009~~) operation, use the CasterId value from the response.'."\n"
."\n"
.'- If you create a production studio in the ApsaraVideo Live console, find the ID on the **Cloud Production Studio** page. Navigate to this page by choosing **Production Studio** > **Cloud Production Studio** in the ApsaraVideo Live console.'."\n"
."\n"
.'> The name of the production studio in the list is its ID.', 'type' => 'string', 'required' => true, 'example' => '80787064-1c94-4dc1-85ce-9409960a****', 'title' => ''],
],
[
'name' => 'SceneId',
'in' => 'query',
'schema' => ['description' => 'The ID of the scene.', 'type' => 'string', 'required' => true, 'example' => '242b4e2c-c30f-4442-85ba-2e3e4e3d****', 'title' => ''],
],
[
'name' => 'LayoutId',
'in' => 'query',
'schema' => ['description' => 'The ID of the layout. If you query the layout list for the production studio by calling the [DescribeCasterLayouts](~~2848028~~) operation, use the LayoutId value from the response.', 'type' => 'string', 'required' => true, 'example' => 'eeab74fb-379d-4599-a93d-86d16a05****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'IncorrectSceneStatus.ConfigError', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene configuration error, please check and try again.'],
['errorCode' => 'ComponentNumberExceed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The number of components exceeds the limit. Please check and try again.'],
['errorCode' => 'SceneNumberExceed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The number of Scenes exceeds the limit. Please check and try again.'],
['errorCode' => 'IncorrectSceneStatus.Waiting', 'errorMessage' => '%s, please try again later.', 'description' => 'Scene is waiting, please try again later.'],
['errorCode' => 'IncorrectSceneStatus.Idle', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene status is idle, please check and try again.'],
['errorCode' => 'InvalidCaptionResource', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The resource referenced by the voice caption component does not exist or is not a live source. Please check and try again.'],
['errorCode' => 'IncorrectSceneStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene status is not supported, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The guide station does not exist, please check and try again.'],
['errorCode' => 'InvalidScene.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene does not exist, please check and try again.'],
['errorCode' => 'InvalidLayout.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'LayoutId does not exist, please check and try again.'],
['errorCode' => 'InvalidComponent.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The component to be operated does not exist. Please check and try again.'],
['errorCode' => 'InvalidVideo.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The video resource does not exist. Please check and try again.'],
['errorCode' => 'ResourceInChannel.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The resource does not exist. Please check and try again.'],
],
412 => [
['errorCode' => 'ResourceInChannel.PreConditionFailed', 'errorMessage' => '%s, please try again later.', 'description' => 'Resource pre-verification failed, please try again later.'],
['errorCode' => 'ResourceInChannel.Invalid', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Resource and channel material address are inconsistent, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'UpdateCasterSceneConfig',
'description' => 'You can call this operation to incrementally modify the configuration of a scene, including its layout. This operation preserves existing settings and is more efficient than a full update.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 10 calls per second per user. Calls that exceed this limit are throttled, which may affect your business. We recommend that you plan your calls accordingly.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateCasterSceneConfig'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateCasterSceneConfig',
'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-122CC1A52FA7\\"\\n}","type":"json"}]',
],
'UpdateCustomLiveStreamTranscode' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '206837',
'abilityTreeNodes' => ['FEATUREliveHVN9B2'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'Domain',
'in' => 'query',
'schema' => ['description' => 'The streaming domain. This parameter cannot be modified.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'App',
'in' => 'query',
'schema' => ['description' => 'The AppName of the live stream. This parameter cannot be modified.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'Template',
'in' => 'query',
'schema' => ['description' => 'The custom name of the transcoding template. This parameter cannot be modified.', 'type' => 'string', 'required' => true, 'example' => 'LiveCusTranscode****', 'title' => ''],
],
[
'name' => 'TemplateType',
'in' => 'query',
'schema' => ['description' => 'The type of the custom transcoding template. This parameter cannot be modified.', 'type' => 'string', 'required' => true, 'example' => 'h264', 'title' => ''],
],
[
'name' => 'Height',
'in' => 'query',
'schema' => ['description' => 'Output video height in pixels. Requirements:'."\n"
."\n"
.'- **Height ≥ 100**'."\n"
."\n"
.'- **max(Height, Width) ≤ 2560**'."\n"
."\n"
.'- **min(Height, Width) ≤ 1440**'."\n"
."\n"
.'> For h265-nbhd templates, it cannot exceed 720.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '720', 'title' => ''],
],
[
'name' => 'Width',
'in' => 'query',
'schema' => ['description' => 'Output video width in pixels.'."\n"
."\n"
.'Requirements:'."\n"
."\n"
.'- **Width ≥ 100**'."\n"
."\n"
.'- **max(Height, Width) ≤ 2560**'."\n"
."\n"
.'- **min(Height, Width) ≤ 1440**'."\n"
."\n"
.'> For h265-nbhd templates, it cannot exceed 1280.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '576', 'title' => ''],
],
[
'name' => 'FPS',
'in' => 'query',
'schema' => ['description' => 'The frame rate of the output video. Unit: frames per second (FPS). Valid values: 1 to **60**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '30', 'title' => ''],
],
[
'name' => 'VideoBitrate',
'in' => 'query',
'schema' => ['description' => 'The output video bitrate. Unit: kbps. Valid values: 1 to **6000**.'."\n"
."\n"
.'> The system tries to transcode the video at the specified bitrate. However, the actual bitrate may not be the same as the specified value, especially when the specified value is too high or too low.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '720', 'title' => ''],
],
[
'name' => 'AudioBitrate',
'in' => 'query',
'schema' => ['description' => 'The output audio bitrate. Unit: kbps. Valid values: 1 to **1000**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '512', 'title' => ''],
],
[
'name' => 'Gop',
'in' => 'query',
'schema' => ['description' => 'The Group of Pictures (GOP) size. The unit can be frame or second. Valid values:'."\n"
."\n"
.'- By frames: 1 to 3000.'."\n"
."\n"
.'- By seconds: 1s to 20s.', 'type' => 'string', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'Profile',
'in' => 'query',
'schema' => ['description' => 'The video codec profile. A larger value indicates better video quality and higher resource consumption for encoding and decoding. Valid values:'."\n"
."\n"
.'- **1**: baseline (for mobile devices).'."\n"
."\n"
.'- **2**: main (for SD devices).'."\n"
."\n"
.'- **3**: high (for HD devices).', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2', 'title' => ''],
],
[
'name' => 'AudioProfile',
'in' => 'query',
'schema' => ['description' => 'The audio profile. Valid values:'."\n"
."\n"
.'- aac\\_low'."\n"
."\n"
.'- aac\\_he'."\n"
."\n"
.'- aac\\_he\\_v2'."\n"
."\n"
.'- aac\\_ld', 'type' => 'string', 'required' => false, 'example' => 'aac_low', 'title' => ''],
],
[
'name' => 'AudioCodec',
'in' => 'query',
'schema' => ['description' => 'The audio codec. Valid values:'."\n"
."\n"
.'- aac'."\n"
."\n"
.'- mp3', 'type' => 'string', 'required' => false, 'example' => 'aac', 'title' => ''],
],
[
'name' => 'AudioRate',
'in' => 'query',
'schema' => ['description' => 'The audio sample rate. Valid values: 22050, 32000, 44100, 48000, and 96000. Unit: Hz.'."\n"
."\n"
.'> If you set **AudioProfile** to **aac\\_ld**, the sample rate cannot exceed 44100.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '96000', 'title' => ''],
],
[
'name' => 'AudioChannelNum',
'in' => 'query',
'schema' => ['description' => 'The number of audio channels. Valid values:'."\n"
."\n"
.'- 1: mono.'."\n"
."\n"
.'- 2: stereo.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2', 'title' => ''],
],
[
'name' => 'Lazy',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to enable on-demand transcoding. Valid values:'."\n"
."\n"
.'- **yes**: Transcoding only starts when the first viewer requests this transcoded stream.'."\n"
."\n"
.'- **no**: Transcoding starts immediately after the stream is published.', 'type' => 'string', 'required' => false, 'example' => 'yes', 'title' => ''],
],
[
'name' => 'EncryptParameters',
'in' => 'query',
'schema' => ['description' => 'The encryption settings, formatted as a JSON string.'."\n"
."\n"
.'- **EncryptType**: The encryption type. Set the value to aliyun.'."\n"
."\n"
.'- **KmsKeyID**: The ID of the customer master key (CMK) in Key Management Service (KMS).'."\n"
."\n"
.'- **KmsKeyExpireInterval**: The key rotation period. Unit: seconds. Valid values: **60 to 3600.**'."\n"
."\n"
.'> When you use Digital Rights Management (DRM) encryption, you cannot modify KmsKeyID.', 'type' => 'string', 'required' => false, 'example' => '{"EncryptType": "aliyun", "KmsKeyID":"afce5722-81d2-43c3-9930-7601da11****","KmsKeyExpireInterval":"3600"}', 'title' => ''],
],
[
'name' => 'ResWithSource',
'in' => 'query',
'schema' => ['description' => 'The adaptive resolution settings. If specified, it overrides the Height and Width parameters. Fieds:'."\n"
."\n"
.'- **Type (string):** Required. Valid values:'."\n"
."\n"
.' - **short**: sets the shorter edge of the video to the specified value and scales the other edge to maintain the original aspect ratio.'."\n"
."\n"
.' - **long**: sets the longer edge of the video to the specified value and scales the other edge to maintain the original aspect ratio.'."\n"
."\n"
.' - **screen**: Matches the output to a standard resolution, automatically flipping the dimensions based on the source\'s orientation.'."\n"
."\n"
.'- **Value (string):** Required. Valid values:'."\n"
."\n"
.' - For short: 360, 480, 540, 720, and 1080.'."\n"
."\n"
.' - For long: 640, 848, 960, 1280, and 1920.'."\n"
."\n"
.' - For screen: 640×360, 848×480, 960×540, 1280×720, and 1920×1080.', 'type' => 'string', 'required' => false, 'example' => '{"Type":"short","Value":"1080"}', 'title' => ''],
],
[
'name' => 'FpsWithSource',
'in' => 'query',
'schema' => ['description' => 'Adapts the output frame rate based on the source\'s frame rate, while keeping it within a specified range. If specified, it overrides the FPS parameter. Fields:'."\n"
."\n"
.'- **UpLimit (integer):** Required. The upper limit of the frame rate. This must be an integer from 1 to 60 and greater than the lower limit.'."\n"
."\n"
.'- **LowerLimit (integer):** Required. The lower limit of the frame rate. This must be an integer from 1 to 60 and less than the upper limit.', 'type' => 'string', 'required' => false, 'example' => '{"UpLimit":60,"LowerLimit":1}', 'title' => ''],
],
[
'name' => 'BitrateWithSource',
'in' => 'query',
'schema' => ['description' => 'The adaptive bitrate settings. If specified, it overrides the VideoBitrate parameter. Fields:'."\n"
."\n"
.'- **UpLimit (integer):** Required. The upper limit of the bitrate. This must be an integer from 128 to 10000 and greater than the lower limit.'."\n"
."\n"
.'- **LowerLimit (integer):** Required. The lower limit of the bitrate. This must be an integer from 128 to 10000 and less than the upper limit.'."\n"
."\n"
.'- **Factor (float):** Required: The factor by which the source bitrate is multiplied to calculate the output bitrate. Valid values: 0.1 to 1. The value can be accurate to one decimal place. A value of 1 indicates that the output bitrate is the same as the source bitrate.', 'type' => 'string', 'required' => false, 'example' => '{"UpLimit":2500,"LowerLimit":800,"Factor":1}', 'title' => ''],
],
[
'name' => 'ExtWithSource',
'in' => 'query',
'schema' => ['description' => 'Other adaptive settings that align the transcoded stream with the source stream. Fields:'."\n"
."\n"
.'- **KeyFrameOpen**: Specifies whether to align keyframes with the source stream. Valid values: yes and no.'."\n"
."\n"
.'- **Copyts (string)**: Specifies whether to align the presentation timestamp (PTS) with the source stream. Valid values: yes and no.'."\n"
."\n"
.'- **SeiMode**: The pass-through mode for Supplemental Enhancement Information (SEI). Valid values: 0 (disabled), 1 (pass through partial parameters), and 2 (pass through all).', 'type' => 'string', 'required' => false, 'example' => '{"KeyFrameOpen":"yes","Copyts":"yes","SeiMode":1}', 'title' => ''],
],
[
'name' => 'DeInterlaced',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to automatically detect and remove interlacing during transcoding. Deinterlacing converts interlaced video into progressive video.'."\n"
."\n"
.'- true: enables deinterlacing.'."\n"
."\n"
.'- false: keeps the source format. This is the default value.', 'type' => 'boolean', 'required' => false, 'title' => '', 'example' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The request ID.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameters', 'errorMessage' => '%s Please check and try again later.', 'description' => 'Exception parameter exists, please check and try again.'],
['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => '%s Please check and try again later.', 'description' => 'Configuration already exists, please check and try again.'],
['errorCode' => 'TemplateLimit', 'errorMessage' => '%s Please check and try again later.', 'description' => 'The number of templates reached the upper limit.'],
],
],
'title' => 'UpdateCustomLiveStreamTranscode',
'summary' => 'Updates a custom transcoding configuration.',
'description' => 'This operation supports the following types of custom transcoding templates:'."\n"
."\n"
.'- h264: H.264 standard transcoding.'."\n"
."\n"
.'- h264-nbhd: H.264 Narrowband HD™ transcoding.'."\n"
."\n"
.'- h265: H.265 standard transcoding.'."\n"
."\n"
.'- h265-nbhd: H.265 Narrowband HD™ transcoding.'."\n"
."\n"
.'- audio: an audio-only transcoding.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 6,000 times per second per account.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateCustomLiveStreamTranscode'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateCustomLiveStreamTranscode',
'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"}]',
],
'UpdateEdgeTranscodeJob' => [
'summary' => 'Updates an edge transcoding job.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveHVN9B2'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'ClusterId',
'in' => 'query',
'schema' => ['description' => 'The data center ID.', 'type' => 'string', 'required' => true, 'example' => '******3b-4d18-395c-8106-ff21a6******', 'title' => ''],
],
[
'name' => 'JobId',
'in' => 'query',
'schema' => ['description' => 'The ID of the edge transcoding job.', 'type' => 'string', 'required' => true, 'example' => '****20b48fb04483915d4f2cd8ac****', 'title' => ''],
],
[
'name' => 'Name',
'in' => 'query',
'schema' => ['description' => 'The job name.', 'type' => 'string', 'required' => false, 'example' => 'task1', 'title' => ''],
],
[
'name' => 'TemplateId',
'in' => 'query',
'schema' => ['description' => 'The template ID.', 'type' => 'string', 'required' => false, 'example' => '****96e8864746a0b6f3****', 'title' => ''],
],
[
'name' => 'StreamInput',
'in' => 'query',
'schema' => ['description' => 'The input stream URL.', 'type' => 'string', 'required' => false, 'example' => 'rtmp://mydomain/app/stream1', 'title' => ''],
],
[
'name' => 'StreamOutput',
'in' => 'query',
'schema' => ['description' => 'The output stream URL.', 'type' => 'string', 'required' => false, 'example' => 'rtmp://testdomain/app/stream2', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'JobId' => ['description' => 'The ID of the edge transcoding job.', 'type' => 'string', 'example' => '****20b48fb04483915d4f2cd8ac****', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => 'Parameter error'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
],
403 => [
['errorCode' => 'OperationDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation rejected, please check and try again.'],
['errorCode' => 'Forbidden', 'errorMessage' => '%s, please check and try again later.', 'description' => 'No permission, please check and try again.'],
],
[
['errorCode' => 'TemplateNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The template does not exist. Please check and try again.'],
['errorCode' => 'JobNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Task does not exist, please check and try again.'],
],
],
'title' => 'UpdateEdgeTranscodeJob',
'description' => '- This operation updates an edge transcoding job.'."\n"
."\n"
.'- To call this operation, you must have permissions to access the edge transcoding service. The transcoding job must not have been started.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 6,000 calls per minute per user. If you exceed this limit, API calls are throttled. This may impact your business. Plan your calls accordingly.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateEdgeTranscodeJob'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateEdgeTranscodeJob',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"****20b48fb04483915d4f2cd8ac****\\",\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","type":"json"}]',
],
'UpdateEventSub' => [
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'none',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveK6LRQR'],
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID.', 'type' => 'string', 'required' => true, 'example' => '9qb1****', 'title' => ''],
],
[
'name' => 'SubscribeId',
'in' => 'query',
'schema' => ['description' => 'The subscription ID. You can obtain the ID from the response to the [CreateEventSub](~~2848209~~) operation.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'ad53276431c****'],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'The channel ID. You can call the [ListEventSub](~~2848210~~) operation to query the channel ID.'."\n"
."\n"
.'>'."\n"
."\n"
.'- This parameter is required if you specify the Users.N parameter.'."\n"
."\n"
.'- If you set this parameter to \\* or do not specify this parameter, all channels are subscribed to.'."\n"
."\n"
.'- You can create up to 20 subscriptions for each application ID.', 'type' => 'string', 'required' => false, 'example' => '123333', 'title' => ''],
],
[
'name' => 'Users',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'title' => '',
'description' => 'The user whose events you want to subscribe to.',
'type' => 'array',
'items' => ['description' => 'The user whose events you want to subscribe to. If you do not specify this parameter, the events of all users in the channel are subscribed to, including the events of the streamer and viewers.', 'type' => 'string', 'required' => false, 'example' => 'user1', 'title' => ''],
'required' => false,
'maxItems' => 30,
'example' => '',
],
],
[
'name' => 'Events',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'title' => 'ChannelEvent, UserEvent',
'description' => 'The type of the events to which you want to subscribe.',
'type' => 'array',
'items' => ['description' => 'The type of the events to which you want to subscribe. Valid values:'."\n"
."\n"
.'- ChannelEvent: channel events'."\n"
."\n"
.'- UserEvent: user events in the channel', 'type' => 'string', 'required' => true, 'example' => 'ChannelEvent', 'title' => ''],
'required' => true,
'maxItems' => 5,
'example' => '',
],
],
[
'name' => 'CallbackUrl',
'in' => 'query',
'schema' => ['description' => 'The callback URL. For more information about the callback content, see CreateEventSub.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'http://****.com/callback'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => '',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The ID of the request.', 'type' => 'string', 'example' => 'AE050E24-BE9B-1E79-BB30-7EA0BBAE7F08'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => 'Illegal input parameters'],
['errorCode' => 'QuotaLimitError', 'errorMessage' => '%s.', 'description' => 'For each AppId, a maximum of 20 subscriptions are allowed at the same time, and only one full channel subscription is allowed.'],
['errorCode' => 'ErrorInvalidCallBackUrl', 'errorMessage' => '%s.', 'description' => 'The CallBackURL is invalid, please check and try again.'],
],
403 => [
['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => 'No permission'],
],
[
['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist, please check and try again'],
],
500 => [
['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'UpdateEventSub',
'summary' => 'Updates a callback that is used to subscribe to channel or user events.',
'description' => '- Before you call this operation, make sure that you have called the [CreateEventSub](~~2848209~~) operation to create a callback that is used to subscribe to channel or user events.'."\n"
."\n"
.'- An existing channel that you specify in this operation still uses its original callback configuration. The updated configuration can apply to the channel only if you restart the channel after it is closed for longer than 20 minutes.'."\n"
."\n"
.'- If you only want to update specific parameters, you must also specify the other required parameters with their original values.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateEventSub'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'live:UpdateEventSub',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"AE050E24-BE9B-1E79-BB30-7EA0BBAE7F08\\"\\n}","type":"json"}]',
],
'UpdateLiveAIProduceRules' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '218935',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'Domain',
'in' => 'query',
'schema' => ['description' => 'The primary playback domain name.', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com', 'title' => ''],
],
[
'name' => 'App',
'in' => 'query',
'schema' => ['description' => 'The name of the live streaming application.', 'type' => 'string', 'required' => true, 'example' => 'AppName', 'title' => ''],
],
[
'name' => 'Suffix',
'in' => 'query',
'schema' => ['description' => 'The suffix to match.', 'type' => 'string', 'required' => false, 'example' => 'test01', 'title' => ''],
],
[
'name' => 'SubtitleName',
'in' => 'query',
'schema' => ['description' => 'The name of the caption template.', 'type' => 'string', 'required' => false, 'example' => 'sub01', 'title' => ''],
],
[
'name' => 'StudioName',
'in' => 'query',
'schema' => ['description' => 'The name of the virtual background template.', 'type' => 'string', 'required' => false, 'example' => 'sub02', 'title' => ''],
],
[
'name' => 'IsLazy',
'in' => 'query',
'schema' => ['description' => 'Specifies whether the caption is triggered by stream pulling. Valid values:'."\n"
."\n"
.'- true: The caption is enabled when stream pulling starts. If no stream pulling occurs within 5 minutes, the caption is disabled. The caption is enabled again the next time stream pulling starts.'."\n"
."\n"
.'- false: The caption is enabled as long as stream ingest is active, regardless of whether stream pulling is active.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''],
],
[
'name' => 'RulesId',
'in' => 'query',
'schema' => ['description' => 'The ID of the caption rule.', 'type' => 'string', 'required' => false, 'example' => '445409ec-7eaa-461d -8f29-4bec2eb9****', 'title' => ''],
],
[
'name' => 'LiveTemplate',
'in' => 'query',
'schema' => ['description' => 'The specifications of the output caption. Valid values:'."\n"
."\n"
.'- Landscape low definition (360p, 640 × 360): `lp_ld`'."\n"
."\n"
.'- Portrait low definition (360p, 360 × 640): `lp_ld_v`'."\n"
."\n"
.'- Landscape standard definition (480p, 854 × 480): `lp_sd`'."\n"
."\n"
.'- Portrait standard definition (480p, 480 × 854): `lp_sd_v`'."\n"
."\n"
.'- Landscape high definition (720p, 1280 × 720): `lp_hd`'."\n"
."\n"
.'- Portrait high definition (720p, 720 × 1280): `lp_hd_v`'."\n"
."\n"
.'- Landscape ultra-high definition (1080p, 1920 × 1080): `lp_ud`'."\n"
."\n"
.'- Portrait ultra-high definition (1080p, 1080 × 1920): `lp_ud_v`', 'type' => 'string', 'required' => false, 'example' => 'lp_ld', 'title' => ''],
],
[
'name' => 'SubtitleId',
'in' => 'query',
'schema' => ['description' => 'The ID of the caption template.', 'type' => 'string', 'required' => false, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
],
[
'name' => 'Description',
'in' => 'query',
'schema' => ['description' => 'The description of the caption rule. The description can be up to 128 characters long and can contain Chinese characters, letters, digits, and special characters.', 'type' => 'string', 'required' => false, 'example' => 'live AI subtitle template', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5c6a2a0df228-4a64-af62-20e91b96****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => 'Parameter error'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'eventInfo' => [
'enable' => false,
'eventNames' => [],
],
'title' => 'UpdateLiveAIProduceRules',
'summary' => 'Updates a caption rule.',
'description' => 'This operation updates the parameters for a specified caption rule.'."\n"
."\n"
.'>'."\n"
."\n"
.'The real-time caption feature is in invitational preview. Each user can add a maximum of 300 caption templates.'."\n"
."\n"
.'>'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for this API operation is 60 per user. If you exceed this limit, API calls are throttled. This may affect your business. Plan your API calls accordingly.',
'changeSet' => [
['createdAt' => '2024-10-14T03:46:55.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2024-07-04T02:57:18.000Z', 'description' => 'Request parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveAIProduceRules'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateLiveAIProduceRules',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b96****\\"\\n}","type":"json"}]',
],
'UpdateLiveAISubtitle' => [
'summary' => 'Updates a subtitle template by calling UpdateLiveAISubtitle.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '218740',
'abilityTreeNodes' => ['FEATUREliveY7SMJ1'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'SubtitleName',
'in' => 'query',
'schema' => ['description' => 'The name of the subtitle template. The name can contain only digits, letters, and hyphens (-). The name cannot start with a hyphen.', 'type' => 'string', 'required' => false, 'example' => 'live AI subtitle template', 'title' => ''],
],
[
'name' => 'SrcLanguage',
'in' => 'query',
'schema' => ['description' => 'The source language. Valid values:'."\n"
.'- en-US: English'."\n"
.'- zh-CN: Chinese'."\n"
.'- ru-RU: Russian.', 'type' => 'string', 'required' => false, 'example' => 'zh-CN', 'title' => ''],
],
[
'name' => 'DstLanguage',
'in' => 'query',
'schema' => ['description' => 'The target language for translation. Valid values:'."\n"
.'- en-US: English'."\n"
.'- zh-CN: Chinese'."\n"
.'- es-ES: Spanish'."\n"
.'- ru-RU: Russian.', 'type' => 'string', 'required' => false, 'example' => 'zh-CN', 'title' => ''],
],
[
'name' => 'FontColor',
'in' => 'query',
'schema' => ['description' => 'The font color. The value is in RGBA format.', 'type' => 'string', 'required' => false, 'example' => '0xFFFFFF', 'title' => ''],
],
[
'name' => 'FontName',
'in' => 'query',
'schema' => ['description' => 'The font. Valid values:'."\n"
.'- KaiTi: KaiTi (default)'."\n"
.'- AlibabaPuHuiTi-Regular: Alibaba PuHuiTi Regular'."\n"
.'- AlibabaPuHuiTi-Bold: Alibaba PuHuiTi Bold'."\n"
.'- AlibabaPuHuiTi-Light: Alibaba PuHuiTi Light'."\n"
.'- NotoSansHans-Regular: Noto Sans Hans Regular'."\n"
.'- NotoSansHans-Bold: Noto Sans Hans Bold'."\n"
.'- NotoSansHans-Light: Noto Sans Hans Light.', 'type' => 'string', 'required' => false, 'example' => 'KaiTi', 'title' => ''],
],
[
'name' => 'BgColor',
'in' => 'query',
'schema' => ['description' => 'The background color of the subtitle. The value is in RGBA format.', 'type' => 'string', 'required' => false, 'example' => '0xFF0000', 'title' => ''],
],
[
'name' => 'PositionNormalized',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The position of the subtitle, specified as x and y coordinates with the bottom-left corner of the screen as the origin.',
'type' => 'array',
'items' => ['description' => 'The coordinate value of the subtitle position.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.32', 'title' => ''],
'required' => false,
'example' => '[0.32,0.27]',
'title' => '',
],
],
[
'name' => 'ShowSourceLan',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to display the source language. Default value: false.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''],
],
[
'name' => 'MaxLines',
'in' => 'query',
'schema' => ['description' => 'The number of lines to display.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2', 'title' => ''],
],
[
'name' => 'WordPerLine',
'in' => 'query',
'schema' => ['description' => 'The number of characters per line. Valid values: integers in the range of [1, 500].', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20', 'title' => ''],
],
[
'name' => 'FontSizeNormalized',
'in' => 'query',
'schema' => ['description' => 'The font size. Valid values: [0, 1].', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.037', 'title' => ''],
],
[
'name' => 'BorderWidthNormalized',
'in' => 'query',
'schema' => ['description' => 'The font weight. Valid values: [0, 1].', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.05', 'title' => ''],
],
[
'name' => 'BgWidthNormalized',
'in' => 'query',
'schema' => ['description' => 'The background size of the subtitle. Valid values: [0, 1].', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.09', 'title' => ''],
],
[
'name' => 'SubtitleId',
'in' => 'query',
'schema' => ['description' => 'The ID of the subtitle template.', 'type' => 'string', 'required' => true, 'example' => '597991f3-6ef9-4100-9238-82951de1****', 'title' => ''],
],
[
'name' => 'Description',
'in' => 'query',
'schema' => ['description' => 'The custom description of the subtitle. The description can contain Chinese characters, letters, digits, and special characters, and cannot exceed 128 characters in length.', 'type' => 'string', 'required' => false, 'example' => 'live AI subtitle template', 'title' => ''],
],
[
'name' => 'Width',
'in' => 'query',
'schema' => ['description' => 'The width of the preview screen. Unit: px.', 'type' => 'string', 'required' => false, 'example' => '1280', 'title' => ''],
],
[
'name' => 'Height',
'in' => 'query',
'schema' => ['description' => 'The height of the preview screen. Unit: px.'."\n"
."\n"
.'The width × height of the preview screen supports only the following specifications:'."\n"
.'- Landscape low definition 360P: 640×360'."\n"
.'- Portrait low definition 360P: 360×640'."\n"
.'- Landscape standard definition 480P: 854×480'."\n"
.'- Portrait standard definition 480P: 480×854'."\n"
.'- Landscape high definition 720P: 1280×720'."\n"
.'- Portrait high definition 720P: 720×1280'."\n"
.'- Landscape ultra-high definition 1080P: 1920×1080'."\n"
.'- Portrait ultra-high definition 1080P: 1080×1920.', 'type' => 'string', 'required' => false, 'example' => '720', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'String 5c6a2a0df228-4a64- af62-20e91b96****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => 'Parameter error'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"String\\\\t5c6a2a0df228-4a64- af62-20e91b96****\\"\\n}","type":"json"}]',
'title' => 'Update a subtitle template',
'description' => '## Operation description'."\n"
."\n"
.'This operation updates the parameters of a specified subtitle template.'."\n"
."\n"
.'>The real-time subtitle feature is currently in invitational preview. Each user can add up to 300 subtitle templates.'."\n"
.'>'."\n"
."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this operation is 60 calls per second. If the limit is exceeded, API calls are throttled, which may affect your business. Call this operation appropriately. For more information, see [QPS limit](~~343507~~).',
'changeSet' => [
['createdAt' => '2024-12-04T05:54:29.000Z', 'description' => 'Error codes changed'],
],
'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' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'UpdateLiveAppRecordConfig' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveL04ZVK'],
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The AppName of the live stream.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'OssEndpoint',
'in' => 'query',
'schema' => ['description' => 'The endpoint for OSS storage. You must create an OSS bucket before using this feature. See [Configure OSS](~~84932~~).', 'type' => 'string', 'required' => true, 'example' => 'learn.developer.aliyundoc.com', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The name of the live stream.', 'type' => 'string', 'required' => false, 'example' => 'teststream', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The recording start time. Format: *yyyy-MM-dd*T*HH:mm:ss*Z (UTC time).'."\n"
."\n"
.'> This parameter is only effective for stream-level recordings (i.e., when `StreamName` is specified). The time must be within 7 days of the actual stream start time.', 'type' => 'string', 'required' => false, 'example' => '2018-04-10T09:57:21Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The recording end time. Format: *yyyy-MM-dd*T*HH:mm:ss*Z (UTC time).'."\n"
."\n"
.'> This parameter is only effective for stream-level recordings. The interval between EndTime and StartTime cannot exceed 7 days.', 'type' => 'string', 'required' => false, 'example' => '2018-04-16T09:57:21Z', 'title' => ''],
],
[
'name' => 'OnDemand',
'in' => 'query',
'schema' => ['description' => 'Specifies the recording mode. Valid values:'."\n"
."\n"
.'- **0**: disables on-demand recording.'."\n"
."\n"
.'- **1**: On-demand recording via HTTP callback.'."\n"
."\n"
.'- **2**: On-demand recording by parsing parameters in the ingest URL.'."\n"
."\n"
.'- **7**: Manual recording. You can call the [RealTimeRecordCommand](~~2847882~~) API to manually start or stop recording.'."\n"
."\n"
.'> If you set OnDemand to **1**, you need to call the [AddLiveRecordNotifyConfig](~~2847891~~) API to configure the OnDemandUrl parameter. Otherwise, ApsaraVideo Live does not perform on-demand recording.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'DelayTime',
'in' => 'query',
'schema' => ['description' => 'The window in seconds for merging fragmented recording after an interruption. If a stream disconnects and reconnects within this window, the recording will continue in the same file. Valid values: 15 to 21600.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '180', 'title' => ''],
],
[
'name' => 'RecordFormat',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The recording details.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'CycleDuration' => ['description' => 'The duration of a single recording cycle in seconds. If not specified, the default value is 6 hours'."\n"
."\n"
.'> If a live stream is interrupted during a recording cycle but resumes normal streaming within the merge window, recording will continue in the same file. A recording file is generated only when a live stream is interrupted for longer than the merge window.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
'Format' => ['description' => 'The recording format. Valid values:'."\n"
."\n"
.'>'."\n"
."\n"
.'If you choose m3u8 or cmaf, you must also set SliceOssObjectPrefix and SliceDuration. At least one of RecordFormat or TranscodeRecordFormat must be specified.'."\n"
."\n"
.'>'."\n"
."\n"
.'- m3u8'."\n"
."\n"
.'- flv'."\n"
."\n"
.'- mp4'."\n"
."\n"
.'- cmaf', 'type' => 'string', 'required' => false, 'example' => 'm3u8', 'title' => ''],
'SliceDuration' => ['description' => 'The duration of a single segment. Unit: seconds'."\n"
."\n"
.'> This parameter takes effect only if you set the RecordFormat.N.Format parameter to m3u8 or cmaf.'."\n"
."\n"
.'If you do not specify this parameter, the default value 30 seconds is used. Valid values: 5 to 30.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '30', 'title' => ''],
],
'required' => false,
'description' => '',
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 3,
'title' => '',
'example' => '',
],
],
[
'name' => 'TranscodeRecordFormat',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The transcoded stream recording configuration.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'CycleDuration' => ['description' => 'The transcoded stream recording cycle. Unit: seconds. If you do not specify this parameter, the default value 6 hours is used.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '21600', 'title' => ''],
'Format' => ['description' => 'The format of the transcoded stream recording. Valid values:'."\n"
."\n"
.'> If you choose m3u8 or cmaf, you must specify the TranscodeRecordFormat.N.SliceOssObjectPrefix and TranscodeRecordFormat.N.SliceDuration parameters.'."\n"
."\n"
.'- m3u8'."\n"
."\n"
.'- flv'."\n"
."\n"
.'- mp4'."\n"
."\n"
.'- cmaf', 'type' => 'string', 'required' => false, 'example' => 'm3u8', 'title' => ''],
'SliceDuration' => ['description' => 'The duration of a single segment for transcoded stream recording. Unit: seconds.'."\n"
."\n"
.'> This parameter takes effect only if you set the TranscodeRecordFormat.N.Format parameter to m3u8 or cmaf.'."\n"
."\n"
.'If you do not specify this parameter, the default value 30 seconds is used. Valid values: 5 to 30.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '30', 'title' => ''],
],
'required' => false,
'description' => '',
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 3,
'title' => '',
'example' => '',
],
],
[
'name' => 'TranscodeTemplates',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The transcoding template group details.',
'type' => 'array',
'items' => ['description' => '- The [transcoding template](~~45039~~). You can configure up to 10 transcoding templates at a time.'."\n"
."\n"
.'- If you specify the TranscodeRecordFormat.N.xxx parameters, configure at least one transcoding template.'."\n"
."\n"
.'- To record multiple or all transcoded streams, you can set TranscodeTemplates.1 to \\*\\*\\*\\*\\* (five asterisks).'."\n"
."\n"
.'> TranscodeTemplates is not allowed to pass in `raw`, which is a reserved identifier. The .N in TranscodeTemplates.N represents an incremental index for specifying multiple templates. For example: TranscodeTemplates.1=sd, TranscodeTemplates.2=hd.', 'type' => 'string', 'required' => false, 'example' => 'sd', 'title' => ''],
'required' => false,
'maxItems' => 10,
'title' => '',
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidOssBucket.Malformed', 'errorMessage' => 'Specified parameter OssBucket is not valid.', 'description' => ''],
['errorCode' => 'InvalidOssBucket.NotFound', 'errorMessage' => 'The parameter OssBucket does not exist.', 'description' => ''],
['errorCode' => 'InvalidFormat.Malformed', 'errorMessage' => 'Specified parameter Format is not valid.', 'description' => 'Invalid value of Format. Check whether the Format parameter that you specified is correct.'],
['errorCode' => 'InvalidCycleDuration.Malformed', 'errorMessage' => 'Specified CycleDuration Format is not valid.', 'description' => 'Invalid format of CycleDuration. Check whether the format of the CycleDuration parameter is correct.'],
['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' => ''],
['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' => 'Invalid OssEndpoint, please check and try again.'],
],
],
'title' => 'UpdateLiveAppRecordConfig',
'summary' => 'Updates a live stream recording configuration that saves the output to Object Storage Service (OSS).',
'description' => '## QPS limit'."\n"
."\n"
.'You can call this operation up to 30 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveAppRecordConfig'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateLiveAppRecordConfig',
'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"}]',
],
'UpdateLiveAppSnapshotConfig' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveMH1XD3'],
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the application to which the live stream belongs.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'TimeInterval',
'in' => 'query',
'schema' => ['description' => 'The interval at which snapshots are captured. Valid values: **5 to 3600**. Unit: seconds.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '3600', 'minimum' => '5', 'example' => '5', 'title' => ''],
],
[
'name' => 'OssEndpoint',
'in' => 'query',
'schema' => ['description' => 'The endpoint of the OSS bucket.', 'type' => 'string', 'required' => false, 'example' => 'cn-oss-****.aliyuncs.com', 'title' => ''],
],
[
'name' => 'OssBucket',
'in' => 'query',
'schema' => ['description' => 'The name of the OSS bucket.', 'type' => 'string', 'required' => false, 'example' => 'liveBucket****', 'title' => ''],
],
[
'name' => 'OverwriteOssObject',
'in' => 'query',
'schema' => ['description' => 'The naming format of snapshots that are stored in the overwrite mode, which means that a new snapshot overwrites the previous snapshot.'."\n"
."\n"
.'- The name must be less than 256 bytes in length.'."\n"
."\n"
.'- Only JPG images are supported.'."\n"
."\n"
.'- The name can contain variables such as {AppName} and {StreamName}.'."\n"
."\n"
.'- A value of hyphen (-) indicates that this parameter is deleted.', 'type' => 'string', 'required' => false, 'example' => '{liveApp****}/{liveStream****}.jpg', 'title' => ''],
],
[
'name' => 'SequenceOssObject',
'in' => 'query',
'schema' => ['description' => 'The naming format of snapshots that are stored in sequence, which means that a new snapshot does not overwrite the previous snapshot. You can call the [DescribeLiveStreamSnapshotInfo](~~2847902~~) operation to query the snapshots that were captured within a specific time period.'."\n"
."\n"
.'- The name must be less than 256 bytes in length.'."\n"
."\n"
.'- Only JPG images are supported.'."\n"
."\n"
.'- The name can contain variables such as {AppName}, {StreamName}, {UnixTimestamp}, and {Sequence}. The name must contain at least one of the {UnixTimestamp} and {Sequence} variables.'."\n"
."\n"
.'- A value of hyphen (-) indicates that this parameter is deleted.', 'type' => 'string', 'required' => false, 'example' => 'snapshot/{liveApp****}/{liveStream****}/{UnixTimestamp****}.jpg', 'title' => ''],
],
[
'name' => 'Callback',
'in' => 'query',
'schema' => ['description' => 'The callback URL that is used to receive notifications about snapshot capture.', 'type' => 'string', 'required' => false, 'example' => 'https://learn.aliyundoc.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidOverwriteOssObjectOrSequenceOssObject.Malformed', 'errorMessage' => 'Specified paramters OverwriteOssObject or SequenceOssObject should have one.', 'description' => 'You can specify only one of the OverwriteOssObject and SequenceOssObject parameters.'],
['errorCode' => 'InvalidOssEndpoint.Malformed', 'errorMessage' => 'Specified parameter OssEndpoint is not valid.', 'description' => ''],
['errorCode' => 'InvalidOssBucket.Malformed', 'errorMessage' => 'Specified parameter OssBucket is not valid.', 'description' => ''],
['errorCode' => 'InvalidOssBucket.NotFound', 'errorMessage' => 'The parameter OssBucket does not exist.', 'description' => ''],
['errorCode' => 'InvalidOverwriteOssObject.Malformed', 'errorMessage' => 'Specified parameter OverwriteOssObject is not valid.', 'description' => ''],
['errorCode' => 'InvalidSequenceOssObject.Malformed', 'errorMessage' => 'Specified parameter SequenceOssObject is not valid.', 'description' => 'Invalid value of SequenceOssObject. Check whether the SequenceOssObject parameter that you specified is correct.'],
['errorCode' => 'InvalidConfig.NotFound', 'errorMessage' => 'The speicified config does not exist.', 'description' => ''],
],
],
'title' => 'UpdateLiveAppSnapshotConfig',
'summary' => 'Modifies a snapshot configuration of a streaming domain. The captured snapshots are stored in Object Storage Service (OSS). The modification takes effect after you restart stream ingest.',
'description' => 'You can call this operation to modify a snapshot configuration of a streaming domain. The captured snapshots are stored in OSS. The modification takes effect after you restart stream ingest.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 30 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveAppSnapshotConfig'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateLiveAppSnapshotConfig',
'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"}]',
],
'UpdateLiveAudioAuditConfig' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveUTGSNT'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The AppName of the live stream. The template takes effect only when this name matches the AppName in the ingest URL. The name is case-sensitive.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The stream name. The template takes effect only when this name matches the StreamName in the ingest URL. The name is case-sensitive.', 'type' => 'string', 'required' => true, 'example' => 'liveStream****', 'title' => ''],
],
[
'name' => 'OssBucket',
'in' => 'query',
'schema' => ['description' => 'The name of the Object Storage Service (OSS) bucket.', 'type' => 'string', 'required' => false, 'example' => 'liveBucket****', 'title' => ''],
],
[
'name' => 'OssEndpoint',
'in' => 'query',
'schema' => ['description' => 'The endpoint of the OSS bucket.', 'type' => 'string', 'required' => false, 'example' => 'cn-oss-****.aliyuncs.com', 'title' => ''],
],
[
'name' => 'OssObject',
'in' => 'query',
'schema' => ['description' => 'The name of the recording file stored in OSS.', 'type' => 'string', 'required' => false, 'example' => 'liveObject****', 'title' => ''],
],
[
'name' => 'BizType',
'in' => 'query',
'schema' => ['description' => 'The business type. This parameter is used to select a model. The default value is the domain name.', 'type' => 'string', 'required' => false, 'example' => ' example.edu', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '7BF95F2A-3B24-4CDE-9346-7F6FA86697A1', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MalformedParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Invalid parameter, please check and try again.'],
['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is missing, please check and try again.'],
['errorCode' => 'ConfigExisted', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Configuration already exists, please check and try again.'],
['errorCode' => 'ConfigNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Configuration does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'UpdateLiveAudioAuditConfig',
'summary' => 'Updates the audio moderation configuration.',
'description' => '- Before you call this operation, obtain the streaming domain.'."\n"
."\n"
.'- Automated review is supported only in some live centers. For supported regions, see [Service regions](~~193730~~).'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 10 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveAudioAuditConfig'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateLiveAudioAuditConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\"\\n}","type":"json"}]',
],
'UpdateLiveAudioAuditNotifyConfig' => [
'summary' => 'Updates the callback configuration for automated audio review.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveUTGSNT'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'Callback',
'in' => 'query',
'schema' => ['description' => 'The webhook URL for receiving callback notifications about audio that contains violations.', 'type' => 'string', 'required' => false, 'example' => 'http://guide.aliyundoc.com/callback', 'title' => ''],
],
[
'name' => 'CallbackTemplate',
'in' => 'query',
'schema' => ['description' => 'The callback template for automated review. The value can contain the following variables:'."\n"
."\n"
.'- **{DomainName}**: The streaming domain.'."\n"
."\n"
.'- **{AppName}**: The AppName of the stream.'."\n"
."\n"
.'- **{StreamName}**: The stream name.'."\n"
."\n"
.'- **{Timestamp}**: The UNIX timestamp when the callback is generated. Unit: seconds.'."\n"
."\n"
.'- **{Result}**: The detection result.', 'type' => 'string', 'required' => false, 'example' => '{"domain":{DomainName},"app":{AppName},"stream":{StreamName},"timestamp":{Timestamp},"result":{Result}}', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '7BF95F2A-3B24-4CDE-9346-7F6FA86697A1', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MalformedParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Invalid parameter, please check and try again.'],
['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is missing, please check and try again.'],
['errorCode' => 'ConfigExisted', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Configuration already exists, please check and try again.'],
['errorCode' => 'ConfigNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Configuration does not exist, please check and try again.'],
['errorCode' => 'UnsafeCallback', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The callback address is not safe. Please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'UpdateLiveAudioAuditNotifyConfig',
'description' => '- Obtain the streaming domain and then call this operation to update the callback configuration for automated audio review.'."\n"
."\n"
.'- Live audio moderation is available only in specific regions. For supported regions, see [Service regions](~~193730~~).'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'You can call this operation up to 10 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveAudioAuditNotifyConfig'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateLiveAudioAuditNotifyConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\"\\n}","type":"json"}]',
],
'UpdateLiveCenterTransfer' => [
'summary' => 'Updates the live center transfer configuration by calling UpdateLiveCenterTransfer.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the live stream application. The AppName you enter must match the AppName of the live stream to be transferred for the configuration to take effect. You can view the AppName on the [Stream Management](~~197397~~) page.', 'type' => 'string', 'required' => true, 'example' => 'testapp', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The name of the live stream. You can view the StreamName on the [Stream Management](~~197397~~) page.', 'type' => 'string', 'required' => true, 'example' => 'teststream', 'title' => ''],
],
[
'name' => 'DstUrl',
'in' => 'query',
'schema' => ['description' => 'The third-party live streaming address to transfer to. A maximum of one address is supported.'."\n"
."\n"
.'>The protocol of the destination address must match the protocol of the live stream being transferred. Only RTMP and SRT protocols are supported.', 'type' => 'string', 'required' => true, 'example' => 'rtmp://push.example2.aliyunlive.com/testapp1/teststream2', 'title' => ''],
],
[
'name' => 'TransferArgs',
'in' => 'query',
'schema' => [
'description' => 'The transfer validity period. Valid values:'."\n"
."\n"
.'- **always**: Permanently effective.'."\n"
."\n"
.'- **time**: Effective within a specified time range.'."\n"
."\n"
.'>If you set this parameter to **time**, **StartTime** and **EndTime** are required.',
'enumValueTitles' => ['always' => 'Permanently effective.', 'time' => 'Effective within a specified time range.'],
'type' => 'string',
'required' => true,
'enum' => ['always', 'time'],
'example' => 'always',
'title' => '',
],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time of the transfer. The date format follows ISO 8601 and uses UTC+0 time in the format yyyy-MM-ddTHH:mm:ssZ.', 'type' => 'string', 'required' => false, 'example' => '2017-12-21T10:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time of the transfer. The date format follows ISO 8601 and uses UTC+0 time in the format yyyy-MM-ddTHH:mm:ssZ.'."\n"
."\n"
.'>The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2017-12-22T08:00:00Z', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '7908F2FF-44F8-120F-9FD6-85AE4B6C19EC', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => 'Illegal input parameters'],
['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' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"7908F2FF-44F8-120F-9FD6-85AE4B6C19EC\\"\\n}","type":"json"}]',
'title' => 'Update live center transfer configuration',
'description' => 'This operation only supports updating configurations related to the **transfer validity period** (TransferArgs, StartTime, EndTime).'."\n"
.'## QPS limit'."\n"
.'The QPS limit for this operation is 100 calls per second per user. If the limit is exceeded, API calls are throttled, which may affect your business. Call this operation at a reasonable rate.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveCenterTransfer'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateLiveCenterTransfer',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
],
'UpdateLiveDelayConfig' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveBP94ZY'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'Domain',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'App',
'in' => 'query',
'schema' => ['description' => 'The AppName of the live stream. You can specify an asterisk (\\*) to match all AppNames under the domain name.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'Stream',
'in' => 'query',
'schema' => ['description' => 'The name of the live stream. You can use the wildcard (\\*) to specify all StreamNames under the AppName.', 'type' => 'string', 'required' => true, 'example' => 'liveStream****', 'title' => ''],
],
[
'name' => 'DelayTime',
'in' => 'query',
'schema' => ['description' => 'The duration for which the playback is delayed. The value must be an integer. Valid values: 16 to 3600. Unit: seconds.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '60', 'title' => ''],
],
[
'name' => 'TaskTriggerMode',
'in' => 'query',
'schema' => ['description' => 'The trigger mode for the task. Valid values:'."\n"
."\n"
.'- **PUBLISH\\_ONLY**: Stream delay is triggered only by relevant parameters in the ingest URL.'."\n"
."\n"
.'- **CONFIG\\_ONLY**: Stream delay is triggered only by the configuration. Parameters in the ingest URL are ignored.'."\n"
."\n"
.'- **PUBLISH\\_CONFIG**: Stream delay is triggered by both the configuration and parameters in the ingest URL. Parameters in the ingest URL have a higher priority than the configuration.', 'type' => 'string', 'required' => false, 'example' => 'PUBLISH_ONLY', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameters', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'Invalid parameter:%s.'],
],
],
'title' => 'UpdateLiveDelayConfig',
'summary' => 'Updates the live stream delay configuration.',
'description' => 'You can call this operation up to 60 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveDelayConfig'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'live:UpdateLiveDelayConfig',
'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"}]',
],
'UpdateLiveDetectNotifyConfig' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveUTGSNT'],
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'NotifyUrl',
'in' => 'query',
'schema' => ['description' => 'The callback URL that is used to receive callback notifications about violations, such as pornographic content, detected in live streams.', 'type' => 'string', 'required' => true, 'example' => 'http://guide.aliyundoc.com/examplecallback.action', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidNotifyUrl.Malformed', 'errorMessage' => 'Specified NotifyUrl is invalid.', 'description' => 'Invalid value of notifyurl. Check whether the notifyurl parameter that you specified is correct.'],
['errorCode' => 'InvalidNotifyUrl.Unsafe', 'errorMessage' => 'Specified NotifyUrl is not safe.', 'description' => 'Invalid value of notifyurl. Check whether the notifyurl parameter that you specified is correct.'],
['errorCode' => 'InvalidParams', 'errorMessage' => 'Invalid Params.', 'description' => ''],
],
404 => [
['errorCode' => 'InvalidConfig.NotFound', 'errorMessage' => 'Config does not exist.', 'description' => ''],
],
],
'title' => 'UpdateLiveDetectNotifyConfig',
'summary' => 'Modifies the configuration of callbacks for video moderation results. As a result, the callback URL that is used to receive the callback notifications is changed.',
'description' => '- Obtain the main streaming domain, and then call this operation to modify the configuration of callbacks for video moderation results.'."\n"
."\n"
.'- Only some live centers support the content moderation feature. For more information, see [Supported regions](~~193730~~).'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 30 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveDetectNotifyConfig'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateLiveDetectNotifyConfig',
'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"}]',
],
'UpdateLiveMPUTask' => [
'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' => 'The application ID. You can specify only one application ID. The ID can be up to 64 characters in length and can contain letters, digits, underscores (\\_), and hyphens (-).', 'type' => 'string', 'required' => true, 'example' => 'yourAppId', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'The channel ID. You can specify only one channel ID. The ID can be up to 64 characters in length and can contain letters, digits, underscores (\\_), and hyphens (-).', 'type' => 'string', 'required' => true, 'example' => 'yourChannelId', 'title' => ''],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'The task ID. You can specify only one task ID. The ID can be up to 55 characters in length and can contain letters, digits, underscores (\\_), and hyphens (-). The ID must be unique.', 'type' => 'string', 'required' => true, 'example' => 'yourTaskId', 'title' => ''],
],
[
'name' => 'MixMode',
'in' => 'query',
'schema' => ['description' => 'The stream mixing mode. Valid values:'."\n"
."\n"
.'- **0**: the single-stream relay mode. In this mode, the service only relays the original single stream, but does not transcode mixed streams. You do not need to set parameters for mixed-stream transcoding.'."\n"
."\n"
.'- **1** (default): the mixed-stream relay mode.', 'type' => 'string', 'required' => false, 'example' => '0', 'title' => ''],
],
[
'name' => 'StreamURL',
'in' => 'query',
'schema' => ['description' => 'The ingest URL. You can specify only one ingest URL in the Real-Time Messaging Protocol (RTMP) format. The URL can be up to 2,048 characters in length. For information about the generation rules of ingest URLs, see [Ingest and streaming URLs](~~199339~~).'."\n"
."\n"
.'>'."\n"
."\n"
.'- If the ingest URL is under a domain name for which hotlink protection is enabled, you must include an access token in the URL.'."\n"
."\n"
.'- You cannot use the same ingest URL in different tasks.'."\n"
."\n"
.'- You cannot use the same ingest URL within 10 seconds after a task is stopped.', 'type' => 'string', 'required' => false, 'example' => 'rtmp://example.com/live/stream', 'title' => ''],
],
[
'name' => 'MultiStreamURL',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The multiple ingest URLs to relay. This parameter allows you to specify multiple ingest URLs.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'URL' => ['description' => 'The ingest URL. Only the RTMP format is supported. The URL can be up to 2,048 characters in length. For information about the generation rules of ingest URLs, see [Ingest and streaming URLs](~~199339~~).', 'type' => 'string', 'required' => false, 'example' => 'rtmp://example.com/live/stream****', 'title' => ''],
'IsAliCdn' => ['description' => 'Specifies whether to perform stream relay by using Alibaba Cloud CDN. Valid values:'."\n"
."\n"
.'- false: performs stream relay by using a CDN service that is not Alibaba Cloud CDN.'."\n"
."\n"
.'- true: performs stream relay by using Alibaba Cloud CDN.'."\n"
."\n"
.'> The default value of this parameter is false.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
],
'required' => false,
'description' => '',
'title' => '',
'example' => '',
],
'required' => false,
'title' => '',
'example' => '',
],
],
[
'name' => 'SingleSubParams',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The single-stream relay parameters. These parameters are required if you set MixMode to 0.',
'type' => 'object',
'properties' => [
'SourceType' => ['description' => 'The type of the video source. This parameter is valid only when you set StreamType to 2. Valid values:'."\n"
."\n"
.'- **camera** (default)'."\n"
."\n"
.'- **shareScreen**', 'type' => 'string', 'required' => false, 'example' => 'camera', 'title' => ''],
'StreamType' => ['description' => 'The type of the stream that you want to relay. Valid values:'."\n"
."\n"
.'- **0** (default): original stream'."\n"
."\n"
.'- **1**: only the audio track'."\n"
."\n"
.'- **2**: only the video track', 'type' => 'string', 'required' => false, 'example' => '0', 'title' => ''],
'UserId' => ['description' => 'The user ID. In the single-stream relay mode, you can relay only one stream in a request.', 'type' => 'string', 'required' => true, 'example' => 'yourSubUserId', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
],
[
'name' => 'TranscodeParams',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The mixed-stream relay parameters. These parameters are required if you set MixMode to 1.',
'type' => 'object',
'properties' => [
'Background' => [
'description' => 'The global background image.',
'type' => 'object',
'properties' => [
'RenderMode' => ['description' => 'The display mode of the global background image.'."\n"
."\n"
.'- **0**: scales the background image proportionally to fit the view, with black bars displayed.'."\n"
."\n"
.'- **1** (default): crops the background image to fit the view.', 'type' => 'string', 'required' => false, 'example' => '1', 'title' => ''],
'URL' => ['description' => 'The URL of the global background image.', 'type' => 'string', 'required' => false, 'example' => 'yourImageUrl', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'EncodeParams' => [
'description' => 'The encoding parameters for the output stream.',
'type' => 'object',
'properties' => [
'AudioOnly' => ['description' => 'Specifies whether the output stream is an audio-only stream. Valid values:'."\n"
."\n"
.'- **true**: The output stream is an audio-only stream. If you set this parameter to true, you need to configure only audio-related parameters under EncodeParams.'."\n"
."\n"
.'- **false** (default): The output stream is not an audio-only stream. If you set this parameter to false, you need to configure all parameters under EncodeParams, except the VideoCodec and EnhancedParam parameters.', 'type' => 'string', 'required' => false, 'example' => 'false', 'title' => ''],
'AudioBitrate' => ['description' => 'The bitrate of the audio. Valid values: \\[8,500]. Unit: Kbit/s.', 'type' => 'string', 'required' => false, 'example' => '128', 'title' => ''],
'AudioChannels' => ['description' => 'The number of sound channels. Valid values: 1 and 2.', 'type' => 'string', 'required' => false, 'example' => '2', 'title' => ''],
'AudioSampleRate' => ['description' => 'The audio sampling rate. Valid values: 8000, 16000, 32000, 44100, and 48000. Unit: Hz.', 'type' => 'string', 'required' => false, 'example' => '44100', 'title' => ''],
'VideoCodec' => ['description' => 'The video codec. Valid values:'."\n"
."\n"
.'- H.264 (default)'."\n"
."\n"
.'- H.265', 'type' => 'string', 'required' => false, 'example' => 'H.264', 'title' => ''],
'VideoBitrate' => ['description' => 'The bitrate of the video. Valid values: \\[1,10000]. Unit: Kbit/s.', 'type' => 'string', 'required' => false, 'example' => '3500', 'title' => ''],
'VideoFramerate' => ['description' => 'The frame rate of the video. Valid values: \\[1,60]. Unit: frames per second (FPS).', 'type' => 'string', 'required' => false, 'example' => '25', 'title' => ''],
'VideoGop' => ['description' => 'The group of pictures (GOP) size of the video. Valid values: \\[1,60].', 'type' => 'string', 'required' => false, 'example' => '20', 'title' => ''],
'VideoHeight' => ['description' => 'The height of the video. Valid values: \\[0,1920]. Unit: pixels.', 'type' => 'string', 'required' => false, 'example' => '1000', 'title' => ''],
'VideoWidth' => ['description' => 'The width of the video. Valid values: \\[0,1920]. Unit: pixels.', 'type' => 'string', 'required' => false, 'example' => '1920', 'title' => ''],
'EnhancedParam' => ['description' => 'The parameter used for encoding enhancement, which is a JSON string. The parameter includes the optional profile and preset fields.'."\n"
."\n"
.'- profile: the encoding level. If the video codec is H.264, the valid values of this field are baseline, main, and high. If the video codec is H.265, the valid value of this field is main.'."\n"
."\n"
.'- preset: adjusts the trade-off between encoding speed and video quality. The valid values of this field are ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow, and placebo. Each value specifies a level of trade-off between encoding speed and video quality. For example, the ultrafast preset has the fastest encoding speed but the lowest video quality, while the placebo preset sacrifices the encoding speed for the best video quality.'."\n"
."\n"
.'> A value of superfast for the preset field is suitable for real-time communication scenarios. We recommend that you not set the field if you are not a professional encoding engineer.', 'type' => 'string', 'required' => false, 'example' => '{"profile": "high", "preset": "veryfast"}', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'Layout' => [
'description' => 'The video layout information.'."\n"
."\n"
.'> If video transcoding is required, you must specify the video layout information, including the x-coordinate and y-coordinate, the width and height, and the layer. For audio-only transcoding, leave the video layout information empty.',
'type' => 'object',
'properties' => [
'UserPanes' => [
'description' => 'The information about the panes.',
'type' => 'array',
'items' => [
'description' => 'The information about the pane.',
'type' => 'object',
'properties' => [
'UserInfo' => [
'description' => 'The information about the user whose stream is played in the pane. If you leave this parameter empty, the system automatically sets this parameter based on the order in which streamers join the channel.'."\n"
."\n"
.'>'."\n"
."\n"
.'- If you specify the information about a user by using this parameter, the information about the user must also be specified by using the TranscodeParams.UserInfos parameter.'."\n"
."\n"
.'- This parameter is valid only when you set StreamType to 0 or 2.',
'type' => 'object',
'properties' => [
'SourceType' => ['description' => 'The type of the video source. This parameter is valid only when you set StreamType to 2. Valid values:'."\n"
."\n"
.'- **camera** (default)'."\n"
."\n"
.'- **shareScreen**', 'type' => 'string', 'required' => false, 'example' => 'camera', 'title' => ''],
'ChannelId' => ['description' => 'The ID of the channel where the user is. If the user is in the same channel, you can leave this parameter empty. We recommend that you specify this parameter when you perform stream mixing across channels.', 'type' => 'string', 'required' => false, 'example' => 'yourChannelId', 'title' => ''],
'UserId' => ['description' => 'The user ID.', 'type' => 'string', 'required' => false, 'example' => 'yourSubUserId', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'Height' => ['description' => 'The height of the pane. The value is normalized.', 'type' => 'string', 'required' => false, 'example' => '0.2632', 'title' => ''],
'Width' => ['description' => 'The width of the pane. The value is normalized.', 'type' => 'string', 'required' => false, 'example' => '0.3564', 'title' => ''],
'X' => ['description' => 'The x-coordinate of the pane. The value is normalized.', 'type' => 'string', 'required' => false, 'example' => '0.2456', 'title' => ''],
'Y' => ['description' => 'The y-coordinate of the pane. The value is normalized.', 'type' => 'string', 'required' => false, 'example' => '0.3789', 'title' => ''],
'ZOrder' => ['description' => 'The layer in which the pane resides. A value of 0 indicates the bottom layer. Each increment of the value by 1 indicates the next upper layer.', 'type' => 'string', 'required' => false, 'example' => '0', 'title' => ''],
'BackgroundImageUrl' => ['description' => 'The URL of the background image of the pane. This image is displayed if the user turns off the camera or is not present in the channel.', 'type' => 'string', 'required' => false, 'example' => 'yourImageUrl', 'title' => ''],
'RenderMode' => ['description' => 'The display mode of the pane. Valid values:'."\n"
."\n"
.'- **0**: scales the video proportionally to fit the view, with black bars displayed.'."\n"
."\n"
.'- **1 (default)**: crops the video to fit the view.', 'type' => 'string', 'default' => '1', 'required' => false, 'example' => '1', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'title' => '',
'example' => '',
],
],
'required' => false,
'title' => '',
'example' => '',
],
'UserInfos' => [
'description' => 'The information about the users whose streams are subscribed to. If you leave this parameter empty, streams from all users are mixed.',
'type' => 'array',
'items' => [
'description' => 'The information about the user.',
'type' => 'object',
'properties' => [
'SourceType' => ['description' => 'The type of the video source that is subscribed to. This parameter is valid only when you set StreamType to 2. Valid values:'."\n"
."\n"
.'- **camera** (default)'."\n"
."\n"
.'- **shareScreen**', 'type' => 'string', 'required' => false, 'example' => 'camera', 'title' => ''],
'StreamType' => ['description' => 'The type of the relayed stream that is subscribed to. Valid values:'."\n"
."\n"
.'- **0** (default): original stream'."\n"
."\n"
.'- **1**: only the audio track'."\n"
."\n"
.'- **2**: only the video track', 'type' => 'string', 'required' => false, 'example' => '0', 'title' => ''],
'ChannelId' => ['description' => 'The ID of the channel where the subscribed user is. If the user is in the same channel, you can leave this parameter empty. We recommend that you specify this parameter when you perform stream mixing across channels.', 'type' => 'string', 'required' => false, 'example' => 'yourChannelId', 'title' => ''],
'UserId' => ['description' => 'The ID of the subscribed user.', 'type' => 'string', 'required' => true, 'example' => 'yourSubUserId', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'title' => '',
'example' => '',
],
],
'required' => false,
'title' => '',
'example' => '',
],
],
[
'name' => 'SeiParams',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The supplemental enhancement information (SEI) parameters.',
'type' => 'object',
'properties' => [
'LayoutVolume' => [
'description' => 'The layout and volume SEI. If you leave this parameter empty, the default layout and volume SEI is used.',
'type' => 'object',
'properties' => [
'FollowIdr' => ['description' => 'Specifies whether to include the SEI in an Instantaneous Decoder Refresh (IDR) frame. Valid values:'."\n"
."\n"
.'- **0**: does not include the SEI.'."\n"
."\n"
.'- **1**: includes the SEI.', 'type' => 'string', 'required' => false, 'example' => '0', 'title' => ''],
'Interval' => ['description' => 'The interval at which the SEI is sent. Valid values: \\[1000,5000]. Unit: milliseconds.', 'type' => 'string', 'required' => false, 'example' => '1000', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'PassThrough' => [
'description' => 'Specifies whether to pass through the SEI.',
'type' => 'object',
'properties' => [
'FollowIdr' => ['description' => 'Specifies whether to include the SEI in an IDR frame. Valid values:'."\n"
."\n"
.'- **0**: does not include the SEI.'."\n"
."\n"
.'- **1**: includes the SEI.', 'type' => 'string', 'required' => false, 'example' => '0', 'title' => ''],
'Interval' => ['description' => 'The interval at which the SEI is sent. Valid values: \\[1000,5000]. Unit: milliseconds.', 'type' => 'string', 'required' => false, 'example' => '1000', 'title' => ''],
'PayloadContent' => ['description' => 'The payload content of the SEI.', 'type' => 'string', 'required' => false, 'example' => 'yourPayloadContent', 'title' => ''],
'PayloadContentKey' => ['description' => 'The key of the payload content of the SEI. If you do not specify this parameter, the default value udd is used.', 'type' => 'string', 'required' => false, 'example' => 'yourPayloadContentKey', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
],
'required' => false,
'title' => '',
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'description' => '',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '0F72851F-5DC1-1979-9B2C-450040316C3E', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => '%s.', 'description' => 'Parameter verification failed'],
['errorCode' => 'InvalidAppId', 'errorMessage' => '%s, please check and try again later.', 'description' => 'AppId is invalid, please check and try again.'],
['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is missing, please check and try again.'],
],
403 => [
['errorCode' => 'OperationDenied', 'errorMessage' => 'Your account has not enabled the Live service', 'description' => ''],
['errorCode' => 'Forbidden', 'errorMessage' => '%s, please check and try again later.', 'description' => 'No permission, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'InternalError', 'description' => ''],
],
],
'title' => 'UpdateLiveMPUTask',
'summary' => 'Updates a mixed-stream relay task.',
'description' => 'Make sure that a mixed-stream relay task is created before you call this operation. You can call the [StartLiveMPUTask](~~2848199~~) operation to create a mixed-stream relay task.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 500 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.',
'changeSet' => [
['createdAt' => '2024-10-30T08:35:04.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2024-08-13T08:23:10.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2024-08-06T07:59:24.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2024-07-04T07:02:34.000Z', 'description' => 'Error codes changed'],
['createdAt' => '2024-06-12T05:51:31.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2024-03-06T17:46:44.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2024-03-01T07:39:35.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2023-12-26T06:01:15.000Z', 'description' => 'Request parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveMPUTask'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateLiveMPUTask',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0F72851F-5DC1-1979-9B2C-450040316C3E\\"\\n}","type":"json"}]',
],
'UpdateLivePackageConfig' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveJAENGU'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The ID of the region.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The primary domain name for live streaming playback.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The application name. The template applies only when this AppName matches the application name in the ingest URL. The AppName can be up to 255 characters and can contain digits, letters, hyphens (-), and underscores (\\_). It cannot start with a hyphen or an underscore. Set this parameter to an asterisk (\\*) to match all application names.', 'type' => 'string', 'required' => true, 'example' => 'AppName', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The stream name. The template applies only when this StreamName matches the stream name in the ingest URL. The StreamName can be up to 255 characters and can contain digits, letters, hyphens (-), and underscores (\\_). It cannot start with a hyphen or an underscore. Set this parameter to an asterisk (\\*) to match all stream names.', 'type' => 'string', 'required' => true, 'example' => 'StreamName', 'title' => ''],
],
[
'name' => 'Protocol',
'in' => 'query',
'schema' => ['description' => 'The protocol and container format for live streaming. Valid values:'."\n"
."\n"
.'- **HLS\\_CMAF**'."\n"
."\n"
.'- **LLHLS\\_TS** (low latency)'."\n"
."\n"
.'- **LLHLS\\_CMAF** (low latency)'."\n"
."\n"
.'- **DASH\\_CMAF**'."\n"
."\n"
.'- **HLSDASH\\_CMAF**', 'type' => 'string', 'required' => true, 'example' => 'HLS_CMAF', 'title' => ''],
],
[
'name' => 'SegmentNum',
'in' => 'query',
'schema' => ['description' => 'The number of M3U8 segments. The value must be an integer from 3 to 10.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '3', 'title' => ''],
],
[
'name' => 'SegmentDuration',
'in' => 'query',
'schema' => ['description' => 'The segment duration in seconds.'."\n"
."\n"
.'- If you set Protocol to HLS\\_CMAF, the value can range from 1 to 10 s.'."\n"
."\n"
.'- If you set Protocol to LLHLS\\_\\*, the value can range from 1 to 2 s.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '5', 'title' => ''],
],
[
'name' => 'PartDuration',
'in' => 'query',
'schema' => ['description' => 'The duration of a part segment in milliseconds.'."\n"
."\n"
.'> This parameter is required if you set \\`Protocol\\` to \\`LLHLS\\_\\*\\`.'."\n"
."\n"
.'- If SegmentDuration is 1 s, the value can range from 100 to 500 ms.'."\n"
."\n"
.'- If SegmentDuration is 2 s, the value can range from 100 to 1000 ms.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '350', 'title' => ''],
],
[
'name' => 'IgnoreTranscode',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to ignore transcoded streams. Valid values:'."\n"
."\n"
.'- **true** (default): Ignore transcoded streams.'."\n"
."\n"
.'- **false**: Do not ignore transcoded streams.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is missing, please check and try again.'],
['errorCode' => 'InvalidParams', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is invalid, please check and try again.'],
['errorCode' => 'InvalidProtocol', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter Protocol is invalid, please check and try again.'],
['errorCode' => 'InvalidSegmentNum', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter SegmentNum is invalid, please check and try again.'],
['errorCode' => 'InvalidSegmentDuration', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter SegmentDuration is invalid, please check and try again.'],
['errorCode' => 'InvalidPartDuration', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter PartDuration is invalid, please check and try again.'],
],
404 => [
['errorCode' => 'ConfigNotFound', 'errorMessage' => '%s, please check and try again.', 'description' => 'Configuration does not exist, please check and try again.'],
],
409 => [
['errorCode' => 'ConfigConflicts', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Configuration conflict, please check and try again.'],
],
500 => [
['errorCode' => 'InternalErr', 'errorMessage' => '%s, please try again.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'UpdateLivePackageConfig',
'summary' => 'Updates live encapsulation configurations.',
'description' => 'You can call this operation to update live encapsulation configurations. The new configurations take effect after you restart the stream ingest.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'This operation is limited to 300 queries per second (QPS) per user. If you exceed this limit, API calls are throttled. This can affect your business operations. Plan your calls accordingly.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLivePackageConfig'],
],
],
'ramActions' => [
[
'operationType' => '',
'ramAction' => [
'action' => 'live:UpdateLivePackageConfig',
'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"}]',
],
'UpdateLivePullStreamInfoConfig' => [
'summary' => 'Modifies a scheduled stream pulling configuration, including the origin URL, start time, and end time.',
'methods' => ['get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain that you use for stream pulling.'."\n"
."\n"
.'> Ensure that the domain is a streaming domain and that you have the required permissions to manage it.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the application to which the live stream belongs.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The name of the live stream.', 'type' => 'string', 'required' => true, 'example' => 'liveStream****', 'title' => ''],
],
[
'name' => 'SourceUrl',
'in' => 'query',
'schema' => ['description' => 'The origin URL of the live stream. You can specify multiple URLs. Separate them with semicolons (;).', 'type' => 'string', 'required' => true, 'example' => 'rtmp://guide.aliyundoc.com/liveApp****/liveStream****;rtmp://developer.aliyundoc.com/liveApp****/liveStream****', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The time when stream pulling starts. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. It must be in UTC.', 'type' => 'string', 'required' => true, 'example' => '2017-12-21T08:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The time when stream pulling ends.'."\n"
."\n"
.'The time range specified by the StartTime and EndTime parameters cannot exceed seven days. The time must be later than the current time. Specify the value in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.', 'type' => 'string', 'required' => true, 'example' => '2017-12-22T08:00:00Z', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''],
['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''],
['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => 'Illegal input parameters'],
['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => 'The end time does not match the start time. Make sure that the start and end times match.'],
['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' => ''],
],
],
'title' => 'UpdateLivePullStreamInfoConfig',
'description' => 'After this operation is complete, ApsaraVideo Live uses the updated settings for scheduled stream pulling. Make sure that the modification does not affect your business.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 1,000 times per minute per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'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'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateLivePullStreamInfoConfig',
'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-CB92E68F4CF8\\"\\n}","type":"json"}]',
],
'UpdateLivePullToPush' => [
'summary' => 'Updates a stream pulling and pushing task by calling UpdateLivePullToPush.',
'methods' => ['get'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '240074',
'abilityTreeNodes' => ['FEATURElive9P39J9'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'default' => 'cn-shanghai', 'required' => false, 'example' => 'cn-beijing', 'title' => ''],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'The task ID.', 'type' => 'string', 'required' => true, 'example' => 'fd245384-4067-4f91-9d75-9666a6bc****', 'title' => ''],
],
[
'name' => 'Region',
'in' => 'query',
'schema' => [
'description' => 'The region where the task is launched. Valid values:'."\n"
."\n"
.'- ap-southeast-1 (Singapore)'."\n"
.'- ap-southeast-5 (Indonesia)'."\n"
.'- cn-beijing (Beijing)'."\n"
.'- cn-shanghai (Shanghai).',
'enumValueTitles' => ['cn-shenzhen' => 'Shenzhen.', 'cn-qingdao' => 'Qingdao.', 'preregion' => 'Pre-release.', 'cn-beijing' => 'Beijing.', 'cn-shanghai' => 'Shanghai.', 'ap-southeast-1' => 'Singapore.', 'eu-central-1' => 'Germany (Frankfurt).', 'ap-northeast-1' => 'Japan (Tokyo).', 'ap-southeast-5' => 'Indonesia.', 'me-central-1' => 'Saudi Arabia (Riyadh).'],
'type' => 'string',
'required' => true,
'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'],
'example' => 'cn-shanghai',
'title' => '',
],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time of the task.'."\n"
.'> - Format: yyyy-MM-ddTHH:mm:ssZ (UTC).'."\n"
.'> - If the task has already started running, this update does not take effect.', 'type' => 'string', 'required' => false, 'example' => '2024-08-23T15:30:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time of the task.'."\n"
.'> - Format: yyyy-MM-ddTHH:mm:ssZ (UTC).'."\n"
.'> - EndTime must be later than StartTime.'."\n"
.'> - EndTime must be later than the current time.'."\n"
.'> - If the task has already ended, this update does not take effect.', 'type' => 'string', 'required' => false, 'example' => '2024-08-27T14:30:00Z', 'title' => ''],
],
[
'name' => 'SourceUrls',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The list of source stream URLs.'."\n"
."\n"
.'> - For the live type, only one complete live streaming URL is supported.'."\n"
.'> - For the vod and url types, up to 30 URLs can be specified.'."\n"
.'> - The live type supports RTMP, SRT, and HTTP-FLV protocols.'."\n"
.'> - For the vod type, specify ApsaraVideo VOD media asset IDs.'."\n"
.'> - The url type supports MP4 and HTTP-FLV protocols.'."\n"
.'> - For live source streams, the update takes effect immediately. For video file source streams, the update takes effect after the currently playing video ends, and playback restarts from the beginning of the updated video list.'."\n"
.'> - Update this parameter while the task is stopped. The update takes effect after the task is restarted.',
'type' => 'array',
'items' => ['description' => 'The source stream URL.'."\n"
."\n"
.'> - For the live type, only one complete live streaming URL is supported.'."\n"
.'> - For the vod and url types, up to 30 URLs can be specified.'."\n"
.'> - The live type supports RTMP, SRT, and HTTP-FLV protocols.'."\n"
.'> - For the vod type, specify ApsaraVideo VOD media asset IDs.'."\n"
.'> - The url type supports MP4 and HTTP-FLV protocols.'."\n"
.'> - For live source streams, the update takes effect immediately. For video file source streams, the update takes effect after the currently playing video ends, and playback restarts from the beginning of the updated video list.'."\n"
.'> - Update this parameter while the task is stopped. The update takes effect after the task is restarted.', 'type' => 'string', 'required' => false, 'example' => 'rtmp://pulltest.****.aliyunlive.com/pulltest493/pulltest-w434', 'title' => ''],
'required' => false,
'example' => 'changedtesturl',
'title' => '',
],
],
[
'name' => 'RepeatNumber',
'in' => 'query',
'schema' => [
'description' => 'The number of times playback repeats after the playlist finishes. Valid values:'."\n"
."\n"
.'- 0 (default): no repeat.'."\n"
.'- -1: loop indefinitely.'."\n"
.'- Other positive integers: the number of times playback repeats after the playlist finishes.'."\n"
."\n"
.'> - This parameter applies only to video-on-demand or third-party video streams.'."\n"
.'> - The update takes effect immediately.',
'type' => 'integer',
'format' => 'int32',
'default' => '-5',
'enum' => [],
'required' => false,
'example' => '0',
'title' => '',
],
],
[
'name' => 'Offset',
'in' => 'query',
'schema' => ['description' => 'The start offset of the video file, in seconds. The value must be greater than 0.'."\n"
.'> - Specifies the position relative to the first frame from which to start reading.'."\n"
.'> - This parameter applies only to video-on-demand or third-party video streams.'."\n"
.'> - This parameter takes effect only when the first video in the playlist is played.'."\n"
.'> - Update this parameter while the task is stopped. The update takes effect after the task is restarted.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2', 'title' => ''],
],
[
'name' => 'CallbackUrl',
'in' => 'query',
'schema' => ['description' => 'The callback URL. Default value: empty.'."\n"
.'> - The URL that receives task-related callbacks.'."\n"
.'> - Maximum length: 2000 characters.'."\n"
.'> - If this parameter is not specified, task events are not sent as callbacks.'."\n"
.'> - The update takes effect when the next event is triggered.', 'type' => 'string', 'required' => false, 'example' => 'https://callback*****.com', 'title' => ''],
],
[
'name' => 'FileIndex',
'in' => 'query',
'schema' => ['description' => 'The video index. Default value: 0.'."\n"
.'> Update this parameter while the task is stopped. The update takes effect after the task is restarted.', 'type' => 'integer', 'format' => 'int32', 'default' => '0', 'required' => false, 'example' => '0', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68*****'],
'RetCode' => ['description' => 'The return code.'."\n"
."\n"
.'> - The value "0" is returned if the call is successful.'."\n"
.'> - For exceptions, refer to the error code list below.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'Description' => ['description' => 'The error description.', 'type' => 'string', 'example' => 'OK', 'title' => ''],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => 'Parameter error'],
['errorCode' => 'InvalidParam.CodeIllegalDuration', 'errorMessage' => '%s.', 'description' => 'The value of start time should be less than the value of end time .'],
['errorCode' => 'CodeInvalidAliUid', 'errorMessage' => 'This aliuid does not have a live domain name.', 'description' => 'This aluid does not have a live domain name.'],
['errorCode' => 'CodeTaskNotExist', 'errorMessage' => 'Task does not exist.', 'description' => 'The task does not exist.'],
['errorCode' => 'CodeTaskHasStarted', 'errorMessage' => 'The task has already started.', 'description' => 'The task has already started and cannot be updated.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => 'error on the live liveapi server.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68*****\\",\\n \\"RetCode\\": 0,\\n \\"Description\\": \\"OK\\"\\n}","type":"json"}]',
'title' => 'Update a stream pulling and pushing task',
'description' => '- Call this operation to update a stream pulling and pushing task.'."\n"
.'- If the task has not reached the configured start time, you can update the Region parameter.'."\n"
.'- While the task is running (including during abnormal retry states), only CallbackUrl and RepeatTime can be updated, and the updates take effect immediately.'."\n"
.'- If the task is stopped, all parameters except Region can be updated.'."\n"
."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this operation is 10 calls per second. If this limit is exceeded, the API calls are throttled, which may affect your business. Call this operation appropriately.',
'changeSet' => [
['createdAt' => '2025-04-27T08:03:58.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLivePullToPush'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateLivePullToPush',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'UpdateLiveRecordNotifyConfig' => [
'summary' => 'Updates the domain-level recording callback configuration.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '107282',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain of the streamer.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'NotifyUrl',
'in' => 'query',
'schema' => ['description' => 'The callback URL for recording events, including event callbacks and status callbacks.'."\n"
."\n"
.'> - The URL must start with `http://` or `https://`.'."\n"
.'> - To properly identify Chinese characters, spaces, and other special characters in the input, perform URL encoding.', 'type' => 'string', 'required' => true, 'example' => 'http://learn.aliyundoc.com/examplecallback.action', 'title' => ''],
],
[
'name' => 'OnDemandUrl',
'in' => 'query',
'schema' => ['description' => 'The on-demand recording callback URL.'."\n"
."\n"
.'> - The URL must start with `http://` or `https://`.'."\n"
.'> - To properly identify Chinese characters, spaces, and other special characters in the input, perform URL encoding.', 'type' => 'string', 'required' => false, 'example' => 'http://guide.aliyundoc.com/ondemandcallback.action', 'title' => ''],
],
[
'name' => 'NeedStatusNotify',
'in' => 'query',
'schema' => ['description' => 'Specifies whether recording task status callbacks are required. Valid values:'."\n"
."\n"
.'- **true**: Recording task status callbacks are required.'."\n"
.'- **false** (default): Recording task status callbacks are not required.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
],
[
'name' => 'NotifyReqAuth',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to enable callback authentication. Valid values:'."\n"
."\n"
.'- **true**: Enabled.'."\n"
."\n"
.'- **false**: Disabled.'."\n"
."\n"
.'>Default value: **false**. If this parameter is set to **true**, the NotifyAuthKey parameter is required.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
],
[
'name' => 'NotifyAuthKey',
'in' => 'query',
'schema' => ['description' => 'The callback authentication key. The key is 16 to 32 characters in length and can contain only letters and digits.'."\n"
.'>This parameter is required when the NotifyReqAuth parameter is set to **true**.', 'type' => 'string', 'required' => false, 'maxLength' => 64, 'minLength' => 16, 'example' => 'testkeyyourkey12', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidNotifyUrl.Malformed', 'errorMessage' => 'Specified NotifyUrl is invalid.', 'description' => 'Invalid value of notifyurl. Check whether the notifyurl parameter that you specified is correct.'],
['errorCode' => 'InvalidNotifyUrl.Unsafe', 'errorMessage' => 'Specified NotifyUrl is not safe.', 'description' => 'Invalid value of notifyurl. Check whether the notifyurl parameter that you specified is correct.'],
['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' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD\\"\\n}","type":"json"}]',
'title' => 'Update domain-level recording callback configuration',
'description' => 'When you update the domain-level recording callback configuration, you can modify the following settings:'."\n"
.'- The callback URL for recording events, including recording file generation event callbacks and recording task status callbacks. For more information, see [Recording event callbacks](~~55016~~).'."\n"
.'- The on-demand recording callback URL. For more information, see [On-demand recording callback](~~85910~~).'."\n"
.'- Whether recording task status callbacks are required.'."\n"
."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this operation is 30 calls per second. If this limit is exceeded, the API call is throttled, which may affect your business. Call this operation appropriately.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveRecordNotifyConfig'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateLiveRecordNotifyConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
],
'UpdateLiveRecordVodConfig' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '181113',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The application name. You can view the `AppName` on the [Stream Management](~~197397~~) page.', 'type' => 'string', 'required' => true, 'example' => 'testName', 'title' => ''],
],
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The stream name. You can view the `StreamName` on the [Stream Management](~~197397~~) page.', 'type' => 'string', 'required' => false, 'example' => 'stream', 'title' => ''],
],
[
'name' => 'VodTranscodeGroupId',
'in' => 'query',
'schema' => ['description' => '>This parameter is ignored if the `RecordFormat` parameter is specified.> The ID of the ApsaraVideo for VOD transcoding template group.', 'type' => 'string', 'required' => false, 'example' => 'e2d796d3bb5fd8049d32bff62f94****', 'title' => ''],
],
[
'name' => 'CycleDuration',
'in' => 'query',
'schema' => ['description' => 'The duration of each cyclical recording file, in seconds. Default value: **3600**. Valid values: **300** to **21600**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '21600', 'minimum' => '300', 'example' => '300', 'title' => ''],
],
[
'name' => 'AutoCompose',
'in' => 'query',
'schema' => ['description' => '>This parameter is ignored if the `RecordFormat` parameter is specified.>'."\n"
.'Specifies whether to enable automatic composition. Valid values:'."\n"
."\n"
.'- **ON**: Enables automatic composition. If you set this value to ON, you must also specify the `ComposeVodTranscodeGroupId` parameter.', 'type' => 'string', 'required' => false, 'example' => 'OFF', 'title' => ''],
],
[
'name' => 'ComposeVodTranscodeGroupId',
'in' => 'query',
'schema' => ['description' => '>This parameter is ignored if the `RecordFormat` parameter is specified.>'."\n"
.'The ID of the ApsaraVideo for VOD transcoding template group used to transcode the video after automatic composition.'."\n"
."\n"
.'> You can get the ID by calling the [Query Transcoding Configuration List](~~454928~~) operation.', 'type' => 'string', 'required' => false, 'example' => '*****', 'title' => ''],
],
[
'name' => 'OnDemand',
'in' => 'query',
'schema' => ['description' => 'The on-demand recording mode. Valid values:'."\n"
."\n"
.'- **0** (default): Disables on-demand recording.'."\n"
."\n"
.'- **1**: Enables on-demand recording triggered by an HTTP callback.'."\n"
."\n"
.'- **2**: Triggers recording by parsing push streaming parameters.'."\n"
."\n"
.'- **7**: Manual recording. Call the [RealTimeRecordCommand](~~2847882~~) operation to start or stop recording.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
],
[
'name' => 'DelayTime',
'in' => 'query',
'schema' => ['description' => 'The maximum duration of a stream interruption, in seconds. If a stream interruption exceeds this duration, the system generates a new file. Valid values: 15 to 21600.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '180'],
],
[
'name' => 'RecordFormat',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Format' => ['description' => 'The recording storage format.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'm3u8'],
'SliceDuration' => ['description' => 'The duration of each segment, in seconds.'."\n"
.'>This parameter applies only to the `m3u8` format.>'."\n"
.'The default value is 30. Valid values: 5 to 30.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '30'],
'AutoCompose' => ['description' => 'Specifies whether to enable automatic composition. Valid values:'."\n"
."\n"
.'- `ON`: Enables automatic composition.'."\n"
."\n"
.'- `OFF`: Disables automatic composition.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'ON'],
'VideoProcess' => ['description' => 'The video source to process. Valid values:'."\n"
."\n"
.'- `origin` (default): Processes the source video.'."\n"
."\n"
.'- `compose`: Processes the composed video.'."\n"
."\n"
.'To process both the source and composed videos, separate the values with a comma. For example, `origin,compose`.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'origin'],
'ProcessMethod' => ['description' => 'The video processing method. Valid values:'."\n"
."\n"
.'- `transcode`: Processes the video by using a transcoding template group.'."\n"
."\n"
.'- `workflow`: Processes the video by using a workflow.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'transcode'],
'ProcessTemplateId' => ['description' => 'The ID of the transcoding template group or workflow.'."\n"
."\n"
.'> ## The ID must match the video processing method specified in ProcessMethod. For example, if ProcessMethod is set to transcode, you must use a transcoding template group ID.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'e2d796d3bb5fd8049d32bff62f94****'],
'Tags' => ['description' => 'A tag for video classification.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'sports'],
],
'title' => '',
'description' => 'The configuration for a recording format.'."\n"
.'>This operation can only modify the parameters of existing recording formats. You cannot use it to add or remove formats from the configuration. For example, if your configuration includes `m3u8` and `flv`, you can update their parameters but not add `mp4`.>',
'required' => false,
'example' => '',
],
'maxItems' => 3,
'title' => '',
'description' => 'A list of parameters for each recording format.',
'required' => false,
'example' => '',
],
],
[
'name' => 'TranscodeTemplates',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'type' => 'array',
'items' => ['description' => '- The transcoding template for recording a transcoded stream. You can specify a maximum of 10 templates.'."\n"
."\n"
.'- This parameter is required if you record transcoded streams.'."\n"
."\n"
.'- To record all transcoded streams, set `TranscodeTemplates.1` to the wildcard character (`*`).'."\n"
."\n"
.'> The value `raw` is reserved and cannot be used for `TranscodeTemplates`.'."\n"
.'> The `N` in `TranscodeTemplates.N` is an index for specifying multiple settings. For example: `TranscodeTemplates.1=sd`, `TranscodeTemplates.2=hd`.'."\n"
.'> --------------------------------------------------------------------------------------------------------------------------------------------------', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'sd'],
'maxItems' => 10,
'title' => '',
'description' => 'A list of transcoding templates.',
'required' => false,
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '61C96B9A-F203-4EC5-8E43-CB92E68F67DF', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'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' => 'Parameter verification failed'],
],
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' => 'UpdateLiveRecordVodConfig',
'summary' => 'Update a live-to-VOD configuration.',
'description' => 'This operation has a rate limit of 1,000 calls per minute per account. If you exceed this limit, your API calls will be rate-limited, which may interrupt your service.',
'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' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"61C96B9A-F203-4EC5-8E43-CB92E68F67DF\\"\\n}","type":"json"}]',
],
'UpdateLiveSnapshotDetectPornConfig' => [
'summary' => 'Modifies a video moderation configuration.',
'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' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the application to which the live stream belongs. The value of this parameter must be the same as the application name in the ingest URL. Otherwise, the configuration does not take effect. The name can be up to 255 characters in length and can contain digits, letters, hyphens (-), and underscores (\\_). The name cannot start with a hyphen (-) or underscore (\\_). You can also specify an asterisk (\\*) as the value to match all applications.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'OssEndpoint',
'in' => 'query',
'schema' => ['description' => 'The endpoint of the Object Storage Service (OSS) bucket.', 'type' => 'string', 'required' => false, 'example' => 'cn-oss-****.aliyuncs.com', 'title' => ''],
],
[
'name' => 'OssBucket',
'in' => 'query',
'schema' => ['description' => 'The name of the OSS bucket.', 'type' => 'string', 'required' => false, 'example' => 'liveBucket****', 'title' => ''],
],
[
'name' => 'OssObject',
'in' => 'query',
'schema' => ['description' => 'The name of the snapshot that stores violations such as pornographic content and politically sensitive content.', 'type' => 'string', 'required' => false, 'example' => '{liveApp****}/{liveStream****}/{Date}/{Hour}/{Minute}_{Second}.jpg', 'title' => ''],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => ['description' => 'The interval at which snapshots are captured from the live stream. Valid values: **5 to 3600**. Unit: seconds.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '3600', 'minimum' => '5', 'example' => '5', 'title' => ''],
],
[
'name' => 'Scene',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The moderation scenario array.',
'type' => 'array',
'items' => ['description' => 'The moderation scenario. Valid values:'."\n"
."\n"
.'- **porn** (default): pornography detection'."\n"
."\n"
.'- **terrorism**: terrorism detection'."\n"
."\n"
.'- **ad**: ad violation detection'."\n"
."\n"
.'- **live**: undesirable scene detection'."\n"
."\n"
.'- **logo**: logo detection', 'type' => 'string', 'required' => false, 'example' => 'live', 'title' => ''],
'required' => false,
'example' => 'porn',
'maxItems' => 5,
'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidOssEndpoint.Malformed', 'errorMessage' => 'Specified parameter OssEndpoint is not valid.', 'description' => ''],
['errorCode' => 'InvalidOssBucket.Malformed', 'errorMessage' => 'Specified parameter OssBucket is not valid.', 'description' => ''],
['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' => ''],
],
404 => [
['errorCode' => 'InvalidConfig.NotFound', 'errorMessage' => 'Config does not exist.', 'description' => ''],
],
],
'title' => 'UpdateLiveSnapshotDetectPornConfig',
'description' => '- Obtain the main streaming domain, and then call this operation to modify a video moderation configuration.'."\n"
."\n"
.'- Only some live centers support the content moderation feature. For more information, see [Supported regions](~~193730~~).'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 30 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveSnapshotDetectPornConfig'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateLiveSnapshotDetectPornConfig',
'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"}]',
],
'UpdateLiveSnapshotNotifyConfig' => [
'summary' => 'Updates the snapshot callback configuration.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveMH1XD3'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The main streaming domain.', 'type' => 'string', 'required' => true, 'example' => 'ww.yourdomain***.com', 'title' => ''],
],
[
'name' => 'NotifyUrl',
'in' => 'query',
'schema' => ['description' => 'The callback URL. The URL must be valid and cannot exceed 500 characters.', 'type' => 'string', 'required' => false, 'example' => 'http://callback.yourdomain***.com', 'title' => ''],
],
[
'name' => 'NotifyReqAuth',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to enable authentication for callback notifications. Valid values:'."\n"
."\n"
.'- **yes**: Enables'."\n"
."\n"
.'- **no**: Disables'."\n"
."\n"
.'> The default value is **no**. If you set this parameter to **yes**, NotifyAuthKey is required.', 'type' => 'string', 'required' => false, 'example' => 'yes', 'title' => ''],
],
[
'name' => 'NotifyAuthKey',
'in' => 'query',
'schema' => ['description' => 'The callback authentication key. The key must be 16 to 32 characters in length and can contain letters and digits.'."\n"
."\n"
.'> This parameter is required when NotifyReqAuth is set to **yes**.', 'type' => 'string', 'required' => false, 'example' => 'testkeyyourkey12', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'A3136B58-5876-5A93-83CA-B562781981A0', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is missing, please check and try again.'],
['errorCode' => 'MalformedParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Invalid parameter, please check and try again.'],
['errorCode' => 'ConfigNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Configuration does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"A3136B58-5876-5A93-83CA-B562781981A0\\"\\n}","type":"json"}]',
'title' => 'UpdateLiveSnapshotNotifyConfig',
'description' => 'You can call this operation up to 30 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateLiveSnapshotNotifyConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
],
'UpdateLiveStreamMonitor' => [
'summary' => 'Updates the configurations of a monitoring session.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '107285',
'abilityTreeNodes' => ['FEATUREliveSM955S'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'MonitorId',
'in' => 'query',
'schema' => ['description' => 'The ID of the monitoring session.'."\n"
."\n"
.'> Obtain the MonitorId value from the response parameters of the [CreateLiveStreamMonitor](~~2848129~~) operation.', 'type' => 'string', 'required' => true, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
],
[
'name' => 'MonitorName',
'in' => 'query',
'schema' => ['description' => 'The name of the monitoring session.', 'type' => 'string', 'required' => false, 'example' => 'liveMonitor****', 'title' => ''],
],
[
'name' => 'Domain',
'in' => 'query',
'schema' => ['description' => 'The output domain name for the monitoring session.', 'type' => 'string', 'required' => false, 'example' => 'demo.aliyundoc.com', 'title' => ''],
],
[
'name' => 'App',
'in' => 'query',
'schema' => ['description' => 'The application name for the output stream of the monitoring session. You can specify a custom name. If you do not specify this parameter, **monitor** is used as the AppName.', 'type' => 'string', 'required' => false, 'example' => 'monitor****', 'title' => ''],
],
[
'name' => 'Stream',
'in' => 'query',
'schema' => ['description' => 'The name of the output stream for the monitoring session.', 'type' => 'string', 'required' => false, 'example' => 'monitorStream****', 'title' => ''],
],
[
'name' => 'OutputTemplate',
'in' => 'query',
'schema' => ['description' => 'The output template for the monitoring session. Valid values:'."\n"
."\n"
.'- **lp\\_ld**: low definition.'."\n"
."\n"
.'- **lp\\_sd**: standard definition.'."\n"
."\n"
.'- **lp\\_hd**: high definition.'."\n"
."\n"
.'- **lp\\_ud**: ultra-high definition.', 'type' => 'string', 'required' => false, 'example' => 'lp_ud', 'title' => ''],
],
[
'name' => 'InputList',
'in' => 'query',
'schema' => ['description' => 'The list of input streams to monitor. For more information, see the **InputConfig** table below.', 'type' => 'string', 'required' => true, 'example' => 'InputConfig', 'title' => ''],
],
[
'name' => 'MonitorConfig',
'in' => 'query',
'schema' => ['description' => 'The settings for alert thresholds. The value is a JSON string. For more information, see the MonitorConfig table below.', 'type' => 'string', 'required' => false, 'example' => '"{\\"fpsLowThres\\": 0.6,\\"brLowThres\\": 1.1,\\"eofDurationThresSec\\": 10}"', 'title' => ''],
],
[
'name' => 'CallbackUrl',
'in' => 'query',
'schema' => ['description' => 'The webhook address. HTTP and HTTPS are supported.', 'type' => 'string', 'required' => false, 'example' => 'http://guide.aliyundoc.com/notify', 'title' => ''],
],
[
'name' => 'DingTalkWebHookUrl',
'in' => 'query',
'schema' => ['description' => 'The webhook URL of the DingTalk chatbot. Monitoring alerts are sent to a DingTalk group using a chatbot. Set up a chatbot and enter its webhook URL, which must be an HTTP or HTTPS address. For more information, see [Custom robot access](https://open.dingtalk.com/document/robots/custom-robot-access).'."\n"
."\n"
.'> Set the custom keyword of the DingTalk chatbot to "Alerting". Otherwise, messages cannot be received.', 'type' => 'string', 'required' => false, 'example' => 'https://oapi.dingtalk.com/robot/send?access_token=7a7d404056eee1f2fd944ace9bcfc361dc6448583e1d3d3baa****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5c6a2a0d-f228-4a64-af62-20e91b9676b3', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
['errorCode' => 'InvalidMonitorId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The parameter MonitorId is invalid, please check and try again.'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
404 => [
['errorCode' => 'InvalidDomainName.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Domain name does not exist, please check and try again.'],
['errorCode' => 'StreamMonitorNotExist', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The monitoring room does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'UpdateLiveStreamMonitor',
'description' => 'This operation updates the configuration of a monitoring session. If the monitoring session is running, updates to the input source configuration take effect in real time.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 10. API calls that exceed this limit are throttled. Throttling can affect your business, so we recommend that you plan your calls accordingly.',
'requestParamsDescription' => '**InputConfig**'."\n"
."\n"
.'| Name | Type | Description | Example |'."\n"
.'| ------------ | ------------ | -------------------------------------------------- | ----------------------------------------------------------- |'."\n"
.'| Index | Integer | The index. This parameter is used by the frontend. | 1 |'."\n"
.'| LayoutId | Integer | The layout ID. The value must start from 1. | 1 |'."\n"
.'| StreamName | String | The display name of the monitored stream. | monitorStream**** |'."\n"
.'| InputUrl | String | The URL of the input stream. | demo.aliyundoc.com |'."\n"
.'| LayoutConfig | LayoutConfig | The layout information. | For more information, see the **LayoutConfig** table below. |'."\n"
.'| PlayConfig | PlayConfig | The playback configuration. | For more information, see the **PlayConfig** table below. |'."\n"
."\n"
.'**LayoutConfig**'."\n"
."\n"
.'| Name | Type | Description | Example |'."\n"
.'| ------------------ | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------- |'."\n"
.'| FillMode | String | The fill mode. Set this parameter to none for the frontend. | none |'."\n"
.'| PositionRefer | String | The reference point for the position of the element. Valid values: TopLeft, TopRight, BottomLeft, and BottomRight. | TopLeft |'."\n"
.'| PositionNormalized | Float | The normalized position of the fill area for the layer element. The value is in the [x,y] format. The values of x and y range from 0 to 1. For example, [0.1, 0.1] indicates a horizontal offset of 10% and a vertical offset of 10% from the top-left corner. | \\[0.1, 0.1] |'."\n"
.'| SizeNormalized | Float | The size of the fill area for the layer element. The value is in the [w,h] format. The values of w and h range from 0 to 1. Both the width and height are normalized. For example, [0.2, 0.3] indicates a horizontal proportion of 20% and a vertical proportion of 30%. | \\[0.2, 0.3] |'."\n"
."\n"
.'**PlayConfig**'."\n"
."\n"
.'| Name | Type | Description | Example |'."\n"
.'| ---------- | ----- | ------------------------------------------------------------------------- | ------- |'."\n"
.'| VolumeRate | Float | The volume. The value ranges from 0 to 1, accurate to two decimal places. | 0.50 |'."\n"
."\n"
.'**MonitorConfig**'."\n"
."\n"
.'| Name | Type | Description | Example |'."\n"
.'| ------------------- | ----- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |'."\n"
.'| fpsLowThres | Float | The alert threshold for the video frame rate. This threshold is a coefficient. The value must be in the (0.0, 1.0] range. The default value is 0.7. An alert is triggered if the video frame rate of the monitored stream is less than (alert threshold × original frame rate of the live stream). | 0.7 |'."\n"
.'| brHighThres | Float | The alert threshold for the audio and video bitrate. This threshold is a coefficient. The value must be in the (0.0, 100] range. The default value is 1.0. An alert is triggered if the audio and video bitrate of the monitored stream is greater than (alert threshold × original bitrate of the live stream). | 1.0 |'."\n"
.'| eofDurationThresSec | Float | The threshold for stream interruption detection, in seconds. An alert is triggered if the monitored stream is interrupted for a duration longer than this threshold. The value must be in the (0, 65535] range. The default value is 0. After a stream is interrupted, the connection remains active. The system determines that the stream is interrupted if a packet receipt timeout of 5 s occurs. Therefore, if you set this parameter to a value less than or equal to 5 s, the actual detection time is 5 s. If you set this parameter to a value greater than 5 s, the actual detection time is the value you set. The first 5 s are for the internal packet receipt timeout, and the remaining time is the duration for which the system waits for the stream to resume. If the stream resumes before the timeout period expires, no alert is triggered. If you change the monitoring address before the stream times out, the system stops detecting the timeout and does not trigger an alert for the previous stream. | 10 |',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2024-09-04T07:12:49.000Z', 'description' => 'Request parameters changed'],
],
'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' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b9676b3\\"\\n}","type":"json"}]',
],
'UpdateLiveStreamTranscode' => [
'summary' => 'Updates a default transcoding configuration.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '206836',
'abilityTreeNodes' => ['FEATUREliveG4SX14', 'FEATUREliveHVN9B2'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'Domain',
'in' => 'query',
'schema' => ['description' => 'The streaming domain. This parameter cannot be modified.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'App',
'in' => 'query',
'schema' => ['description' => 'The AppName of the live stream. This parameter cannot be modified.', 'type' => 'string', 'required' => true, 'example' => 'liveApp****', 'title' => ''],
],
[
'name' => 'Template',
'in' => 'query',
'schema' => ['description' => 'The transcoding template name. This parameter cannot be modified.', 'type' => 'string', 'required' => true, 'example' => 'lsd', 'title' => ''],
],
[
'name' => 'EncryptParameters',
'in' => 'query',
'schema' => ['description' => 'The encryption settings, formatted as a JSON string.'."\n"
."\n"
.'- **EncryptType**: The encryption type. Set the value to aliyun.'."\n"
."\n"
.'- **KmsKeyID**: The ID of the customer master key (CMK) in Key Management Service (KMS).'."\n"
."\n"
.'- **KmsKeyExpireInterval**: The key rotation period. Unit: seconds. Valid values: **60 to 3600.**'."\n"
."\n"
.'> When you use Digital Rights Management (DRM) encryption, you cannot modify **KmsKeyID**.', 'type' => 'string', 'required' => false, 'example' => '{"EncryptType": "aliyun", "KmsKeyID":"afce5722-81d2-43c3-9930-7601da11****","KmsKeyExpireInterval":"3600"}', 'title' => ''],
],
[
'name' => 'Lazy',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to enable on-demand transcoding. Valid values:'."\n"
."\n"
.'- **yes**: Transcoding only starts when the first viewer requests this transcoded stream.'."\n"
."\n"
.'- **no**: Transcoding starts immediately after the stream is published.', 'type' => 'string', 'required' => false, 'default' => 'yes', 'example' => 'yes', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The request ID.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameters', 'errorMessage' => '%s Please check and try again later.', 'description' => 'Exception parameter exists, please check and try again.'],
['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => '%s Please check and try again later.', 'description' => 'Configuration already exists, please check and try again.'],
],
],
'title' => 'UpdateLiveStreamTranscode',
'description' => 'To modify the encryption settings, first obtain a Customer Master Key (CMK) ID from Key Management Service (KMS). This operation supports only standard and Narrowband HD™ transcoding templates.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'ou can call this operation up to 30 times per second per account.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveStreamTranscode'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'live:UpdateLiveStreamTranscode',
'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"}]',
],
'UpdateLiveStreamWatermark' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveCT0GRQ'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'TemplateId',
'in' => 'query',
'schema' => ['description' => 'The ID of the watermark template.'."\n"
."\n"
.'> You can get the template ID from the response of the [AddLiveStreamWatermark](~~2848096~~) operation.', 'type' => 'string', 'required' => true, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
],
[
'name' => 'Name',
'in' => 'query',
'schema' => ['description' => 'The name of the watermark template.', 'type' => 'string', 'required' => false, 'example' => 'livewatermark****', 'title' => ''],
],
[
'name' => 'Description',
'in' => 'query',
'schema' => ['description' => 'The description of the watermark.', 'type' => 'string', 'required' => false, 'example' => 'my watermark', 'title' => ''],
],
[
'name' => 'RefWidth',
'in' => 'query',
'schema' => ['description' => 'The reference width of the video background, in pixels.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1920', 'title' => ''],
],
[
'name' => 'RefHeight',
'in' => 'query',
'schema' => ['description' => 'The reference height of the video background, in pixels.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1080', 'title' => ''],
],
[
'name' => 'XOffset',
'in' => 'query',
'schema' => ['description' => 'The X-axis offset of the watermark, in pixels.'."\n"
."\n"
.'> Relative to RefWidth. If OffsetCorner is TopLeft, XOffset is the horizontal distance between the top‑left corner of the watermark and the top‑left corner of the background video. Positive X points to the right.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '50.0', 'title' => ''],
],
[
'name' => 'YOffset',
'in' => 'query',
'schema' => ['description' => 'The Y-axis offset of the watermark, in pixels.'."\n"
."\n"
.'> Relative to RefHeight. If OffsetCorner is TopLeft, YOffset is the vertical distance between the top‑left corner of the watermark and the top‑left corner of the background video. Positive Y points downward.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '100.0', 'title' => ''],
],
[
'name' => 'Height',
'in' => 'query',
'schema' => ['description' => 'The height of the watermark image, in pixels. This value is relative to `RefHeight` and will be scaled proportionally with the actual video resolution.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '200', 'title' => ''],
],
[
'name' => 'Transparency',
'in' => 'query',
'schema' => ['description' => 'The opacity of the watermark. Value range: `0` (fully transparent) to `255` (fully opaque).', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '255', 'title' => ''],
],
[
'name' => 'OffsetCorner',
'in' => 'query',
'schema' => ['description' => 'The anchor point for the watermark\'s position. Valid values:'."\n"
."\n"
.'- TopLeft'."\n"
."\n"
.'- TopRight'."\n"
."\n"
.'- BottomLeft'."\n"
."\n"
.'- BottomRight', 'type' => 'string', 'required' => false, 'example' => 'TopRight', 'title' => ''],
],
[
'name' => 'PictureUrl',
'in' => 'query',
'schema' => ['description' => 'The URL of the watermark image.', 'type' => 'string', 'required' => false, 'example' => 'http://example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5c6a2a0df228-4a64-af62-20e91b9676b3', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameters', 'errorMessage' => '%s Please check and try again later.', 'description' => 'Exception parameter exists, please check and try again.'],
],
],
'title' => 'UpdateLiveStreamWatermark',
'summary' => 'Updates a watermark template.',
'description' => 'This operation updates the parameters of a specified watermark template.'."\n"
."\n"
.'## QPS limits'."\n"
."\n"
.'You can call this operation up to 60 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateLiveStreamWatermark',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b9676b3\\"\\n}","type":"json"}]',
],
'UpdateLiveStreamWatermarkRule' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveCT0GRQ'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'RuleId',
'in' => 'query',
'schema' => ['description' => 'The ID of the watermark rule.'."\n"
."\n"
.'> Get the rule ID from the response of the [AddLiveStreamWatermarkRule](~~2848100~~) operation.', 'type' => 'string', 'required' => true, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', 'title' => ''],
],
[
'name' => 'Name',
'in' => 'query',
'schema' => ['description' => 'The custom name of the rule.', 'type' => 'string', 'required' => false, 'example' => 'WatermarkRule****', 'title' => ''],
],
[
'name' => 'Description',
'in' => 'query',
'schema' => ['description' => 'The custom description of the rule.', 'type' => 'string', 'required' => false, 'example' => 'my rule', 'title' => ''],
],
[
'name' => 'TemplateId',
'in' => 'query',
'schema' => ['description' => 'The ID of the watermark template.'."\n"
."\n"
.'> Get the template ID from the response of the [AddLiveStreamWatermark](~~2848096~~) operation.', 'type' => 'string', 'required' => false, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9 ****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5c6a2a0df228-4a64-af62-20e91b9676b3', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameters', 'errorMessage' => '%s Please check and try again later.', 'description' => 'Exception parameter exists, please check and try again.'],
],
],
'title' => 'UpdateLiveStreamWatermarkRule',
'summary' => 'Updates a watermark rule.',
'description' => 'This operation updates the parameters of a watermark rule based on the specified rule ID.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 60 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveStreamWatermarkRule'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateLiveStreamWatermarkRule',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b9676b3\\"\\n}","type":"json"}]',
],
'UpdateMessageApp' => [
'summary' => 'Call UpdateMessageApp to update interactive message application information.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'deprecated' => false,
'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'formData',
'schema' => ['description' => 'Interactive message application ID.', 'type' => 'string', 'required' => true, 'example' => 'VKL3***', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'formData',
'schema' => ['description' => 'Interactive message application name.', 'type' => 'string', 'required' => false, 'example' => 'testApp', 'title' => ''],
],
[
'name' => 'AppConfig',
'in' => 'formData',
'style' => 'json',
'schema' => [
'description' => 'Application configuration.',
'type' => 'object',
'required' => false,
'additionalProperties' => ['type' => 'string', 'description' => 'Application configuration information, user-defined content.', 'example' => '"appAlias":"localApp"', 'title' => ''],
'title' => '',
'example' => '',
],
],
[
'name' => 'Extension',
'in' => 'formData',
'style' => 'json',
'schema' => [
'description' => 'Extension field.',
'type' => 'object',
'required' => false,
'additionalProperties' => ['type' => 'string', 'description' => 'Extension field, passed as needed, for additional application properties that need to be recorded.', 'example' => 'test001', 'title' => ''],
'title' => '',
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'Request ID.', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'],
'Result' => [
'description' => 'Return result.',
'type' => 'object',
'properties' => [
'Success' => ['description' => 'Indicates whether the update is successful. Valid values:'."\n"
."\n"
.'- true: successful.'."\n"
.'- false: unsuccessful.', 'type' => 'boolean', 'example' => 'true', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": true\\n }\\n}","type":"json"}]',
'title' => 'UpdateMessageApp',
'description' => '## QPS limits'."\n"
."\n"
.'The single-user QPS limit for this API is 100 queries per second (QPS). API calls that exceed this limit are throttled, which may affect your business. You can call this API at a reasonable rate. For more information, see [QPS limits](~~343507~~).',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateMessageApp'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateMessageApp',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
],
'UpdateMessageGroup' => [
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
'name' => 'GroupId',
'in' => 'formData',
'schema' => ['description' => 'The message group ID.', 'type' => 'string', 'required' => true, 'example' => 'AE35-****-T95F', 'title' => ''],
],
[
'name' => 'AppId',
'in' => 'formData',
'schema' => ['description' => 'The interactive message application ID.', 'type' => 'string', 'required' => true, 'example' => 'VKL3***', 'title' => ''],
],
[
'name' => 'Extension',
'in' => 'formData',
'style' => 'json',
'schema' => [
'description' => 'The extension field.',
'type' => 'object',
'required' => false,
'additionalProperties' => ['type' => 'string', 'description' => 'The message group extension field.', 'example' => 'test01', 'title' => ''],
'title' => '',
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'],
'Result' => [
'description' => 'The returned result.',
'type' => 'object',
'properties' => [
'Success' => ['description' => 'Indicates whether the update was successful. Valid values:'."\n"
."\n"
.'- true: The update was successful.'."\n"
.'- false: The update failed.', 'type' => 'boolean', 'example' => 'true', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'title' => 'UpdateMessageGroup',
'summary' => 'You can call the UpdateMessageGroup operation to update message group information.',
'description' => '## QPS limits'."\n"
."\n"
.'The QPS limit for this API is 100 queries per second (QPS) per user. If the limit is exceeded, API calls will be throttled, which may affect your business. You can call the API properly to avoid this issue. For more information, see [QPS limits](~~343507~~).',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateMessageGroup'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateMessageGroup',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": true\\n }\\n}","type":"json"}]',
],
'UpdateMixStream' => [
'summary' => 'Updates a stream mix task.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '107287',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => [
'description' => 'The region ID.',
'enumValueTitles' => [],
'type' => 'string',
'required' => false,
'default' => 'cn-shanghai',
'example' => 'cn-shanghai',
'title' => '',
],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The streaming domain.'."\n"
."\n"
.'>'."\n"
."\n"
.'Only domain names in the China (Shanghai) and China (Beijing) regions are supported.'."\n"
."\n"
.'>', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'MixStreamId',
'in' => 'query',
'schema' => ['description' => 'The ID of the stream mix task. If you created the task by calling the [CreateMixStream](~~2848087~~) operation, use the MixStreamId value returned in the response.', 'type' => 'string', 'required' => true, 'example' => '5b2a046e-74d7-385e-d2d7-8a5b87e4****', 'title' => ''],
],
[
'name' => 'InputStreamList',
'in' => 'query',
'schema' => ['description' => 'The list of input streams for the mix. This is a JSON array.'."\n"
."\n"
.'For more information, see **InputStreamConfig** below.', '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"}]}', 'title' => ''],
],
[
'name' => 'LayoutId',
'in' => 'query',
'schema' => ['description' => 'The layout ID. The following values are supported:'."\n"
."\n"
.'- **MixStreamLayout-1-1**'."\n"
."\n"
.'- **MixStreamLayout-2-1**'."\n"
."\n"
.'- **MixStreamLayout-2-2**'."\n"
."\n"
.'- **MixStreamLayout-2-3**'."\n"
."\n"
.'- **MixStreamLayout-3-1**'."\n"
."\n"
.'- **MixStreamLayout-3-2**'."\n"
."\n"
.'- **MixStreamLayout-4-1**'."\n"
."\n"
.'- **USERDEFINED** (If you use a custom layout instead of a preset layout, set this parameter to this value.)', 'type' => 'string', 'required' => false, 'example' => 'MixStreamLayout-3-2', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'MixStreamId' => ['description' => 'The ID of the stream mix task. You can use this ID to query or delete the task.', 'type' => 'string', 'example' => '5b2a046e-74d7-385e-d2d7-8a5b87e4****', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '1A8CDDFF-0121-4ABB-DA60-AEF095A8W34F', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => 'The userId passed in is invalid, please check.'],
['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => 'There are invalid parameters: %s.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
],
[
['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Operation not allowed, please check and try again.'],
],
403 => [
['errorCode' => 'MixStreamAlreadyExist', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The confluence task already exists, please check and try again.'],
['errorCode' => 'MixStreamNotExist', 'errorMessage' => '%s, please check and try again later.', 'description' => 'The confluous task does not exist. Please check and try again.'],
],
[
['errorCode' => 'InvalidDomainName.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Domain name does not exist, please check and try again.'],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => 'Internal error, please try again later.'],
],
],
'title' => 'UpdateMixStream',
'description' => 'You can call this API operation to update a stream mix task. You can update the input sources and layout, but you cannot update parameters such as the output resolution.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 10 calls per second. If you exceed this limit, your API calls are throttled. This may impact your business. Plan your calls accordingly.',
'requestParamsDescription' => '### InputStreamConfig'."\n"
."\n"
.'| Name | Type | Description |'."\n"
.'| ------------- | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n"
.'| ResourceType | String | The resource type. **live**: A live streaming URL. **url**: A file streaming URL. |'."\n"
.'| ResourceValue | String | The resource URL. If ResourceType is set to live, this is the live streaming URL. The URL must use the RTMP, FLV, or Alibaba Real-Time Communication (ARTC) protocol. The HLS protocol is not supported. If ResourceType is set to url, this is the file streaming URL. |'."\n"
.'| LayoutChildId | String | The ID of the layout pane. This ID also determines the stacking order of the streams. |'."\n"
.'| LayoutConfig | LayoutConfig\\[] | A JSON array that specifies layout information, such as the position and fill mode. This parameter is optional if you use a preset layout. If you set this parameter, the preset layout information that corresponds to LayoutChildId is ignored. |'."\n"
."\n"
.'### LayoutConfig'."\n"
."\n"
.'| Name | Type | Required | Description |'."\n"
.'| ---------------------- | ------------------------------------ | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n"
.'| FillSizeNormalized | JSON array of floating-point numbers | Yes | The size of the area to fill for this layer element. \\[w,h]: The values of w and h range from 0 to 1. The width and height are normalized. For example, \\[0.2,0.3] means the element occupies 20% of the horizontal space and 30% of the vertical space. |'."\n"
.'| FillPositionNormalized | Array of floating-point numbers | Yes | The normalized position of the fill area for this layer element. \\[x,y]: The values of x and y range from 0 to 1. For example, \\[0.1,0.1] means a horizontal offset of 10% and a vertical offset of 10% from the top-left corner. |'."\n"
.'| PositionRefer | String | No | The reference coordinate for the position of the element. Set this parameter to topLeft to use the top-left corner as the reference. |'."\n"
.'| FillMode | String | No | The fill mode for the element. **none**: No fill. **fit**: Scales the stream to fit the pane. The longest edge reaches the border, and black bars may be added to the shorter edge. **fill**: Scales the stream proportionally based on the larger of the width or height ratio, and then crops the stream to fill the entire pane. Set this parameter to fit. |',
'responseParamsDescription' => ' ',
'extraInfo' => '### SDK example'."\n"
."\n"
.'For more information, see [Sample code of stream mixing](https://help.aliyun.com/document_detail/199362.html).'."\n",
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateMixStream'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateMixStream',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"MixStreamId\\": \\"5b2a046e-74d7-385e-d2d7-8a5b87e4****\\",\\n \\"RequestId\\": \\"1A8CDDFF-0121-4ABB-DA60-AEF095A8W34F\\"\\n}","type":"json"}]',
],
'UpdateRtcCloudRecording' => [
'summary' => 'Updates an RTC cloud recording task.',
'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' => 'The task ID. This ID is returned by StartRtcCloudRecording. Only tasks in the running or abnormal state can be updated.', 'type' => 'string', 'required' => true, 'example' => '******73-8501-****-8ac1-72295a******'."\n", 'title' => ''],
],
[
'name' => 'SubscribeParams',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The updated subscription parameters.',
'type' => 'object',
'properties' => [
'SubscribeUserIdList' => [
'description' => 'The list of subscribed UserId entries. In single-stream recording mode, each UserId is recorded separately. In stream mixing recording mode, the audio and video of all UserIds are mixed into a single set of audio and video.'."\n"
.'> '."\n"
.'> - The array supports a maximum of 17 elements.',
'type' => 'array',
'items' => [
'description' => 'The information about the subscribed UserId.',
'type' => 'object',
'properties' => [
'UserId' => ['description' => 'The subscribed UserId.', 'type' => 'string', 'required' => true, 'example' => 'userA', 'title' => ''],
'StreamType' => [
'description' => 'The media type of the subscribed UserId. Valid values:'."\n"
."\n"
.'- 0: original stream, which includes both audio and video. (Default)'."\n"
."\n"
.'- 1: audio-only stream.'."\n"
."\n"
.'- 2: video-only stream.',
'enumValueTitles' => ['original stream, which includes both audio and video.', 'audio-only stream.', 'video-only stream.'],
'type' => 'integer',
'format' => 'int32',
'default' => '0',
'enum' => ['0', '1', '2'],
'required' => false,
'example' => '0',
'title' => '',
],
'SourceType' => [
'description' => 'The video input stream type of the UserId. This parameter takes effect only when the video stream is subscribed (StreamType=2). Valid values:'."\n"
."\n"
.'- 0: camera. (Default)'."\n"
."\n"
.'- 1: screen sharing.',
'enumValueTitles' => ['camera.', 'screen sharing.'],
'type' => 'integer',
'format' => 'int32',
'default' => '0',
'enum' => ['0', '1'],
'required' => false,
'example' => '0',
'title' => '',
],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => true,
'maxItems' => 17,
'minItems' => 1,
'title' => '',
'example' => '',
],
],
'required' => true,
'title' => '',
'example' => '',
],
],
[
'name' => 'MixLayoutParams',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The updated layout parameters. Leave this parameter empty in single-stream recording mode. This parameter is required in stream mixing recording mode when the transcoding output is not audio-only.',
'type' => 'object',
'properties' => [
'MixBackground' => [
'description' => 'The global background image for stream mixing.',
'type' => 'object',
'properties' => [
'RenderMode' => [
'description' => 'The display mode for the output. Valid values:'."\n"
.'- 0: crop. (Default)'."\n"
.'- 1: scale and display with black borders.',
'enumValueTitles' => ['crop.', 'scale and display with black borders.'],
'type' => 'integer',
'format' => 'int32',
'default' => '0',
'enum' => ['0', '1'],
'required' => false,
'example' => '0',
'title' => '',
],
'Url' => ['description' => 'The URL of the background image. The maximum length is 2048 characters.', 'type' => 'string', 'maxLength' => 2048, 'required' => false, 'example' => 'https://xxxx.com/photos/my-test-picture.png'."\n", 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'UserPanes' => [
'description' => 'The window layout information of the subscribed users. Only UserIds with layout information configured are placed in the output. This parameter is required in stream mixing mode when recording non-audio-only files.',
'type' => 'array',
'items' => [
'description' => 'The window configuration in the output.',
'type' => 'object',
'properties' => [
'UserId' => ['description' => 'The UserId corresponding to this window.'."\n"
.'- If UserId is not specified, windows are filled in the order in which subscribed users join the channel.'."\n"
.'- The combination of UserId and SourceType specified here must be included in SubscribeUserIdList.'."\n"
.'- Audio-only streams cannot be added to the layout.', 'type' => 'string', 'required' => false, 'example' => 'userA', 'title' => ''],
'SourceType' => [
'description' => 'The video input stream type of the UserId. This parameter is invalid if UserId is not specified. Valid values:'."\n"
.'- 0: camera. (Default)'."\n"
.'- 1: screen sharing.'."\n"
."\n"
.'The combination of UserId and SourceType specified here must be included in SubscribeUserIdList.',
'enumValueTitles' => ['camera.', 'screen sharing.'],
'type' => 'integer',
'format' => 'int32',
'default' => '0',
'enum' => ['0', '1'],
'required' => false,
'example' => '0',
'title' => '',
],
'Height' => ['description' => 'The pane height as a normalized percentage. The value must be in the range of [0, 1]. (Default: 0)', 'type' => 'string', 'default' => '0', 'required' => false, 'example' => '0.5', 'title' => ''],
'Width' => ['description' => 'The pane width as a normalized percentage. The value must be in the range of [0, 1]. (Default: 0)', 'type' => 'string', 'default' => '0', 'required' => false, 'example' => '0.5', 'title' => ''],
'X' => ['description' => 'The X coordinate as a normalized percentage. The value must be in the range of [0, 1]. (Default: 0)', 'type' => 'string', 'default' => '0', 'required' => false, 'example' => '0', 'title' => ''],
'Y' => ['description' => 'The Y coordinate as a normalized percentage. The value must be in the range of [0, 1]. (Default: 0)', 'type' => 'string', 'default' => '0', 'required' => false, 'example' => '0', 'title' => ''],
'ZOrder' => ['description' => 'The stacking order. 0 is the bottom layer, layer 1 is above layer 0, and so on. (Default: 0)', 'type' => 'integer', 'format' => 'int32', 'default' => '0', 'required' => false, 'example' => '0', 'title' => ''],
'SubBackground' => [
'description' => 'The sub-pane background image. When a user turns off the camera, has not started stream ingest after joining, or leaves the channel midway, the corresponding image is displayed at the layout position.',
'type' => 'object',
'properties' => [
'RenderMode' => [
'description' => 'The display mode for the sub-pane output. Valid values:'."\n"
.'- 0: crop. (Default)'."\n"
.'- 1: scale and display with black borders.',
'enumValueTitles' => ['crop.', 'scale and display with black borders.'],
'type' => 'integer',
'format' => 'int32',
'default' => '0',
'enum' => ['0', '1'],
'required' => false,
'example' => '0',
'title' => '',
],
'Url' => ['description' => 'The URL of the background image. The maximum length is 2048 characters.', 'type' => 'string', 'maxLength' => 2048, 'required' => false, 'example' => 'https://xxxx.com/photos/my-test-pane-picture.png'."\n", 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'title' => '',
'example' => '',
],
],
'required' => false,
'title' => '',
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '******58-5876-****-83CA-B56278******'."\n"],
'TaskId' => ['description' => 'The task ID.', 'type' => 'string', 'example' => '******73-8501-****-8ac1-72295a******'."\n", 'title' => ''],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'NotFound.Task', 'errorMessage' => '%s, please check the TaskId.', 'description' => 'The parameter TaskId does not exist.'],
['errorCode' => 'InvalidParameter.TaskId', 'errorMessage' => '%s, please check the TaskId.', 'description' => 'The specified task must be in the running or recovering state.'],
['errorCode' => 'InvalidParameter.SubscribeParams.SubscribeUserIdList', 'errorMessage' => '%s, please check the subscribeUserIdList of subscribeParams.', 'description' => 'The parameter SubscribeUserIdList is invalid, please check.'],
['errorCode' => 'InvalidParameter.MixLayoutParams.UserPanes', 'errorMessage' => '%s, please check the userPanes of mixLayoutParams.', 'description' => 'The parameter UserPanes has invalid fields, please check.'],
['errorCode' => 'InvalidParameter.MixTranscodeParams', 'errorMessage' => '%s, please check the transcodeParams.', 'description' => 'The parameter MixTranscodeParams has invalid fields, please check.'],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => 'Missing parameter'],
],
403 => [
['errorCode' => 'InvalidParameter.UserId', 'errorMessage' => '%s, please check the UserId.', 'description' => 'UserId is invalid, please check.'],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"******58-5876-****-83CA-B56278******\\\\n\\",\\n \\"TaskId\\": \\"******73-8501-****-8ac1-72295a******\\\\n\\"\\n}","type":"json"}]',
'title' => 'Update an RTC cloud recording task',
'description' => 'Single-stream recording supports updating subscription parameters. Stream mixing recording supports updating only the subscribed user streams.'."\n"
.'## QPS limit'."\n"
.'The single-user QPS limit for this operation is 50 calls per second. If this limit is exceeded, the API call is throttled, which may affect your business. Call this operation as appropriate.',
'requestParamsDescription' => '- You can subscribe to both the camera and screen sharing streams of the same UserId at the same time. In single-stream recording mode, if you want to subscribe to both the camera and screen sharing streams of the same UserId, FileNamePattern and SliceNamePattern must include the SourceType variable to prevent recording files from overwriting each other.'."\n"
."\n"
.'- In single-stream recording mode, subscribing to a video-only stream of a specific UserId is not supported. That is, in single-stream mode, the value of UserInfo.StreamType cannot be set to 2.'."\n"
."\n"
.'- If you want to record only the screen sharing stream of a UserId without audio, either subscribe to the video-only stream of the UserId and set SourceType to 1 (not supported in single-stream recording mode), or subscribe to the original stream of the UserId and push only the screen sharing stream without audio or with audio muted during stream ingest. If you want to record both the screen sharing stream and audio stream of a UserId, either subscribe to the original stream of the UserId and push only the screen sharing stream along with the audio stream during stream ingest, or subscribe to the video-only stream of the UserId and set SourceType to 1 (not supported in single-stream recording mode) while also subscribing to the audio-only stream of the UserId.'."\n"
."\n"
.'- In single-stream recording mode, if RecordParams.StreamType is audio-only (value 1), SubscribeParams must not contain any video-only subscriptions (value 2). If RecordParams.StreamType is video-only (value 2), SubscribeParams must not contain any audio-only subscriptions (value 1).'."\n"
."\n"
.'- In stream mixing recording mode, if RecordParams.StreamType is audio-only (value 1), not all UserIds in SubscribeParams can be subscribed as video-only (value 2). If RecordParams.StreamType is video-only (value 2), not all UserIds in SubscribeParams can be subscribed as audio-only (value 1).',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateRtcCloudRecording'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateRtcCloudRecording',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'translator' => 'machine',
],
'UpdateRtcMPUEventSub' => [
'summary' => 'Updates a subscription to mixed-stream relay events.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '219223',
'abilityTreeNodes' => ['FEATUREliveK6LRQR'],
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the application.'."\n"
."\n"
.'> The ID can be up to 64 characters in length and can contain letters, digits, underscores (\\_), and hyphens (-).', 'type' => 'string', 'required' => true, 'example' => 'yourAppId', 'title' => ''],
],
[
'name' => 'ChannelIds',
'in' => 'query',
'schema' => ['description' => 'The ID of the channel to which you want to send mixed-stream relay event callbacks. Separate multiple channel IDs with commas (,).'."\n"
."\n"
.'>'."\n"
."\n"
.'- If you leave this parameter empty, you are subscribed to all mixed-stream relay events submitted in the application.'."\n"
."\n"
.'- You cannot specify duplicate channel IDs. You can specify up to 20 channel IDs in each call.'."\n"
."\n"
.'- The ID can be up to 64 characters in length and contain letters, digits, underscores (\\_), and hyphens (-).', 'type' => 'string', 'required' => false, 'example' => 'yourChannelIds', 'title' => ''],
],
[
'name' => 'CallbackUrl',
'in' => 'query',
'schema' => ['description' => 'The callback URL.'."\n"
."\n"
.'> You can use headers such as HTTP and HTTPS in callback URLs. The URL can be up to 2,083 characters and contain letters, digits, and the following special characters: - \\_ ? % = # . / +', 'type' => 'string', 'required' => false, 'example' => 'http://****.com/callback', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParam', 'errorMessage' => '%s.', 'description' => 'Parameter verification failed'],
['errorCode' => 'InvalidAppId', 'errorMessage' => '%s, please check and try again later.', 'description' => 'AppId is invalid, please check and try again.'],
['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Parameter is missing, please check and try again.'],
],
403 => [
['errorCode' => 'OperationDenied', 'errorMessage' => 'Your account has not enabled the Live service', 'description' => ''],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'InternalError', 'description' => ''],
],
],
'title' => 'UpdateRtcMPUEventSub',
'description' => '- You can call this operation to update a subscription to mixed-stream relay events. You can modify parameters such as the callback URL and channel IDs.'."\n"
."\n"
.'- Before you call this operation, make sure that you have called the CreateRtcMPUEventSub operation to create the subscription.'."\n"
."\n"
.'## [](#qps-)QPS limit'."\n"
."\n"
.'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.',
'changeSet' => [
['createdAt' => '2024-07-04T06:14:36.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateRtcMPUEventSub'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateRtcMPUEventSub',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","type":"json"}]',
],
'UpdateRtsLiveStreamTranscode' => [
'summary' => 'Updates the configuration of a custom Real-time Streaming (RTS) transcoding template.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREliveHVN9B2'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'Domain',
'in' => 'query',
'schema' => ['description' => 'The streaming domain. This parameter cannot be modified.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'App',
'in' => 'query',
'schema' => ['description' => 'The AppName of the live stream. This parameter cannot be modified.', 'type' => 'string', 'required' => true, 'example' => 'aliyun-test', 'title' => ''],
],
[
'name' => 'Template',
'in' => 'query',
'schema' => ['description' => 'The name of the custom transcoding template. This parameter cannot be modified.', 'type' => 'string', 'required' => true, 'example' => 'ld', 'title' => ''],
],
[
'name' => 'TemplateType',
'in' => 'query',
'schema' => ['description' => 'The type of the custom transcoding template. This parameter cannot be modified.', 'type' => 'string', 'required' => true, 'example' => 'h264', 'title' => ''],
],
[
'name' => 'Height',
'in' => 'query',
'schema' => ['description' => 'Output video height in pixels.'."\n"
."\n"
.'Requirements:'."\n"
."\n"
.'- Height ≥ 100'."\n"
."\n"
.'- max(Height, Width) ≤ 2560'."\n"
."\n"
.'- min(Height, Width) ≤ 1440'."\n"
."\n"
.'> * Required if you set TemplateType to h264, h264-nbhd, or h264-origin.'."\n"
.'>'."\n"
.'> * For h264-origin templates, the resolution can be up to 4K to retain the information of the source stream.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1280', 'title' => ''],
],
[
'name' => 'Width',
'in' => 'query',
'schema' => ['description' => 'Output video width in pixels.'."\n"
."\n"
.'Requirements:'."\n"
."\n"
.'- Width ≥ 100'."\n"
."\n"
.'- max(Height, Width) ≤ 2560'."\n"
."\n"
.'- min(Height, Width) ≤ 1440'."\n"
."\n"
.'> Required if you set TemplateType to h264, h264-nbhd, or h264-origin.'."\n"
."\n"
.'For h264-origin templates, the resolution can be up to 4K to retain the information of the source stream.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '720', 'title' => ''],
],
[
'name' => 'FPS',
'in' => 'query',
'schema' => ['description' => 'The frame rate of the output video. Unit: frames per second (FPS). Valid values: 1 to **60**.'."\n"
."\n"
.'> Required if you set TemplateType to h264, h264-nbhd, or h264-origin.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '30', 'title' => ''],
],
[
'name' => 'VideoBitrate',
'in' => 'query',
'schema' => ['description' => 'The output video bitrate. Unit: kbps. Valid values: 1 to **6000**.'."\n"
."\n"
.'> - Required if you set TemplateType to h264, h264-nbhd, or h264-origin.'."\n"
.'>'."\n"
.'> - The system tries to transcode the video at the specified bitrate. However, the actual bitrate may not be the same as the specified value, especially when the specified value is too high or too low.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2000', 'title' => ''],
],
[
'name' => 'AudioBitrate',
'in' => 'query',
'schema' => ['description' => 'The output audio bitrate. Unit: kbps. Valid values: 1 to **1000**.'."\n"
."\n"
.'> Required if you set TemplateType to audio.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '128', 'title' => ''],
],
[
'name' => 'Gop',
'in' => 'query',
'schema' => ['description' => 'The Group of Pictures (GOP) size, which specifies the keyframe interval. Unit: seconds. Valid values: **1** to **3**.', 'type' => 'string', 'required' => false, 'example' => '2', 'title' => ''],
],
[
'name' => 'DeleteBframes',
'in' => 'query',
'schema' => ['description' => 'Controls whether to remove B-frames from the transcoded output video. Valid values:'."\n"
."\n"
.'- **true**: The transcoded video has no B-frames.'."\n"
."\n"
.'- **false**: The transcoded video contains B-frames. This is the default value.'."\n"
."\n"
.'> Required if you set TemplateType to h264, h264-nbhd, or h264-origin.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
],
[
'name' => 'Opus',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to use the Opus codec for audio transcoding. This is mainly for compatibility with native WebRTC. Valid values:'."\n"
."\n"
.'- **true**: Transcodes the audio to the Opus format.'."\n"
."\n"
.'- **false**: Does not use the Opus format for transcoding. This is the default value.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''],
],
[
'name' => 'Profile',
'in' => 'query',
'schema' => ['description' => 'The video codec profile. A larger value indicates better video quality and higher resource consumption for encoding and decoding. Valid values:'."\n"
."\n"
.'- **1**: baseline (for mobile devices).'."\n"
."\n"
.'- **2**: main (for SD devices).'."\n"
."\n"
.'- **3**: high (for HD devices).', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2', 'title' => ''],
],
[
'name' => 'AudioProfile',
'in' => 'query',
'schema' => ['description' => 'The audio codec profile. Valid values:'."\n"
."\n"
.'- aac\\_low'."\n"
."\n"
.'- aac\\_he'."\n"
."\n"
.'- aac\\_he\\_v2'."\n"
."\n"
.'- aac\\_ld', 'type' => 'string', 'required' => false, 'example' => 'aac_low', 'title' => ''],
],
[
'name' => 'AudioCodec',
'in' => 'query',
'schema' => ['description' => 'The audio codec. Valid values:'."\n"
."\n"
.'- aac'."\n"
."\n"
.'- mp3'."\n"
."\n"
.'> To use the Opus codec, set the Opus parameter to true.', 'type' => 'string', 'required' => false, 'example' => 'aac', 'title' => ''],
],
[
'name' => 'AudioRate',
'in' => 'query',
'schema' => ['description' => 'The audio sample rate. Valid values: 22050, 32000, 44100, 48000, 96000. Recommended: 44100. Unit: Hz.'."\n"
."\n"
.'> If AudioProfile is set to aac\\_ld, the sample rate cannot exceed 44100.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '44100', 'title' => ''],
],
[
'name' => 'AudioChannelNum',
'in' => 'query',
'schema' => ['description' => 'The number of audio channels. Valid values:'."\n"
."\n"
.'- **1**: mono.'."\n"
."\n"
.'- **2**: stereo.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2', 'title' => ''],
],
[
'name' => 'Lazy',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to enable on-demand transcoding. Valid values:'."\n"
."\n"
.'- **yes**: Transcoding only starts when the first viewer requests this transcoded stream.'."\n"
."\n"
.'- **no**: Transcoding starts immediately after the stream is published.', 'type' => 'string', 'required' => false, 'example' => 'no', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The request ID.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameters', 'errorMessage' => '%s Please check and try again later.', 'description' => 'Exception parameter exists, please check and try again.'],
['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => '%s Please check and try again later.', 'description' => 'Configuration already exists, please check and try again.'],
['errorCode' => 'TemplateLimit', 'errorMessage' => '%s Please check and try again later.', 'description' => 'The number of templates reached the upper limit.'],
],
],
'title' => 'UpdateRtsLiveStreamTranscode',
'description' => 'This API operation supports only the following types of custom transcoding templates: h264, h264-nbhd, h264-origin, and audio.'."\n"
."\n"
.'## QPS limit'."\n"
."\n"
.'You can call this operation up to 10 times per second per account.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateRtsLiveStreamTranscode',
'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"}]',
],
'VerifyLiveDomainOwner' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '107290',
'abilityTreeNodes' => ['FEATUREliveG4SX14'],
],
'parameters' => [
[
'name' => 'RegionId',
'in' => 'query',
'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'default' => 'cn-shanghai', 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The domain name to verify. Only one domain name can be verified at a time.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'VerifyType',
'in' => 'query',
'schema' => ['description' => 'The verification method. Valid values:'."\n"
."\n"
.'- dnsCheck: DNS record verification'."\n"
."\n"
.'- fileCheck: file verification', 'type' => 'string', 'required' => true, 'example' => 'dnsCheck', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'Content' => ['description' => 'The verification information.', 'type' => 'string', 'example' => 'verify_dffeb6610035dcb77b413******', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '1BA6D7CE-55F1-5926-8764-F8663473AD0D', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'DomainOwnerVerifyFail', 'errorMessage' => 'Owner verification of the root domain failed.', 'description' => ''],
],
],
'title' => 'VerifyLiveDomainOwner',
'summary' => 'Verifies the ownership of a domain name.',
'description' => '### QPS limits'."\n"
."\n"
.'You can call this operation up to 100 times per second per account. Requests that exceed this limit are dropped and you may experience service interruptions.',
'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' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Content\\": \\"verify_dffeb6610035dcb77b413******\\",\\n \\"RequestId\\": \\"1BA6D7CE-55F1-5926-8764-F8663473AD0D\\"\\n}","type":"json"}]',
],
],
'endpoints' => [
['regionId' => 'cn-qingdao', 'regionName' => 'China (Qingdao)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'live.aliyuncs.com', 'endpoint' => 'live.aliyuncs.com', 'vpc' => ''],
['regionId' => 'cn-beijing', 'regionName' => 'China (Beijing)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'live.aliyuncs.com', 'endpoint' => 'live.aliyuncs.com', 'vpc' => ''],
['regionId' => 'cn-hangzhou', 'regionName' => 'China (Hangzhou)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'live.aliyuncs.com', 'endpoint' => 'live.aliyuncs.com', 'vpc' => ''],
['regionId' => 'cn-shenzhen', 'regionName' => 'China (Shenzhen)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'live.aliyuncs.com', 'endpoint' => 'live.aliyuncs.com', 'vpc' => ''],
['regionId' => 'ap-northeast-1', 'regionName' => 'Japan (Tokyo)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'live.aliyuncs.com', 'endpoint' => 'live.aliyuncs.com', 'vpc' => ''],
['regionId' => 'ap-southeast-5', 'regionName' => 'Indonesia (Jakarta)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'live.aliyuncs.com', 'endpoint' => 'live.aliyuncs.com', 'vpc' => ''],
['regionId' => 'cn-shanghai', 'regionName' => 'China (Shanghai)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'live.aliyuncs.com', 'endpoint' => 'live.aliyuncs.com', 'vpc' => 'live-vpc.cn-shanghai.aliyuncs.com'],
['regionId' => 'ap-southeast-1', 'regionName' => 'Singapore', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', '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' => 'US (Virginia)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'live.aliyuncs.com', 'endpoint' => 'live.aliyuncs.com', 'vpc' => 'live-vpc.us-east-1.aliyuncs.com'],
['regionId' => 'eu-central-1', 'regionName' => 'Germany (Frankfurt)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'live.eu-central-1.aliyuncs.com', 'endpoint' => 'live.eu-central-1.aliyuncs.com', 'vpc' => ''],
['regionId' => 'me-central-1', 'regionName' => 'Saudi Arabia (Riyadh)', 'areaId' => 'middleEast', 'areaName' => 'Middle East', 'public' => 'live.aliyuncs.com', 'endpoint' => 'live.aliyuncs.com', 'vpc' => 'live-vpc.me-central-1.aliyuncs.com'],
['regionId' => 'ap-south-1', 'regionName' => 'India (Mumbai) Closed', 'areaId' => 'middleEast', 'areaName' => 'Middle East', 'public' => 'live.aliyuncs.com', 'endpoint' => 'live.aliyuncs.com', 'vpc' => ''],
['regionId' => 'cn-north-2-gov-1', 'regionName' => 'Beijing Government Cloud', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', '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' => 'The CheckUrl you provided is malformed.'],
['code' => 'AppInfoNotExist', 'message' => 'The app does not exist.', 'http_code' => 404, 'description' => 'The app does not exist.'],
['code' => 'BillTypeNotFound', 'message' => 'User bill type not found or is not monthly bill type.', 'http_code' => 400, 'description' => 'The bill type does not exist, or your account does not support monthly bills.'],
['code' => 'BusinessExist', 'message' => 'Business exist, do not repeated submission', 'http_code' => 400, 'description' => 'Do not submit the same request multiple times.'],
['code' => 'CasterNumberExceed', 'message' => 'The number casters is exceeded', 'http_code' => 400, 'description' => 'The number of production studios exceeds the limit.'],
['code' => 'Certificate.Duplicated', 'message' => 'The certificate name is duplicated', 'http_code' => 400, 'description' => 'Duplicate certificate names.'],
['code' => 'Certificate.MissMatch', 'message' => 'The certificate is not match the private key', 'http_code' => 400, 'description' => 'The certificate does not match the private key.'],
['code' => 'CheckAccountFailed', 'message' => 'Failed to check account, %s.', 'http_code' => 400, 'description' => 'Failed to check account.'],
['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' => 'Failed to add the configuration. Try again later.'],
['code' => 'CodeAppNameIsIllegal', 'message' => 'Code app name is not legal', 'http_code' => 400, 'description' => 'The application name is invalid.'],
['code' => 'CodeConfigAlreadyExists', 'message' => 'Code Config Already Exists', 'http_code' => 400, 'description' => 'The configuration already exists. Check the configuration and try again.'],
['code' => 'CodeConfigNotFound', 'message' => 'No config found', 'http_code' => 400, 'description' => 'The configuration does not exist. Check the configuration and try again.'],
['code' => 'CodeGetMainPlaybackDomainError', 'message' => 'Failed to obtain the main playback domain name.', 'http_code' => 400, 'description' => 'Failed to get primary playback domain name.'],
['code' => 'CodeGetPushbackDomainError', 'message' => 'Unable to get the push domain name, please check the domain name mapping configuration.', 'http_code' => 400, 'description' => 'Unable to get the push domain name, please check the domain name mapping configuration.'],
['code' => 'CodeGroupCountIsOutOfRange', 'message' => 'Code Group Count Is Out Of Range', 'http_code' => 400, 'description' => 'The number of template groups has exceeded the limit. Check the configuration and try again.'],
['code' => 'CodeGroupIdIsIllegal', 'message' => 'Code Group Id Is Illegal', 'http_code' => 400, 'description' => 'The configuration group ID is invalid.'],
['code' => 'CodeInvalidAliUid', 'message' => 'This aliuid does not have a live domain name.', 'http_code' => 400, 'description' => 'This aluid does not have a live domain name.'],
['code' => 'CodeInvalidConfig', 'message' => 'Invalid database configuration.', 'http_code' => 400, 'description' => 'Invalid database configuration.'],
['code' => 'CodeIsAvFormatIllegal', 'message' => 'Code Is Av Format Illegal', 'http_code' => 400, 'description' => 'The AV format is invalid.'],
['code' => 'CodeIsLazyIllegal', 'message' => 'Code Is Lazy Illegal', 'http_code' => 400, 'description' => 'The parameter for the lazy mode is invalid.'],
['code' => 'CodeIsTimeAlignIllegal', 'message' => 'Code Is Time Align Illegal', 'http_code' => 400, 'description' => 'Time for the parameter is invalid.'],
['code' => 'CodeMultiRateBandWidthIllegal', 'message' => 'BandWidth is illegal, must be composed with digit.', 'http_code' => 400, 'description' => 'BandWidth is illegal, must be composed with digit.'],
['code' => 'CodeMultiRateConfigIsEmpty', 'message' => 'CodeMultiRateConfig is Empty', 'http_code' => 400, 'description' => 'Empty multi-bitrate configuration.'],
['code' => 'CodeNotEnoughResource', 'message' => 'Exceeded configuration limits or insufficient resources.', 'http_code' => 400, 'description' => 'Exceeded configuration limits or insufficient resources'],
['code' => 'CodeNotPullDomain', 'message' => 'The domain name is not a pull domain name.', 'http_code' => 400, 'description' => 'The domain name is not a pull domain name.'],
['code' => 'CodeNotPushDomain', 'message' => 'The domain name is not a push domain name.', 'http_code' => 400, 'description' => 'The domain name is not a push domain name.'],
['code' => 'CodeTaskHasStarted', 'message' => 'The task has already started.', 'http_code' => 400, 'description' => 'The task has already started and cannot be updated.'],
['code' => 'CodeTaskHasStopped', 'message' => 'The task has been stopped.', 'http_code' => 400, 'description' => 'The task has been stopped.'],
['code' => 'CodeTaskNotExist', 'message' => 'Task does not exist.', 'http_code' => 400, 'description' => 'The task does not exist.'],
['code' => 'CodeTaskNotStarted', 'message' => 'Task not started, cannot operate.', 'http_code' => 400, 'description' => 'Task not started, cannot operate.'],
['code' => 'CommomLiveRcordConfigExisted', 'message' => 'Common live record config has already exist.', 'http_code' => 400, 'description' => 'Common live record config has already exist.'],
['code' => 'ComponentNumberExceed', 'message' => 'Number of text/image exceeded norms.', 'http_code' => 400, 'description' => 'The number of text and picture components exceeds the limit.'],
['code' => 'ConfigAlreadyExists', 'message' => 'Config duplicate', 'http_code' => null, 'description' => 'The configuration already exists. Check the configuration and try again.'],
['code' => 'ConfigAlreadyExists', 'message' => 'Config has already exist.', 'http_code' => null, 'description' => 'The configuration already exists. Check the configuration and try again.'],
['code' => 'ConfigAlreadyExists', 'message' => 'config has already exists', 'http_code' => 400, 'description' => 'The configuration already exists.'],
['code' => 'ConfigConflicts', 'message' => 'Configuration already exists.', 'http_code' => 409, 'description' => 'Configuration already exists.'],
['code' => 'ConfigExisted', 'message' => 'config is existed', 'http_code' => 400, 'description' => 'The configuration already exists. Check the configuration and try again.'],
['code' => 'ConfigurationConflicts', 'message' => 'The staging environment has a configuration in effect and cannot modify the production environment configuration.', 'http_code' => 400, 'description' => 'The staging environment has a configuration in effect and cannot modify the production environment configuration.'],
['code' => 'CreateOrderFailed', 'message' => 'Failed to create order, %s.', 'http_code' => 400, 'description' => 'Failed to create order,%s.'],
['code' => 'DataNotFound', 'message' => 'Data does not exist or has been deleted.', 'http_code' => 404, 'description' => 'Data does not exist or has been deleted'],
['code' => 'Domain.BeianInvalid', 'message' => 'not allowed to do this operation because the domain registration record invalid in China main land', 'http_code' => 400, 'description' => 'This operation is not allowed because the domain name is registered in the Chinese mainland.'],
['code' => 'DomainAlreadyExist', 'message' => 'The specified domain already exists.', 'http_code' => 400, 'description' => 'The domain name already exists.'],
['code' => 'DomainAlreadyExist', 'message' => 'Domain has already existed', 'http_code' => 400, 'description' => 'The domain name already exists.'],
['code' => 'DomainInProtectedMode', 'message' => 'This domain is in the protected mode. if you want to do this operation, please contact us.', 'http_code' => 400, 'description' => 'The domain name is in protected mode. If you want to perform this operation, please contact us.'],
['code' => 'DomainNotRegistration', 'message' => 'The Domain name is not registered', 'http_code' => 400, 'description' => 'The domain name is not registered.'],
['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' => 'The domain name you added does not have an ICP number. You cannot access live centers or accelerated regions in the Chinese mainland.'],
['code' => 'DomainNumberTooLarge', 'message' => 'The domain number is too large.', 'http_code' => 400, 'description' => 'Too many domains'],
['code' => 'DomainOverLimit', 'message' => 'The Number of Domain is over the limit', 'http_code' => 400, 'description' => 'The number of domain names exceeds the upper limit.'],
['code' => 'DomainOwnerVerifyFail', 'message' => 'Owner verification of the root domain failed', 'http_code' => 400, 'description' => 'Failed to verify the ownership of the domain name.'],
['code' => 'DomainReserved', 'message' => 'The root domain of your domain is reserved by another account.', 'http_code' => 400, 'description' => 'The root domain is added to other accounts.'],
['code' => 'Duration.Exceed', 'message' => 'Duration between StartTime and EndTime is too long', 'http_code' => 400, 'description' => 'The interval between the start time and the end time is too long.'],
['code' => 'EntityNotExist.ResourceGroup', 'message' => 'The resource group does not exist.', 'http_code' => 403, 'description' => 'The resource group does not exist.'],
['code' => 'ErrorAckTimeout', 'message' => '%s.', 'http_code' => 408, 'description' => 'the ACK received timeout, please confirm the client version and try again.'],
['code' => 'ErrorInvalidAppName', 'message' => '%s.', 'http_code' => 400, 'description' => 'The AppName is invalid, please check and try again.'],
['code' => 'ErrorInvalidAuditUrl', 'message' => '%s.', 'http_code' => 400, 'description' => 'The AuditUrl is invalid, please check and try again.'],
['code' => 'ErrorInvalidCallBackUrl', 'message' => '%s.', 'http_code' => 400, 'description' => 'The CallBackURL is invalid, please check and try again.'],
['code' => 'ErrorInvalidEventCallbackUrl', 'message' => '%s.', 'http_code' => 400, 'description' => 'The EventCallbackUrl is invalid, please check and try again.'],
['code' => 'ErrorTooManyApps', 'message' => '%s.', 'http_code' => 400, 'description' => 'Under each account, up to 300 apps are allowed to be created at the same time.'],
['code' => 'ErrorTooManyGroups', 'message' => '%s.', 'http_code' => 400, 'description' => 'For each AppId, a maximum of 5000 groups are allowed to be created at the same time.'],
['code' => 'ExceedLimit', 'message' => 'The number of domains has exceeded the limit.', 'http_code' => 400, 'description' => 'The number of domains has exceeded the limit.'],
['code' => 'ExtensiveAndSpecificDomainConflict', 'message' => 'Extensive domain and corresponding specific domain are mutually exclusive.', 'http_code' => 400, 'description' => 'Extensive domain and corresponding specific domain are mutually exclusive.'],
['code' => 'Forbidden', 'message' => 'User not authorized to operate on the specified resource.', 'http_code' => 403, 'description' => 'You do not have the required permissions. Check and try again.'],
['code' => 'Forbidden.AccessDenied', 'message' => 'Request was denied due to isolation policy.', 'http_code' => 403, 'description' => 'Request was denied due to isolation policy.'],
['code' => 'IllegalOperation', 'message' => 'Illegal domain operate is not permitted.', 'http_code' => 400, 'description' => 'The operation is invalid. Check the request and try again.'],
['code' => 'IllegalOperationDomain', 'message' => 'You are not authorized to operate the domain', 'http_code' => 400, 'description' => 'You do not have the permission to operate on this domain name.'],
['code' => 'IncorrectCasterStatus', 'message' => 'Caster has been started.', 'http_code' => 400, 'description' => 'Caster has been started.'],
['code' => 'IncorrectCasterStatus.EnableChannel', 'message' => 'Caster should be stopped when enable channel for the first time.', 'http_code' => 400, 'description' => 'Caster should be stopped when enable channel for the first time.'],
['code' => 'IncorrectCasterStatus.Inuse', 'message' => 'caster is in use', 'http_code' => 400, 'description' => 'The production studio is active.'],
['code' => 'IncorrectChannel.Disable', 'message' => 'Channel is disable.', 'http_code' => 400, 'description' => 'The Channel is in a non-settable state.'],
['code' => 'IncorrectSceneStatus', 'message' => 'The status of the scene is invalid', 'http_code' => 400, 'description' => 'The scene status is not supported. Check the scene status and try again.'],
['code' => 'IncorrectSceneStatus.ConfigError', 'message' => 'Scene status is incorrect', 'http_code' => 400, 'description' => 'Incorrect scene status.'],
['code' => 'IncorrectSceneStatus.Idle', 'message' => 'The status of the scene is invalid', 'http_code' => 400, 'description' => 'Incorrect scene status: Idle.'],
['code' => 'IncorrectSubtitleStatus.%s', 'message' => '%s.', 'http_code' => 400, 'description' => 'Abnormal subtitle template status'],
['code' => 'IndexOutOfBound', 'message' => 'The required index is out of bound.', 'http_code' => 400, 'description' => 'The required index is out of bound, please make sure your index is within the range'],
['code' => 'InputInvalid', 'message' => '%s.', 'http_code' => 400, 'description' => 'Illegal input parameters'],
['code' => 'InternalError', 'message' => 'The request processing has failed due to some unknown error.', 'http_code' => null, 'description' => 'An internal error occurred. Try again later.'],
['code' => 'InternalError', 'message' => 'The request processing has failed due to some unknown error', 'http_code' => null, 'description' => 'An internal error occurred. Try again later.'],
['code' => 'InternalError', 'message' => '%s.', 'http_code' => 500, 'description' => 'error on the live liveapi server.'],
['code' => 'InvaildParameter', 'message' => 'Invalid Parameter', 'http_code' => 400, 'description' => 'Invalid request parameter.'],
['code' => 'InvaildParameter', 'message' => 'The parameter you provided is invalid,Please check whether the input parameters are complete and correct.', 'http_code' => 400, 'description' => 'The parameter that you specify is invalid. Check whether the parameter is complete and correct.'],
['code' => 'InvalidAlignment', 'message' => 'Specified parameter Alignment is not valid.', 'http_code' => 400, 'description' => 'The specified parameter alignment format is invalid. Verify that the parameter alignment format is correct.'],
['code' => 'InvalidAnimate', 'message' => 'Specified parameter Animate is not valid.', 'http_code' => 400, 'description' => 'Invalid animation. Check whether the animation parameter that you specified is correct.'],
['code' => 'InvalidAppName.Conflicted', 'message' => 'The AppName provided has probably configured template already in our records.', 'http_code' => 400, 'description' => 'A transcoding template has already been configured for the current AppName.'],
['code' => 'InvalidAppName.LengthTooLong', 'message' => 'The specified app name is too long.', 'http_code' => 400, 'description' => 'The length of AppName exceeds the limit. Specify a valid AppName.'],
['code' => 'InvalidAppName.Mismatch', 'message' => 'The AppName param must be passed.', 'http_code' => 400, 'description' => 'The AppName parameter does not match. Make sure that you specify the correct AppName.'],
['code' => 'InvalidAppName.TemplateExceed', 'message' => 'The AppName provided had maximum number of templates', 'http_code' => 400, 'description' => 'Templates in the AppName has exceeded the maximum number allowed. You cannot add any more templates.'],
['code' => 'InvalidAreaParameter', 'message' => 'The specified Area parameter is invalid.', 'http_code' => 400, 'description' => 'The specified Area parameter is invalid. Specify a correct region code.'],
['code' => 'InvalidArgName.ValueNotSupported', 'message' => 'Argument Name [%s] is not supported.', 'http_code' => 400, 'description' => 'Argument Name [%s] is not supported.'],
['code' => 'InvalidArgValue.Malformed', 'message' => 'Specified argument value is malformed.', 'http_code' => 400, 'description' => 'Specified argument value is malformed.'],
['code' => 'InvalidAutoComposeAndComposeVodTranscodeGroupId.Malformed', 'message' => 'Specified parameters "AutoCompose" and "ComposeVodTranscodeGroupId" are invalid.', 'http_code' => 400, 'description' => 'The "AutoCompose" and "ComposeVodTranscodeGroupId" parameters specified are invalid.'],
['code' => 'InvalidBorderColor', 'message' => 'Specified parameter BorderColor is not valid.', 'http_code' => 400, 'description' => 'The specified parameter is invalid. Verify that the parameter is correct.'],
['code' => 'InvalidBorderWidth', 'message' => 'Specified parameter BorderWidth is not valid.', 'http_code' => 400, 'description' => 'The specified parameter is invalid. Verify that the parameter is correct.'],
['code' => 'InvalidBucket.NotFound', 'message' => 'The bucket does not belong to you.', 'http_code' => 404, 'description' => 'the specified bucket does not belong to the current user.'],
['code' => 'InvalidCaster.ChannelDisableUnsupported', 'message' => 'Disable channel is unsupported when current status of channel is enable.', 'http_code' => 400, 'description' => 'Once the channelEnable is turned on, it cannot be turned off.'],
['code' => 'InvalidCaster.NotFound', 'message' => 'The caster does not exist.', 'http_code' => 404, 'description' => 'The caster does not exist.'],
['code' => 'InvalidColor', 'message' => 'Specified parameter Color is not valid.', 'http_code' => 400, 'description' => 'The specified parameter color is invalid. Verify that the parameter color is correct.'],
['code' => 'InvalidConfig.Changed', 'message' => 'The oss bucket info between StartTime and EndTime has changed.', 'http_code' => 400, 'description' => 'ossbucket start end time has changed.'],
['code' => 'InvalidConfig.NotFound', 'message' => 'The speicified config does not exist.', 'http_code' => null, 'description' => 'The UID is not configured in the database.'],
['code' => 'InvalidConfig.NotFound', 'message' => 'Config does not exist.', 'http_code' => null, 'description' => 'The UID is not configured in the database.'],
['code' => 'InvalidConfig.NotFound', 'message' => '%s.', 'http_code' => 400, 'description' => 'The uid database table is not configured.'],
['code' => 'InvalidCycleDuration.Malformed', 'message' => 'Specified CycleDuration Format is not valid.', 'http_code' => 400, 'description' => 'Invalid format of CycleDuration. Check whether the format of the CycleDuration parameter is correct.'],
['code' => 'InvalidDomain.NotFound', 'message' => 'The domain provided does not exist in our records.', 'http_code' => null, 'description' => 'The domain name is not found under the account. Check whether the domain name is valid.'],
['code' => 'InvalidDomain.NotPullDomain', 'message' => 'The parameter is not a pull field name. Please check your parameters.', 'http_code' => 400, 'description' => 'The parameter is not a pull watershed name. Please check your parameters.'],
['code' => 'InvalidDomain.NotPushDomain', 'message' => '%s.', 'http_code' => 400, 'description' => 'The parameter is not a push field name. Please check your parameters.'],
['code' => 'InvalidDomain.NotPushDomain', 'message' => 'The parameter is not a push field name. Please checkyour parameters.', 'http_code' => 400, 'description' => 'This parameter is not a push stream city name. Please check your parameters.'],
['code' => 'InvalidDomainName.Malformed', 'message' => 'Specified domain name is malformed.', 'http_code' => 400, 'description' => 'Specified domain name is malformed.'],
['code' => 'InvalidDomainName.NotFound', 'message' => 'DomainName is not found.', 'http_code' => 400, 'description' => 'The domain name could not be found.'],
['code' => 'InvalidDomainName.NotFound', 'message' => 'Failed to obtain the playdomain name.', 'http_code' => 400, 'description' => 'The current domain name is not associated with the push domain name. The dual-stream disaster recovery function is not supported.'],
['code' => 'InvalidEndTime.Malformed', 'message' => 'Specified EndTime is malformed.', 'http_code' => null, 'description' => 'The EndTime parameter is invalid. Check the request and try again.'],
['code' => 'InvalidEndTime.Malformed', 'message' => 'Specified parameter EndTime is not valid.', 'http_code' => null, 'description' => 'The EndTime parameter is invalid. Check the request and try again.'],
['code' => 'InvalidEndTime.Mismatch', 'message' => 'Specified end time does not math the specified start time.', 'http_code' => 400, 'description' => 'The end time does not match the start time. Make sure that the start and end times match.'],
['code' => 'InvalidFormat.Malformed', 'message' => 'Specified parameter Format is not valid.', 'http_code' => 400, 'description' => 'Invalid value of Format. Check whether the Format parameter that you specified is correct.'],
['code' => 'InvalidFunctionArgs.Malformed', 'message' => '%s, please check your params', 'http_code' => 400, 'description' => 'The parameter name is invalid.'],
['code' => 'InvalidFunctionName.ValueNotSupported', 'message' => 'FunctionName [%s] is not supported.', 'http_code' => 400, 'description' => 'The input function name is not supported.'],
['code' => 'InvalidHeightOrWidthNormalized', 'message' => 'HeightNormalized or WidthNormalized parameter is invalid.', 'http_code' => 400, 'description' => 'HeightNormalized or WidthNormalized parameter is invalid.'],
['code' => 'InvalidIdentity.ServiceDisabled', 'message' => 'The request identity was not allowed operated.', 'http_code' => null, 'description' => 'The InvalidParameter parameter is invalid. Verify that the InvalidParameter parameter is correct.'],
['code' => 'InvalidImage', 'message' => 'The ImageUrl provided can not be accessed.', 'http_code' => 400, 'description' => 'Invalid value of ImageUrl. Check whether the ImageUrl parameter that you specified is correct.'],
['code' => 'InvalidImage.Malformed', 'message' => 'The specified parameter ImageUrl is not valid.', 'http_code' => 400, 'description' => 'Invalid value of ImageUrl. Check whether the ImageUrl parameter that you specified is correct.'],
['code' => 'InvalidImage.TooLarge', 'message' => 'The image is too large.', 'http_code' => 400, 'description' => 'The image is too large. Try again later.'],
['code' => 'InvalidIntervalParameter', 'message' => 'The specified interval parameter is invalid.', 'http_code' => 400, 'description' => 'The specified interval parameter is invalid.'],
['code' => 'InvalidLocationParameter', 'message' => 'The specified location name parameter is invalid.', 'http_code' => 400, 'description' => 'The specified LocationNameEn parameter is invalid.'],
['code' => 'InvalidMixDomain.NotFound', 'message' => 'The mix domain provided does not exist in our records.', 'http_code' => null, 'description' => 'No stream mixing domain was found under the current account. Verify that the stream mixing domain is correct.'],
['code' => 'InvalidMixStream.NotPublish', 'message' => 'Specified mix stream is not publishing.', 'http_code' => 400, 'description' => 'No stream ingest was detected. Verify that the stream ingest is correct.'],
['code' => 'InvalidNormalizedX', 'message' => 'Specified parameter NormalizedX is not valid.', 'http_code' => 400, 'description' => 'Invalid value of NormalizedX. Check whether the NormalizedX parameter that you specified is correct.'],
['code' => 'InvalidNormalizedY', 'message' => 'Specified parameter NormalizedY is not valid.', 'http_code' => 400, 'description' => 'Invalid value of NormalizedX. Check whether the NormalizedX parameter that you specified is correct.'],
['code' => 'InvalidNotifyUrl.Malformed', 'message' => 'Specified parameter NotifyUrl is not valid.', 'http_code' => null, 'description' => 'The specified notifyurl parameter is invalid. Verify that the notifyurl parameter is correct.'],
['code' => 'InvalidNotifyUrl.Malformed', 'message' => 'Specified NotifyUrl is invalid.', 'http_code' => 400, 'description' => 'Invalid value of notifyurl. Check whether the notifyurl parameter that you specified is correct.'],
['code' => 'InvalidNotifyUrl.Unsafe', 'message' => 'Specified NotifyUrl is not safe.', 'http_code' => 400, 'description' => 'Invalid value of notifyurl. Check whether the notifyurl parameter that you specified is correct.'],
['code' => 'InvalidOssBucket.Malformed', 'message' => 'Specified OssBucket is malformed.', 'http_code' => 400, 'description' => 'Invalid value of OSSBucket. Check whether the OSSBucket parameter that you specified is correct.'],
['code' => 'InvalidOssBucket.Malformed', 'message' => 'Specified parameter OssBucket is not valid.', 'http_code' => 400, 'description' => 'The OSSBucket parameter is invalid. Verify that the OSS BUCKET parameter is correct.'],
['code' => 'InvalidOssBucket.NotFound', 'message' => 'The parameter OssBucket does not exist.', 'http_code' => null, 'description' => 'The OSSBucket parameter is invalid. Verify that the OSS BUCKET parameter is correct.'],
['code' => 'InvalidOssEndpoint.Malformed', 'message' => 'Specified OssObject is malformed.', 'http_code' => null, 'description' => 'The OssEndpoint is invalid. Check the value and try again.'],
['code' => 'InvalidOssEndpoint.Malformed', 'message' => 'Specified parameter OssEndpoint is not valid.', 'http_code' => null, 'description' => 'The OssEndpoint is invalid. Check the value and try again.'],
['code' => 'InvalidOssObject.Malformed', 'message' => 'Specified OssObject is malformed.', 'http_code' => null, 'description' => 'The OSSObject parameter is invalid. Verify that the OSSObject parameter is correct.'],
['code' => 'InvalidOssObjectPrefix.Malformed', 'message' => 'Specified parameter OssObjectPrefix is not valid.', 'http_code' => null, 'description' => 'The OSSObjectPrefix parameter is invalid. Verify that the OSSObjectPrefix parameter is correct.'],
['code' => 'InvalidOverwriteOssObject.Malformed', 'message' => 'Specified parameter OverwriteOssObject is not valid.', 'http_code' => 400, 'description' => 'The OverwriteOSSObject parameter is invalid. Verify that the OverwriteOSSObject parameter is correct.'],
['code' => 'InvalidOverwriteOssObjectOrSequenceOssObject.Malformed', 'message' => 'Specified paramters OverwriteOssObject or SequenceOssObject should have one.', 'http_code' => 400, 'description' => 'You can specify only one of the OverwriteOssObject and SequenceOssObject parameters.'],
['code' => 'InvalidPageNumber.ValueNotSupported', 'message' => 'The specified value of parameter PageNumber is not supported.', 'http_code' => 400, 'description' => 'The value of the specified PageNumber parameter is not supported.'],
['code' => 'InvalidPageToken', 'message' => 'The token of page is invalid.', 'http_code' => 400, 'description' => 'The specified paging token is incorrect. Specify the correct token returned by the last query and confirm that your request parameters are not modified.'],
['code' => 'InvalidParam', 'message' => 'The parameter is invalid.', 'http_code' => 400, 'description' => 'Invalid parameter.'],
['code' => 'InvalidParam', 'message' => 'Parameter invalid.', 'http_code' => 400, 'description' => 'Illegal input parameters'],
['code' => 'InvalidParam.CodeIllegalDuration', 'message' => '%s.', 'http_code' => 400, 'description' => 'The value of start time should be less than the value of end time .'],
['code' => 'InvalidParameter', 'message' => 'The parameter you provided is invalid,Please check whether the input parameters are complete and correct.', 'http_code' => 400, 'description' => 'The parameter that you specify is invalid. Check whether the parameter is complete and correct.'],
['code' => 'InvalidParameter', 'message' => 'The specified parameter is invalid.', 'http_code' => 400, 'description' => 'The parameter is invalid.'],
['code' => 'InvalidParameter', 'message' => '%s.', 'http_code' => 400, 'description' => 'Parameter error'],
['code' => 'InvalidParameter. MixTranscodeParams', 'message' => '%s, please check the transcodeParams.', 'http_code' => 400, 'description' => 'The parameter MixTranscodeParams has invalid fields, please check.'],
['code' => 'InvalidParameter.ChargeType', 'message' => 'Specified parameter ChargeType is invalid.', 'http_code' => 400, 'description' => 'The specified ChargeType parameter is invalid.'],
['code' => 'InvalidParameter.Malformed', 'message' => 'There are invalid parameters: %s.', 'http_code' => 400, 'description' => 'There are invalid parameters: %s.'],
['code' => 'InvalidParameter.MixLayoutParams.UserPanes', 'message' => '%s, please check the userPanes of mixLayoutParams.', 'http_code' => 400, 'description' => 'The parameter UserPanes has invalid fields, please check.'],
['code' => 'InvalidParameter.MixTranscodeParams', 'message' => '%s, please check the transcodeParams.', 'http_code' => 400, 'description' => 'The parameter MixTranscodeParams has invalid fields, please check.'],
['code' => 'InvalidParameter.NotifyUrl', 'message' => '%s, please check the notifyUrl.', 'http_code' => 400, 'description' => 'The parameter NotifyUrl format is invalid, please check.'],
['code' => 'InvalidParameter.StorageParams.FileInfo', 'message' => '%s, please check the fileInfo of storageParams.', 'http_code' => 400, 'description' => 'The parameter FileInfo has invalid fields, please check.'],
['code' => 'InvalidParameter.StorageParams.OSSParams', 'message' => '%s, please check the ossParams of storageParams.', 'http_code' => 400, 'description' => 'The parameter OSSParams has invalid fields, please check.'],
['code' => 'InvalidParameter.SubscribeParams.SubscribeUserIdList', 'message' => '%s, please check the subscribeUserIdList of subscribeParams.', 'http_code' => 400, 'description' => 'The parameter SubscribeUserIdList is invalid, please check.'],
['code' => 'InvalidParameter.SubscribeParams.UserInfos', 'message' => '%s, please check the userInfos of subscribeParams.', 'http_code' => 400, 'description' => 'The parameter UserInfos has invalid fields, please check.'],
['code' => 'InvalidParameter.TaskId', 'message' => '%s, please check the TaskId.', 'http_code' => 400, 'description' => 'The specified task must be in the running or recovering state.'],
['code' => 'InvalidParameter.UserId', 'message' => '%s, please check the UserId.', 'http_code' => 403, 'description' => 'UserId is invalid, please check.'],
['code' => 'InvalidParameterField', 'message' => 'The specified Field is invalid.', 'http_code' => 400, 'description' => 'The Field parameter is set to an invalid value.'],
['code' => 'InvalidParameters', 'message' => 'There are invalid parameters: %s.', 'http_code' => 400, 'description' => 'Invalid parameter:%s.'],
['code' => 'InvalidParameterType', 'message' => 'The specified Type is invalid.', 'http_code' => 400, 'description' => 'The Type parameter is set to an invalid value.'],
['code' => 'InvalidParamPrecision', 'message' => 'The parameter Precision is invalid, please check StartTime and EndTime or Precision.', 'http_code' => 400, 'description' => 'The Precision parameter is invalid. Check the value of the StartTime, EndTime, or Precision parameter.'],
['code' => 'InvalidQueryTime.Exceed', 'message' => 'QueryTime exceed three month.', 'http_code' => 400, 'description' => 'The query time is more than three months from the current time.'],
['code' => 'InvalidQueryTime.Malformed', 'message' => 'Specified QueryTime is malformed.', 'http_code' => 400, 'description' => 'The specified query time is invalid.'],
['code' => 'InvalidRecordFmt.NotSupported', 'message' => 'The RecordFmt parameter is not supported.', 'http_code' => 400, 'description' => 'The RecordFmt parameter does not support the specified type. Enter a format specified in the documentation.'],
['code' => 'InvalidRegion', 'message' => 'The current region does not support this operation.', 'http_code' => 400, 'description' => 'The current region does not support this operation.'],
['code' => 'InvalidRegion.Conflict', 'message' => 'The specified "StorageLocation" does not match the region where the streaming domain is located.', 'http_code' => 403, 'description' => 'The specified "StorageLocation" does not match the region where the streaming domain is located.'],
['code' => 'InvalidRegion.Malformed', 'message' => 'Specified Region is malformed.', 'http_code' => 400, 'description' => 'The specified area is invalid.'],
['code' => 'InvalidRegionId', 'message' => 'Specified parameter RegionId is not valid.', 'http_code' => null, 'description' => 'The RegionId parameter is invalid. Verify that the RegionId parameter is correct.'],
['code' => 'InvalidResumeTime.Malformed', 'message' => 'Specified parameter ResumeTime is not valid.', 'http_code' => null, 'description' => 'The ResumeTime parameter is invalid. Verify that the ResumeTime parameter is correct.'],
['code' => 'InvalidScene.Malformed', 'message' => 'The specified parameter Scene is not valid.', 'http_code' => 400, 'description' => 'Invalid value of Scene. Check whether the Scene parameter that you specified is correct.'],
['code' => 'InvalidScene.NotFound', 'message' => 'The queried Scene does not exist.', 'http_code' => 404, 'description' => 'The queried Scene does not exist.'],
['code' => 'InvalidSceneList.Malformed', 'message' => 'The specified parameter SceneList is not valid.', 'http_code' => 400, 'description' => 'Invalid value of SceneList. Check whether the SceneList parameter that you specified is correct.'],
['code' => 'InvalidSequenceOssObject.Malformed', 'message' => 'Specified parameter SequenceOssObject is not valid.', 'http_code' => 400, 'description' => 'Invalid value of SequenceOssObject. Check whether the SequenceOssObject parameter that you specified is correct.'],
['code' => 'InvalidSizeRatio', 'message' => 'Specified parameter SizeRatio is not valid.', 'http_code' => 400, 'description' => 'Invalid value of SizeRatio. Check whether the SizeRatio parameter that you specified is correct.'],
['code' => 'InvalidSizeRatioMode', 'message' => 'Specified parameter SizeRatioMode is not valid.', 'http_code' => 400, 'description' => 'The SizeRatioMode parameter is invalid. Verify that the SizeRatioMode parameter is correct.'],
['code' => 'InvalidSliceOssObjectPrefix.Malformed', 'message' => 'Specified parameter SliceOssObjectPrefix is not valid.', 'http_code' => 400, 'description' => 'The SliceOssObjectPrefix parameter is invalid. Verify that the SliceOssObjectPrefix parameter is correct.'],
['code' => 'InvalidSourceUrl', 'message' => 'Specified parameter SourceUrl is not valid.', 'http_code' => 400, 'description' => 'Invalid source URL. Check whether the SourceUrl parameter that you specified is correct.'],
['code' => 'InvalidSourceUrl.Unsafe', 'message' => 'Specified SourceUrl is not safe.', 'http_code' => 400, 'description' => 'The specified SourceUrl is not secure. Verify that the SourceUrl is safe.'],
['code' => 'InvalidSSLPri', 'message' => 'The SSLPri you provided is malformed.', 'http_code' => 400, 'description' => 'The supplied SSL private key parameter is invalid.'],
['code' => 'InvalidStartTime.Malformed', 'message' => 'Specified StartTime is malformed.', 'http_code' => null, 'description' => 'The StartTime parameter is invalid. Check the request and try again.'],
['code' => 'InvalidStartTime.Malformed', 'message' => 'Specified parameter StartTime is not valid.', 'http_code' => null, 'description' => 'The StartTime parameter is invalid. Check the request and try again.'],
['code' => 'InvalidStartTime.Mismatch', 'message' => 'Specified "StartTime" does not match the current time.', 'http_code' => 400, 'description' => 'The specified recording start time parameter "StartTime" does not match the current time.'],
['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' => 'The start time and the end time do not match. The start time cannot be later than the end time, and the interval between the start time and the end time cannot exceed 90 days.'],
['code' => 'InvalidStartTime.ValueNotSupported', 'message' => 'The specified value of parameter StartTime is not supported.', 'http_code' => 400, 'description' => 'The value specified for the StartTime parameter is invalid.'],
['code' => 'InvalidStorage.NotFound', 'message' => 'Specified parameter StorageLocation does not exist.', 'http_code' => 404, 'description' => 'The specified parameter StorageLocation does not exist.'],
['code' => 'InvalidStream.NotConfig', 'message' => 'Specified stream does not config.', 'http_code' => 400, 'description' => 'Mixed stream configuration does not exist. Check whether mixed stream settings are configured for this stream.'],
['code' => 'InvalidStream.NotFound', 'message' => 'Speicified stream does not exist.', 'http_code' => null, 'description' => 'The live stream does not exist. Verify that the live stream is correct.'],
['code' => 'InvalidStream.NotPublish', 'message' => 'Specified stream is not publishing.', 'http_code' => 400, 'description' => 'No stream is ingested. Check whether the stream you want to ingest is valid.'],
['code' => 'InvalidStream.NotStart', 'message' => 'Specified stream has not started.', 'http_code' => 400, 'description' => 'Multi-channel mixed streams are not supported for this stream. Check whether the service of multi-channel mixed streams is enabled.'],
['code' => 'InvalidStreamName.LengthTooLong', 'message' => 'The specified stream name is too long.', 'http_code' => 400, 'description' => 'The length of StreamName exceeds the limit. Specify a valid StreamName.'],
['code' => 'InvalidStreamNumber.Malformed', 'message' => 'Specified StreamNumber is malformed.', 'http_code' => 400, 'description' => 'The number of streams exceeds the limit. Check whether the limit is exceeded.'],
['code' => 'InvalidStreamProtocol.NotSupport', 'message' => 'The specified stream protocol is not support.', 'http_code' => 400, 'description' => 'The specified stream protocol is not supported. Refer to the documentation for supported stream protocols.'],
['code' => 'InvalidTemplate', 'message' => 'The template provided does not exist in our records or it is not a mix-transcode template.', 'http_code' => 400, 'description' => 'The specified co-stream transcoding template is not found.'],
['code' => 'InvalidText', 'message' => 'Specified parameter Text is not valid.', 'http_code' => 400, 'description' => 'Invalid text. Check whether the text parameter that you specified is correct.'],
['code' => 'InvalidTime.Malformed', 'message' => 'Specified Time is malformed.', 'http_code' => 400, 'description' => 'Invalid time. Check whether the time that you specified is correct.'],
['code' => 'InvalidTime.ValueNotSupported', 'message' => 'Specified Time is malformed.', 'http_code' => 400, 'description' => 'The specified time is invalid.'],
['code' => 'InvalidTimeSpan', 'message' => 'The time span exceeds the limit.', 'http_code' => 400, 'description' => 'The time span exceeds the limit. Please refer to the API documentation to specify a reasonable time span.'],
['code' => 'InvalidTranscode.NotFound', 'message' => 'Transcode is not configured.', 'http_code' => 404, 'description' => 'The transcoding template is not configured.'],
['code' => 'InvalidTransparency', 'message' => 'Specified parameter Transparency is not valid.', 'http_code' => 400, 'description' => 'The specified transparency parameter is invalid. Verify that the specified transparency parameter is correct.'],
['code' => 'InvalidUrl', 'message' => 'Specified parameter Url is not valid.', 'http_code' => null, 'description' => 'The URL parameter is invalid. Verify that the URL parameter is correct.'],
['code' => 'InvalidUrl.Unsafe', 'message' => 'Specified Url is not safe.', 'http_code' => null, 'description' => 'The specified URL is not secure. Verify that the URL is secure.'],
['code' => 'InvalidUserId.Malformed', 'message' => 'Invalid UserId.', 'http_code' => 400, 'description' => 'Invalid User Id.'],
['code' => 'InvalidUserParameter', 'message' => 'The specified user parameter is invalid.', 'http_code' => 400, 'description' => 'The specified user is invalid.'],
['code' => 'InvalidVodUrl.Malformed', 'message' => 'VodUrl is invalid.', 'http_code' => 400, 'description' => 'The entered VodUrl is invalid.'],
['code' => 'LicenseTrialOnceOnly', 'message' => 'Only one trial license can be applied for one package name of each functional module.', 'http_code' => 400, 'description' => 'Each feature module allows only one trial license per package name.'],
['code' => 'Live2Vod.ConfigAlreadyExists', 'message' => 'Had live2vod record config already', 'http_code' => 400, 'description' => 'The live-to-VOD configuration already exists.'],
['code' => 'LiveServiceNotFound', 'message' => 'Your account does not open Live service yet', 'http_code' => 400, 'description' => 'Your account has not yet activated ApsaraVideo Live.'],
['code' => 'LiveServiceSuspended', 'message' => 'live service is suspended', 'http_code' => 400, 'description' => 'The live streaming service has been suspended. Check whether your account has an overdue payment.'],
['code' => 'LiveServiceSuspended', 'message' => 'Your LIVE service is suspended, Please check whether the account is in arrears.', 'http_code' => 403, 'description' => 'ApsaraVideo Live is suspended. Check whether the account has overdue payments.'],
['code' => 'LockFail', 'message' => 'The domain name is being used by another operation, please try again later.', 'http_code' => 400, 'description' => 'The domain name is being used by another operation, please try again later'],
['code' => 'Meter.AuthError', 'message' => 'Authentication Failed,Please Try Again.', 'http_code' => 403, 'description' => 'Authentication failed.'],
['code' => 'Meter.DataSourceError', 'message' => 'Data Source Error:%s,Please Try Again.', 'http_code' => 500, 'description' => 'Data query failed, possibly due to incorrect input parameters'],
['code' => 'Meter.DataSourceQueryError', 'message' => 'Data Source Error:%s,Please Try Again.', 'http_code' => 500, 'description' => 'A data query error occurred.'],
['code' => 'Meter.ParamError', 'message' => 'Param Error:%s,Please Check Again.', 'http_code' => 400, 'description' => 'An error message was returned.'],
['code' => 'Meter.ReadyTsError', 'message' => 'Get ReadyTs Failed,Please Try Again.', 'http_code' => 502, 'description' => 'The queried data is not ready yet.'],
['code' => 'Meter.ServerInternalError', 'message' => 'The Request Processing Has Failed Due To Some Unknown Error.', 'http_code' => 500, 'description' => 'An internal service error occurred.'],
['code' => 'MissingDomainName', 'message' => 'DomainName is mandatory for this action.', 'http_code' => 400, 'description' => 'The DomainName parameter is required. Provide the domain name that you want to query.'],
['code' => 'MissingOssObjectPrefix', 'message' => 'OssObjectPrefix is mandatory for this action.', 'http_code' => null, 'description' => 'The OssObjectPrefix value is missing. Verify that the OssObjectPrefix value is correct.'],
['code' => 'MissingParam', 'message' => 'Parameter invalid.', 'http_code' => 400, 'description' => 'Illegal input parameters'],
['code' => 'MissingParameter', 'message' => 'Invalid.MissingParameter.', 'http_code' => 400, 'description' => 'Missing parameter'],
['code' => 'MissingParameter', 'message' => '%s.', 'http_code' => 400, 'description' => 'Missing parameter'],
['code' => 'MissingParameter.AppId', 'message' => '%s, please check the input parameters.', 'http_code' => 400, 'description' => 'The parameter AppId is missing, please check the input parameters.'],
['code' => 'MissingSliceOssObjectPrefix', 'message' => 'The parameter "SliceOssObjectPrefix" is missing, please fill in and try again.', 'http_code' => 400, 'description' => 'The parameter SliceOssObjectPrefix is missing. Please fill it in and try again.'],
['code' => 'MixStreamAlreadyExist', 'message' => 'Mix Stream Task Already Existed', 'http_code' => 400, 'description' => 'The merge task already exists.'],
['code' => 'MixStreamNotExist', 'message' => 'Mix Stream does not exist', 'http_code' => 400, 'description' => 'The merge task does not exist.'],
['code' => 'NoAuth', 'message' => '%s.', 'http_code' => 403, 'description' => 'No permission'],
['code' => 'NoRecordContent', 'message' => 'The record content between StartTime and EndTime is empty.', 'http_code' => 400, 'description' => 'No records were found between StartTime and EndTime.'],
['code' => 'NoSpecialConfiguration', 'message' => 'No special configuration for domain name.', 'http_code' => 400, 'description' => 'The domain name does not open the preheating switch.'],
['code' => 'NotFound', 'message' => 'Not Found: %s.', 'http_code' => 404, 'description' => 'Not found: %s.'],
['code' => 'NotFound.OSSBucket', 'message' => '%s, please check the ossBucket of storageParams.', 'http_code' => 400, 'description' => 'The parameter OSSBucket does not exist.'],
['code' => 'NotFound.Task', 'message' => '%s, please check the TaskId.', 'http_code' => 400, 'description' => 'The parameter TaskId does not exist.'],
['code' => 'NotInternationRealIdentity', 'message' => 'You need to do real name authentication when you use Chinese mainland resources.', 'http_code' => 400, 'description' => 'You must use a valid authorized identity to access resources in the Chinese mainland.'],
['code' => 'PullDomainIsUsed', 'message' => 'The pull domain has been associated with another app ID.', 'http_code' => 400, 'description' => 'The streaming domain has already been bindded to another application ID.'],
['code' => 'PullStreamOverLimit', 'message' => 'Pull stream is over limit for this domainName', 'http_code' => 400, 'description' => 'The number of pulled streams exceeds the upper limit for the domain name.'],
['code' => 'PushDomainIsUsed', 'message' => 'The push domain has been associated with another app ID.', 'http_code' => 400, 'description' => 'The ingest domain has already been bound to another application ID.'],
['code' => 'QuotaExceeded.Blacklist', 'message' => 'Exceed max blacklist count limit', 'http_code' => 400, 'description' => 'The maximum number of blacklist entries has been exceeded.'],
['code' => 'QuotaLimitError', 'message' => '%s.', 'http_code' => 400, 'description' => 'For each AppId, a maximum of 20 subscriptions are allowed at the same time, and only one full channel subscription is allowed.'],
['code' => 'RecordContentExceed', 'message' => 'The record content between StartTime and EndTime is exceeded', 'http_code' => 400, 'description' => 'The time range exceeds the limit. Please narrow down the range.'],
['code' => 'ResourceNotExist', 'message' => '%s.', 'http_code' => 404, 'description' => 'The requested resource does not exist, please check and try again'],
['code' => 'ServerError', 'message' => '%s.', 'http_code' => 500, 'description' => 'Unknown error, please try again later or submit a ticket for consultation.'],
['code' => 'ServiceSuspended', 'message' => 'Your LIVE service is suspended,Please check whether the account is in arrears.', 'http_code' => 403, 'description' => 'ApsaraVideo Live is suspended. Check whether the account has overdue payments.'],
['code' => 'StreamNotFound', 'message' => 'Stream is not found', 'http_code' => 409, 'description' => 'The stream does not exist. Check the request and try again.'],
['code' => 'SuperLargeGroup', 'message' => '%s.', 'http_code' => 420, 'description' => 'When the group has more than 2000 members, the group is upgraded to a super large group and no longer supports querying the user list.'],
['code' => 'TaskAlreadyStarted', 'message' => 'The task has already started', 'http_code' => 400, 'description' => 'The task has started.'],
['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' => 'The updater failed to pull the push task. The task has been started and cannot be updated.'],
['code' => 'TaskIdNotExist', 'message' => 'The request taskId does not exist. Please check and try again.', 'http_code' => 400, 'description' => 'The request task ID does not exist. Check and try again.'],
['code' => 'Throttling', 'message' => 'Request was denied due to request throttling.', 'http_code' => null, 'description' => 'You have exceeded the maximum traffic. To increase the limit, submit a ticket.'],
['code' => 'TriggerRecordIsTooFrequently', 'message' => 'Trigger too frequently pre-record is not complete yet please try later.', 'http_code' => 400, 'description' => 'The trigger is too frequent. The pre-recording has not been completed yet. Please try again later.'],
['code' => 'Unauthorized', 'message' => 'The request is not authorized', 'http_code' => 401, 'description' => 'The request is not authorized.'],
['code' => 'UnexpectedLocationID', 'message' => 'The locationId is unexpected', 'http_code' => 400, 'description' => 'The LocationId is invalid. Check and try again.'],
['code' => 'UnsupportedParameter', 'message' => 'The parameters "OwnerId"or "OwnerAccount" is unsupported.', 'http_code' => 400, 'description' => 'The specified OwnerId or OwnerAccount parameter is not supported.'],
['code' => 'UserNotAck', 'message' => '%s.', 'http_code' => 408, 'description' => 'Send a highly reliable message to the user, but the user does not respond.'],
['code' => 'UserQuotaExceed', 'message' => 'Quota exceeded: %s.', 'http_code' => 403, 'description' => 'Quota exceeded: %s.'],
['code' => 'InvalidParameter.AppId', 'message' => '%s, please check the appId.', 'http_code' => 404, 'description' => 'The parameter AppId is invalid. Check it.'],
['code' => 'CertNameNotFound', 'message' => 'The cert name is not found.', 'http_code' => 404, 'description' => 'The certificate name does not exist.'],
['code' => 'InvalidUserId.Malformed', 'message' => '%s, please check userId.', 'http_code' => 400, 'description' => 'The userId passed in is invalid, please check.'],
['code' => 'AppIdNotFound', 'message' => 'The appId doesn\'t exists.', 'http_code' => 404, 'description' => 'The input appId does not exist.'],
['code' => 'AppIdNotFound', 'message' => 'The appId doesn\'t exist.', 'http_code' => 404, 'description' => 'The input appId does not exist.'],
['code' => 'Duplicate.TagKey', 'message' => 'The tags should not contain duplicate keys.', 'http_code' => 403, 'description' => 'The tag should not contain duplicate keys.'],
['code' => 'InvalidResourcesCount', 'message' => 'The count of resources is invalid, %s.', 'http_code' => 403, 'description' => 'The input resource array. The total number of resources cannot exceed the maximum value and must be greater than 0.'],
['code' => 'InvalidResourceType', 'message' => 'The resourceType is invalid.', 'http_code' => 401, 'description' => 'The specified resourceType parameter is invalid.'],
['code' => 'QuotaExceed.TagsPerResource', 'message' => 'The maximum number of tags for each resource is exceeded.', 'http_code' => 401, 'description' => 'The number of tags for the resource exceeds the upper limit.'],
['code' => 'StreamNotExists.Blacklist', 'message' => 'stream not exists.', 'http_code' => 400, 'description' => 'Stream not exist'],
['code' => 'InvalidTagKey', 'message' => 'The tag key is invalid, %s.', 'http_code' => 401, 'description' => 'Invalid tag key.'],
['code' => 'LockFail', 'message' => 'Domain has been occupied.', 'http_code' => 400, 'description' => 'The domain name is currently in use. Please try again later.'],
['code' => 'InvalidParameter.StorageParams.StorageType', 'message' => '%s, please check the storageType of storageParams.', 'http_code' => 405, 'description' => 'The parameter StorageType is invalid, please check.'],
['code' => 'InvalidRecordModeParameter', 'message' => 'RecordMode parameter error.', 'http_code' => 400, 'description' => 'RecordMode parameter error'],
['code' => 'InvalidAppIdParameter', 'message' => 'AppId parameter error.', 'http_code' => 400, 'description' => 'AppId parameter error'],
['code' => 'InvalidParameter.NotifyFileUploadedFormat', 'message' => '%s, please check the notifyFileUploadedFormat.', 'http_code' => 405, 'description' => 'The parameter NotifyFileUploadedFormat is invalid, please check.'],
['code' => 'DomainOffline', 'message' => 'The domain is not online, please check the domain status and try again later.', 'http_code' => 400, 'description' => 'The domain is not online, please check the domain status and try again later.'],
['code' => 'InvalidParam', 'message' => '%s.', 'http_code' => 400, 'description' => 'Parameter verification failed'],
['code' => 'InvalidParameters', 'message' => '%s Please check and try again later.', 'http_code' => 400, 'description' => 'Exception parameter exists, please check and try again.'],
['code' => 'ConfigAlreadyExists', 'message' => '%s Please check and try again later.', 'http_code' => 400, 'description' => 'Configuration already exists, please check and try again.'],
['code' => 'TemplateLimit', 'message' => '%s Please check and try again later.', 'http_code' => 400, 'description' => 'The number of templates reached the upper limit.'],
['code' => 'MissingParam', 'message' => '%s. Please check and try again later.', 'http_code' => 400, 'description' => 'There are parameters missing, please check and try again.'],
['code' => 'InvalidAppId', 'message' => '%s Please check and try again later.', 'http_code' => 400, 'description' => 'The appId parameter is invalid, please check and try again.'],
['code' => 'InvalidOssEndpoint.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Invalid OssEndpoint, please check and try again.'],
['code' => 'CodeMissingParam', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Missing parameter, please check and try again.'],
['code' => 'CodeAppNameIsIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter AppName is invalid, please check and try again.'],
['code' => 'CodeStreamNameIsIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The StreamName is invalid, please check and try again.'],
['code' => 'CodeIsLazyIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Invalid IsLazy parameter, please check and try again.'],
['code' => 'CodeIsTimeAlignIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'IsTimeAlign parameter is invalid, please check and try again.'],
['code' => 'CodeAddToRdsFailed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Failed to add to database, please try again later.'],
['code' => 'CodeQueryHlsMultirateFailed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Failed to query Hls multi rate, please try again later.'],
['code' => 'CodeMultiRateGroupIdLengthIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Invalid GroupId length, please check and try again.'],
['code' => 'CodeMultiRateBandWidthIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'BandWidth parameter is invalid, please check and try again.'],
['code' => 'CodeMultiRateConfigIsEmpty', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Configuration does not exist, please check and try again.'],
['code' => 'CodeMultiRateUpdateParamError', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Templates parameter error, please check and try again.'],
['code' => 'CodeUpdateToBizTranscodeAllFailed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Update failed, please try again later.'],
['code' => 'CodeGroupIdIsIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The GroupId is invalid, please check and try again.'],
['code' => 'CodeMultiRateTemplatesIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Templates parameter is invalid, please check and try again.'],
['code' => 'CodeMultiRateBandWidthSyntaxIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter BandWidth is invalid, please check and try again.'],
['code' => 'CodeIsAvFormatIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter avformat is invalid, please check and try again.'],
['code' => 'CodeTemplateTypeIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The TemplateType is invalid, please check and try again.'],
['code' => 'CodeTemplateNameIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The TemplateName is invalid, please check and try again.'],
['code' => 'CodeTemplateHeightIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The TemplateHeight is invalid, please check and try again.'],
['code' => 'CodeTemplateWidthIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The TemplateWidth is invalid, please check and try again.'],
['code' => 'CodeTemplateFpsIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Parameter Fps is invalid, please check and try again.'],
['code' => 'CodeTemplateGopIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Parameter Gop is invalid, please check and try again.'],
['code' => 'CodeTemplateVideoBitrateIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter VideoBitrate is invalid, please check and try again.'],
['code' => 'CodeTemplateProfileIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter Profile is invalid, please check and try again.'],
['code' => 'CodeTemplateAudioProfileIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter AudioProfile is invalid, please check and try again.'],
['code' => 'CodeTemplateAudioCodecIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter AudioCodec is invalid, please check and try again.'],
['code' => 'CodeTemplateAudioBitrateIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter AudioBitrate is invalid, please check and try again.'],
['code' => 'CodeTemplateAudioRateIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter AudioRate is invalid, please check and try again.'],
['code' => 'CodeTemplateAudioChannelNumIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter AudioChannelNum is invalid, please check and try again.'],
['code' => 'CodeGroupCountIsOutOfRange', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The number of template groups exceeds the limit. Please check and try again.'],
['code' => 'CodeInternalErr', 'message' => '%s, please try again later.', 'http_code' => 500, 'description' => 'Internal error, please try again later.'],
['code' => 'CodeTemplateCountOutOfRange', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The number of templates exceeds the limit. Please check and try again.'],
['code' => 'CodeConfigAlreadyExists', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Configuration already exists, please check and try again.'],
['code' => 'CodeAddToBizTranscodePartFailed', 'message' => '%s, please try again later.', 'http_code' => 400, 'description' => 'Failed to add configuration, please try again later.'],
['code' => 'CodeAddToBizTranscodeAllFailed', 'message' => '%s, please try again later.', 'http_code' => 400, 'description' => 'Failed to add configuration, please try again later.'],
['code' => 'CodeUpdateToBizTranscodePartFailed', 'message' => '%s, please try again later.', 'http_code' => 400, 'description' => 'Update failed, please try again later.'],
['code' => 'CodeMultiRateDeleteAllIllegal', 'message' => '%s, please try again later.', 'http_code' => 400, 'description' => 'Failed to delete configuration, please try again later.'],
['code' => 'CodeDeleteAllIllegal', 'message' => '%s, please try again later.', 'http_code' => 400, 'description' => 'Failed to delete configuration, please try again later.'],
['code' => 'InvalidCasterId.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter CasterId is invalid, please check and try again.'],
['code' => 'InvalidPositionNormalized.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter PositionNormalized is invalid, please check and try again.'],
['code' => 'DuplicateLocationID', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter LocationID duplicate. Check and try again.'],
['code' => 'IllegalOperation', 'message' => '%s, please check and try again later.', 'http_code' => 401, 'description' => 'Operation not allowed, please check and try again.'],
['code' => 'InvalidCaster.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'The guide station does not exist, please check and try again.'],
['code' => 'CanvasNotExist', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'Canvas does not exist, please check and try again.'],
['code' => 'InternalError', 'message' => '%s, please try again later.', 'http_code' => 500, 'description' => 'Internal error, please try again later.'],
['code' => 'InvalidComponent.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'The component to be operated does not exist. Please check and try again.'],
['code' => 'SwitchTypeInvalid.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter SwitchType is invalid, please check and try again.'],
['code' => 'IncorrectStartTime', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter StartTime is invalid, please check and try again.'],
['code' => 'IncorrectEndTime', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter EndTime is invalid, please check and try again.'],
['code' => 'EpisodeConflict.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'There is a conflict with the program time, please check and try again.'],
['code' => 'InvalidResource.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'The resource does not exist. Please check and try again.'],
['code' => 'IncorrectEpisodeStatus', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The current status of the program is not operational, please check and try again.'],
['code' => 'InvalidEpisode.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'Episode does not exist, please check and try again.'],
['code' => 'InvalidClientToken.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter ClientToken is invalid, please check and try again.'],
['code' => 'InvalidVideoLayersAndBlendListSize.Mismatch', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The size of the VideoLayers does not match the size of the BlendList, please check and try again.'],
['code' => 'InvalidAudioLayersAndMixListSize.Mismatch', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The size of the AudioLayers does not match the size of the MixList, please check and try again.'],
['code' => 'InvalidBlendList.ExceedNorm', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'BlendList size exceeds specification, please check and try again.'],
['code' => 'InvalidHeightOrWidthNormalized', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'HeightNormalized or WidthNormalized parameters are invalid, please check and try again.'],
['code' => 'InvalidLayoutId.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The LayoutId is invalid, please check and try again.'],
['code' => 'InvalidLayout.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'LayoutId does not exist, please check and try again.'],
['code' => 'InvalidPageSize.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter PageSize is invalid, please check and try again.'],
['code' => 'InvalidPageNum.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter PageNum is invalid, please check and try again.'],
['code' => 'InvalidLiveStreamUrl.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter LiveStreamUrl is invalid, please check and try again.'],
['code' => 'InvalidMaterialId.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter MaterialId is invalid, please check and try again.'],
['code' => 'InvalidVodUrl.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Parameter VodUrl is invalid, please check and try again.'],
['code' => 'ResourceNumberExceed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The number of resources exceeds the limit. Please check and try again.'],
['code' => 'UnexpectedLocationID', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The LocationId is invalid, please check and try again.'],
['code' => 'InvalidResourceId.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter ResourceId is invalid, please check and try again.'],
['code' => 'MalformedParam', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Invalid parameter, please check and try again.'],
['code' => 'MissingParam', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Parameter is missing, please check and try again.'],
['code' => 'InternalErr', 'message' => '%s, please try again later.', 'http_code' => 400, 'description' => 'Internal error, please try again later.'],
['code' => 'ConfigExisted', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Configuration already exists, please check and try again.'],
['code' => 'ConfigNotFound', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Configuration does not exist, please check and try again.'],
['code' => 'UnsafeCallback', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The callback address is not safe. Please check and try again.'],
['code' => 'ConfigAlreadyExists', 'message' => '%s, please check and try again later.', 'http_code' => 409, 'description' => 'Configuration already exists, please check and try again.'],
['code' => 'InvalidShowList.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'ShowList does not exist, please check and try again.'],
['code' => 'InvalidShow.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'Show does not exist, please check and try again.'],
['code' => 'IncorrectCasterStatus', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Guide station status error, please check and try again.'],
['code' => 'InvalidHtmlResource.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'HtmlResource does not exist, please check and try again.'],
['code' => 'DuplicateHtmlResource', 'message' => '%s, please check and try again later.', 'http_code' => 409, 'description' => 'HtmlResource already exists, please check and try again.'],
['code' => 'HtmlResourceAlreadyAlive', 'message' => '%s, please check and try again later.', 'http_code' => 409, 'description' => 'HtmlResource already exists or is started, please check and try again.'],
['code' => 'InvalidMixList.ExceedNorm', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'MixList size exceeds specification, please check and try again.'],
['code' => 'InvalidVideoLayersConfig', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The size of the VideoLayers does not match the size of the BlendList, please check and try again.'],
['code' => 'InvalidAudioLayersConfig', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The size of the AudioLayers does not match the size of the MixList, please check and try again.'],
['code' => 'InvalidParameter.Status', 'message' => '%s, please check and try again later.', 'http_code' => 500, 'description' => 'Parameter Status is invalid, please check and try again.'],
['code' => 'NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'The access object does not exist. Please check and try again.'],
['code' => 'InvalidHtmlResource.NotBelongToYou', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'No permission to operate HtmlResource, please check and try again.'],
['code' => 'InvalidParameter.EndTime', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter EndTime is invalid, please check and try again.'],
['code' => 'PlayListIsEmpty', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Playlist is empty, please check and try again.'],
['code' => 'MissInputParams', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Parameter is missing, please check and try again.'],
['code' => 'InvalidProgramId.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter ProgramId is invalid, please check and try again.'],
['code' => 'InvalidDomainName.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'Domain name does not exist, please check and try again.'],
['code' => 'CasterNumberExceed', 'message' => '%s, please check and try again later.', 'http_code' => 401, 'description' => 'The number of casters exceeds the limit. Please check and try again.'],
['code' => 'IncorrectPlaylistStatus.Inuse', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The Playlist is in use, please check and try again.'],
['code' => 'PlayListNotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'PlayList does not exist, please check and try again.'],
['code' => 'InvalidSceneId.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter SceneId is invalid, please check and try again.'],
['code' => 'IncorrectSceneStatus', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Scene status is not supported, please check and try again.'],
['code' => 'IncorrectSceneStatus.Idle', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Scene status is idle, please check and try again.'],
['code' => 'IncorrectSceneStatus.ConfigError', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Scene configuration error, please check and try again.'],
['code' => 'InvalidScene.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'Scene does not exist, please check and try again.'],
['code' => 'ResourceInChannel.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'The resource does not exist. Please check and try again.'],
['code' => 'ResourceInChannel.PreConditionFailed', 'message' => '%s, please try again later.', 'http_code' => 412, 'description' => 'Resource pre-verification failed, please try again later.'],
['code' => 'ResourceInChannel.Invalid', 'message' => '%s, please check and try again later.', 'http_code' => 412, 'description' => 'Resource and channel material address are inconsistent, please check and try again.'],
['code' => 'InvalidVideo.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'The video resource does not exist. Please check and try again.'],
['code' => 'IncorrectSceneStatus.Inuse', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Scene is on, please check and try again.'],
['code' => 'InvalidCaptionResource', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The resource referenced by the voice caption component does not exist or is not a live source. Please check and try again.'],
['code' => 'ComponentNumberExceed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The number of components exceeds the limit. Please check and try again.'],
['code' => 'SceneNumberExceed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The number of Scenes exceeds the limit. Please check and try again.'],
['code' => 'IncorrectSceneStatus.Waiting', 'message' => '%s, please try again later.', 'http_code' => 400, 'description' => 'Scene is waiting, please try again later.'],
['code' => 'InvalidUrgentMaterial.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'The spare material does not exist. Please check and try again.'],
['code' => 'ConfigurationNotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'Configuration does not exist, please check and try again.'],
['code' => 'TemplateAlreadyExist', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Template already exists, please check and try again.'],
['code' => 'CustomTemplateInvalid', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The custom template is invalid, please check and try again.'],
['code' => 'IncorrectCasterStatus.Idle', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The caster is not open, please check and try again.'],
['code' => 'InvalidParams', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Parameter is invalid, please check and try again.'],
['code' => 'InvalidProtocol', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter Protocol is invalid, please check and try again.'],
['code' => 'InvalidSegmentNum', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter SegmentNum is invalid, please check and try again.'],
['code' => 'InvalidSegmentDuration', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter SegmentDuration is invalid, please check and try again.'],
['code' => 'InvalidPartDuration', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter PartDuration is invalid, please check and try again.'],
['code' => 'ConfigConflicts', 'message' => '%s, please check and try again later.', 'http_code' => 409, 'description' => 'Configuration conflict, please check and try again.'],
['code' => 'InternalErr', 'message' => '%s, please try again.', 'http_code' => 500, 'description' => 'Internal error, please try again later.'],
['code' => 'ConfigNotFound', 'message' => '%s, please check and try again.', 'http_code' => 404, 'description' => 'Configuration does not exist, please check and try again.'],
['code' => 'IncorrectCasterStatus.EnableChannel', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'Caster status does not support EnableChannel settings, please check and try again.'],
['code' => 'InvalidCasterTemplate.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'The guide template does not exist. Please check and try again.'],
['code' => 'PlayListItemNotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'PlayListItem does not exist, please check and try again.'],
['code' => 'InvalidNormType.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The norm type is invalid, please check and try again.'],
['code' => 'InvalidParameter.Offset', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter Offset is invalid. Check and try again.'],
['code' => 'InvalidParameter.StartItemId', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter StartItemId is invalid, please check and try again.'],
['code' => 'DuplicateResourceId', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Duplicate ResourceId, please check and try again.'],
['code' => 'InvalidParamter', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Parameter is invalid, please check and try again.'],
['code' => 'CodeConfigNotFound', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Configuration does not exist, please check and try again.'],
['code' => 'InvalidStream.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The live stream does not exist. Check whether the live stream is correct.'],
['code' => 'IncorrectChannel.Disable', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The Channel is in a non-settable state, please check and try again.'],
['code' => 'InvalidParameter.EventName', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter EventName is invalid, please check and try again.'],
['code' => 'InvalidConfiguration.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'Configuration does not exist, please check and try again.'],
['code' => 'InvalidAppId', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'AppId is invalid, please check and try again.'],
['code' => 'LiveServiceNotFound', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The live service is not enabled. Please check and try again.'],
['code' => 'InvalidParameter.StartTime', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter StartTime is invalid, please check and try again.'],
['code' => 'InvalidParameter.Status', 'message' => '%s, please check and try again.', 'http_code' => 400, 'description' => 'Status is invalid, please check and try again.'],
['code' => 'DomainConfigFailed', 'message' => '%s, please try again later.', 'http_code' => 500, 'description' => 'Domain name configuration failed, please try again later.'],
['code' => 'InvalidDataNotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'Data does not exist, please check and try again.'],
['code' => 'InvalidStreamNum', 'message' => '%s, please check and try again later.', 'http_code' => 409, 'description' => 'The number of streams is abnormal. Please check and try again.'],
['code' => 'InvalidParameter.PurchaseTime', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter PurchaseTime is invalid, please check and try again.'],
['code' => 'InvalidChargeType.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter ChargeType is invalid, please check and try again.'],
['code' => 'InvalidChargeType.PostSupport', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'ChargeType only supports post-paid, please check and try again.'],
['code' => 'InvalidCasterTemplate.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter CasterTemplate is invalid, please check and try again.'],
['code' => 'InvalidParameter.ChargeType', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter ChargeType is invalid, please check and try again.'],
['code' => 'InvalidPeriod.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Invalid time interval, please check and try again.'],
['code' => 'PermissionDenied', 'message' => '%s, please check and try again later.', 'http_code' => 403, 'description' => 'Access denied, please check and try again.'],
['code' => 'InvalidParameter.NormType', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'The parameter NormType is invalid, please check and try again.'],
['code' => 'CreateLiveAIStudio.Timeout', 'message' => '%s, please try again later.', 'http_code' => 408, 'description' => 'Call CreateLiveAIStudio timed out, please try again later.'],
['code' => 'DeleteLiveAIStudio.Timeout', 'message' => '%s, please try again later.', 'http_code' => 408, 'description' => 'Call DeleteLiveAIStudio timed out, please try again later.'],
['code' => 'ModifyLiveAIStudio.Timeout', 'message' => '%s, please try again later.', 'http_code' => 408, 'description' => 'Call ModifyLiveAIStudio timed out, please try again later.'],
['code' => 'DescribeLiveAIStudio.Timeout', 'message' => '%s, please try again later.', 'http_code' => 408, 'description' => 'Call DescribeLiveAIStudio timed out, please try again later.'],
['code' => 'StreamMonitorExist', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The monitoring room already exists, please check and try again.'],
['code' => 'InvalidMonitorId.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter MonitorId is invalid, please check and try again.'],
['code' => 'StreamMonitorNotExist', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'The monitoring room does not exist, please check and try again.'],
['code' => 'StreamMonitorAlreadyStarted', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The monitoring room has been opened, please check and try again.'],
['code' => 'StreamMonitorAlreadyStop', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The monitoring room has been stopped, please check and try again.'],
['code' => 'MixStreamAlreadyExist', 'message' => '%s, please check and try again later.', 'http_code' => 403, 'description' => 'The confluence task already exists, please check and try again.'],
['code' => 'MixStreamNotExist', 'message' => '%s, please check and try again later.', 'http_code' => 403, 'description' => 'The confluous task does not exist. Please check and try again.'],
['code' => 'Forbidden', 'message' => '%s, please check and try again later.', 'http_code' => 403, 'description' => 'No permission, please check and try again.'],
['code' => 'TemplateNotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'The template does not exist. Please check and try again.'],
['code' => 'OperationDenied', 'message' => '%s, please check and try again later.', 'http_code' => 403, 'description' => 'Operation rejected, please check and try again.'],
['code' => 'JobNotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'Task does not exist, please check and try again.'],
['code' => 'UserTaskExceed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'User tasks have reached the upper limit, please check and try again.'],
['code' => 'MissingParams', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Parameter is missing, please check and try again.'],
['code' => 'Cannot find task', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Task does not exist, please check and try again.'],
['code' => 'CreateCaster.Timeout', 'message' => '%s, please try again later.', 'http_code' => 408, 'description' => 'Call CreateCaster timed out, please try again later.'],
['code' => 'InvalidParameter.PlayStatus', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter PlayStatus is invalid, please check and try again.'],
['code' => 'InvalidChannelId.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter ChannelId is invalid, please check and try again.'],
['code' => 'InvalidParameter.SeekOffset', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter SeekOffset is invalid, please check and try again.'],
['code' => 'ResourceOfChannelExist', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Resource already exists in the channel, please check and try again.'],
['code' => 'InvalidParameter.ExpireTime', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter ExpireTime is invalid, please check and try again.'],
['code' => 'IncorrectStudioStatus.Inuse', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Studio is in use, please check and try again.'],
['code' => 'MalformedParams', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Parameter is invalid, please check and try again.'],
['code' => 'InvalidTaskId', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'TaskId is invalid, please check and try again.'],
['code' => 'InvalidBlockIngInfo.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The BlockingInfo is invalid, please check and try again.'],
['code' => 'InvalidEndTime.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'BlockingEndTime parameter is invalid, please check and try again.'],
['code' => 'IllegalOperation', 'message' => '%s, please check and try again.', 'http_code' => 400, 'description' => 'Error operation, please check and try again.'],
['code' => 'InvalidStreamNumber.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Invalid number of streams, please check and try again.'],
['code' => 'InvalidTime.ValueNotSupported', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The StartTime does not match the EndTime, please check and try again.'],
['code' => 'InvalidTime.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Invalid StartTime and EndTime interval, please check and try again.'],
['code' => 'InvalidStartTime.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'StartTime parameter is invalid, please check and try again.'],
['code' => 'InvalidEndTime.Malformed', 'message' => '%s, please check and try again.', 'http_code' => 400, 'description' => 'EndTime parameter is invalid, please check and try again.'],
['code' => 'Throttling', 'message' => '%s, please try again later.', 'http_code' => 400, 'description' => 'Trigger flow control, please try again later.'],
['code' => 'CdnServiceNotFound', 'message' => '%s, please try again later.', 'http_code' => 400, 'description' => 'Service does not exist, please try again later.'],
['code' => 'InvalidAppName.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'AppName parameter is invalid, please check and try again.'],
['code' => 'StreamNotFound', 'message' => '%s, please check and try again later.', 'http_code' => 409, 'description' => 'Stream does not exist, please check and try again.'],
['code' => 'TaskAlreadyStarted', 'message' => '%s, please do not start again.', 'http_code' => 409, 'description' => 'Task already started, do not start again.'],
['code' => 'IncorrectCasterStatus.Inuse', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Caster status is inuse, please check and try again later.'],
['code' => 'InvalidParameter.PageSize', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter PageSize is invalid, please check and try again.'],
['code' => 'InvalidParameter.PageNum', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The parameter PageNum is invalid, please check and try again.'],
['code' => 'InvalidCaster.ChannelDisableUnsupported', 'message' => '%s, please check.', 'http_code' => 400, 'description' => 'Disabling an enabled Channel is not supported.'],
['code' => 'IncorrectCasterStatus.EnableChannel', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Caster status does not support EnableChannel settings, please check and try again.'],
['code' => 'IncorrectCasterStatus.Cease', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The caster has stopped service due to arrears, please settle and try again.'],
['code' => 'IncorrectCasterStatus.Expire', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The prepaid instance of the caster has expired, please renew it and try again.'],
['code' => 'InvalidTranscode.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'Transcoding is not configured, please check and try again.'],
['code' => 'InvalidDelay.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'Delayed playback is not configured, please check and try again.'],
['code' => 'InvalidFunctionName.ValueNotSupported', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The input function name is not supported.'],
['code' => 'InvalidArgName.ValueNotSupported', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The ArgName passed in is invalid.'],
['code' => 'InvalidArgValue.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The ArgValue passed in is invalid.'],
['code' => 'InvalidRule.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'The Rule passed in is invalid.'],
['code' => 'MissingTemplate', 'message' => 'Template is mandatory for this action.', 'http_code' => 400, 'description' => 'Missing transcoding template parameter configuration.'],
['code' => 'QuotaExceed.RunningTask', 'message' => 'The number of active cloud recording tasks has reached the limit.', 'http_code' => 403, 'description' => 'The number of active cloud recording tasks has reached the limit.'],
],
'changeSet' => [
[
'apis' => [
['description' => 'Error codes changed, Request parameters changed, Response parameters changed', 'api' => 'DescribeLiveStreamTranscodeStreamNum'],
],
'createdAt' => '2025-04-11T03:13:47.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Request parameters changed', 'api' => 'DescribeLiveStreamsNotifyUrlConfig'],
['description' => 'Request parameters changed', 'api' => 'SetLiveStreamsNotifyUrlConfig'],
],
'createdAt' => '2025-04-01T06:33:49.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Response parameters changed', 'api' => 'DescribeLivePullToPush'],
['description' => 'Response parameters changed', 'api' => 'DescribeLivePullToPushList'],
],
'createdAt' => '2025-04-01T03:47:26.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Response parameters changed', 'api' => 'DescribeLiveMessageApp'],
['description' => 'Response parameters changed', 'api' => 'ListLiveMessageApps'],
],
'createdAt' => '2025-03-26T02:53:24.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Response parameters changed', 'api' => 'DescribeLiveMessageGroup'],
],
'createdAt' => '2025-03-26T02:50:54.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Error codes changed', 'api' => 'ListLiveMessageGroupUsers'],
],
'createdAt' => '2025-03-26T02:43:54.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Request parameters changed', 'api' => 'CreateLiveMessageApp'],
],
'createdAt' => '2025-02-26T03:18:25.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Error codes changed, Request parameters changed, Response parameters changed', 'api' => 'DescribeLiveStreamsNotifyUrlConfig'],
['description' => 'Request parameters changed', 'api' => 'SetLiveStreamsNotifyUrlConfig'],
],
'createdAt' => '2025-02-20T08:26:19.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Response parameters changed', 'api' => 'DescribeLiveMessageApp'],
['description' => 'Response parameters changed', 'api' => 'ListLiveMessageApps'],
['description' => 'Response parameters changed', 'api' => 'SendLiveMessageGroup'],
['description' => 'Error codes changed, Request parameters changed, Response parameters changed', 'api' => 'SendLiveMessageUser'],
],
'createdAt' => '2025-01-23T12:01:08.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Request parameters changed', 'api' => 'CreateLiveMessageApp'],
],
'createdAt' => '2025-01-22T10:57:09.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Request parameters changed', 'api' => 'SendLiveMessageGroup'],
],
'createdAt' => '2025-01-13T05:41:38.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Error codes changed, Response parameters changed', 'api' => 'DescribeLiveStreamsPublishList'],
],
'createdAt' => '2024-12-30T02:09:45.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Response parameters changed', 'api' => 'DescribeCasterConfig'],
],
'createdAt' => '2024-12-12T09:11:26.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Error codes changed', 'api' => 'AddLiveAISubtitle'],
['description' => 'Error codes changed', 'api' => 'DeleteLiveAISubtitle'],
['description' => 'Error codes changed', 'api' => 'DescribeLiveAISubtitle'],
['description' => 'Error codes changed', 'api' => 'UpdateLiveAISubtitle'],
],
'createdAt' => '2024-12-04T05:55:26.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Response parameters changed', 'api' => 'ListRtcMPUTaskDetail'],
['description' => 'Request parameters changed', 'api' => 'StartLiveMPUTask'],
],
'createdAt' => '2024-11-14T09:21:58.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Response parameters changed', 'api' => 'ListRtcMPUTaskDetail'],
],
'createdAt' => '2024-10-30T09:34:14.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Request parameters changed', 'api' => 'StartLiveMPUTask'],
['description' => 'Request parameters changed', 'api' => 'UpdateLiveMPUTask'],
],
'createdAt' => '2024-10-30T08:35:59.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Request parameters changed', 'api' => 'AddLiveDomain'],
],
'createdAt' => '2024-10-24T06:15:08.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Error codes changed', 'api' => 'RemoveTerminals'],
],
'createdAt' => '2024-10-18T04:00:06.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Request parameters changed', 'api' => 'AddLiveAIProduceRules'],
['description' => 'Request parameters changed', 'api' => 'DeleteLiveAIProduceRules'],
['description' => 'Response parameters changed', 'api' => 'DescribeLiveAIProduceRules'],
['description' => 'Request parameters changed', 'api' => 'UpdateLiveAIProduceRules'],
],
'createdAt' => '2024-10-14T03:48:07.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Error codes changed', 'api' => 'StopLiveDomain'],
],
'createdAt' => '2024-09-29T06:30:50.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Error codes changed', 'api' => 'DescribeLiveDomainLog'],
['description' => 'Error codes changed', 'api' => 'DescribeLiveDomainMapping'],
],
'createdAt' => '2024-09-29T03:52:12.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Error codes changed', 'api' => 'DescribeLiveDomainCertificateInfo'],
],
'createdAt' => '2024-09-29T03:21:53.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Error codes changed', 'api' => 'DescribeDomainWithIntegrity'],
],
'createdAt' => '2024-09-29T03:09:55.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Request parameters changed', 'api' => 'CreateCaster'],
['description' => 'Request parameters changed, Response parameters changed', 'api' => 'DescribeCasters'],
],
'createdAt' => '2024-09-27T02:17:14.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Error codes changed, Request parameters changed', 'api' => 'AddLiveDomain'],
['description' => 'Response parameters changed', 'api' => 'DescribeLiveDomainDetail'],
],
'createdAt' => '2024-09-25T07:01:49.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Request parameters changed, Response parameters changed', 'api' => 'DescribeLiveUserDomains'],
],
'createdAt' => '2024-09-25T02:40:34.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Request parameters changed', 'api' => 'CreateLiveStreamMonitor'],
['description' => 'Request parameters changed', 'api' => 'UpdateLiveStreamMonitor'],
],
'createdAt' => '2024-09-04T07:13:57.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Error codes changed, Request parameters changed', 'api' => 'CreateCaster'],
['description' => 'Error codes changed', 'api' => 'DeleteCaster'],
['description' => 'Error codes changed, Request parameters changed, Response parameters changed', 'api' => 'DescribeCasters'],
['description' => 'Error codes changed', 'api' => 'SetCasterConfig'],
],
'createdAt' => '2024-08-21T03:34:41.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Response parameters changed', 'api' => 'ListRtcMPUTaskDetail'],
['description' => 'Request parameters changed', 'api' => 'StartLiveMPUTask'],
['description' => 'Request parameters changed', 'api' => 'UpdateLiveMPUTask'],
],
'createdAt' => '2024-08-13T08:24:13.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Request parameters changed', 'api' => 'CreateRtcAsrTask'],
],
'createdAt' => '2024-08-12T06:05:19.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Request parameters changed', 'api' => 'AddCasterVideoResource'],
],
'createdAt' => '2024-08-08T03:25:14.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Response parameters changed', 'api' => 'ListRtcMPUTaskDetail'],
['description' => 'Request parameters changed', 'api' => 'StartLiveMPUTask'],
['description' => 'Request parameters changed', 'api' => 'UpdateLiveMPUTask'],
],
'createdAt' => '2024-08-06T08:00:32.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Request parameters changed, Response parameters changed', 'api' => 'DescribeLiveStreamsOnlineList'],
],
'createdAt' => '2024-08-01T06:18:00.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Response parameters changed', 'api' => 'DescribeLiveMessageApp'],
['description' => 'Response parameters changed', 'api' => 'ListLiveMessageApps'],
],
'createdAt' => '2024-08-01T02:19:34.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Error codes changed', 'api' => 'RecoverLiveMessageDeletedGroup'],
],
'createdAt' => '2024-07-19T03:45:27.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Response parameters changed', 'api' => 'DescribeShowList'],
],
'createdAt' => '2024-07-15T01:32:07.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Response parameters changed', 'api' => 'DescribeShowList'],
],
'createdAt' => '2024-07-11T09:46:43.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Request parameters changed, Response parameters changed', 'api' => 'DescribeLiveStreamsOnlineList'],
],
'createdAt' => '2024-07-11T03:44:06.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Error codes changed', 'api' => 'ListRtcMPUTaskDetail'],
['description' => 'Error codes changed', 'api' => 'StartLiveMPUTask'],
['description' => 'Error codes changed', 'api' => 'StopLiveMPUTask'],
['description' => 'Error codes changed', 'api' => 'UpdateLiveMPUTask'],
],
'createdAt' => '2024-07-04T07:03:49.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Error codes changed', 'api' => 'CreateRtcMPUEventSub'],
['description' => 'Error codes changed', 'api' => 'DeleteRtcMPUEventSub'],
['description' => 'Error codes changed', 'api' => 'DescribeRtcMPUEventSub'],
['description' => 'Error codes changed', 'api' => 'ListRtcMPUEventSubRecord'],
['description' => 'Error codes changed', 'api' => 'SetLiveMpuTaskSei'],
['description' => 'Error codes changed', 'api' => 'UpdateRtcMPUEventSub'],
],
'createdAt' => '2024-07-04T06:15:53.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Request parameters changed', 'api' => 'AddLiveAIProduceRules'],
['description' => 'Response parameters changed', 'api' => 'DescribeLiveAIProduceRules'],
['description' => 'Request parameters changed', 'api' => 'UpdateLiveAIProduceRules'],
],
'createdAt' => '2024-07-04T02:58:31.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Response parameters changed, Error codes changed', 'api' => 'DescribeLiveStreamRecordIndexFile'],
['description' => 'Response parameters changed', 'api' => 'DescribeLiveStreamRecordIndexFiles'],
],
'createdAt' => '2024-06-25T08:56:07.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Response parameters changed', 'api' => 'ListEventSub'],
],
'createdAt' => '2024-06-14T07:15:10.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Response parameters changed', 'api' => 'DescribeChannelParticipants'],
],
'createdAt' => '2024-06-13T01:20:56.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Request parameters changed', 'api' => 'StartLiveMPUTask'],
['description' => 'Request parameters changed', 'api' => 'UpdateLiveMPUTask'],
],
'createdAt' => '2024-06-12T05:52:37.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Request parameters changed', 'api' => 'DescribeLiveAISubtitle'],
],
'createdAt' => '2024-06-11T03:34:04.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Request parameters changed', 'api' => 'ListLiveMessageGroups'],
],
'createdAt' => '2024-05-23T05:56:48.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Response parameters changed', 'api' => 'ModifyLiveMessageUserInfo'],
],
'createdAt' => '2024-05-10T02:55:32.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Response parameters changed', 'api' => 'DescribeShowList'],
],
'createdAt' => '2024-04-11T07:34:41.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Error codes changed', 'api' => 'DeleteLiveStreamTranscode'],
],
'createdAt' => '2024-03-15T07:05:47.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Request parameters changed', 'api' => 'CreateLiveMessageApp'],
],
'createdAt' => '2024-03-13T01:43:13.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Request parameters changed', 'api' => 'StartLiveMPUTask'],
['description' => 'Request parameters changed', 'api' => 'UpdateLiveMPUTask'],
],
'createdAt' => '2024-03-06T17:48:16.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Request parameters changed', 'api' => 'StartLiveMPUTask'],
['description' => 'Request parameters changed', 'api' => 'UpdateLiveMPUTask'],
],
'createdAt' => '2024-03-01T07:40:57.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Response parameters changed', 'api' => 'DescribeLiveMessageApp'],
],
'createdAt' => '2024-02-22T06:02:47.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Response parameters changed', 'api' => 'DescribeMeterLiveRtcDuration'],
['description' => 'Response parameters changed', 'api' => 'DescribeRTSNativeSDKPlayTime'],
],
'createdAt' => '2024-02-20T03:12:58.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Error codes changed', 'api' => 'ModifyLiveMessageAppAudit'],
['description' => 'Error codes changed', 'api' => 'ModifyLiveMessageAppCallback'],
],
'createdAt' => '2024-02-02T01:46:43.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Error codes changed, Response parameters changed', 'api' => 'CreateLiveMessageApp'],
],
'createdAt' => '2024-01-31T03:43:15.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Error codes changed', 'api' => 'CreateLiveMessageGroup'],
],
'createdAt' => '2024-01-31T03:36:40.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Error codes changed', 'api' => 'DeleteLiveDetectNotifyConfig'],
['description' => 'Error codes changed', 'api' => 'DeleteLiveDomainPlayMapping'],
],
'createdAt' => '2024-01-30T08:57:27.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Request parameters changed, Response parameters changed', 'api' => 'CreateLiveStreamRecordIndexFiles'],
],
'createdAt' => '2024-01-30T07:46:18.000Z',
'description' => '无',
],
[
'apis' => [
['description' => 'Response parameters changed', 'api' => 'DescribeShowList'],
],
'createdAt' => '2024-01-30T03:32:15.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Response parameters changed', 'api' => 'DescribeLiveStreamsOnlineList'],
],
'createdAt' => '2024-01-26T05:59:52.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Response parameters changed, Error codes changed', 'api' => 'DescribeLiveLazyPullStreamConfig'],
],
'createdAt' => '2024-01-23T08:49:39.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Response parameters changed', 'api' => 'DescribeLiveDomainLimit'],
],
'createdAt' => '2024-01-23T07:51:42.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Request parameters changed', 'api' => 'RealTimeSnapshotCommand'],
],
'createdAt' => '2024-01-11T07:55:00.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Response parameters changed', 'api' => 'DescribeLiveMessageApp'],
['description' => 'Response parameters changed', 'api' => 'ListLiveMessageApps'],
['description' => 'Request parameters changed', 'api' => 'SendLiveMessageGroup'],
],
'createdAt' => '2024-01-09T03:36:21.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Request parameters changed', 'api' => 'StartLiveMPUTask'],
['description' => 'Request parameters changed', 'api' => 'UpdateLiveMPUTask'],
],
'createdAt' => '2023-12-26T06:02:30.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Error codes changed, Request parameters changed, Response parameters changed', 'api' => 'DescribeLiveStreamMetricDetailData'],
],
'createdAt' => '2023-12-21T06:32:26.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Request parameters changed', 'api' => 'TagLiveResources'],
],
'createdAt' => '2023-12-14T02:41:25.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Request parameters changed', 'api' => 'SendLiveMessageGroup'],
],
'createdAt' => '2023-12-13T07:07:53.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Response parameters changed', 'api' => 'DescribeCasterConfig'],
['description' => 'Request parameters changed', 'api' => 'SetCasterConfig'],
],
'createdAt' => '2023-11-22T01:25:43.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Request parameters changed', 'api' => 'CreateEventSub'],
],
'createdAt' => '2023-11-21T09:22:15.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Error codes changed', 'api' => 'DescribeLiveDomainLogExTtl'],
],
'createdAt' => '2023-11-21T09:18:49.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Error codes changed, Request parameters changed', 'api' => 'CreateEventSub'],
['description' => 'Error codes changed, Request parameters changed, Response parameters changed', 'api' => 'DeleteEventSub'],
],
'createdAt' => '2023-11-21T05:56:18.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Error codes changed', 'api' => 'CreateEventSub'],
['description' => 'Error codes changed', 'api' => 'DeleteChannel'],
['description' => 'Error codes changed', 'api' => 'DescribeChannelUsers'],
['description' => 'Error codes changed', 'api' => 'RemoveTerminals'],
],
'createdAt' => '2023-08-31T01:48:52.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Request parameters changed, Response parameters changed', 'api' => 'CreateEventSub'],
],
'createdAt' => '2023-08-04T10:36:56.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Error codes changed, Request parameters changed', 'api' => 'DescribeDomainUsageData'],
],
'createdAt' => '2023-07-27T07:29:29.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Error codes changed', 'api' => 'AddLiveDomain'],
],
'createdAt' => '2023-05-09T08:03:09.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Request parameters changed', 'api' => 'CancelMuteAllGroupUser'],
['description' => 'Request parameters changed', 'api' => 'MuteAllGroupUser'],
],
'createdAt' => '2023-04-04T06:10:42.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Request parameters changed', 'api' => 'ModifyCasterVideoResource'],
],
'createdAt' => '2023-03-31T11:03:40.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Request parameters changed', 'api' => 'AddCasterVideoResource'],
['description' => 'Response parameters changed', 'api' => 'DescribeCasterConfig'],
['description' => 'Response parameters changed', 'api' => 'DescribeCasterVideoResources'],
['description' => 'Request parameters changed, Response parameters changed', 'api' => 'ModifyCasterVideoResource'],
['description' => 'Request parameters changed', 'api' => 'SetCasterConfig'],
],
'createdAt' => '2023-03-31T08:27:31.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Response parameters changed', 'api' => 'SendMessageToGroupUsers'],
],
'createdAt' => '2023-03-28T07:17:29.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Request parameters changed', 'api' => 'UpdateCasterSceneAudio'],
],
'createdAt' => '2023-03-24T08:24:58.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Response parameters changed', 'api' => 'DescribeCasterConfig'],
],
'createdAt' => '2023-03-24T08:24:47.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Response parameters changed', 'api' => 'SendMessageToGroup'],
],
'createdAt' => '2023-03-24T08:22:46.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Request parameters changed', 'api' => 'ListMessageGroupUserById'],
],
'createdAt' => '2023-03-24T08:22:07.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'Error codes changed', 'api' => 'AddLiveDomain'],
],
'createdAt' => '2022-12-22T09:04:25.000Z',
'description' => '错误码更新',
],
[
'apis' => [
['description' => 'Request parameters changed', 'api' => 'MuteAllGroupUser'],
],
'createdAt' => '2022-12-08T09:06:36.000Z',
'description' => 'API更新。',
],
[
'apis' => [
['description' => 'Request parameters changed', 'api' => 'SendMessageToGroupUsers'],
],
'createdAt' => '2022-12-05T08:48:35.000Z',
'description' => 'API配置更新',
],
[
'apis' => [
['description' => 'Request parameters changed, Response parameters changed', 'api' => 'ListMessageGroup'],
],
'createdAt' => '2022-12-05T02:26:37.000Z',
'description' => 'API更新。',
],
[
'apis' => [
['description' => 'Request parameters changed', 'api' => 'SendMessageToGroup'],
['description' => 'Request parameters changed', 'api' => 'SendMessageToGroupUsers'],
],
'createdAt' => '2022-12-04T11:01:18.000Z',
'description' => '更新API。',
],
[
'apis' => [
['description' => 'Request parameters changed', 'api' => 'ListMessage'],
],
'createdAt' => '2022-11-24T12:46:01.000Z',
'description' => '发布接口。',
],
[
'apis' => [
['description' => 'Request parameters changed', 'api' => 'ListMessageGroupUser'],
],
'createdAt' => '2022-11-24T09:14:29.000Z',
'description' => '修改限流值。',
],
[
'apis' => [
['description' => 'Request parameters changed', 'api' => 'ListMessageGroup'],
],
'createdAt' => '2022-10-27T06:55:06.000Z',
'description' => '新增接口',
],
[
'apis' => [
['description' => 'OpenAPI offline', 'api' => 'DescribeRTSNativeSDKPlayFailStatus'],
],
'createdAt' => '2022-10-27T02:35:07.000Z',
'description' => 'rts native 数据质量接口发布',
],
[
'apis' => [
['description' => 'OpenAPI offline', 'api' => 'GetMessageUserInfo'],
],
'createdAt' => '2022-09-29T08:17:34.000Z',
'description' => '增加获取用户信息和应用更新',
],
[
'apis' => [
['description' => 'OpenAPI offline', 'api' => 'CancelMuteAllGroupUser'],
['description' => 'Response parameters changed', 'api' => 'GetMessageGroup'],
['description' => 'Request parameters changed', 'api' => 'JoinMessageGroup'],
['description' => 'Request parameters changed', 'api' => 'LeaveMessageGroup'],
],
'createdAt' => '2022-09-27T09:18:49.000Z',
'description' => '新增IMV3-禁言点赞功能',
],
[
'apis' => [
['description' => 'Request parameters changed', 'api' => 'ListMessage'],
['description' => 'Request parameters changed', 'api' => 'ListMessage'],
],
'createdAt' => '2022-09-13T02:27:54.000Z',
'description' => '新增查询消息列表的接口。',
],
[
'apis' => [
['description' => 'OpenAPI offline', 'api' => 'CloseMessageGroup'],
['description' => 'OpenAPI offline', 'api' => 'CreateMessageGroup'],
['description' => 'OpenAPI offline', 'api' => 'DeleteMessageApp'],
['description' => 'OpenAPI offline', 'api' => 'GetMessageToken'],
['description' => 'OpenAPI offline', 'api' => 'ListMessageGroup'],
['description' => 'OpenAPI offline', 'api' => 'ListMessageGroupUser'],
['description' => 'OpenAPI offline', 'api' => 'SendMessageToGroup'],
],
'createdAt' => '2022-09-08T15:23:58.000Z',
'description' => '增加直播-互动消息能力API集合',
],
[
'apis' => [
['description' => 'OpenAPI offline', 'api' => 'DescribeMeterLiveRtcDuration'],
],
'createdAt' => '2022-09-01T02:47:32.000Z',
'description' => '一体化直播连麦接口发布',
],
[
'apis' => [
['description' => 'Error codes changed', 'api' => 'DescribeLiveDomainDetail'],
],
'createdAt' => '2022-08-31T08:14:35.000Z',
'description' => 'api治理',
],
[
'apis' => [
['description' => 'OpenAPI offline', 'api' => 'CreateLiveTranscodeTemplate'],
],
'createdAt' => '2022-08-22T13:21:24.000Z',
'description' => 'api治理',
],
[
'apis' => [
['description' => 'Error codes changed', 'api' => 'DeleteLiveLazyPullStreamInfoConfig'],
],
'createdAt' => '2022-08-17T11:23:47.000Z',
'description' => 'api治理',
],
[
'apis' => [
['description' => 'Error codes changed', 'api' => 'DeleteLiveStreamsNotifyUrlConfig'],
],
'createdAt' => '2022-08-17T09:42:51.000Z',
'description' => 'api治理',
],
[
'apis' => [
['description' => 'Error codes changed', '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' => 'ApsaraVideo Live',
'ramCodes' => ['live', 'live-interaction'],
'ramLevel' => 'RESOURCE',
'ramConditions' => [],
'ramActions' => [
[
'apiName' => 'UpdateMixStream',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateMixStream',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DeleteLiveEdgeTransfer',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveEdgeTransfer',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'CreateRTCWhipStreamAddress',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'live:CreateRTCWhipStreamAddress',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveStreamRecordIndexFile',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamRecordIndexFile',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeLiveDrmUsageData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDrmUsageData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
[
'apiName' => 'DescribeLiveDomainCertificateInfo',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainCertificateInfo',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'UpdateLiveAISubtitle',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateLiveAISubtitle',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DeleteSnapshotCallbackAuth',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteSnapshotCallbackAuth',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'EditShowAndReplace',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'live:EditShowAndReplace',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetEditingJobInfo',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:GetEditingJobInfo',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DeleteLiveSnapshotNotifyConfig',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveSnapshotNotifyConfig',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeUpPeakPublishStreamData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeUpPeakPublishStreamData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'ListLiveRealtimeLogDelivery',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:ListLiveRealtimeLogDelivery',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'CreateLiveStreamMonitor',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'live:CreateLiveStreamMonitor',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'ChangeLiveDomainResourceGroup',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'live:ChangeLiveDomainResourceGroup',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeLiveSnapshotDetectPornConfig',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveSnapshotDetectPornConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'ListMessageGroupUser',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:ListMessageGroupUser',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeLiveDomainDetail',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainDetail',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveCenterTransfer',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveCenterTransfer',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
[
'apiName' => 'DescribeLiveDomainSnapshotData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainSnapshotData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeRtcMPUEventSub',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeRtcMPUEventSub',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeMixStreamList',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeMixStreamList',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DeleteLiveStreamMonitor',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveStreamMonitor',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'AddLiveSnapshotDetectPornConfig',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddLiveSnapshotDetectPornConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveDomainLimit',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainLimit',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'SetLiveStreamPreloadTasks',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'live:SetLiveStreamPreloadTasks',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'GetAllCustomTemplates',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:GetAllCustomTemplates',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'SetLiveDomainStagingConfig',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'live:SetLiveDomainStagingConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
[
'apiName' => 'StartRtcCloudTranscode',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'live:StartRtcCloudTranscode',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveDetectPornData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDetectPornData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'AddLiveAISubtitle',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddLiveAISubtitle',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'ListRTCLiveRooms',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'live:ListRTCLiveRooms',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'StopRtcCloudRecording',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:StopRtcCloudRecording',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'ListRtcMPUTaskDetail',
'description' => '',
'operationType' => 'list',
'ramAction' => [
'action' => 'live:ListRtcMPUTaskDetail',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'QuerySnapshotCallbackAuth',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:QuerySnapshotCallbackAuth',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeStudioLayouts',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeStudioLayouts',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'ListPlaylistItems',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:ListPlaylistItems',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'HotLiveRtcStream',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'live:HotLiveRtcStream',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
[
'apiName' => 'ListLiveRealtimeLogDeliveryDomains',
'description' => '',
'operationType' => 'list',
'ramAction' => [
'action' => 'live:ListLiveRealtimeLogDeliveryDomains',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveTagResources',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveTagResources',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveDomainRealTimeTrafficData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainRealTimeTrafficData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveDomainRecordUsageData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainRecordUsageData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeLiveDetectNotifyConfig',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDetectNotifyConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveStreamDetailFrameRateAndBitRateData',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'live:DescribeLiveStreamDetailFrameRateAndBitRateData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'StopCasterScene',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'live:StopCasterScene',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'UpdateLiveStreamWatermarkRule',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateLiveStreamWatermarkRule',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'SetSnapshotCallbackAuth',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'live:SetSnapshotCallbackAuth',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeLiveRecordConfig',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveRecordConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeRtcCloudTranscode',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'live:DescribeRtcCloudTranscode',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DeleteCustomTemplate',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteCustomTemplate',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveUserDomains',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveUserDomains',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'ListLiveMessageApps',
'description' => '',
'operationType' => 'list',
'ramAction' => [
'action' => 'live:ListLiveMessageApps',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeLiveAudioAuditNotifyConfig',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveAudioAuditNotifyConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLivePullToPushList',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLivePullToPushList',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'VerifyLiveDomainOwner',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:VerifyLiveDomainOwner',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveStreamMonitorList',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamMonitorList',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeToutiaoLivePublish',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeToutiaoLivePublish',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveAIStudio',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveAIStudio',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'UnTagLiveResources',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UnTagLiveResources',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DeleteLiveAISubtitle',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveAISubtitle',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveCertificateDetail',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveCertificateDetail',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveRtcRecordUsageData',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'live:DescribeLiveRtcRecordUsageData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeLiveDomainRealTimeBpsData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainRealTimeBpsData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeUpBpsPeakData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeUpBpsPeakData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'UpdateLiveStreamWatermark',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateLiveStreamWatermark',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'ListMessageGroup',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:ListMessageGroup',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeToutiaoLivePlay',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeToutiaoLivePlay',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeLiveUserBillPrediction',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveUserBillPrediction',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveDomainFrameRateAndBitRateData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainFrameRateAndBitRateData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveUserStreamMetricData',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'live:DescribeLiveUserStreamMetricData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'AddLiveDetectNotifyConfig',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddLiveDetectNotifyConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
[
'apiName' => 'SetLiveDomainMultiStreamMaster',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'live:SetLiveDomainMultiStreamMaster',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeLiveStreamSnapshotInfo',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamSnapshotInfo',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveStreamDelayConfig',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamDelayConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'SetLiveEdgeTransfer',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'live:SetLiveEdgeTransfer',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'StartLiveStreamMonitor',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'live:StartLiveStreamMonitor',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeLiveDomainStagingConfig',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainStagingConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeLiveShiftConfigs',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveShiftConfigs',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveStreamRecordContent',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamRecordContent',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DeleteLiveRealTimeLogLogstore',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveRealTimeLogLogstore',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'UpdateRtcMPUEventSub',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateRtcMPUEventSub',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'StartLiveMPUTask',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'live:StartLiveMPUTask',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeLiveStreamCount',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamCount',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeLiveStreamsPublishList',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamsPublishList',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeUpBpsPeakOfLine',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeUpBpsPeakOfLine',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveCertificateList',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveCertificateList',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveRealtimeDeliveryAcc',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveRealtimeDeliveryAcc',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveDomainMapping',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainMapping',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DeleteLiveDomain',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveDomain',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'ListLiveRealtimeLogDeliveryInfos',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:ListLiveRealtimeLogDeliveryInfos',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'ListMessageGroupUserById',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:ListMessageGroupUserById',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'UpdateLiveAudioAuditConfig',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateLiveAudioAuditConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'SetLiveMpuTaskSei',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'live:SetLiveMpuTaskSei',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeLiveDomainConfigs',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainConfigs',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveUpVideoAudioInfo',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveUpVideoAudioInfo',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
[
'apiName' => 'DescribeLivePullStreamConfig',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLivePullStreamConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeLiveRealtimeLogAuthorized',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveRealtimeLogAuthorized',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'AddLiveStreamWatermarkRule',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddLiveStreamWatermarkRule',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'SetLiveDomainMultiStreamOptimalMode',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'live:SetLiveDomainMultiStreamOptimalMode',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DeleteLiveDetectNotifyConfig',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveDetectNotifyConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
[
'apiName' => 'DescribeLiveStreamTranscodeInfo',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamTranscodeInfo',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'UpdateLiveMPUTask',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateLiveMPUTask',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveStreamPushMetricDetailData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamPushMetricDetailData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveStreamTranscodeStreamNum',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamTranscodeStreamNum',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveDomainBpsData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainBpsData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeLivePullToPush',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLivePullToPush',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeLiveStreamRecordIndexFiles',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamRecordIndexFiles',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeLiveIpInfo',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveIpInfo',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'TagLiveResources',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'live:TagLiveResources',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveDomainPvUvData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainPvUvData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveTopDomainsByFlow',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveTopDomainsByFlow',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeLiveDomainTrafficData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainTrafficData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveStreamsControlHistory',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamsControlHistory',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeLiveStreamState',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamState',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeLiveDomainRealtimeLogDelivery',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainRealtimeLogDelivery',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'SetLiveDomainMultiStreamConfig',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'live:SetLiveDomainMultiStreamConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeDomainUsageData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeDomainUsageData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveStreamWatermarkRules',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamWatermarkRules',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveSnapshotConfig',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveSnapshotConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'ForbidLiveStream',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'live:ForbidLiveStream',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveMessageGroup',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveMessageGroup',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeLiveDomainRealTimeHttpCodeData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainRealTimeHttpCodeData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DeleteLivePullToPush',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLivePullToPush',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'CreateRoomRealTimeStreamAddress',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'live:CreateRoomRealTimeStreamAddress',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'ModifyLiveAIStudio',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'live:ModifyLiveAIStudio',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLivePushProxyLog',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLivePushProxyLog',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
[
'apiName' => 'DeleteLiveAIStudio',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveAIStudio',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveStreamsOnlineList',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamsOnlineList',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'UpdateLiveStreamMonitor',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateLiveStreamMonitor',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveDomainTimeShiftData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainTimeShiftData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DeleteLiveStreamWatermarkRule',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveStreamWatermarkRule',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeLiveStreamWatermarks',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamWatermarks',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeDomainWithIntegrity',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeDomainWithIntegrity',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeLiveEdgeTransfer',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveEdgeTransfer',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'CreateMessageGroup',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'live:CreateMessageGroup',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'CreateCustomTemplate',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'live:CreateCustomTemplate',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveStreamHistoryUserNum',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamHistoryUserNum',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'ListRtcMPUEventSubRecord',
'description' => '',
'operationType' => 'list',
'ramAction' => [
'action' => 'live:ListRtcMPUEventSubRecord',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'SetLiveStreamsNotifyUrlConfig',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'live:SetLiveStreamsNotifyUrlConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'AddTrancodeSEI',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddTrancodeSEI',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
[
'apiName' => 'DescribeRtcCloudRecordingFiles',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeRtcCloudRecordingFiles',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'GetMessageToken',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:GetMessageToken',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'AddRtsLiveStreamTranscode',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddRtsLiveStreamTranscode',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'UpdateRtcCloudRecording',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateRtcCloudRecording',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveDomainLog',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainLog',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveRecordVodConfigs',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveRecordVodConfigs',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveUserTags',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveUserTags',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveStreamsBlockList',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamsBlockList',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'SendMessageToGroup',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:SendMessageToGroup',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'StopRtcCloudTranscode',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'live:StopRtcCloudTranscode',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'UpdateLiveDelayConfig',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:UpdateLiveDelayConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
[
'apiName' => 'DescribeLiveStreamsNotifyUrlConfig',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamsNotifyUrlConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'AddLiveDomain',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddLiveDomain',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'CreateLiveAIStudio',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'live:CreateLiveAIStudio',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveRecordNotifyConfig',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveRecordNotifyConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'GetMessageGroup',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:GetMessageGroup',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveDomainOnlineUserNum',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainOnlineUserNum',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'CreateRtcMPUEventSub',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'live:CreateRtcMPUEventSub',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DeleteLiveStreamWatermark',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveStreamWatermark',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveAISubtitle',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveAISubtitle',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'QueryLiveDomainMultiStreamList',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:QueryLiveDomainMultiStreamList',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'RestartLivePullToPush',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'live:RestartLivePullToPush',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeLiveDomainPushBpsData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainPushBpsData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'ListMessage',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:ListMessage',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'UpdateLivePullToPush',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateLivePullToPush',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetCustomTemplate',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:GetCustomTemplate',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'ModifyLiveMessageUserInfo',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'live:ModifyLiveMessageUserInfo',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DeleteLiveAppSnapshotConfig',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteLiveAppSnapshotConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveDomainPushTrafficData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainPushTrafficData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'StopLivePullToPush',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'live:StopLivePullToPush',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeLiveAudioAuditConfig',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveAudioAuditConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'PublishLiveStagingConfigToProduction',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'live:PublishLiveStagingConfigToProduction',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'],
],
],
],
[
'apiName' => 'StopLiveStreamMonitor',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'live:StopLiveStreamMonitor',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeLiveLazyPullStreamConfig',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveLazyPullStreamConfig',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeLiveStreamBitRateData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveStreamBitRateData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DeleteRtcMPUEventSub',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'live:DeleteRtcMPUEventSub',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'DescribeLiveVerifyContent',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveVerifyContent',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeLiveDomainMultiStreamConfig',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainMultiStreamConfig',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'AddLiveStreamWatermark',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'live:AddLiveStreamWatermark',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'CreateLivePullToPush',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'live:CreateLivePullToPush',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'CreateLiveMessageApp',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'live:CreateLiveMessageApp',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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}'],
],
],
],
[
'apiName' => 'UpdateRtsLiveStreamTranscode',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'live:UpdateRtsLiveStreamTranscode',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'],
],
],
],
[
'apiName' => 'DescribeLiveDomainStreamTranscodeData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'live:DescribeLiveDomainStreamTranscodeData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'StartRtcCloudRecording',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'live:StartRtcCloudRecording',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'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/*'],
],
],
];