From 7347bac4ab7e136157fc94777e6cf87ef9e08599 Mon Sep 17 00:00:00 2001 From: Zhineng Li Date: Fri, 13 Feb 2026 10:54:11 +0800 Subject: first commit --- data/en_us/live/2016-11-01/api-docs.php | 77008 ++++++++++++++++++++++++++++++ 1 file changed, 77008 insertions(+) create mode 100644 data/en_us/live/2016-11-01/api-docs.php (limited to 'data/en_us/live/2016-11-01') diff --git a/data/en_us/live/2016-11-01/api-docs.php b/data/en_us/live/2016-11-01/api-docs.php new file mode 100644 index 0000000..aac1278 --- /dev/null +++ b/data/en_us/live/2016-11-01/api-docs.php @@ -0,0 +1,77008 @@ + '1.0', + 'info' => [ + 'style' => 'RPC', + 'product' => 'live', + 'version' => '2016-11-01', + ], + 'directories' => [ + [ + 'id' => 387610, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'AddLiveDomain', + 'AddLiveDomainPlayMapping', + 'DeleteLiveDomainPlayMapping', + 'AddLiveDomainMapping', + 'DeleteLiveDomain', + 'DeleteLiveDomainMapping', + 'DescribeLiveDomainMapping', + 'DescribeLiveDomainDetail', + 'DescribeLiveUserDomains', + 'StartLiveDomain', + 'StopLiveDomain', + 'DescribeLiveCertificateDetail', + 'DescribeLiveDomainCertificateInfo', + 'DescribeLiveCertificateList', + 'SetLiveDomainCertificate', + 'BatchDeleteLiveDomainConfigs', + 'BatchSetLiveDomainConfigs', + 'DescribeLiveDomainConfigs', + 'DescribeLiveDomainByCertificate', + 'DescribeLiveHttpsDomainList', + 'ModifyLiveDomainSchdmByProperty', + 'DescribeLiveUserTags', + 'VerifyLiveDomainOwner', + 'DescribeLiveVerifyContent', + 'ChangeLiveDomainResourceGroup', + ], + ], + [ + 'id' => 387636, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'SetLiveStreamPreloadTasks', + 'DescribeLiveStreamPreloadTasks', + 'HotLiveRtcStream', + ], + ], + [ + 'id' => 387640, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'AddLivePullStreamInfoConfig', + 'DescribeLivePullStreamConfig', + 'DeleteLivePullStreamInfoConfig', + 'SetLiveLazyPullStreamInfoConfig', + 'DescribeLiveLazyPullStreamConfig', + 'DeleteLiveLazyPullStreamInfoConfig', + 'UpdateLivePullStreamInfoConfig', + ], + ], + [ + 'id' => 387648, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'DescribeLiveStreamsBlockList', + 'DescribeLiveStreamsControlHistory', + 'DescribeLiveStreamBitRateData', + 'DescribeLiveStreamsOnlineList', + 'DescribeLiveStreamsPublishList', + 'ForbidLiveStream', + 'ResumeLiveStream', + 'DescribeLiveDomainOnlineUserNum', + 'DescribeLiveDomainFrameRateAndBitRateData', + 'DescribeLiveDomainLimit', + 'DescribeLiveStreamState', + ], + ], + [ + 'id' => 387660, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'DeleteLiveStreamMerge', + 'AddLiveStreamMerge', + 'DescribeLiveStreamMerge', + ], + ], + [ + 'id' => 387664, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'DeleteLiveDelayConfig', + 'UpdateLiveDelayConfig', + 'DescribeLiveDelayConfig', + 'ListLiveDelayConfig', + 'CreateLiveDelayConfig', + ], + ], + [ + 'id' => 387670, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'SetLiveStreamsNotifyUrlConfig', + 'DescribeLiveStreamsNotifyUrlConfig', + 'DeleteLiveStreamsNotifyUrlConfig', + 'DescribeLiveStreamsNotifyRecords', + ], + ], + [ + 'id' => 387675, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'DeleteLiveStreamBlock', + 'SetLiveStreamBlock', + 'DescribeStreamLocationBlock', + ], + ], + [ + 'id' => 387679, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'DescribeLiveShiftConfigs', + 'OpenLiveShift', + 'CloseLiveShift', + ], + ], + [ + 'id' => 387683, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'AddLiveStreamTranscode', + 'AddCustomLiveStreamTranscode', + 'AddRtsLiveStreamTranscode', + 'UpdateCustomLiveStreamTranscode', + 'UpdateLiveStreamTranscode', + 'UpdateRtsLiveStreamTranscode', + 'DeleteLiveStreamTranscode', + 'DescribeLiveStreamTranscodeInfo', + 'AddTrancodeSEI', + ], + ], + [ + 'id' => 387693, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'AddLiveRecordVodConfig', + 'UpdateLiveRecordVodConfig', + 'DeleteLiveRecordVodConfig', + 'DescribeLiveRecordVodConfigs', + ], + ], + [ + 'id' => 387698, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'AddLiveAppRecordConfig', + 'RealTimeRecordCommand', + 'UpdateLiveAppRecordConfig', + 'DeleteLiveAppRecordConfig', + 'DeleteLiveStreamRecordIndexFiles', + 'DescribeLiveRecordConfig', + 'DescribeLiveStreamRecordContent', + 'CreateLiveStreamRecordIndexFiles', + 'DescribeLiveStreamRecordIndexFile', + 'DescribeLiveStreamRecordIndexFiles', + 'AddLiveRecordNotifyConfig', + 'DeleteLiveRecordNotifyConfig', + 'DescribeLiveRecordNotifyConfig', + 'UpdateLiveRecordNotifyConfig', + 'DescribeLiveRecordNotifyRecords', + ], + ], + [ + 'id' => 387714, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'AddLiveAppSnapshotConfig', + 'DeleteLiveAppSnapshotConfig', + 'DeleteSnapshotFiles', + 'DescribeLiveSnapshotConfig', + 'UpdateLiveAppSnapshotConfig', + 'DescribeLiveStreamSnapshotInfo', + 'DescribeLiveSnapshotNotifyConfig', + 'DeleteLiveSnapshotNotifyConfig', + 'AddLiveSnapshotNotifyConfig', + 'UpdateLiveSnapshotNotifyConfig', + 'SetSnapshotCallbackAuth', + 'QuerySnapshotCallbackAuth', + 'DeleteSnapshotCallbackAuth', + ], + ], + [ + 'id' => 387728, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'AddLivePackageConfig', + 'UpdateLivePackageConfig', + 'DescribeLivePackageConfig', + 'DeleteLivePackageConfig', + ], + ], + [ + 'id' => 387733, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'AddLiveSnapshotDetectPornConfig', + 'AddLiveDetectNotifyConfig', + 'DescribeLiveSnapshotDetectPornConfig', + 'DescribeLiveDetectNotifyConfig', + 'UpdateLiveSnapshotDetectPornConfig', + 'UpdateLiveDetectNotifyConfig', + 'DeleteLiveSnapshotDetectPornConfig', + 'DeleteLiveDetectNotifyConfig', + 'AddLiveAudioAuditConfig', + 'AddLiveAudioAuditNotifyConfig', + 'DeleteLiveAudioAuditConfig', + 'DeleteLiveAudioAuditNotifyConfig', + 'UpdateLiveAudioAuditNotifyConfig', + 'UpdateLiveAudioAuditConfig', + 'DescribeLiveAudioAuditConfig', + 'DescribeLiveAudioAuditNotifyConfig', + ], + ], + [ + 'id' => 387750, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'CreateLivePrivateLine', + 'DeleteLivePrivateLine', + 'DescribeLivePrivateLineAreas', + 'DescribeLivePrivateLineAvailGA', + ], + ], + [ + 'id' => 387755, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'DescribeLiveStreamDelayConfig', + 'SetLiveStreamDelayConfig', + ], + ], + [ + 'id' => 387758, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'DescribeLiveDomainBpsData', + 'DescribeLiveDomainTrafficData', + 'DescribeLiveStreamTranscodeMetricData', + 'DescribeLiveCenterStreamRateData', + 'DescribeLiveDomainBpsDataByLayer', + 'DescribeLiveDomainPushBpsData', + 'DescribeLiveDomainPushTrafficData', + 'DescribeLiveStreamPushMetricDetailData', + 'DescribeLiveDomainPublishErrorCode', + 'DescribeLiveUpVideoAudioInfo', + 'DescribeLiveDomainRealTimeBpsData', + 'DescribeLiveDomainRealTimeTrafficData', + 'DescribeLiveDomainRealTimeHttpCodeData', + 'DescribeLiveStreamHistoryUserNum', + 'DescribeLiveStreamCount', + 'DescribeLiveStreamTranscodeStreamNum', + 'DescribeLiveDomainPvUvData', + 'DescribeLiveTopDomainsByFlow', + 'DescribeLiveStreamsTotalCount', + 'DescribeLiveStreamMetricDetailData', + 'DescribeLiveStreamDetailFrameRateAndBitRateData', + 'DescribeLiveUserStreamMetricData', + ], + ], + [ + 'id' => 387781, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'DescribeLiveDomainRecordUsageData', + 'DescribeLiveDomainSnapshotData', + 'DescribeLiveDetectPornData', + 'DescribeDomainUsageData', + 'DescribeLivePushProxyUsageData', + 'DescribeLiveRealtimeDeliveryAcc', + 'DescribeLiveDomainTimeShiftData', + 'DescribeLiveDomainStreamTranscodeData', + 'DescribeLiveProducerUsageData', + 'DescribeLiveDomainMonitoringUsageData', + 'DescribeLiveDelayedStreamingUsage', + 'DescribeLiveGrtnDuration', + 'DescribeMeterLiveBypassDuration', + 'DescribeLiveDrmUsageData', + 'DescribeLiveRtcRecordUsageData', + ], + ], + [ + 'id' => 387797, + 'title' => null, + 'type' => 'directory', + 'children' => [ + [ + 'id' => 387798, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'CreateCaster', + 'SetCasterConfig', + 'DescribeCasterConfig', + 'DescribeCasters', + 'DescribeCasterStreamUrl', + 'CopyCaster', + 'StartCaster', + 'StopCaster', + 'DeleteCaster', + 'RestartCaster', + 'UpdateCasterResourceGroup', + ], + ], + [ + 'id' => 387810, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'AddCasterVideoResource', + 'DeleteCasterVideoResource', + 'ModifyCasterVideoResource', + 'DescribeCasterVideoResources', + ], + ], + [ + 'id' => 387815, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'AddCasterLayout', + 'DeleteCasterLayout', + 'ModifyCasterLayout', + 'DescribeCasterLayouts', + ], + ], + [ + 'id' => 387820, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'AddCasterComponent', + 'DeleteCasterComponent', + 'ModifyCasterComponent', + 'DescribeCasterComponents', + ], + ], + [ + 'id' => 387825, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'CopyCasterSceneConfig', + 'DeleteCasterSceneConfig', + 'UpdateCasterSceneConfig', + 'SetCasterSceneConfig', + 'DescribeCasterScenes', + 'UpdateCasterSceneAudio', + 'DescribeCasterSceneAudio', + 'StartCasterScene', + 'StopCasterScene', + ], + ], + [ + 'id' => 387835, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'SetCasterChannel', + 'DescribeCasterChannels', + ], + ], + [ + 'id' => 387838, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'EffectCasterUrgent', + 'EffectCasterVideoResource', + ], + ], + [ + 'id' => 387841, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'AddShowIntoShowList', + 'RemoveShowFromShowList', + 'ModifyShowList', + 'DescribeShowList', + 'PlayChoosenShow', + 'InitializeAutoShowListTask', + 'DescribeAutoShowListTasks', + 'EditShowAndReplace', + 'GetEditingJobInfo', + 'SetShowListBackground', + ], + ], + [ + 'id' => 387852, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'AddStudioLayout', + 'DeleteStudioLayout', + 'ModifyStudioLayout', + 'DescribeStudioLayouts', + ], + ], + [ + 'id' => 387857, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'AddCasterEpisode', + 'DeleteCasterEpisode', + 'ModifyCasterEpisode', + 'AddCasterEpisodeGroup', + 'DeleteCasterEpisodeGroup', + 'AddCasterEpisodeGroupContent', + 'AddCasterProgram', + 'DescribeCasterProgram', + 'ModifyCasterProgram', + 'DeleteCasterProgram', + 'AddPlaylistItems', + 'DeletePlaylistItems', + 'ListPlaylistItems', + 'EditPlaylist', + 'DeletePlaylist', + 'ListPlaylist', + 'StartPlaylist', + 'StopPlaylist', + ], + ], + ], + ], + [ + 'id' => 387876, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'CreateMixStream', + 'UpdateMixStream', + 'DescribeMixStreamList', + 'DeleteMixStream', + 'CreateCustomTemplate', + 'DeleteCustomTemplate', + 'GetCustomTemplate', + 'GetAllCustomTemplates', + ], + ], + [ + 'id' => 387885, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'AddLiveStreamWatermark', + 'DeleteLiveStreamWatermark', + 'UpdateLiveStreamWatermark', + 'DynamicUpdateWaterMarkStreamRule', + 'DescribeLiveStreamWatermarks', + 'AddLiveStreamWatermarkRule', + 'DeleteLiveStreamWatermarkRule', + 'UpdateLiveStreamWatermarkRule', + 'DescribeLiveStreamWatermarkRules', + ], + ], + [ + 'id' => 387895, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'ListEdgeTranscodeTemplate', + 'GetEdgeTranscodeTemplate', + 'CreateEdgeTranscodeJob', + 'DeleteEdgeTranscodeJob', + 'ListEdgeTranscodeJob', + 'GetEdgeTranscodeJob', + 'UpdateEdgeTranscodeJob', + 'StartEdgeTranscodeJob', + 'StopEdgeTranscodeJob', + ], + ], + [ + 'id' => 387905, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'EnableLiveRealtimeLogDelivery', + 'DisableLiveRealtimeLogDelivery', + 'ModifyLiveRealtimeLogDelivery', + 'CreateLiveRealTimeLogDelivery', + 'DeleteLiveRealtimeLogDelivery', + 'DescribeLiveDomainRealtimeLogDelivery', + 'ListLiveRealtimeLogDelivery', + 'ListLiveRealtimeLogDeliveryDomains', + 'ListLiveRealtimeLogDeliveryInfos', + 'DescribeLivePushProxyLog', + 'DeleteLiveRealTimeLogLogstore', + 'DescribeLiveDomainLog', + ], + ], + [ + 'id' => 387918, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'CreateLiveStreamMonitor', + 'UpdateLiveStreamMonitor', + 'DescribeLiveStreamMonitorList', + 'StartLiveStreamMonitor', + 'StopLiveStreamMonitor', + 'DeleteLiveStreamMonitor', + ], + ], + [ + 'id' => 387925, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'GetMessageToken', + 'CreateMessageApp', + 'UpdateMessageApp', + 'ListMessageApp', + 'GetMessageApp', + 'QueryMessageApp', + 'DeleteMessageApp', + 'CreateMessageGroup', + 'UpdateMessageGroup', + 'ListMessageGroupUser', + 'ListMessageGroup', + 'GetMessageGroup', + 'JoinMessageGroup', + 'MuteAllGroupUser', + 'MuteGroupUser', + 'CancelMuteGroupUser', + 'CancelMuteAllGroupUser', + 'LeaveMessageGroup', + 'SendLike', + 'SendMessageToGroup', + 'SendMessageToGroupUsers', + 'ListMessage', + 'ListMessageGroupUserById', + 'BatchGetOnlineUsers', + 'ListMuteGroupUser', + ], + ], + [ + 'id' => 387951, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'CreateLiveMessageApp', + 'CreateLiveMessageGroup', + 'DescribeLiveMessageGroup', + 'ModifyLiveMessageGroup', + 'DeleteLiveMessageGroup', + 'ListLiveMessageGroups', + 'ListLiveMessageGroupByPage', + 'ModifyLiveMessageGroupBand', + 'DescribeLiveMessageGroupBand', + 'CheckLiveMessageUsersOnline', + 'CheckLiveMessageUsersInGroup', + 'ListLiveMessageGroupUsers', + 'ListLiveMessageGroupMessages', + 'UnbanLiveMessageGroup', + 'RecoverLiveMessageDeletedGroup', + 'BanLiveMessageGroup', + 'AddLiveMessageGroupBand', + 'RemoveLiveMessageGroupBand', + 'DeleteLiveMessageGroupMessage', + 'DeleteLiveMessageUserMessage', + 'SendLiveMessageGroup', + 'SendLiveMessageUser', + 'ListLiveMessageApps', + 'DescribeLiveMessageApp', + 'ModifyLiveMessageAppDisable', + 'ModifyLiveMessageAppAudit', + 'ModifyLiveMessageAppCallback', + 'KickLiveMessageGroupUser', + 'ModifyLiveMessageUserInfo', + ], + ], + [ + 'id' => 387981, + 'title' => null, + 'type' => 'directory', + 'children' => [ + [ + 'id' => 387982, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'StartRtcCloudRecording', + 'UpdateRtcCloudRecording', + 'StopRtcCloudRecording', + 'DescribeRtcCloudRecordingFiles', + ], + ], + [ + 'id' => 387987, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'DescribeChannelParticipants', + 'DescribeChannelUsers', + 'RemoveTerminals', + 'CreateRTCWhipStreamAddress', + 'CreateRoomRealTimeStreamAddress', + 'DeleteChannel', + 'ListRTCLiveRooms', + ], + ], + [ + 'id' => 387995, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'StartLiveMPUTask', + 'UpdateLiveMPUTask', + 'StopLiveMPUTask', + 'ListRtcMPUTaskDetail', + 'SetLiveMpuTaskSei', + ], + ], + [ + 'id' => 388001, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'CreateEventSub', + 'ListEventSub', + 'ListEventSubEvent', + 'UpdateEventSub', + 'DeleteEventSub', + 'CreateRtcMPUEventSub', + 'UpdateRtcMPUEventSub', + 'DeleteRtcMPUEventSub', + 'DescribeRtcMPUEventSub', + 'ListRtcMPUEventSubRecord', + ], + ], + [ + 'id' => 388012, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'DescribeLiveInteractionMetricData', + ], + ], + [ + 'id' => 388014, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'CreateRtcAsrTask', + 'QueryRtcAsrTasks', + 'StopRtcAsrTask', + 'DeleteRtcAsrTask', + ], + ], + ], + ], + [ + 'id' => 388019, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'DeleteLiveAIProduceRules', + 'DescribeLiveAIProduceRules', + 'UpdateLiveAIProduceRules', + 'AddLiveAIProduceRules', + 'AddLiveAISubtitle', + 'DeleteLiveAISubtitle', + 'UpdateLiveAISubtitle', + 'DescribeLiveAISubtitle', + ], + ], + [ + 'id' => 388028, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'CreateLiveAIStudio', + 'DeleteLiveAIStudio', + 'ModifyLiveAIStudio', + 'DescribeLiveAIStudio', + ], + ], + [ + 'id' => 388033, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'CreateLivePullToPush', + 'UpdateLivePullToPush', + 'DeleteLivePullToPush', + 'DescribeLivePullToPush', + 'DescribeLivePullToPushList', + 'StopLivePullToPush', + 'RestartLivePullToPush', + ], + ], + [ + 'id' => 388041, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'SetLiveDomainMultiStreamConfig', + 'SetLiveDomainMultiStreamOptimalMode', + 'SetLiveDomainMultiStreamMaster', + 'DescribeLiveDomainMultiStreamConfig', + 'QueryLiveDomainMultiStreamList', + ], + ], + [ + 'id' => 388047, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'DescribeLiveDomainStagingConfig', + 'PublishLiveStagingConfigToProduction', + 'RollbackLiveStagingConfig', + 'SetLiveDomainStagingConfig', + 'DeleteLiveSpecificStagingConfig', + ], + ], + [ + 'id' => 388053, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'DescribeLiveIpInfo', + 'DescribeLiveStreamAuthChecking', + ], + ], + [ + 'id' => 388056, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'TagLiveResources', + 'UnTagLiveResources', + 'ListLiveTagResources', + 'DescribeLiveTagResources', + ], + ], + [ + 'id' => 388061, + 'title' => null, + 'type' => 'directory', + 'children' => [ + [ + 'id' => 388062, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'AddLiveCenterTransfer', + 'UpdateLiveCenterTransfer', + 'DescribeLiveCenterTransfer', + 'DeleteLiveCenterTransfer', + ], + ], + [ + 'id' => 388067, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'DescribeLiveEdgeTransfer', + 'DeleteLiveEdgeTransfer', + 'SetLiveEdgeTransfer', + ], + ], + 'DescribeLiveUserBillPrediction', + 'DescribeRTSNativeSDKFirstFrameCost', + 'DescribeRTSNativeSDKPlayTime', + 'DescribeRTSNativeSDKPlayFailStatus', + 'DescribeRTSNativeSDKFirstFrameDelay', + 'DescribeRTSNativeSDKVvData', + 'DescribeLiveRealtimeLogAuthorized', + 'DescribeUpBpsPeakData', + 'DescribeUpBpsPeakOfLine', + 'DescribeUpPeakPublishStreamData', + 'DescribeDomainWithIntegrity', + 'DescribeToutiaoLivePlay', + 'DescribeToutiaoLivePublish', + 'DescribeRtcCloudTranscode', + 'StartRtcCloudTranscode', + 'StopRtcCloudTranscode', + ], + ], + ], + 'components' => [ + 'schemas' => [], + ], + 'apis' => [ + '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" + .'* **liveEdge**: ingest domain. This value is required if you set the DomainName parameter to an ingest domain.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'liveVideo', + 'enum' => [ + 'liveVideo', + 'liveEdge', + 'liveGrtnPub', + 'liveGrtnSub', + ], + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'example.aliyundoc.com', + ], + ], + [ + 'name' => 'Region', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the domain name resides. Valid values:'."\n" + ."\n" + .'* **cn-beijing**: China (Beijing)'."\n" + .'* **cn-shanghai**: China (Shanghai)'."\n" + .'* **cn-shenzhen**: China (Shenzhen)'."\n" + .'* **cn-qingdao**: China (Qingdao)'."\n" + .'* **ap-southeast-1**: Singapore'."\n" + .'* **eu-central-1**: Germany (Frankfurt)'."\n" + .'* **ap-northeast-1**: Japan (Tokyo)'."\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.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-beijing', + ], + ], + [ + 'name' => 'CheckUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The URL that is used for health checks.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'http://demo.aliyundoc.com/status.html', + ], + ], + [ + '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" + .'* **overseas**: outside mainland China.'."\n" + .'* **global**: regions in and outside mainland China.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'domestic', + ], + ], + [ + 'name' => 'TopLevelDomain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The top-level domain name.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'learn.aliyundoc.com', + ], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'title' => '', + 'description' => 'The ID of the resource group. For more information about resource groups, see [Resource groups](~~2381067~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-aekzw******', + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tag.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The key of the tag.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestKey', + ], + 'Value' => [ + 'description' => 'The value of the tag.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestValue'."\n", + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 21, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidDomainName.Malformed', + 'errorMessage' => 'Specified DomainName is malformed.', + ], + [ + 'errorCode' => 'InvalidRegion.Malformed', + 'errorMessage' => 'Specified Region is malformed.', + ], + [ + 'errorCode' => 'InvalidSource.Content.Malformed', + 'errorMessage' => 'Specified source content is malformed.', + ], + [ + 'errorCode' => 'InvalidTypeContent.Mismatch', + 'errorMessage' => 'Specified source type does not math the specified source content.', + ], + [ + 'errorCode' => 'MissingSource.Content', + 'errorMessage' => 'Specified source content is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingSource.Type', + 'errorMessage' => 'Specified source type is mandatory for this action.', + ], + [ + 'errorCode' => 'InvalidSource.Type.Malformed', + 'errorMessage' => 'Specified source type is malformed.', + ], + [ + 'errorCode' => 'InvalidSource.Priority.Malformed', + 'errorMessage' => 'Specified source priority is malformed.', + ], + [ + 'errorCode' => 'InvalidScope.Malformed', + 'errorMessage' => 'Specified Scope is malformed.', + ], + [ + 'errorCode' => 'SourceIp.Exceed', + 'errorMessage' => 'The Certificate you provided is malformed!', + ], + [ + 'errorCode' => 'InvalidCertificate', + 'errorMessage' => 'The Certificate you provided is malformed!', + ], + [ + 'errorCode' => 'InvalidCertificate.TooLong', + 'errorMessage' => 'The Certificate you provided is over the max length!', + ], + [ + 'errorCode' => 'InnerAddDomainDenied', + 'errorMessage' => 'Your account haven\'t bind aoneId, can not add domain.', + ], + [ + 'errorCode' => 'CheckSourceHealthFailed', + 'errorMessage' => 'sources ip or source domain check health failed,please input right source.', + ], + [ + 'errorCode' => 'ExtensiveAndAllBothExist', + 'errorMessage' => 'Extensive domain and the domain begins with \'all.\' can not exist at the same time.', + ], + [ + 'errorCode' => 'CdnTypeNotSupportExtensiveDomain', + 'errorMessage' => 'Extensive domain not supported for this cdn type.', + ], + [ + 'errorCode' => 'ExtensiveAndSpecificDomainConflict', + 'errorMessage' => 'Extensive domain and corresponding specific domain are mutually exclusive.', + ], + [ + 'errorCode' => 'InvalidDomainNameLevel', + 'errorMessage' => 'Domain name suffixed with alicdn.com only support third level.', + ], + [ + 'errorCode' => 'TopLevelDomain.NotFound', + 'errorMessage' => 'TopLevelDomain is not exist.', + ], + [ + 'errorCode' => 'EntityNotExists.ResourceGroup', + 'errorMessage' => 'The resource group does not exist.', + ], + [ + 'errorCode' => 'InvalidStatus.ResourceGroup', + 'errorMessage' => 'It\'s now allowed to do this operation because of the current status of resource-group.', + ], + [ + 'errorCode' => 'NotInternationRealIdentity', + 'errorMessage' => 'You need to do real name authentication when you use Chinese mainland resources.', + ], + [ + 'errorCode' => 'RecordCheckNotAvailable', + 'errorMessage' => 'Please try again later.', + ], + [ + 'errorCode' => 'IcpBlack', + 'errorMessage' => 'The domain is on the ICP blacklist.', + ], + [ + 'errorCode' => 'IspBlack', + 'errorMessage' => 'The domain is on the ISP blacklist.', + ], + [ + 'errorCode' => 'DomainNotRecordedAliyun', + 'errorMessage' => 'The domain not access Ali Cloud for the record please access.', + ], + [ + 'errorCode' => 'Abs.CheckUrl.Malformed', + 'errorMessage' => 'The CheckUrl you provided is malformed!', + ], + [ + 'errorCode' => 'DomainOwnerVerifyFail', + 'errorMessage' => 'Owner verification of the root domain failed.', + ], + [ + 'errorCode' => 'TopLevelDomain.Mismatch', + 'errorMessage' => 'The specified TopLevelDomain does not match webSiteType.', + ], + [ + 'errorCode' => 'InvalidResourceGroupId.Malformed', + 'errorMessage' => 'Specified ResourceGroupId is malformed.', + ], + [ + 'errorCode' => 'DomainReserved', + 'errorMessage' => 'The root domain of your domain is reserved by another account.', + ], + [ + 'errorCode' => 'ExceedLimit', + 'errorMessage' => 'The number of domains has exceeded the limit.', + ], + [ + 'errorCode' => 'LockFail', + 'errorMessage' => 'Domain has been occupied.', + ], + ], + 403 => [ + [ + 'errorCode' => 'AccountException', + 'errorMessage' => 'Account exception. Please open ticket to make an appeal.', + ], + [ + 'errorCode' => 'EntityNotExist.ResourceGroup', + 'errorMessage' => 'The resource group does not exist.', + ], + ], + [ + [ + 'errorCode' => 'InvalidUser', + 'errorMessage' => 'The user\'s account is invalid.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":"{\\n\\t\\"Code\\":\\"InternalError\\",\\n\\t\\"HostId\\":\\"live.aliyuncs.com\\",\\n\\t\\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n\\t\\"RequestId\\":\\"6EBD1AC4-C34D-4BE1-963E-B688A228BE31\\"\\n}\\n"},{"type":"xml","example":"\\r\\n\\r\\n\\t15C66C7B-671A-4297-9187-2C4477247A74\\r\\n","errorExample":"{\\n\\t\\"RequestId\\":\\"15C66C7B-671A-4297-9187-2C4477247A74\\"\\n}\\n"}]', + 'title' => 'AddLiveDomain', + 'description' => '* You must activate ApsaraVideo Live before you add a domain name. For more information, see [Activate ApsaraVideo Live](~~195292~~).'."\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" + .'* 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" + .'* 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" + .'* 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.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'translator' => 'machine', + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'PlayDomain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The sub-streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.aliyundoc.com', + ], + ], + [ + 'name' => 'PullDomain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => 'Parameter invalid.', + ], + [ + 'errorCode' => 'ConfigAlreadyExists', + 'errorMessage' => 'Config has already exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]', + 'title' => 'AddLiveDomainPlayMapping', + 'description' => 'You can call the [AddLiveDomain](~~88327~~) operation to add a main streaming domain and a sub-streaming domain and then call this operation to map the sub-streaming domain to the main streaming domain.'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'PlayDomain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The sub-streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.aliyundoc.com', + ], + ], + [ + 'name' => 'PullDomain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + 'description' => '', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\r\\n","errorExample":""}]', + 'title' => 'DeleteLiveDomainPlayMapping', + 'description' => 'Before you call this operation, make sure that the mapping between the main streaming domain and the sub-streaming domain is created. For more information about how to call an operation to create the mapping between a main streaming domain and a sub-streaming domain, see [AddLiveDomainPlayMapping](~~173091~~).'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'AddLiveDomainMapping' => [ + 'summary' => 'Creates the mapping between a streaming domain and an ingest domain.', + '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**.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo.aliyundoc.com', + ], + ], + [ + 'name' => 'PullDomain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain. The type of the domain name is **liveVideo**.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidPushDomain', + 'errorMessage' => 'The PushDomain should be liveEdge type.', + ], + [ + 'errorCode' => 'InvalidPullDomain', + 'errorMessage' => 'The PullDomain should be liveVideo type.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\", \\n}"}]', + 'title' => 'AddLiveDomainMapping', + '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~~).'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteLiveDomain' => [ + 'summary' => 'Removes a domain name from ApsaraVideo Live.', + '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 domain or streaming domain that you want to delete.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo.aliyundoc.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '94E3559F-7B6A-4A5E-AFFD-44E2A208A249', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidDomainName.Malformed', + 'errorMessage' => 'The specific value of parameter DomainName is malformed.', + ], + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'Delete live region parameters have error.', + ], + [ + 'errorCode' => 'InvalidOperation', + 'errorMessage' => 'Delete domain until configure compete.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"94E3559F-7B6A-4A5E-AFFD-44E2A208A249\\"\\n}","type":"json"}]', + 'title' => 'DeleteLiveDomain', + 'description' => '* After you successfully call the DeleteLiveDomain operation, all records of the specified domain name are deleted. Exercise caution when you perform this operation.'."\n" + .'* We recommend that you restore to an A record for the domain name at the DNS provider before you remove the domain name. Otherwise, the domain name may become inaccessible. If your domain name is registered with 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) and navigate to the **Domain Name Resolution** page. Find the domain name and then click **DNS Settings** in the Actions column. On the page that appears, change the CNAME record to an A record. If your domain name is registered with another DNS provider, configure similar settings on the platform of that DNS provider.'."\n" + .'* If you want to only suspend the use of the domain name, we recommend that you call the [StopLiveDomain](~~88329~~) operation.'."\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~~).'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + '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**.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo.aliyundoc.com', + ], + ], + [ + 'name' => 'PullDomain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain. The type of the domain name is **liveVideo**.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidPushDomain', + 'errorMessage' => 'The PushDomain should be liveEdge type.', + ], + [ + 'errorCode' => 'InvalidPullDomain', + 'errorMessage' => 'The PullDomain should be liveVideo type.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\", \\n}"}]', + 'title' => '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~~).'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLiveDomainMapping' => [ + 'summary' => 'Queries the mappings of an ingest domain, a main streaming domain, or a sub-streaming domain.', + 'methods' => [ + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'systemTags' => [ + 'operationType' => 'get', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The domain name for which you want to query the mappings. The following types of domain names are supported:'."\n" + ."\n" + .'* Ingest domain'."\n" + .'* Main streaming domain'."\n" + .'* Sub-streaming domain'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F6CD8', + ], + 'LiveDomainModels' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LiveDomainModel' => [ + 'description' => 'The mappings of the queried domain name.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The mapping information.'."\n", + 'type' => 'object', + 'properties' => [ + 'Type' => [ + 'description' => 'The type of the queried domain name. Valid values:'."\n" + ."\n" + .'* **vhost**: main streaming domain'."\n" + .'* **publish**: ingest domain'."\n" + .'* **play**: sub-streaming domain'."\n", + 'type' => 'string', + 'example' => 'play', + ], + 'DomainName' => [ + 'description' => 'The domain name to which the queried domain name is mapped.'."\n", + 'type' => 'string', + 'example' => 'example.aliyundoc.com', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F6CD8\\",\\n \\"LiveDomainModels\\": {\\n \\"LiveDomainModel\\": [\\n {\\n \\"Type\\": \\"play\\",\\n \\"DomainName\\": \\"example.aliyundoc.com\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F6CD8\\n \\n play\\n example.aliyundoc.com\\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveDomainMapping', + 'description' => 'Obtain the ingest domain, main streaming domain, or sub-streaming domain, and then call this operation to query the mappings of the domain name.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 500 times per minute 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' => ' ', + ], + 'DescribeLiveDomainDetail' => [ + 'summary' => 'Queries the basic information about a domain name.', + '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 streaming domain or ingest domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo.aliyundoc.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'DomainDetail' => [ + 'description' => 'The configuration details of the domain name.'."\n", + 'type' => 'object', + 'properties' => [ + 'CertName' => [ + 'description' => 'The name of the certificate.'."\n", + 'type' => 'string', + 'example' => 'liveCert****', + ], + 'Cname' => [ + 'description' => 'The CNAME that is assigned to the domain name. You must add a CNAME record in the system of your Domain Name System (DNS) service provider to map the domain name to the CNAME.'."\n" + ."\n" + .'> A time-to-live (TTL) value is specified in the CNAME record of a domain name to indicate how long the CNAME record can be cached on the DNS resolver. If you modify the CNAME record of the domain name, the new settings take effect after the cache expires, which takes about 10 minutes. For more information, see [CNAME resolution](~~362010~~).'."\n", + 'type' => 'string', + 'example' => 'learn.developer.aliyundoc.com', + ], + 'Description' => [ + 'description' => 'The description of the domain name.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'DomainName' => [ + 'description' => 'The streaming domain or ingest domain.'."\n", + 'type' => 'string', + 'example' => 'demo.aliyundoc.com', + ], + 'DomainStatus' => [ + 'description' => 'The status of the domain name. Valid values:'."\n" + ."\n" + .'* **online**: The domain name is enabled.'."\n" + .'* **offline**: The domain name is disabled.'."\n" + .'* **configuring**: The domain is being configured.'."\n", + 'type' => 'string', + 'example' => 'online', + ], + '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' => '2018-07-27T06:51:25Z', + ], + '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' => '2018-08-07T06:51Z', + ], + 'LiveDomainType' => [ + 'description' => 'The type of the domain name. Valid values:'."\n" + ."\n" + .'* **liveVideo**: streaming domain'."\n" + .'* **liveEdge**: ingest domain'."\n", + 'type' => 'string', + 'example' => 'liveVideo', + ], + 'Region' => [ + 'description' => 'The ID of the region where the domain name resides.'."\n", + 'type' => 'string', + 'example' => 'cn-shanghai', + ], + 'SSLProtocol' => [ + 'description' => 'Indicates whether the SSL certificate is enabled. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'SSLPub' => [ + 'description' => 'The public key of the certificate.'."\n", + 'type' => 'string', + 'example' => 'Public Key', + ], + 'Scope' => [ + 'description' => 'The acceleration region. Valid values:'."\n" + ."\n" + .'* **domestic**: regions in the Chinese mainland.'."\n" + .'* **overseas**: regions outside the Chinese mainland.'."\n" + .'* **global**: regions in and outside the Chinese mainland.'."\n", + 'type' => 'string', + 'example' => 'domestic', + ], + 'ResourceGroupId' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'example' => 'rg-aek2ogvt4nwmi7i', + ], + ], + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '09ABE829-6CD3-4FE0-AFEE-556113E29727', + ], + ], + 'description' => '', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DomainDetail\\": {\\n \\"CertName\\": \\"liveCert****\\",\\n \\"Cname\\": \\"learn.developer.aliyundoc.com\\",\\n \\"Description\\": \\"test\\",\\n \\"DomainName\\": \\"demo.aliyundoc.com\\",\\n \\"DomainStatus\\": \\"online\\",\\n \\"GmtCreated\\": \\"2018-07-27T06:51:25Z\\",\\n \\"GmtModified\\": \\"2018-08-07T06:51Z\\",\\n \\"LiveDomainType\\": \\"liveVideo\\",\\n \\"Region\\": \\"cn-shanghai\\",\\n \\"SSLProtocol\\": \\"on\\",\\n \\"SSLPub\\": \\"Public Key\\",\\n \\"Scope\\": \\"domestic\\",\\n \\"ResourceGroupId\\": \\"rg-**k3bpq2yjw22**\\"\\n },\\n \\"RequestId\\": \\"09ABE829-6CD3-4FE0-AFEE-556113E29727\\"\\n}","type":"json"}]', + 'title' => 'DescribeLiveDomainDetail', + 'description' => '## [](#)Usage notes'."\n" + ."\n" + .'You can call this operation to query the basic information about an ingest domain or a streaming domain. If you want to query a newly added domain name, wait a few minutes until the configuration of the domain name is completed in ApsaraVideo Live.'."\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~~).'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLiveUserDomains' => [ + 'summary' => 'Queries domain names of ApsaraVideo Live in your Alibaba Cloud account.', + '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', + ], + ], + [ + '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', + ], + ], + [ + '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', + ], + ], + [ + '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', + ], + ], + [ + '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', + ], + ], + [ + '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', + ], + ], + [ + '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', + ], + ], + [ + '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', + ], + 'Value' => [ + 'description' => 'The value of the tag.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestValue', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 20, + ], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-aek2egyoep3jp7a', + ], + ], + ], + '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', + ], + 'Description' => [ + 'description' => 'The description.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'DomainName' => [ + 'description' => 'The domain name.'."\n", + 'type' => 'string', + 'example' => 'demo.aliyundoc.com', + ], + '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', + ], + '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', + ], + 'LiveDomainStatus' => [ + 'description' => 'The status of the domain name. Valid values:'."\n" + ."\n" + .'* **online**'."\n" + .'* **offline**'."\n" + .'* **configuring**'."\n", + 'type' => 'string', + 'example' => 'online', + ], + 'LiveDomainType' => [ + 'description' => 'The type of the domain name. Valid values:'."\n" + ."\n" + .'* **liveVideo**: streaming domain'."\n" + .'* **liveEdge**: ingest domain'."\n", + 'type' => 'string', + 'example' => 'liveVideo', + ], + 'RegionName' => [ + 'description' => 'The ID of the region in which the domain name resides.'."\n", + 'type' => 'string', + 'example' => 'cn-beijing', + ], + 'ResourceGroupId' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'example' => 'rg-aekzvyjetyjjmla', + ], + ], + ], + ], + ], + ], + 'PageNumber' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'PageSize' => [ + 'description' => 'The number of entries per page.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '100', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'E4EBD2BF-5EB0-4476-8829-9D94E1B15267', + ], + 'TotalCount' => [ + 'description' => 'The total number of entries.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidPageNumber.ValueNotSupported', + 'errorMessage' => 'The specified value of parameter PageNumber is not supported.', + ], + [ + 'errorCode' => 'InvalidPageSize.ValueNotSupported', + 'errorMessage' => 'The specified value of parameter PageSize is not supported.', + ], + [ + 'errorCode' => 'InvalidDomainStatus.ValueNotSupported', + 'errorMessage' => 'The specified value of parameter DomainStatus is not supported.', + ], + [ + 'errorCode' => 'InvalidDomainName.Malformed', + 'errorMessage' => 'The specific value of parameter DomainName is malformed.', + ], + [ + 'errorCode' => 'InvalidDomainSearchType.ValueNotSupported', + 'errorMessage' => 'The specified value of parameter DomainSearchType is not supported.', + ], + [ + 'errorCode' => 'InvalidDomainSearchType.Malformed', + 'errorMessage' => 'he specified value of parameter DomainSearchType is invalid.', + ], + [ + 'errorCode' => 'InvalidLiveDomainType.ValueNotSupported', + 'errorMessage' => 'The specified value of parameter LiveDomainType is not supported.', + ], + ], + ], + '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' => ' ', + ], + 'StartLiveDomain' => [ + 'summary' => 'Enables a disabled domain name. After the domain name is enabled, its status changes to online.', + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo.aliyundoc.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'RecordCheckNotAvailable', + 'errorMessage' => 'Please try again later.', + ], + [ + 'errorCode' => 'IcpBlack', + 'errorMessage' => 'The domain is on the ICP blacklist.', + ], + [ + 'errorCode' => 'IspBlack', + 'errorMessage' => 'The domain is on the ISP blacklist.', + ], + [ + 'errorCode' => 'DomainNotRecordedAliyun', + 'errorMessage' => 'The domain not access Ali Cloud for the record please access.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","type":"json"}]', + 'title' => 'StartLiveDomain', + 'description' => 'This operation does not work if the Alibaba Cloud account to which the domain name belongs has overdue payments or the domain name is invalid.'."\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.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'StopLiveDomain' => [ + 'summary' => 'Disables an enabled domain name. After the domain name is disabled, its status changes to offline.', + '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 streaming domain or ingest domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo.aliyundoc.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '324AEFFF-308C-4DA7-8CD3-01B277B98F28', + ], + ], + 'description' => '', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"324AEFFF-308C-4DA7-8CD3-01B277B98F28\\"\\n}","type":"json"}]', + 'title' => 'StopLiveDomain', + 'description' => 'After you disable a domain name, the information about the domain name is retained. ApsaraVideo Live automatically reroutes all requests that are destined for the domain name to the origin.'."\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.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLiveCertificateDetail' => [ + 'summary' => 'Queries the details of a certificate.', + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'Cert-****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'CertName' => [ + 'description' => 'The name of the certificate.'."\n", + 'type' => 'string', + 'example' => 'Cert-****', + ], + 'Cert' => [ + 'description' => 'The content of the certificate.'."\n", + 'type' => 'string', + 'example' => '-----BEGIN CERTIFICATE-----****-----END CERTIFICATE-----', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'C7C69682-7F88-40DD-A198-10D0309E439B', + ], + 'CertId' => [ + 'description' => 'The ID of the certificate.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '23451111', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 404 => [ + [ + 'errorCode' => 'CertNameNotFound', + 'errorMessage' => 'The cert name is not found.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CertName\\": \\"Cert-****\\",\\n \\"Cert\\": \\"-----BEGIN CERTIFICATE-----****-----END CERTIFICATE-----\\",\\n \\"RequestId\\": \\"C7C69682-7F88-40DD-A198-10D0309E439B\\",\\n \\"CertId\\": 23451111\\n}","errorExample":""},{"type":"xml","example":"\\n\\nC7C69682-7F88-40DD-A198-10D0309E439B\\n23451111\\nCert-****\\n-----BEGIN CERTIFICATE-----****-----END CERTIFICATE-----\\n","errorExample":"{\\n \\"CertId\\": xxx,\\n \\"RequestId\\": \\"C7C69682-7F88-40DD-A198-10D0309E439B\\",\\n \\"CertName\\": \\"证书名称\\",\\n \\"Cert\\": \\"-----BEGIN CERTIFICATE-----xxx-----END CERTIFICATE-----\\"\\n}"}]', + 'title' => 'DescribeLiveCertificateDetail', + 'description' => 'You can obtain the certificate name on the [Certificates](~~2584962~~) page of the ApsaraVideo Live console and then call this operation to query the certificate details.'."\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~~).'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLiveDomainCertificateInfo' => [ + 'summary' => 'Queries certificate information about a domain name.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain or ingest domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5C1E43DC-9E51-4771-82C0-7D5ECEB547A1', + ], + 'CertInfos' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'CertInfo' => [ + 'description' => 'The certificate information.'."\n", + '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" + .'* **checking**: The system is checking whether the domain name is mapped to the CNAME that is assigned by ApsaraVideo Live.'."\n" + .'* **cname_error**: The domain name is not mapped to the CNAME that is assigned by ApsaraVideo Live.'."\n" + .'* **domain_invalid**: The domain name contains invalid characters.'."\n" + .'* **unsupport_wildcard**: The domain name is a wildcard domain name, which is not supported.'."\n" + .'* **applying**: The certificate is in the application progress.'."\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. If the certificate is not a free certificate for testing, an empty value is returned.'."\n", + 'type' => 'string', + 'example' => 'success', + ], + 'CertLife' => [ + 'description' => 'The validity period of the certificate.'."\n" + ."\n" + .'* If the validity period is greater than 12 months, XX years XX months is displayed. For example, 2 years 3 months indicates that the validity period is 2 years and 3 months.'."\n" + .'* If the validity period is less than 12 months, XX months is displayed. For example, 3 months indicates that the validity period is 3 months.'."\n", + 'type' => 'string', + 'example' => '3 months', + ], + '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.'."\n", + 'type' => 'string', + 'example' => '2018-06-03T22:03:39Z', + ], + 'SSLPub' => [ + 'description' => 'The public key of the certificate.'."\n", + 'type' => 'string', + 'example' => 'yourSSLPub', + ], + 'SSLProtocol' => [ + 'description' => 'The status of HTTPS. Valid values:'."\n" + ."\n" + .'* **on**: HTTPS is enabled.'."\n" + .'* **off**: HTTPS is disabled.'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'CertType' => [ + 'description' => 'The type of the certificate. Valid values:'."\n" + ."\n" + .'* **free**: a free certificate (for testing)'."\n" + .'* **cas**: a certificate that is purchased from Certificate Management Service'."\n" + .'* **upload**: a custom certificate that you uploaded'."\n", + 'type' => 'string', + 'example' => 'cas', + ], + 'CertDomainName' => [ + 'description' => 'The streaming domain or ingest domain that matches the certificate.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'CertName' => [ + 'description' => 'The name of the certificate.'."\n", + 'type' => 'string', + 'example' => 'Cert-****', + ], + 'CertOrg' => [ + 'description' => 'The certificate authority (CA) that issued the certificate.'."\n", + 'type' => 'string', + 'example' => 'Let\'s Encrypt', + ], + 'DomainName' => [ + 'description' => 'The streaming domain or ingest domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5C1E43DC-9E51-4771-82C0-7D5ECEB547A1\\",\\n \\"CertInfos\\": {\\n \\"CertInfo\\": [\\n {\\n \\"Status\\": \\"success\\",\\n \\"CertLife\\": \\"3 months\\",\\n \\"CertExpireTime\\": \\"2018-06-03T22:03:39Z\\",\\n \\"SSLPub\\": \\"yourSSLPub\\",\\n \\"SSLProtocol\\": \\"on\\",\\n \\"CertType\\": \\"cas\\",\\n \\"CertDomainName\\": \\"example.com\\",\\n \\"CertName\\": \\"Cert-****\\",\\n \\"CertOrg\\": \\"Let\'s Encrypt\\",\\n \\"DomainName\\": \\"example.com\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\n \\n success\\n 3 months\\n example.com\\n yourSSLPub\\n Let\'s Encrypt\\n example.com\\n cas\\n 2018-06-03T22:03:39Z\\n Cert-****\\n on\\n \\n\\n5C1E43DC-9E51-4771-82C0-7D5ECEB547A1\\n","errorExample":""}]', + 'title' => 'DescribeLiveDomainCertificateInfo', + 'description' => 'Obtain a domain name, and then call this operation to query certificate information about the domain name.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + ], + '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 (,).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'demo.aliyundoc.com,example.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + 'CertificateListModel' => [ + 'description' => 'The details.'."\n", + 'type' => 'object', + 'properties' => [ + 'Count' => [ + 'description' => 'The number of certificates.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '2', + ], + 'CertList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Cert' => [ + 'description' => 'The certificates.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the certificate.'."\n", + 'type' => 'object', + 'properties' => [ + 'LastTime' => [ + 'description' => 'The time when the certificate was issued. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1512388659', + ], + 'Fingerprint' => [ + 'description' => 'The fingerprint of the certificate.'."\n", + 'type' => 'string', + 'example' => '****', + ], + 'CertName' => [ + 'description' => 'The name of the certificate.'."\n", + 'type' => 'string', + 'example' => 'Cert-****', + ], + 'Issuer' => [ + 'description' => 'The certificate authority (CA) that issued the certificate.'."\n", + 'type' => 'string', + 'example' => '*****', + ], + 'CertId' => [ + 'description' => 'The ID of the certificate.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '123456', + ], + 'Common' => [ + 'description' => 'The Common Name (CN) attribute of the certificate.'."\n", + 'type' => 'string', + 'example' => 'example.net', + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"CertificateListModel\\": {\\n \\"Count\\": 2,\\n \\"CertList\\": {\\n \\"Cert\\": [\\n {\\n \\"LastTime\\": 1512388659,\\n \\"Fingerprint\\": \\"****\\",\\n \\"CertName\\": \\"Cert-****\\",\\n \\"Issuer\\": \\"*****\\",\\n \\"CertId\\": 123456,\\n \\"Common\\": \\"example.net\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\n 2\\n \\n \\n ****\\n *****\\n 123456\\n Cert-****\\n 1512388659\\n example.net\\n \\n \\n\\n","errorExample":""}]', + 'title' => '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.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'SetLiveDomainCertificate' => [ + 'summary' => 'Enables or disables the certificate of a domain name, and modifies the 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 domain name that is secured by the certificate. The domain name uses `HTTPS`-based acceleration.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'developer.aliyundoc.com', + ], + ], + [ + 'name' => 'CertName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The certificate name.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Cert-****', + ], + ], + [ + 'name' => 'CertType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The certificate type. Valid values:'."\n" + ."\n" + .'* **upload**: a custom certificate'."\n" + .'* **cas**: a certificate that is purchased from Certificate Management Service'."\n" + .'* **free**: a free certificate (for testing)'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'free', + 'enum' => [ + 'free', + 'cas', + 'upload', + ], + ], + ], + [ + 'name' => 'SSLProtocol', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable the HTTPS certificate. Valid values:'."\n" + ."\n" + .'* **on**. If you set this parameter to **on**, you must also specify the SSLPub and SSLPri parameters.'."\n" + .'* **off**. This is the default value.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'off', + ], + ], + [ + 'name' => 'SSLPub', + 'in' => 'query', + 'schema' => [ + 'description' => 'The public key.'."\n" + ."\n" + .'> This parameter is required only if you set the SSLProtocol parameter to on.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '****', + ], + ], + [ + 'name' => 'SSLPri', + 'in' => 'query', + 'schema' => [ + 'description' => 'The private key.'."\n" + ."\n" + .'> This parameter is required only if you set the SSLProtocol parameter to on.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '****', + ], + ], + [ + 'name' => 'ForceSet', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to check the certificate name for duplicates. A value of 1 indicates that the system does not perform the check and overwrites the information about the certificate that has the same name. Set the value to **1**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidSSLProtocol.ValueNotSupported', + 'errorMessage' => 'The specified value of parameter SSLProtocol is not supported.', + ], + [ + 'errorCode' => 'SSLPub.MissingParameter', + 'errorMessage' => 'An input parameter "SSLPub" that is mandatory for processing the request is not supplied.', + ], + [ + 'errorCode' => 'SSLPri.MissingParameter', + 'errorMessage' => 'An input parameter "SSLPri" that is mandatory for processing the request is not supplied.', + ], + [ + 'errorCode' => 'InvalidSSLPub', + 'errorMessage' => 'The SSLPub you provided is malformed!', + ], + [ + 'errorCode' => 'InvalidSSLPri', + 'errorMessage' => 'The SSLPri you provided is malformed!', + ], + [ + 'errorCode' => 'Certificate.MissMatch', + 'errorMessage' => 'The SSLPri does not math the specified Certificate!', + ], + [ + 'errorCode' => 'InvalidCertificate.TooLong', + 'errorMessage' => 'The Certificate you provided is over the max length!', + ], + [ + 'errorCode' => 'InvalidCertName.TooLong', + 'errorMessage' => 'The Certificate name you provided is over the max length 128!', + ], + [ + 'errorCode' => 'IllegalOperationDomain', + 'errorMessage' => 'You are not authorized to operate the domain.', + ], + [ + 'errorCode' => 'Certificate.NotPermittedOff', + 'errorMessage' => 'Turn off certificate will change domain scheduling, please contact customer service', + ], + [ + 'errorCode' => 'Certificate.SettedNotEffect', + 'errorMessage' => 'Certificate was successfully setted but does\'t take effect for protecting current service, please contact customer service', + ], + [ + 'errorCode' => 'Certificate.NotFind', + 'errorMessage' => 'Not find the certificate info.', + ], + [ + 'errorCode' => 'AuthenticationFailed', + 'errorMessage' => 'Authentication failed.', + ], + [ + 'errorCode' => 'SetDomainCertificate.ParameterError', + 'errorMessage' => 'Parameters have error.', + ], + [ + 'errorCode' => 'InvalidSSLPubOrInvalidSSLPri', + 'errorMessage' => 'The SSLPri or SSLPub you provided is malformed!', + ], + [ + 'errorCode' => 'Certificate.StatusError', + 'errorMessage' => 'Certificate is not exist or its status is error.', + ], + [ + 'errorCode' => 'DeleteFailed', + 'errorMessage' => 'Delete certificate is failed.', + ], + [ + 'errorCode' => 'Certificate.Duplicated', + 'errorMessage' => 'The certificate name is duplicated.', + ], + [ + 'errorCode' => 'Certificate.FormatError', + 'errorMessage' => 'The certificate format is error.', + ], + [ + 'errorCode' => 'Certificate.KeyNull', + 'errorMessage' => 'The private key is not null.', + ], + [ + 'errorCode' => 'Key.Malformed', + 'errorMessage' => 'The private key format is error.', + ], + [ + 'errorCode' => 'CertStorage.failed', + 'errorMessage' => 'The certificate storage failed.', + ], + [ + 'errorCode' => 'CertificateContent.Duplicated', + 'errorMessage' => 'The certificate is already uploaded, please don\'t upload again.', + ], + [ + 'errorCode' => 'Certificate.Expired', + 'errorMessage' => 'The certificate is expired.', + ], + [ + 'errorCode' => 'InvalidDomain.notOnline', + 'errorMessage' => 'The domain is not online, please check the domain status and try again later.', + ], + [ + 'errorCode' => 'Decode.Error', + 'errorMessage' => 'The certificate sslpub or sslpri decode error.', + ], + [ + 'errorCode' => 'sslPub.Error', + 'errorMessage' => 'The SSLPub encoded failed.', + ], + [ + 'errorCode' => 'sslPri.Error', + 'errorMessage' => 'The SSLPri encoded failed.', + ], + [ + 'errorCode' => 'DomainInSafeMode', + 'errorMessage' => 'This domain is in the safe mode. if you want to do this operation, please contact us!', + ], + [ + 'errorCode' => 'DomainInProtectedMode', + 'errorMessage' => 'This domain is in the protected mode. if you want to do this operation, please contact us!', + ], + [ + 'errorCode' => 'FunctionMutex', + 'errorMessage' => 'Function is mutex with other function.', + ], + [ + 'errorCode' => 'DomainOffline', + 'errorMessage' => 'The domain is not online, please check the domain status and try again later.', + ], + ], + 403 => [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => 'Illegal domain operate is not permitted.', + ], + ], + [ + [ + 'errorCode' => 'CertName.MissingParameter', + 'errorMessage' => 'The CertName parameter is required.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}"}]', + 'title' => 'SetLiveDomainCertificate', + 'description' => 'Obtain the domain name, and then call this operation to enable or disable the certificate of a domain name and modify the certificate information.'."\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.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + '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 (,).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo.aliyundoc.com,example.aliyundoc.com,example.com', + ], + ], + [ + '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**.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'referer_white_list_set,ip_black_list_set', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Invalid%s.ValueNotSupported', + 'errorMessage' => 'FunctionName [%s] is not supported.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","type":"json"}]', + '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.'."\n", + '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' => ' ', + ], + 'BatchSetLiveDomainConfigs' => [ + 'summary' => 'Configures multiple domain names at a time.', + '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 (,).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo.aliyundoc.com,example.aliyundoc.com,example.com', + ], + ], + [ + '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**.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => ' [{"functionArgs":[{"argName":"file_type","argValue":"jpg"},{"argName":"ttl","argValue":"18"},{"argName":"weight","argValue":"30"}],"functionName":"filetype_based_ttl_set","configId":506***}]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidFunctions.Malformed', + 'errorMessage' => 'Specified Functions is malformed.', + ], + [ + 'errorCode' => 'InvalidFunctionArgs.Malformed', + 'errorMessage' => 'The specified FunctionArgs is invalid.', + ], + [ + 'errorCode' => 'InvalidArgValue.Malformed', + 'errorMessage' => 'Specified ArgValue is malformed.', + ], + [ + 'errorCode' => 'Invalid%s.ValueNotSupported', + 'errorMessage' => 'FunctionName [%s] is not supported.', + ], + [ + 'errorCode' => 'Invalid%s.Malformed', + 'errorMessage' => 'ArgValue [%s] is malformed.', + ], + [ + 'errorCode' => 'MissingParameter%s', + 'errorMessage' => 'The specified value of ArgName[%s] is missing.', + ], + [ + 'errorCode' => 'FunctionMutex', + 'errorMessage' => 'Function is mutex with other function.', + ], + [ + 'errorCode' => 'RewriteHostRely', + 'errorMessage' => 'Domain name is configured as rewrite host by others.', + ], + [ + 'errorCode' => 'ConfigurationConflicts', + 'errorMessage' => 'The staging environment has a configuration in effect and cannot modify the production environment configuration.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t04F0F334-1335-436C-A1D7-6C044FE73368\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}"}]', + 'title' => 'BatchSetLiveDomainConfigs', + '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.'."\n", + '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**.|', + 'responseParamsDescription' => ' ', + ], + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo.aliyundoc.com', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'set_req_host_header,set_hashkey_args', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED', + ], + 'DomainConfigs' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DomainConfig' => [ + 'description' => 'The configurations of the domain name.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => [ + 'description' => 'The configuration status. Valid values:'."\n" + ."\n" + .'* **success**'."\n" + .'* **testing**'."\n" + .'* **failed**'."\n" + .'* **configuring**'."\n", + 'type' => 'string', + 'example' => 'success', + ], + 'ConfigId' => [ + 'description' => 'The configuration ID.'."\n", + 'type' => 'string', + 'example' => '5003576', + ], + 'FunctionName' => [ + 'description' => 'The name of the feature.'."\n", + 'type' => 'string', + 'example' => 'set_req_host_header', + ], + 'FunctionArgs' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'FunctionArg' => [ + 'description' => 'The attributes of the feature.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ArgName' => [ + 'description' => 'The name of the attribute.'."\n", + 'type' => 'string', + 'example' => 'domain_name', + ], + 'ArgValue' => [ + 'description' => 'The attribute value.'."\n", + 'type' => 'string', + 'example' => 'developer.aliyundoc.com', + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Invalid%s.ValueNotSupported', + 'errorMessage' => 'FunctionName [%s] is not supported.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidUser', + 'errorMessage' => 'The user\'s account is invalid.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED\\",\\n \\"DomainConfigs\\": {\\n \\"DomainConfig\\": [\\n {\\n \\"Status\\": \\"success\\",\\n \\"ConfigId\\": \\"5003576\\",\\n \\"FunctionName\\": \\"set_req_host_header\\",\\n \\"FunctionArgs\\": {\\n \\"FunctionArg\\": [\\n {\\n \\"ArgName\\": \\"domain_name\\",\\n \\"ArgValue\\": \\"developer.aliyundoc.com\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\nF8AA0364-0FDB-4AD5-AC74-D69FAB8924ED\\n\\n \\n success\\n set_req_host_header\\n 5003576\\n \\n \\n developer.aliyundoc.com\\n domain_name\\n \\n \\n \\n\\n","errorExample":"{\\n \\"RequestId\\": \\"F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED\\",\\n \\"DomainConfigs\\": {\\n \\"DomainConfig\\": [\\n { \\n \\"Status\\": \\"success\\",\\n \\"FunctionArgs\\": {\\n \\"FunctionArg\\": [\\n {\\n \\"ArgName\\": \\"domain_name\\",\\n \\"ArgValue\\": \\"testscdn3.cdnpe.com\\"\\n }\\n ]\\n },\\n \\"ConfigId\\": 5003576,\\n \\"FunctionName\\": \\"set_req_host_header\\"\\n },\\n {\\n \\"FunctionArgs\\": {\\n \\"Status\\": \\"success\\",\\n \\"FunctionArg\\": [\\n {\\n \\"ArgName\\": \\"file_type\\",\\n \\"ArgValue\\": \\"txt\\"\\n },\\n {\\n \\"ArgName\\": \\"ttl\\",\\n \\"ArgValue\\": \\"13\\"\\n },\\n {\\n \\"ArgName\\": \\"weight\\",\\n \\"ArgValue\\": \\"8\\"\\n }\\n ]\\n },\\n \\"ConfigId\\": 5068995,\\n \\"FunctionName\\": \\"filetype_based_ttl_set\\"\\n }\\n ]\\n }\\n}"}]', + 'title' => '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.'."\n", + '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' => ' ', + ], + 'DescribeLiveDomainByCertificate' => [ + 'summary' => 'Queries the accelerated domain names that match a certificate.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '191820', + 'abilityTreeNodes' => [ + 'FEATUREliveG4SX14', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'SSLPub', + 'in' => 'query', + 'schema' => [ + 'description' => 'The public key of the SSL certificate. You must Base64-encode the public key before you invoke the encodeURIComponent function to encode a URI component. The public key must be in the PEM format.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '******', + ], + ], + [ + 'name' => 'SSLStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to return only domain names with HTTPS enabled or disabled.'."\n" + ."\n" + .'* **true**: returns only domain names with HTTPS enabled.'."\n" + .'* **false**: The rule is disabled.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The returned results.'."\n", + 'type' => 'object', + 'properties' => [ + 'CertInfos' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'CertInfo' => [ + 'description' => 'The information about the certificate.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'CertCaIsLegacy' => [ + 'description' => 'Indicates whether the SSL certificate is obsolete. Valid values:'."\n" + ."\n" + .'* **yes**'."\n" + .'* **no**'."\n", + 'type' => 'string', + 'example' => 'yes', + ], + 'CertExpireTime' => [ + 'description' => 'The time at which the certificate expires.'."\n", + 'type' => 'string', + 'example' => 'Nov 29 00:00:00 2016 GMT', + ], + 'CertExpired' => [ + 'description' => 'Indicates whether the SSL certificate is expired. Valid values:'."\n" + ."\n" + .'* **yes**'."\n" + .'* **no**'."\n", + 'type' => 'string', + 'example' => 'yes', + ], + 'CertStartTime' => [ + 'description' => 'The effective time of the certificate.'."\n", + 'type' => 'string', + 'example' => 'Nov 29 23:59:59 2017 GMT', + ], + 'CertSubjectCommonName' => [ + 'description' => 'The name of the SSL certificate owner.'."\n", + 'type' => 'string', + 'example' => 'owner', + ], + 'CertType' => [ + 'description' => 'The type of the certificate. Valid values: **RSA**, **DSA**, and **ECDSA**.'."\n", + 'type' => 'string', + 'example' => 'RSA', + ], + 'DomainList' => [ + 'description' => 'The list of domain names. If a value is returned, the value matches the SSL certificate. Multiple domain names are separated by commas (,).'."\n", + 'type' => 'string', + 'example' => 'example.com,aliyundoc.com', + ], + 'DomainNames' => [ + 'description' => 'The domain names (DNS fields) that match the SSL certificate. Multiple domain names are separated by commas (,).'."\n", + 'type' => 'string', + 'example' => '*.example.com,aliyundoc.com', + ], + 'Issuer' => [ + 'description' => 'The certificate authority (CA) that issued the SSL certificate.'."\n", + 'type' => 'string', + 'example' => 'C=US, O=Symantec Corporation, OU=Symantec Trust Network, OU=Domain Validated SSL, CN=Symantec Basic DV SSL CA - G1', + ], + ], + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'ASAF2FDS-12SADSA-DDSAE3D-DSADCD4C-CDADS2D', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Certificate.FormatError', + 'errorMessage' => 'The format of the certificate is invalid.', + ], + [ + 'errorCode' => 'SSLPub.MissingParameter', + 'errorMessage' => 'The Cert parameter is required.', + ], + [ + 'errorCode' => 'Decode.Error', + 'errorMessage' => 'Error decoding the SSLPub certificate.', + ], + [ + 'errorCode' => 'Certificate.DecodeError', + 'errorMessage' => 'An error occurred while decoding the certificate.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CertInfos\\": {\\n \\"CertInfo\\": [\\n {\\n \\"CertCaIsLegacy\\": \\"yes\\",\\n \\"CertExpireTime\\": \\"Nov 29 00:00:00 2016 GMT\\",\\n \\"CertExpired\\": \\"yes\\",\\n \\"CertStartTime\\": \\"Nov 29 23:59:59 2017 GMT\\",\\n \\"CertSubjectCommonName\\": \\"owner\\",\\n \\"CertType\\": \\"RSA\\",\\n \\"DomainList\\": \\"example.com,aliyundoc.com\\",\\n \\"DomainNames\\": \\"*.example.com,aliyundoc.com\\",\\n \\"Issuer\\": \\"C=US, O=Symantec Corporation, OU=Symantec Trust Network, OU=Domain Validated SSL, CN=Symantec Basic DV SSL CA - G1\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"ASAF2FDS-12SADSA-DDSAE3D-DSADCD4C-CDADS2D\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ASAF2FDS-12SADSA-DDSAE3D-DSADCD4C-CDADS2D\\n \\n Nov 29 00:00:00 2016 GMT\\n Nov 29 23:59:59 2017 GMT\\n RSA\\n owner\\n yes\\n *.example.com,aliyundoc.com\\n yes\\n C=US, O=Symantec Corporation, OU=Symantec Trust Network, OU=Domain Validated SSL, CN=Symantec Basic DV SSL CA - G1\\n example.com,aliyundoc.com\\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveDomainByCertificate', + 'description' => 'You can call this operation to query the accelerated domain names that match a certificate.'."\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", + ], + 'DescribeLiveHttpsDomainList' => [ + 'summary' => 'Queries the information about all certificates that you have configured.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '191821', + 'abilityTreeNodes' => [ + 'FEATUREliveG4SX14', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Valid values: **1 to 10000**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '5', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: **20**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '20', + 'default' => '20', + ], + ], + [ + 'name' => 'Keyword', + 'in' => 'query', + 'schema' => [ + 'description' => 'The accelerated domain name.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'demo.aliyun.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'CertInfos' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'CertInfo' => [ + 'description' => 'The information about the certificates.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'CertCommonName' => [ + 'description' => 'The primary domain name of the certificate.'."\n", + 'type' => 'string', + 'example' => 'example.org', + ], + 'CertExpireTime' => [ + 'description' => 'The time when the certificate expires.'."\n", + 'type' => 'string', + 'example' => '2018-12-26 14:45:09', + ], + 'CertName' => [ + 'description' => 'The name of the certificate.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'CertStartTime' => [ + 'description' => 'The time when the certificate became effective.'."\n", + 'type' => 'string', + 'example' => '2018-11-26 14:45:09', + ], + 'CertStatus' => [ + 'description' => 'The status of the certificate. Valid values:'."\n" + ."\n" + .'* **ok**: The certificate is working as expected.'."\n" + .'* **mismatch**: The certificate does not match the specified domain name.'."\n" + .'* **expired**: The certificate has expired.'."\n" + .'* **expire_soon**: The certificate will expire soon.'."\n", + 'type' => 'string', + 'example' => 'mismatch', + ], + 'CertType' => [ + 'description' => 'The type of the certificate. Valid values:'."\n" + ."\n" + .'* **cas**: a certificate that you purchased from Certificate Management Service'."\n" + .'* **upload**: a custom certificate that you uploaded'."\n", + 'type' => 'string', + 'example' => 'cas', + ], + 'CertUpdateTime' => [ + 'description' => 'The time when the certificate was updated.'."\n", + 'type' => 'string', + 'example' => '2019-01-08 18:33:16', + ], + 'DomainName' => [ + 'description' => 'The accelerated domain name.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + ], + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'F5E8DF64-7175-4186-9B06-F002C0BBD0C5', + ], + 'TotalCount' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '16', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'NoHttpsDomain', + 'errorMessage' => 'Your account doesn\'t have https domain.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CertInfos\\": {\\n \\"CertInfo\\": [\\n {\\n \\"CertCommonName\\": \\"example.org\\",\\n \\"CertExpireTime\\": \\"2018-12-26 14:45:09\\",\\n \\"CertName\\": \\"test\\",\\n \\"CertStartTime\\": \\"2018-11-26 14:45:09\\",\\n \\"CertStatus\\": \\"mismatch\\",\\n \\"CertType\\": \\"cas\\",\\n \\"CertUpdateTime\\": \\"2019-01-08 18:33:16\\",\\n \\"DomainName\\": \\"example.com\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"F5E8DF64-7175-4186-9B06-F002C0BBD0C5\\",\\n \\"TotalCount\\": 16\\n}","errorExample":""},{"type":"xml","example":"\\n 16\\n F5E8DF64-7175-4186-9B06-F002C0BBD0C5\\n \\n 2018-11-26 14:45:09\\n 2018-12-26 14:45:09\\n 2019-01-08 18:33:16\\n cas\\n test\\n mismatch\\n example.com\\n example.org\\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveHttpsDomainList', + 'description' => 'You can call this operation to query the information about all certificates that you have configured.'."\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", + ], + 'ModifyLiveDomainSchdmByProperty' => [ + 'summary' => 'Modifies the acceleration region of a domain name.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The domain name for which you want to modify the acceleration region.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'Property', + 'in' => 'query', + 'schema' => [ + 'description' => 'The acceleration region that you want to set. {"coverage":"overseas"} specifies regions outside the Chinese mainland. Valid values of coverage:'."\n" + ."\n" + .'* domestic: regions in the Chinese mainland.'."\n" + .'* overseas: regions outside the Chinese mainland.'."\n" + .'* global: regions in and outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '{"coverage":"global"}', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '15C66C7B-671A-4297-9187-2C4477247A74', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Schedule.NotFound', + 'errorMessage' => 'there is no schedule domain found by the targeted coverage value', + ], + [ + 'errorCode' => 'DomainTraffic.ExceedThreshold', + 'errorMessage' => 'not allowed to do this operation because the last day traffic exceeds the threshold', + ], + [ + 'errorCode' => 'Domain.BeianInvalid', + 'errorMessage' => 'not allowed to do this operation because the domain registration record invalid in China main land', + ], + [ + 'errorCode' => 'Schedule.ChangeFail', + 'errorMessage' => 'change domain failed', + ], + [ + 'errorCode' => 'LockFail', + 'errorMessage' => 'The domain name is being used by another operation, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"15C66C7B-671A-4297-9187-2C4477247A74\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 15C66C7B-671A-4297-9187-2C4477247A74\\n","errorExample":""}]', + 'title' => 'ModifyLiveDomainSchdmByProperty', + 'description' => '### [](#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", + ], + 'DescribeLiveUserTags' => [ + 'summary' => '获取直播用户标签', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREliveG4SX14', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '6B0256B6-2442-5BEF-B8D6-A0C28A801DFC', + ], + 'Tags' => [ + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tags.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The key of the tag.', + 'type' => 'string', + 'example' => 'key1', + ], + 'Value' => [ + 'description' => 'The value of the tag.', + 'type' => 'array', + 'items' => [ + 'description' => 'The value of the tag.', + 'type' => 'string', + 'example' => 'value1', + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"6B0256B6-2442-5BEF-B8D6-A0C28A801DFC\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"key1\\",\\n \\"Value\\": [\\n \\"value1\\"\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 6B0256B6-2442-5BEF-B8D6-A0C28A801DFC\\n \\n key1\\n value1\\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveUserTags', + ], + 'VerifyLiveDomainOwner' => [ + 'summary' => 'Verifies the ownership of a domain name.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The domain name for which you want to verify the ownership. You can specify only one domain name in each request.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'VerifyType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The verification method. Valid values:'."\n" + ."\n" + .'* dnsCheck: DNS record verification'."\n" + .'* fileCheck: file verification'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'dnsCheck', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Content' => [ + 'description' => 'The verification information.'."\n", + 'type' => 'string', + 'example' => 'verify_dffeb6610035dcb77b413******', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '1BA6D7CE-55F1-5926-8764-F8663473AD0D', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'DomainOwnerVerifyFail', + 'errorMessage' => 'Owner verification of the root domain failed.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": \\"verify_dffeb6610035dcb77b413******\\",\\n \\"RequestId\\": \\"1BA6D7CE-55F1-5926-8764-F8663473AD0D\\"\\n}","errorExample":""},{"type":"xml","example":"\\n verify_dffeb6610035dcb77b413******\\n 1BA6D7CE-55F1-5926-8764-F8663473AD0D\\n","errorExample":""}]', + 'title' => 'VerifyLiveDomainOwner', + 'description' => '### [](#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. For more information, see [QPS limits](~~343507~~).'."\n", + ], + 'DescribeLiveVerifyContent' => [ + 'summary' => 'Queries the ownership verification content 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' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The domain name. You can specify only one domain name.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Content' => [ + 'description' => 'The verification content.'."\n", + 'type' => 'string', + 'example' => 'verify_dffeb6610035dcb77b413******', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Content\\": \\"verify_dffeb6610035dcb77b413******\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","type":"json"}]', + 'title' => 'DescribeLiveVerifyContent', + 'description' => '## [](#)Usage notes'."\n" + ."\n" + .'* You can call this operation to query the ownership verification content of a single domain name.'."\n" + .'* You can call this operation up to 30 times per second per account.'."\n" + .'* When you call this operation, you need to specify a domain name as a request parameter.'."\n" + .'* After a successful call, the verification content and request ID are returned, which can be used for subsequent operations.'."\n", + ], + 'ChangeLiveDomainResourceGroup' => [ + 'summary' => 'Changes the resource group to which a domain name belongs. In this case, you move the domain name from the original resource group to another 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', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ingest domain or streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'NewResourceGroupId', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => 'The ID of the resource group to which the domain name is moved.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'rg-****ke6uuxw****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '******8F-F82F-10E2-BAE1-A036FD******', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'LiveServiceNotFound', + 'errorMessage' => 'Your account does not open Live service yet', + ], + [ + 'errorCode' => 'LockFail', + 'errorMessage' => 'Domain has been occupied.', + ], + ], + 403 => [ + [ + 'errorCode' => 'EntityNotExist.ResourceGroup', + 'errorMessage' => 'The resource group does not exist.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"******8F-F82F-10E2-BAE1-A036FD******\\"\\n}","type":"json"}]', + '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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + ], + 'SetLiveStreamPreloadTasks' => [ + 'summary' => 'Configures a prefetch task. You can specify multiple URLs to prefetch at a time.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain name.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'PlayUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming URL. You can specify up to 100 streaming URLs in a request. Separate multiple streaming URLs with commas (,).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'rtmp://guide.aliyundoc.com/liveApp****/liveStream****', + ], + ], + [ + 'name' => 'Area', + 'in' => 'query', + 'schema' => [ + 'description' => 'The acceleration region where you want to prefetch the live content. Valid values:'."\n" + ."\n" + .'* domestic: regions in the Chinese mainland.'."\n" + .'* overseas: regions outside the Chinese mainland.'."\n" + .'* global: regions in and outside the Chinese mainland.'."\n" + ."\n" + .'If you do not specify this parameter, the acceleration region configured for the domain name is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'domestic', + 'enum' => [ + 'domestic', + 'overseas', + 'global', + ], + ], + ], + [ + 'name' => 'PreloadedStartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The start time of the prefetch task. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC. Example: 2016-06-29T19:00:00Z. If you do not specify this parameter, the prefetch task runs for 1 hour by default.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2016-06-29T19:00:00Z', + ], + ], + [ + 'name' => 'PreloadedEndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end time of the prefetch task. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC. Example: 2016-06-30T19:00:00Z. The interval between the start time and end time cannot exceed 6 hours.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2016-06-30T19:00:00Z', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'FailedURL' => [ + 'description' => 'The number of URLs for which the prefetch task configuration failed.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'PreloadTasksMessages' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'PreloadTasksMessage' => [ + 'description' => 'The details of the prefetch task.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Description' => [ + 'description' => 'Indicates whether the prefetch task is successful. Valid values:'."\n" + ."\n" + .'* Successfully'."\n" + .'* InternalError'."\n", + 'type' => 'string', + 'example' => 'Successfully', + ], + 'PlayUrl' => [ + 'description' => 'The streaming URL.'."\n", + 'type' => 'string', + 'example' => 'rtmp://guide.aliyundoc.com/liveApp****/liveStream****', + ], + 'TaskId' => [ + 'description' => 'The ID of the prefetch task.'."\n", + 'type' => 'string', + 'example' => 'yourTaskId', + ], + ], + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '36E0E523-E0C6-5D95-A465-A8EA2DCBA2A5', + ], + 'Status' => [ + 'description' => 'The status of the prefetch task. Valid values:'."\n" + ."\n" + .'* Success'."\n" + .'* Failed'."\n" + ."\n" + .'> Success is returned only if the prefetch task is configured for all specified streaming URLs.'."\n", + 'type' => 'string', + 'example' => 'Success', + ], + 'SuccessURL' => [ + 'description' => 'The number of URLs for which the prefetch task is successfully configured.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'TotalURL' => [ + 'description' => 'The total number of URLs.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => 'Parameter invalid.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified end time does not match the specified start time.', + ], + [ + 'errorCode' => 'Duration.Exceed', + 'errorMessage' => 'Duration between StartTime and EndTime is too long.', + ], + [ + 'errorCode' => 'QuotaExceeded.PreloadTaskslimit', + 'errorMessage' => 'Exceed max task count limit', + ], + [ + 'errorCode' => 'NoSpecialConfiguration', + 'errorMessage' => 'no special configuration for domain name.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"FailedURL\\": 0,\\n \\"PreloadTasksMessages\\": {\\n \\"PreloadTasksMessage\\": [\\n {\\n \\"Description\\": \\"Successfully\\",\\n \\"PlayUrl\\": \\"rtmp://guide.aliyundoc.com/liveApp****/liveStream****\\",\\n \\"TaskId\\": \\"yourTaskId\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"36E0E523-E0C6-5D95-A465-A8EA2DCBA2A5\\",\\n \\"Status\\": \\"Success\\",\\n \\"SuccessURL\\": 1,\\n \\"TotalURL\\": 1\\n}","errorExample":""},{"type":"xml","example":"\\n 0\\n \\n Successfully\\n rtmp://guide.aliyundoc.com/liveApp****/liveStream****\\n yourTaskId\\n \\n 36E0E523-E0C6-5D95-A465-A8EA2DCBA2A5\\n Success\\n 1\\n 1\\n","errorExample":""}]', + 'title' => 'SetLiveStreamPreloadTasks', + 'description' => '* You can call this operation to specify multiple URLs to prefetch at a time. You can specify up to 100 URLs in a request.'."\n" + .'* URLs in the HTTP Live Steaming (HLS) format are not supported.'."\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", + ], + 'DescribeLiveStreamPreloadTasks' => [ + 'summary' => 'Queries prefetch tasks in the last three days.', + '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', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain name.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'TaskId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the prefetch task. The task ID is returned when you call the [SetLiveStreamPreloadTasks](~~2519938~~) operation to configure the prefetch task.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'yourTaskId', + ], + ], + [ + 'name' => 'PlayUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming URL. You can specify up to 100 streaming URLs in a request. Separate multiple streaming URLs with commas (,).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rtmp://guide.aliyundoc.com/liveApp****/liveStream****', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Valid values: 1 to 100.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + 'default' => '20', + ], + ], + [ + 'name' => 'PageNum', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: 1.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'Status', + 'in' => 'query', + 'schema' => [ + 'description' => 'The status of the prefetch task. Valid values:'."\n" + ."\n" + .'* complete'."\n" + .'* pending'."\n" + .'* preloading'."\n" + .'* failed'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'complete', + 'enum' => [ + 'complete', + 'pending', + 'preloading', + 'failed', + ], + ], + ], + [ + '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. Example: 2016-06-29T19:00:00Z. You can query only data in the previous three days.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2016-06-29T19:00:00Z', + ], + ], + [ + '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. Example: 2016-06-30T19:00:00Z. The interval between the start time and end time cannot exceed three days.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2016-06-30T19:00:00Z', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'PageNum' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'PageSize' => [ + 'description' => 'The number of entries per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '2', + ], + 'PreloadTasks' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'PreloadTask' => [ + 'description' => 'The details of the prefetch task.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Area' => [ + 'description' => 'The acceleration region where the live content is prefetched. Valid values:'."\n" + ."\n" + .'* domestic: regions in the Chinese mainland.'."\n" + .'* overseas: regions outside the Chinese mainland.'."\n" + .'* global: regions in and outside the Chinese mainland.'."\n" + ."\n" + .'> If this parameter is left empty, the acceleration region configured for the domain name is returned.'."\n", + 'type' => 'string', + 'example' => 'domestic', + ], + 'CreateTime' => [ + 'description' => 'The time when the prefetch task was created.'."\n", + 'type' => 'string', + 'example' => '2016-06-29T19:00:00Z', + ], + 'Description' => [ + 'description' => 'Indicates whether the prefetch task is successful. Valid values:'."\n" + ."\n" + .'* Successfully'."\n" + .'* InternalError'."\n", + 'type' => 'string', + 'example' => 'Successfully', + ], + 'DomainName' => [ + 'description' => 'The streaming domain name.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'PlayUrl' => [ + 'description' => 'The streaming URL.'."\n", + 'type' => 'string', + 'example' => 'rtmp://guide.aliyundoc.com/liveApp****/liveStream****', + ], + 'PreloadedEndTime' => [ + 'description' => 'The time when the prefetch task ended.'."\n", + 'type' => 'string', + 'example' => '2016-06-30T19:00:00Z', + ], + 'PreloadedStartTime' => [ + 'description' => 'The time when the prefetch task started.'."\n", + 'type' => 'string', + 'example' => '2016-06-29T19:00:00Z', + ], + 'Process' => [ + 'description' => 'The progress of the prefetch task.'."\n", + 'type' => 'string', + 'example' => '100%', + ], + 'Status' => [ + 'description' => 'The status of the prefetch task. Valid values:'."\n" + ."\n" + .'* Success'."\n" + .'* Failed'."\n" + ."\n" + .'> Success is returned only if the prefetch task is configured for all streaming URLs.'."\n", + 'type' => 'string', + 'example' => 'Success', + ], + 'TaskId' => [ + 'description' => 'The ID of the prefetch task.'."\n", + 'type' => 'string', + 'example' => 'yourTaskId', + ], + ], + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'E1564CBC-DCFE-5E1B-8B78-8DED9A39F334', + ], + 'TotalNum' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'TotalPage' => [ + 'description' => 'The total number of pages.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => 'Parameter invalid.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified end time does not match the specified start time.', + ], + [ + 'errorCode' => 'Duration.Exceed', + 'errorMessage' => 'Duration between StartTime and EndTime is too long.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageNum\\": 1,\\n \\"PageSize\\": 2,\\n \\"PreloadTasks\\": {\\n \\"PreloadTask\\": [\\n {\\n \\"Area\\": \\"domestic\\",\\n \\"CreateTime\\": \\"2016-06-29T19:00:00Z\\",\\n \\"Description\\": \\"Successfully\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"PlayUrl\\": \\"rtmp://guide.aliyundoc.com/liveApp****/liveStream****\\",\\n \\"PreloadedEndTime\\": \\"2016-06-30T19:00:00Z\\",\\n \\"PreloadedStartTime\\": \\"2016-06-29T19:00:00Z\\",\\n \\"Process\\": \\"100%\\",\\n \\"Status\\": \\"Success\\",\\n \\"TaskId\\": \\"yourTaskId\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"E1564CBC-DCFE-5E1B-8B78-8DED9A39F334\\",\\n \\"TotalNum\\": 1,\\n \\"TotalPage\\": 1\\n}","errorExample":""},{"type":"xml","example":"\\n 1\\n 2\\n \\n domestic\\n 2016-06-29T19:00:00Z\\n Successfully\\n example.com\\n rtmp://guide.aliyundoc.com/liveApp****/liveStream****\\n 2016-06-30T19:00:00Z\\n 2016-06-29T19:00:00Z\\n 100%\\n Success\\n yourTaskId\\n \\n E1564CBC-DCFE-5E1B-8B78-8DED9A39F334\\n 1\\n 1\\n","errorExample":""}]', + 'title' => 'DescribeLiveStreamPreloadTasks', + 'description' => 'You can call this operation to query prefetch tasks in the last three days.'."\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", + ], + 'HotLiveRtcStream' => [ + 'summary' => 'Configures prefetch for a live stream that is ingested based on Real-Time Communication (RTC).', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'app', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream that you want to prefetch.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'stream', + ], + ], + [ + 'name' => 'RegionCode', + 'in' => 'query', + 'schema' => [ + 'description' => 'The code of the region in which the live stream is prefetched. For more information, see the following tables that list available region codes.'."\n" + ."\n" + .'> Region codes include provincial codes for China and country codes for all countries.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'ZHJ', + ], + ], + [ + 'name' => 'AudioMsid', + 'in' => 'query', + 'schema' => [ + 'description' => 'The audio MSID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'rts audio', + ], + ], + [ + 'name' => 'VideoMsid', + 'in' => 'query', + 'schema' => [ + 'description' => 'The video MSID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'rts video', + ], + ], + [ + 'name' => 'ConnectionTimeout', + 'in' => 'query', + 'schema' => [ + 'description' => 'The duration for which the prefetch connection is maintained. Unit: milliseconds. Default value: 0, which specifies that the prefetch connection is always maintained.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '0', + ], + ], + [ + 'name' => 'MediaTimeout', + 'in' => 'query', + 'schema' => [ + 'description' => 'The custom period after which a timeout event is triggered. Unit: milliseconds.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '100000', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16BFE188-B193-4C3C-ADC5-79A7E31486EA', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => 'Parameter invalid.', + ], + [ + 'errorCode' => 'NoSpecialConfiguration', + 'errorMessage' => 'no special configuration for domain name.', + ], + [ + 'errorCode' => 'CodeRegionHasNoNode', + 'errorMessage' => 'this region has no corresponding node.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16BFE188-B193-4C3C-ADC5-79A7E31486EA\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16BFE188-B193-4C3C-ADC5-79A7E31486EA\\n","errorExample":""}]', + 'title' => 'HotLiveRtcStream', + 'description' => '### [](#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", + 'requestParamsDescription' => '### Region codes'."\n" + ."\n" + .'**Provincial codes for China**'."\n" + ."\n" + .'|Provincial division|Code|'."\n" + .'|---|---|'."\n" + .'|Beijing|BEJ|'."\n" + .'|Tianjin|TAJ|'."\n" + .'|Hebei|HEB|'."\n" + .'|Shanxi|SHX|'."\n" + .'|Nei Mongol|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" + .'|Xizang|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 for all countries**'."\n" + ."\n" + .'|Country|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" + .'|Democratic Republic of the Congo|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" + .'|Republic of the Congo|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" + .'|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|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" + .'|The 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 (Islas Malvinas)|FK|'."\n" + .'|North Korea|KP|'."\n" + .'|Guatemala|GT|'."\n" + .'|Bahamas|BS|'."\n" + .'|Sri Lanka|LK|'."\n" + .'|Singapore|SG|'."\n" + .'|Bahrain|BH|', + ], + 'AddLivePullStreamInfoConfig' => [ + 'summary' => 'Creates a stream pulling configuration for a live stream, which includes parameters such as the origin URL, start time, and end time.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The domain name used for stream pulling. It is the main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs. This parameter is determined by you.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream. This parameter is determined by you.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveStream****', + ], + ], + [ + '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 Real-Time Messaging Protocol (RTMP), Flash Video (FLV), HTTP Live Streaming (HLS), and Secure Reliable Transport (SRT) formats.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'rtmp://guide.aliyundoc.com/liveApp****/liveStream****;rtmp://developer.aliyundoc.com/liveApp****/liveStream****', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time when stream pulling starts.'."\n" + ."\n" + .'The time range specified by the StartTime and EndTime parameters cannot exceed seven days. 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", + 'type' => 'string', + 'required' => true, + 'example' => '2017-12-21T08:00:00Z', + ], + ], + [ + '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 specified by the EndTime parameter must be later than the current 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", + 'type' => 'string', + 'required' => true, + 'example' => '2017-12-22T08:00:00Z', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified StartTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified end time does not math the specified start time or current time.', + ], + [ + 'errorCode' => 'Duration.Exceed', + 'errorMessage' => 'Duration between StartTime and EndTime is too long.', + ], + [ + 'errorCode' => 'ConfigAlreadyExists', + 'errorMessage' => 'Config has already exist.', + ], + [ + 'errorCode' => 'PullStreamOverLimit', + 'errorMessage' => 'Pull stream is over limit for this domainName.', + ], + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => 'Parameter invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\n","errorExample":""}]', + 'title' => 'AddLivePullStreamInfoConfig', + 'description' => '* Before you call this operation, make sure that you fully understand the billing method and pricing of stream pulling in ApsaraVideo Live. For more information, see [Billing of standard streaming](~~195284~~).'."\n" + .'* Stream pulling refers to the process of pulling live streams from third-party streaming URLs to a live center of ApsaraVideo Live for CDN acceleration.'."\n" + .'* You can call this operation only for regular stream pulling. That is, you can specify the start time and end time to pull live streams.'."\n" + .'* Regular stream pulling and triggered stream pulling are supported in the ApsaraVideo Live console. For more information, see [Configure stream pulling](~~199452~~).'."\n" + .'* You can specify custom values for the AppName and StreamName parameters. Streaming URLs that are generated vary based on different values of the AppName and StreamName parameters. You can use the [URL generator](~~197400~~) to generate a streaming URL.'."\n" + .'* A configuration is identified by the DomainName, AppName, and StreamName parameters all together. If you try to call this operation to add a configuration that has the same DomainName, AppName, and StreamName parameters as an existing configuration, an error indicating that the configuration already exists is returned.'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLivePullStreamConfig' => [ + 'summary' => 'Queries the 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'A3136B58-5876-4168-83CA-B562781981A0', + ], + 'LiveAppRecordList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LiveAppRecord' => [ + 'description' => 'Details about the stream pulling configurations.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'EndTime' => [ + 'description' => 'The end of the time range for which the configurations were queried. 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' => '2016-05-20T01:33:00Z', + ], + 'AppName' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'example' => 'liveApp****', + ], + 'SourceUrl' => [ + 'description' => 'The origin server of the live stream.'."\n", + 'type' => 'string', + 'example' => 'guide.aliyundoc.com', + ], + 'StartTime' => [ + 'description' => 'The beginning of the time range for which the configurations were queried. 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' => '2016-05-15T01:30:00Z', + ], + 'StreamName' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'example' => 'liveStream****', + ], + 'SourceUsing' => [ + 'description' => 'The live stream origin server that you are using.'."\n", + 'type' => 'string', + 'example' => 'guide.aliyundoc.com', + ], + 'DomainName' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => 'Parameter invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A3136B58-5876-4168-83CA-B562781981A0\\",\\n \\"LiveAppRecordList\\": {\\n \\"LiveAppRecord\\": [\\n {\\n \\"EndTime\\": \\"2016-05-20T01:33:00Z\\",\\n \\"AppName\\": \\"liveApp****\\",\\n \\"SourceUrl\\": \\"guide.aliyundoc.com\\",\\n \\"StartTime\\": \\"2016-05-15T01:30:00Z\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"SourceUsing\\": \\"guide.aliyundoc.com\\",\\n \\"DomainName\\": \\"example.com\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\nA3136B58-5876-4168-83CA-B562781981A0\\n\\n \\n guide.aliyundoc.com\\n liveStream****\\n 2016-05-20T01:33:00Z\\n example.com\\n 2016-05-15T01:30:00Z\\n guide.aliyundoc.com\\n liveApp****\\n \\n\\n","errorExample":"{\\n \\"LiveAppRecordList\\":{\\n \\"LiveAppRecord\\":[{\\n \\"AppName\\":\\"xxxx\\",\\n \\"DomainName\\":\\"live.aliyunlive.com\\",\\n \\"EndTime\\":\\"2016-05-20T01:33:00Z\\",\\n \\"SourceUrl\\":\\"http://test\\",\\n \\"StartTime\\":\\"2016-05-15T01:30:00Z\\",\\n \\"StreamName\\":\\"xxxxxx\\"\\n }]\\n },\\n \\"RequestId\\":\\"A3136B58-5876-4168-83CA-B562781981A0\\"\\n}"}]', + 'title' => 'DescribeLivePullStreamConfig', + 'description' => '##'."\n" + ."\n" + .'This operation is applicable to regular stream pulling. You can call this operation to query the regular stream pulling configurations for a domain name.'."\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](~~343507~~).'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteLivePullStreamInfoConfig' => [ + 'summary' => 'Deletes a 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs. You can call [DescribeLivePullStreamConfig](~~2847818~~l) operation to query the application name.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream. You can call [DescribeLivePullStreamConfig](~~2847818~~l) operation to query the stream name.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveStream****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => 'Parameter invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + 'title' => 'DeleteLivePullStreamInfoConfig', + 'description' => 'This operation is applicable to regular stream pulling. You can call this operation to delete a configuration of regular stream pulling.'."\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.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'SetLiveLazyPullStreamInfoConfig' => [ + 'summary' => 'Creates a configuration of 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n" + ."\n" + .'> If you want to configure triggered stream pulling for all applications, set the value to **ali_all_app**.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'ali_all_app', + ], + ], + [ + 'name' => 'PullDomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The origin server address of the live stream. Separate multiple addresses with semicolons (;).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'guide.aliyundoc.com', + ], + ], + [ + 'name' => 'PullAppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application for back-to-origin stream pulling.'."\n" + ."\n" + .'> If you want to use the application specified in the streaming URL, leave this parameter empty.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'livePullApp****', + ], + ], + [ + 'name' => 'TranscodeLazy', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to trigger stream pulling when the transcoded stream is played. The default value is **no**. Valid values:'."\n" + ."\n" + .'* **yes**'."\n" + .'* **no**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'no', + ], + ], + [ + 'name' => 'PullProtocol', + 'in' => 'query', + 'schema' => [ + 'description' => 'The protocol for back-to-origin stream pulling. Valid values:'."\n" + ."\n" + .'* **rtmp**'."\n" + .'* **httpflv**'."\n" + .'* **hls**'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'rtmp', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\n","errorExample":""}]', + 'title' => 'SetLiveLazyPullStreamInfoConfig', + 'description' => 'You can call this operation to configure triggered stream pulling. The configuration lets ApsaraVideo Live automatically pull live streams from the origin server when the origin server starts to play live streams.'."\n" + ."\n" + .'> The IPv6 protocol is not supported.'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + ], + 'DescribeLiveLazyPullStreamConfig' => [ + 'summary' => 'Queries 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveApp****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The stream pulling configurations.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'A3136B58-5876-4168-83CA-B562781981A0', + ], + 'LiveLazyPullConfigList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LiveLazyPullConfig' => [ + 'description' => 'The configurations of triggered stream pulling.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The configuration of triggered stream pulling.'."\n", + 'type' => 'object', + 'properties' => [ + 'AppName' => [ + 'description' => 'The name of the application.'."\n", + 'type' => 'string', + 'example' => 'liveApp****', + ], + 'PullArgs' => [ + 'description' => 'The parameters of back-to-origin stream pulling.'."\n", + 'type' => 'string', + 'example' => 'k=v', + ], + 'PullAppName' => [ + 'description' => 'The name of the application for back-to-origin stream pulling. If the application specified in the streaming URL is used, this parameter is left empty.'."\n", + 'type' => 'string', + 'example' => 'livePullApp****', + ], + 'PullProtocol' => [ + 'description' => 'The protocol for back-to-origin stream pulling. Valid values:'."\n" + ."\n" + .'* **rtmp**'."\n" + .'* **httpflv**'."\n" + .'* **hls**'."\n", + 'type' => 'string', + 'example' => 'RTMP', + ], + 'PullDomainName' => [ + 'description' => 'The domain name for back-to-origin stream pulling.'."\n", + 'type' => 'string', + 'example' => 'guide.aliyundoc.com', + ], + 'DomainName' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'TranscodeLazy' => [ + 'description' => 'Indicates whether stream pulling is triggered when the transcoded stream is played. Default value: **no**. Valid values:'."\n" + ."\n" + .'* **yes**'."\n" + .'* **no**'."\n", + 'type' => 'string', + 'example' => 'no', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A3136B58-5876-4168-83CA-B562781981A0\\",\\n \\"LiveLazyPullConfigList\\": {\\n \\"LiveLazyPullConfig\\": [\\n {\\n \\"AppName\\": \\"liveApp****\\",\\n \\"PullArgs\\": \\"k=v\\",\\n \\"PullAppName\\": \\"livePullApp****\\",\\n \\"PullProtocol\\": \\"RTMP\\",\\n \\"PullDomainName\\": \\"guide.aliyundoc.com\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"TranscodeLazy\\": \\"no\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n A3136B58-5876-4168-83CA-B562781981A0\\n \\n liveApp****\\n k=v\\n livePullApp****\\n RTMP\\n guide.aliyundoc.com\\n example.com\\n no\\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveLazyPullStreamConfig', + 'description' => '##'."\n" + ."\n" + .'This operation is applicable to regular stream pulling. You can call this operation to query the configurations of regular stream pulling for a domain name.'."\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 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](~~343507~~).'."\n", + '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. |', + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n" + ."\n" + .'> If you want to delete configurations of triggered stream pulling for all applications, set the value to **ali_all_app**.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'ali_all_app', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + 'title' => 'DeleteLiveLazyPullStreamInfoConfig', + 'description' => 'This operation is application to triggered stream pulling. You can call this operation to delete a configuration of triggered stream pulling. If you set the AppName parameter to ali_all_app, configurations of triggered stream pulling for all applications under the domain name are deleted.'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + ], + 'UpdateLivePullStreamInfoConfig' => [ + 'summary' => 'Modifies the stream pulling settings of a live stream, 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The domain name used for stream pulling. It is the main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveStream****', + ], + ], + [ + 'name' => 'SourceUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The complete URL of the origin server of the live stream. You can specify multiple URLs by separating them with semicolons (;).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'rtmp://guide.aliyundoc.com/liveApp****/liveStream****;rtmp://developer.aliyundoc.com/liveApp****/liveStream****', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time when stream pulling starts.'."\n" + ."\n" + .'The time range specified by the StartTime and EndTime parameters cannot exceed seven days. 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", + 'type' => 'string', + 'required' => true, + 'example' => '2017-12-21T08:00:00Z', + ], + ], + [ + '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 specified by the EndTime parameter must be later than the current 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", + 'type' => 'string', + 'required' => true, + 'example' => '2017-12-22T08:00:00Z', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified StartTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => 'Parameter invalid.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified end time does not math the specified start time.', + ], + [ + 'errorCode' => 'Duration.Exceed', + 'errorMessage' => 'Duration between StartTime and EndTime is too long.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\n","errorExample":""}]', + 'title' => 'UpdateLivePullStreamInfoConfig', + 'description' => 'This operation is applicable to regular stream pulling. You can call this operation to modify the stream pulling settings of a live stream, including the origin URL, start time, and end time.'."\n" + ."\n" + .'> After this operation is complete, ApsaraVideo Live uses the updated settings for regular stream pulling. Make sure that the modification does not affect your business.'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + ], + 'DescribeLiveStreamsBlockList' => [ + 'summary' => 'Queries the live streams that are blacklisted under 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 main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'PageNum', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of the page to return. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '2', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries to return on each page. Valid values: 1 to 3000. Default value: 2000.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '3000', + 'minimum' => '1', + 'example' => '10', + 'default' => '2000', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'PageNum' => [ + 'description' => 'The page number of the returned page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '2', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '9D855EC8-CF71-4615-B164-F7DFCB23B41D', + ], + 'TotalPage' => [ + 'description' => 'The total number of returned pages.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '2', + ], + 'PageSize' => [ + 'description' => 'The number of entries returned per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'TotalNum' => [ + 'description' => 'The total number of live stream URLs that meet the specified conditions.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '11', + ], + 'DomainName' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'StreamUrls' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'StreamUrl' => [ + 'description' => 'The complete URL of each live stream.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'example.com/liveApp****/liveStream****', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageNum\\": 2,\\n \\"RequestId\\": \\"9D855EC8-CF71-4615-B164-F7DFCB23B41D\\",\\n \\"TotalPage\\": 2,\\n \\"PageSize\\": 10,\\n \\"TotalNum\\": 11,\\n \\"DomainName\\": \\"example.com\\",\\n \\"StreamUrls\\": {\\n \\"StreamUrl\\": [\\n \\"example.com/liveApp****/liveStream****\\"\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 2\\n 9D855EC8-CF71-4615-B164-F7DFCB23B41D\\n 2\\n 10\\n 11\\n example.com\\n example.com/liveApp****/liveStream****\\n","errorExample":""}]', + 'title' => 'DescribeLiveStreamsBlockList', + 'description' => 'The stream URLs refer to the URLs for playing in particular.'."\n" + ."\n" + .'## QPS limit'."\n" + ."\n" + .'A single user can perform a maximum of 50 queries per second (QPS). Throttling is triggered when the number of calls per second exceeds the QPS limit. The throttling may affect your business. Thus, we recommend that you observe the QPS limit on this operation. For more information about what a single user means and the QPS details, 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#topic-2136805).', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLiveStreamsControlHistory' => [ + 'summary' => 'Queries the operation history of live streams under a domain name or in an application.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The application name. You can view the application name on the [Stream Management](~~197397~~) page of the ApsaraVideo Live console.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveApp****', + ], + ], + [ + '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", + 'type' => 'string', + 'required' => true, + 'example' => '2017-12-21T08:00:00Z', + ], + ], + [ + '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 time range specified by the StartTime and EndTime parameters cannot exceed seven days.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2017-12-22T08:00:00Z', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '9C31856F-386D-4DB3-BE79-A0AA493D702A', + ], + 'ControlInfo' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LiveStreamControlInfo' => [ + 'description' => 'The operation records.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The operation record of the live stream.'."\n", + 'type' => 'object', + 'properties' => [ + 'ClientIP' => [ + 'description' => 'The IP address that is used by the client for live streaming.'."\n", + 'type' => 'string', + 'example' => '10.207.XX.XX', + ], + '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.'."\n", + 'type' => 'string', + 'example' => '2015-12-01T16:36:18Z', + ], + 'Action' => [ + 'description' => 'The name of the operation performed.'."\n", + 'type' => 'string', + 'example' => 'DescribeLiveStreamsControlHistory', + ], + 'StreamName' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'example' => 'liveStream****', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified parameter StartTime is not valid.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified parameter EndTime is not valid.', + ], + [ + 'errorCode' => 'InvalidStartTime.ValueNotSupported', + 'errorMessage' => 'The specified value of parameter StartTime is not supported.', + ], + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => 'Parameter invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9C31856F-386D-4DB3-BE79-A0AA493D702A\\",\\n \\"ControlInfo\\": {\\n \\"LiveStreamControlInfo\\": [\\n {\\n \\"ClientIP\\": \\"10.207.XX.XX\\",\\n \\"TimeStamp\\": \\"2015-12-01T16:36:18Z\\",\\n \\"Action\\": \\"DescribeLiveStreamsControlHistory\\",\\n \\"StreamName\\": \\"liveStream****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n9C31856F-386D-4DB3-BE79-A0AA493D702A\\n\\n \\n DescribeLiveStreamsControlHistory\\n liveStream****\\n 10.207.XX.XX\\n 2015-12-01T16:36:18Z\\n \\n\\n","errorExample":""}]', + 'title' => 'DescribeLiveStreamsControlHistory', + 'description' => 'You can call this operation to query the operation history of live streams under a domain name or in an application. The operations include all API operations that were called on live streams.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLiveStreamBitRateData' => [ + 'summary' => 'Queries the frame rates and bitrates of a Real-Time Messaging Protocol (RTMP) stream within a specified time period. You can call this operation to query 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", + 'type' => 'string', + 'required' => true, + 'example' => 'demo.aliyundoc.com', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveStream****', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. 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', + 'required' => false, + 'example' => '2017-12-21T08:00:00Z', + ], + ], + [ + '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", + 'type' => 'string', + 'required' => false, + 'example' => '2017-12-22T08:00:00Z', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + 'FrameRateAndBitRateInfos' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'FrameRateAndBitRateInfo' => [ + 'description' => 'The frame rates and bitrates of the live stream.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The frame rates and bitrates of the live stream.'."\n", + 'type' => 'object', + 'properties' => [ + 'Time' => [ + 'description' => 'The time when the data was collected. 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' => '2016-09-13T16:04:00Z', + ], + 'VideoFrameRate' => [ + 'description' => 'The video frame rate of the live stream. Unit: frames per second (FPS).'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '30', + ], + 'AudioFrameRate' => [ + 'description' => 'The audio frame rate of the live stream. Unit: FPS.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '100', + ], + 'StreamUrl' => [ + 'description' => 'The URL of the live stream.'."\n", + 'type' => 'string', + 'example' => 'rtmp://guide.aliyundoc.com/liveAppName****/liveSteamName****', + ], + 'BitRate' => [ + 'description' => 'The bitrate of the live stream. Unit: bit/s.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '600', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidAppName.Malformed', + 'errorMessage' => 'Specified AppName is malformed.', + ], + [ + 'errorCode' => 'InvalidStreamName.Malformed', + 'errorMessage' => 'Specified StreamName is malformed.', + ], + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified StartTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidTime.ValueNotSupported', + 'errorMessage' => 'StartTime or EndTime is miss match.', + ], + [ + 'errorCode' => 'InvalidStreamNumber.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidTime.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"FrameRateAndBitRateInfos\\": {\\n \\"FrameRateAndBitRateInfo\\": [\\n {\\n \\"Time\\": \\"2016-09-13T16:04:00Z\\",\\n \\"VideoFrameRate\\": 30,\\n \\"AudioFrameRate\\": 100,\\n \\"StreamUrl\\": \\"rtmp://guide.aliyundoc.com/liveAppName****/liveSteamName****\\",\\n \\"BitRate\\": 600\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n \\n \\n 30\\n \\n 600\\n 100\\n rtmp://guide.aliyundoc.com/liveAppName****/liveSteamName****\\n \\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveStreamBitRateData', + 'description' => 'This operation allows you to query the frame rates and bitrates of an RTMP stream within a specified time period. You can call this operation to query historical data.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLiveStreamsOnlineList' => [ + 'summary' => 'Queries the information about all active streams under a specified domain name or the active streams of an application under a specified domain name.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '107103', + 'abilityTreeNodes' => [ + 'FEATUREliveG4SX14', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream. You can specify only one live stream. You can view the stream name on the [Stream Management](~~197397~~) page of the ApsaraVideo Live console.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveStream****', + ], + ], + [ + 'name' => 'OnlyStream', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to return only specific parameters. Valid values:'."\n" + ."\n" + .'* **yes**: returns only the DomainName, AppName, StreamName, and PublishTime parameters.'."\n" + .'* **no**: returns all parameters. This is the default value.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'no', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Valid values: 1 to 3000. Default value: 2000.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1500', + 'default' => '2000', + ], + ], + [ + 'name' => 'PageNum', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: 1.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'StreamType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the streams to query. Valid values:'."\n" + ."\n" + .'* **all** (default): all streams'."\n" + .'* **raw**: source streams'."\n" + .'* **trans**: transcoded streams'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'all', + 'enum' => [ + 'all', + 'raw', + 'trans', + ], + ], + ], + [ + 'name' => 'QueryType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The mode in which stream names are matched. Valid values:'."\n" + ."\n" + .'* **fuzzy** (default): fuzzy match'."\n" + .'* **strict**: exact match'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'fuzzy', + 'enum' => [ + 'fuzzy', + 'strict', + ], + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The information about active streams.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '5c6a2a0df228-4a64- af62-20e91b9676b3', + ], + 'TotalPage' => [ + 'description' => 'The total number of pages returned.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '2', + ], + 'PageNum' => [ + 'description' => 'The page number of the returned page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'PageSize' => [ + 'description' => 'The number of entries returned per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'TotalNum' => [ + 'description' => 'The total number of streams that meet the specified conditions.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '11', + ], + 'OnlineInfo' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LiveStreamOnlineInfo' => [ + 'description' => 'The information about the live streams that are being ingested.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the live stream that is being ingested.'."\n", + 'type' => 'object', + 'properties' => [ + 'AudioDataRate' => [ + 'description' => 'The audio bitrate of the live stream. Unit: Kbit/s.'."\n" + ."\n" + .'> This parameter can be returned after you submit a ticket for whitelist configuration. For more information about how to submit a ticket, see Contact us.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '600', + ], + 'FrameRate' => [ + 'description' => 'The frame rate. Unit: FPS.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '15', + ], + 'PublishUrl' => [ + 'description' => 'The complete URL that was used to ingest the stream.'."\n", + 'type' => 'string', + 'example' => 'rtmp://demo.aliyundoc.com/live/test****', + ], + 'StreamName' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'example' => 'liveStream****', + ], + 'AudioCodecId' => [ + 'description' => 'The ID of the audio codec.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'Height' => [ + 'description' => 'The height of the video resolution. Unit: pixels.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '720', + ], + 'VideoDataRate' => [ + 'description' => 'The video bitrate of the live stream. Unit: Kbit/s.'."\n" + ."\n" + .'> This parameter can be returned after you submit a ticket for whitelist configuration. For more information about how to submit a ticket, see Contact us.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '600', + ], + 'DomainName' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'PublishDomain' => [ + 'description' => 'The ingest domain. If live center ingest was used, the streaming domain is returned.'."\n", + 'type' => 'string', + 'example' => 'demo.aliyundoc.com', + ], + 'PublishTime' => [ + 'description' => 'The start time of stream ingest. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n", + 'type' => 'string', + 'example' => '2021-08-09T02:37:59Z', + ], + 'AppName' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'example' => 'liveApp****', + ], + 'PublishType' => [ + 'description' => 'The ingest type. Valid values:'."\n" + ."\n" + .'* **edge**: edge ingest.'."\n" + .'* **center**: live center ingest.'."\n", + 'type' => 'string', + 'example' => 'edge', + ], + 'VideoCodecId' => [ + 'description' => 'The ID of the video codec.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '7', + ], + 'Transcoded' => [ + 'description' => 'Indicates whether the stream was transcoded. Valid values:'."\n" + ."\n" + .'* **yes**'."\n" + .'* **no**'."\n", + 'type' => 'string', + 'example' => 'no', + ], + 'Width' => [ + 'description' => 'The width of the video resolution. Unit: pixels.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1280', + ], + 'ClientIp' => [ + 'description' => 'The IP address of the client for stream ingest.'."\n", + 'type' => 'string', + 'example' => '106.11.XX.XX', + ], + 'ServerIp' => [ + 'description' => 'The IP address of the ingest node.'."\n", + 'type' => 'string', + 'example' => '120.221.XX.XX', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'QpsOverLimit', + 'errorMessage' => 'Qps is over limit for this domainName.', + ], + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified StartTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified end time does not match the specified start time.', + ], + [ + 'errorCode' => 'Duration.Exceed', + 'errorMessage' => 'Duration between StartTime and EndTime is too long.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64- af62-20e91b9676b3\\",\\n \\"TotalPage\\": 2,\\n \\"PageNum\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalNum\\": 11,\\n \\"OnlineInfo\\": {\\n \\"LiveStreamOnlineInfo\\": [\\n {\\n \\"AudioDataRate\\": 600,\\n \\"FrameRate\\": 15,\\n \\"PublishUrl\\": \\"rtmp://demo.aliyundoc.com/live/test****\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"AudioCodecId\\": 10,\\n \\"Height\\": 720,\\n \\"VideoDataRate\\": 600,\\n \\"DomainName\\": \\"example.com\\",\\n \\"PublishDomain\\": \\"demo.aliyundoc.com\\",\\n \\"PublishTime\\": \\"2021-08-09T02:37:59Z\\",\\n \\"AppName\\": \\"liveApp****\\",\\n \\"PublishType\\": \\"edge\\",\\n \\"VideoCodecId\\": 7,\\n \\"Transcoded\\": \\"no\\",\\n \\"Width\\": 1280,\\n \\"ClientIp\\": \\"106.11.XX.XX\\",\\n \\"ServerIp\\": \\"120.221.XX.XX\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 2\\n 1\\n 10\\n 5c6a2a0df228-4a64- af62-20e91b9676b3\\n 11\\n \\n 600\\n 15\\n rtmp://demo.aliyundoc.com/live/test****\\n liveStream****\\n 10\\n 720\\n 600\\n example.com\\n demo.aliyundoc.com\\n 2021-08-09T02:37:59Z\\n liveApp****\\n edge\\n 7\\n no\\n 1280\\n 106.11.XX.XX\\n 120.221.XX.XX\\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveStreamsOnlineList', + 'description' => 'You can call this operation to query the following types of streams.'."\n" + ."\n" + .'* all: all streams.'."\n" + .'* raw: source streams.'."\n" + .'* trans: transcoded streams.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 10,000 times per minute 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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLiveStreamsPublishList' => [ + 'summary' => 'Queries the stream ingest records of a domain name or an application or stream under a domain name.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '107105', + 'abilityTreeNodes' => [ + 'FEATUREliveYUZBM3', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ingest domain or main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveStream****', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query.'."\n" + ."\n" + .'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", + 'type' => 'string', + 'required' => true, + 'example' => '2017-12-21T08:00:00Z', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range to query. The time range specified by the StartTime and EndTime parameters cannot exceed 30 days.'."\n" + ."\n" + .'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", + 'type' => 'string', + 'required' => true, + 'example' => '2017-12-22T08:00:00Z', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Valid values: **1 to 3000**. Default value: **2000**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1500', + 'default' => '2000', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'StreamType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the streams to query. Valid values:'."\n" + ."\n" + .'* An empty value****: source streams'."\n" + .'* **all**: all streams'."\n" + .'* **trans**: transcoded streams'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'all', + 'enum' => [ + 'all', + 'raw', + 'trans', + ], + ], + ], + [ + 'name' => 'QueryType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The mode in which stream names are matched. Valid values:'."\n" + ."\n" + .'* **fuzzy** (default): fuzzy match'."\n" + .'* **strict**: exact match'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'fuzzy', + 'enum' => [ + 'fuzzy', + 'strict', + ], + ], + ], + [ + 'name' => 'OrderBy', + 'in' => 'query', + 'schema' => [ + 'description' => 'The sorting method. Valid values:'."\n" + ."\n" + .'* **stream_name_desc**: sorts the entries in descending order by stream name.'."\n" + .'* **stream_name_asc**: sorts the entries in ascending order by stream name.'."\n" + .'* **publish_time_desc**: sorts the entries in descending order by stream ingest time.'."\n" + .'* **publish_time_asc** (default): sorts the entries in ascending order by stream ingest time.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'publish_time_desc', + 'enum' => [ + 'stream_name_desc', + 'stream_name_asc', + 'publish_time_desc', + 'publish_time_asc', + ], + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TotalPage' => [ + 'description' => 'The total number of pages.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '2', + ], + 'PageNum' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '2', + ], + 'PageSize' => [ + 'description' => 'The number of entries per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => ' 40A4F36D-A7CC-473A-88E7-154F92242566', + ], + 'TotalNum' => [ + 'description' => 'The total number of entries that meet the specified conditions.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '11', + ], + 'PublishInfo' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LiveStreamPublishInfo' => [ + 'description' => 'The information about the stream ingest records.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'EdgeNodeAddr' => [ + 'description' => 'The IP address of the CDN point of presence (POP) to which the stream was ingested.'."\n", + 'type' => 'string', + 'example' => '10.175.XX.XX', + ], + 'PublishUrl' => [ + 'description' => 'The complete ingest URL.'."\n", + 'type' => 'string', + 'example' => 'rtmp://demo.aliyundoc.com/liveApp****/liveStream****', + ], + 'StreamName' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'example' => 'liveStream****', + ], + 'DomainName' => [ + 'description' => 'The ingest domain or main streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'StopTime' => [ + 'description' => 'The time when the stream ingest was stopped. 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' => '2015-12-02T03:11:19Z', + ], + 'TranscodeId' => [ + 'description' => 'The ID of the transcoding template.'."\n" + ."\n" + .'> This parameter is not returned if the value of the Transcoded parameter is no.'."\n", + 'type' => 'string', + 'example' => 'ld', + ], + 'PublishDomain' => [ + 'description' => 'The ingest domain.'."\n", + 'type' => 'string', + 'example' => 'demo.aliyundoc.com', + ], + 'AppName' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'example' => 'liveApp****', + ], + 'PublishTime' => [ + 'description' => 'The time when the stream ingest was 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.'."\n", + 'type' => 'string', + 'example' => '2015-12-02T03:05:53Z', + ], + 'PublishType' => [ + 'description' => 'The type of the stream ingest. Valid values:'."\n" + ."\n" + .'* **edge**: edge ingest'."\n" + .'* **center**: live center ingest'."\n", + 'type' => 'string', + 'example' => 'edge', + ], + 'Transcoded' => [ + 'description' => 'Indicates whether the stream was a transcoded stream.'."\n", + 'type' => 'string', + 'example' => 'yes', + ], + 'ClientAddr' => [ + 'description' => 'The IP address of the client that ingested the live stream.'."\n", + 'type' => 'string', + 'example' => '10.175.XX.XX', + ], + 'StreamUrl' => [ + 'description' => 'The streaming URL.'."\n", + 'type' => 'string', + 'example' => 'http://example.com/liveApp****/liveStream****.flv', + ], + 'AliInnerErrorFlags' => [ + 'description' => 'Internal error', + 'type' => 'string', + 'example' => '3000001', + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'QpsOverLimit', + 'errorMessage' => 'Qps is over limit for this domainName.', + ], + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified parameter StartTime is not valid.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified parameter EndTime is not valid.', + ], + [ + 'errorCode' => 'InvalidStartTime.ValueNotSupported', + 'errorMessage' => 'The specified value of parameter StartTime is not supported.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified end time does not match the specified start time.', + ], + [ + 'errorCode' => 'Duration.Exceed', + 'errorMessage' => 'Duration between StartTime and EndTime is too long.', + ], + [ + 'errorCode' => 'LiveServiceNotFound', + 'errorMessage' => 'Your account does not open Live service yet', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalPage\\": 2,\\n \\"PageNum\\": 2,\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\" 40A4F36D-A7CC-473A-88E7-154F92242566\\",\\n \\"TotalNum\\": 11,\\n \\"PublishInfo\\": {\\n \\"LiveStreamPublishInfo\\": [\\n {\\n \\"EdgeNodeAddr\\": \\"10.175.XX.XX\\",\\n \\"PublishUrl\\": \\"rtmp://demo.aliyundoc.com/liveApp****/liveStream****\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"StopTime\\": \\"2015-12-02T03:11:19Z\\",\\n \\"TranscodeId\\": \\"ld\\",\\n \\"PublishDomain\\": \\"demo.aliyundoc.com\\",\\n \\"AppName\\": \\"liveApp****\\",\\n \\"PublishTime\\": \\"2015-12-02T03:05:53Z\\",\\n \\"PublishType\\": \\"edge\\",\\n \\"Transcoded\\": \\"yes\\",\\n \\"ClientAddr\\": \\"10.175.XX.XX\\",\\n \\"StreamUrl\\": \\"http://example.com/liveApp****/liveStream****.flv\\",\\n \\"AliInnerErrorFlags\\": \\"002\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n11\\n2\\n10\\n2\\n 40A4F36D-A7CC-473A-88E7-154F92242566\\n\\n \\n rtmp://demo.aliyundoc.com/liveApp****/liveStream****\\n 10.175.XX.XX\\n liveStream****\\n ld\\n example.com\\n 10.175.XX.XX\\n demo.aliyundoc.com\\n yes\\n 2015-12-02T03:05:53Z\\n edge\\n http://example.com/liveApp****/liveStream****.flv\\n 2015-12-02T03:11:19Z\\n liveApp****\\n \\n\\n","errorExample":"{\\n \\"PageNum\\":2,\\n \\"PageSize\\":10,\\n \\"PublishInfo\\":{\\n \\"LiveStreamPublishInfo\\":[{\\n \\"AppName\\":\\"xchen\\",\\n \\"ClientAddr\\":\\"10.175.60.33\\",\\n \\"DomainName\\":\\"test101.cdnpe.com\\",\\n \\"EdgeNodeAddr\\":\\"10.175.30.21\\",\\n \\"PublishDomain\\":\\"test101.cdnpe.com\\",\\n \\"PublishTime\\":\\"2015-12-02T03:05:53Z\\",\\n \\"PublishUrl\\":\\"rtmp://test101.cdnpe.com/xchen\\",\\n \\"StopTime\\":\\"2015-12-02T03:11:19Z\\",\\n \\"StreamName\\":\\"testxchen\\",\\n \\"StreamUrl\\":\\"rtmp://xxx/xxxx\\"\\n }]\\n },\\n \\"RequestId\\":\\"1C0E0C22-77B7-42AC-8212-AF99B2E0077F\\",\\n \\"TotalNum\\":11,\\n \\"TotalPage\\":2\\n}"}]', + 'title' => 'DescribeLiveStreamsPublishList', + 'description' => '## [](#)Usage notes'."\n" + ."\n" + .'This operation allows you to query streams in the last 30 days. The information of active streams during the queried period is returned. This operation supports the following sorting methods.'."\n" + ."\n" + .'* stream_name_desc: sorts the entries in descending order by stream name.'."\n" + .'* stream_name_asc: sorts the entries in ascending order by stream name.'."\n" + .'* publish_time_desc: sorts the entries in descending order by stream ingest time.'."\n" + .'* publish_time_asc: sorts the entries in ascending order by stream ingest time.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 3 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' => ' ', + ], + 'ForbidLiveStream' => [ + 'summary' => 'Disables a live stream. You can specify the time when the live stream is resumed.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ingest domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo.aliyundoc.com', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the ingested stream. You can view the stream name on the [Stream Management](~~197397~~) page of the ApsaraVideo Live console.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveStream****', + ], + ], + [ + 'name' => 'LiveStreamType', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether the live stream is ingested by a streamer or played by a viewer. Set the value to **publisher**.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'publisher', + 'enum' => [ + 'publisher', + ], + ], + ], + [ + 'name' => 'Oneshot', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to only interrupt the live stream without adding the ingest URL of the live stream to the blacklist. Valid values:'."\n" + ."\n" + .'* **yes**: interrupts the live stream but does not add the ingest URL of the live stream to the blacklist. This value is available only when the live stream is ingested or played in the upstream.'."\n" + .'* **no**: disables the live stream and adds the ingest URL of the live stream to the blacklist.'."\n" + ."\n" + .'> If you do not specify this parameter, the default value no is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'yes', + 'enum' => [ + 'yes', + 'no', + ], + ], + ], + [ + 'name' => 'ResumeTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time when the live stream is resumed. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* If you set the **Oneshot** parameter to **no** and do not specify this parameter, the live stream is disabled for six months by default.'."\n" + ."\n" + .'* If you specify this parameter, the live stream is resumed at the specified point in time.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2015-12-01T10:37:00Z', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16BFE188-B193-4C3C-ADC5-79A7E31486EA', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidResumeTime.Malformed', + 'errorMessage' => 'Specified parameter ResumeTime is not valid.', + ], + [ + 'errorCode' => 'QuotaExceeded.Blacklist', + 'errorMessage' => 'Exceed max blacklist count limit', + ], + [ + 'errorCode' => 'ConfigAlreadyExists', + 'errorMessage' => 'Config has already exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16BFE188-B193-4C3C-ADC5-79A7E31486EA\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16BFE188-B193-4C3C-ADC5-79A7E31486EA\\n","errorExample":""}]', + 'title' => 'ForbidLiveStream', + 'description' => 'You can call this operation to disable a live stream and specify the time when the live stream is resumed. If the time is not specified, you can call the [ResumeLiveStream](~~2847831~~) operation to resume the live stream. This operation supports only the live streams ingested by streamers.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* This operation disables a live stream by adding the stream to the blacklist. You can disable up to 10,000 live streams. If the limit is reached, you cannot disable any more live streams. Pay attention to the number of live streams that are disabled. You can call the [DescribeLiveStreamsBlockList](~~2847825~~) operation to query the number of live streams that are disabled.'."\n" + ."\n" + .'* An interrupted live stream is not added to the blacklist and does not occupy the quota.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 20 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", + ], + 'ResumeLiveStream' => [ + 'summary' => 'Resumes the ingest of a live 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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo.aliyundoc.com', + ], + ], + [ + 'name' => 'LiveStreamType', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether the live stream is ingested by a streamer or played by a client. Set the value to **publisher**, which specifies that the live stream is ingested by a streamer.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'publisher', + 'enum' => [ + 'publisher', + ], + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs. You can specify an asterisk (\\*) as the value to match all applications. You can view the application name on the [Stream Management](~~197397~~) page of the ApsaraVideo Live console.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the ingested stream. You can view the stream name on the [Stream Management](~~197397~~) page of the ApsaraVideo Live console.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveStream****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '16BFE188-B193-4C3C-ADC5-79A7E31486EA', + ], + ], + ], + ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16BFE188-B193-4C3C-ADC5-79A7E31486EA\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16BFE188-B193-4C3C-ADC5-79A7E31486EA\\n","errorExample":"{\\n \\"RequestId\\":\\"16BFE188-B193-4C3C-ADC5-79A7E31486EA\\"\\n}"}]', + 'title' => 'ResumeLiveStream', + 'description' => 'You can call this operation to resume the ingest of a stream. This operation supports only the live streams ingested by streamers.'."\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.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLiveDomainOnlineUserNum' => [ + 'summary' => 'Queries the number of online users at a specified point in time for all live streams under a specified domain name.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2018-12-27T13:09:21Z', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '3A3A8C3D-F8B2-4FBF-9319-771A11B855FA', + ], + 'UserCount' => [ + 'description' => 'The total number of online users at the specified point in time for all the live streams under the main streaming domain.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'StreamCount' => [ + 'description' => 'The number of streams.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'OnlineUserInfo' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LiveStreamOnlineUserNumInfo' => [ + 'description' => 'The information about the streams.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'StreamName' => [ + 'description' => 'The name of the stream.'."\n", + 'type' => 'string', + 'example' => 'rtmp://example.com/test/liveStream****_3_1', + ], + 'Infos' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Info' => [ + 'description' => 'The statistics on the stream.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'UserNumber' => [ + 'description' => 'The number of online users for the stream, which can be a source stream or transcoded stream.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'TranscodeTemplate' => [ + 'description' => 'The transcoding template. A value of origin indicates that the stream is a source stream.'."\n", + 'type' => 'string', + 'example' => 'origin', + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + [ + 'errorCode' => 'InvalidQueryTime.Exceed', + 'errorMessage' => 'QueryTime exceed three month.', + ], + [ + 'errorCode' => 'InvalidQueryTime.Malformed', + 'errorMessage' => 'Specified QueryTime is malformed.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"3A3A8C3D-F8B2-4FBF-9319-771A11B855FA\\",\\n \\"UserCount\\": 1,\\n \\"StreamCount\\": 1,\\n \\"OnlineUserInfo\\": {\\n \\"LiveStreamOnlineUserNumInfo\\": [\\n {\\n \\"StreamName\\": \\"rtmp://example.com/test/liveStream****_3_1\\",\\n \\"Infos\\": {\\n \\"Info\\": [\\n {\\n \\"UserNumber\\": 1,\\n \\"TranscodeTemplate\\": \\"origin\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n1\\n\\n \\n rtmp://example.com/test/liveStream****_3_1\\n \\n \\n origin\\n 1\\n \\n \\n \\n\\n3A3A8C3D-F8B2-4FBF-9319-771A11B855FA\\n1\\n","errorExample":""}]', + 'title' => 'DescribeLiveDomainOnlineUserNum', + 'description' => 'You can call this operation to collect statistics on the number of online users for only Flash Video (FLV), Real-Time Streaming (RTS), and Real-Time Messaging Protocol (RTMP) streams, but not HTTP Live Streaming (HLS) streams. A delay exists in data collection and statistics. We recommend that you query the data of more than 5 minutes ago.'."\n" + ."\n" + .'> Use this operation to replace the deprecated DescribeLiveStreamOnlineUserNum operation.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 200 times per minute 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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLiveDomainFrameRateAndBitRateData' => [ + 'summary' => 'Queries the frame rates and bitrates of all live streams under an ingest domain.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ingest domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo.aliyundoc.com', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2019-02-21T08:00:00Z', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'C3F2C2C4-59BB-4B62-81FF-345BE557E3E3', + ], + 'FrameRateAndBitRateInfos' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'FrameRateAndBitRateInfo' => [ + 'description' => 'The frame rates and bitrates of the live streams that were queried.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The frame rates and bitrate of the live stream.'."\n", + 'type' => 'object', + 'properties' => [ + 'VideoFrameRate' => [ + 'description' => 'The video frame rate of the live stream. Unit: frames per second (FPS).'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '24.9', + ], + 'StreamUrl' => [ + 'description' => 'The URL of the live stream.'."\n", + 'type' => 'string', + 'example' => 'rtmp://demo.aliyundoc.com/test/liveStream****_3_4', + ], + 'AudioFrameRate' => [ + 'description' => 'The audio frame rate of the live stream. Unit: FPS.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '42.9', + ], + 'BitRate' => [ + 'description' => 'The bitrate of the live stream. Unit: bit/s.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '30693.96', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + [ + 'errorCode' => 'InvalidQueryTime.Exceed', + 'errorMessage' => 'QueryTime exceed three month.', + ], + [ + 'errorCode' => 'InvalidQueryTime.Malformed', + 'errorMessage' => 'Specified QueryTime is malformed.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C3F2C2C4-59BB-4B62-81FF-345BE557E3E3\\",\\n \\"FrameRateAndBitRateInfos\\": {\\n \\"FrameRateAndBitRateInfo\\": [\\n {\\n \\"VideoFrameRate\\": 24.9,\\n \\"StreamUrl\\": \\"rtmp://demo.aliyundoc.com/test/liveStream****_3_4\\",\\n \\"AudioFrameRate\\": 42.9,\\n \\"BitRate\\": 30693.96\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n C3F2C2C4-59BB-4B62-81FF-345BE557E3E3\\n \\n \\n 24.9\\n 30693.96\\n 42.9\\n rtmp://demo.aliyundoc.com/test/liveStream****_3_4\\n \\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveDomainFrameRateAndBitRateData', + 'description' => 'You can call this operation to query the real-time bitrates and frame rates of live streams, which helps you evaluate the stream ingest quality. A delay exists in data collection and statistics. We recommend that you query the data of more than 5 minutes ago.'."\n" + ."\n" + .'> Use this operation to replace the deprecated DescribeLiveStreamsFrameRateAndBitRateData operation.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'A3136B58-5876-4168-83CA-B562781981A0', + ], + 'LiveDomainLimitList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LiveDomainLimit' => [ + 'description' => 'The limits.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The maximum allowed numbers of ingested streams, transcoded streams, and relayed streams under the streaming domain.'."\n", + 'type' => 'object', + 'properties' => [ + 'LimitTranscodeNum' => [ + 'description' => 'The maximum number of transcoded streams.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '50', + ], + 'CurrentTranscodeNum' => [ + 'description' => 'The current number of transcoded streams.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'LimitNum' => [ + 'description' => 'The maximum number of ingested streams.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '100', + ], + 'LimitTransferNum' => [ + 'description' => 'The maximum allowed number of streams relayed from the live center.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '50', + ], + 'CurrentNum' => [ + 'description' => 'The current number of ingested streams.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'CurrentTransferNum' => [ + 'description' => 'The current number of streams relayed from the live center.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'DomainName' => [ + 'description' => 'The name of the queried main streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => 'Parameter invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A3136B58-5876-4168-83CA-B562********\\",\\n \\"LiveDomainLimitList\\": {\\n \\"LiveDomainLimit\\": [\\n {\\n \\"LimitTranscodeNum\\": 50,\\n \\"CurrentTranscodeNum\\": 10,\\n \\"LimitNum\\": 100,\\n \\"LimitTransferNum\\": 50,\\n \\"CurrentNum\\": 10,\\n \\"CurrentTransferNum\\": 10,\\n \\"DomainName\\": \\"example.com\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n A3136B58-5876-4168-83CA-B562781981A0\\n \\n 50\\n 10\\n 100\\n 50\\n 10\\n 10\\n example.com\\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveDomainLimit', + 'description' => 'This operation applies only to main streaming domains.'."\n" + ."\n" + .'## [](#qps-)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 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' => '## 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. |', + ], + 'DescribeLiveStreamState' => [ + 'summary' => 'Queries the status of a stream in real time.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain or ingest domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo.aliyundoc.com', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveStream****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Type' => [ + 'description' => 'The mode of the stream. Valid values:'."\n" + ."\n" + .'* push: stream ingest'."\n" + .'* pull: triggered stream pulling'."\n", + 'type' => 'string', + 'example' => 'push', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'CE6CD79D-0A98-1F22-A15F-FADA74DF2729', + ], + 'StreamState' => [ + 'description' => 'The status of the stream. Valid values:'."\n" + ."\n" + .'* online: The stream is being ingested.'."\n" + .'* offline: The stream is offline. This may be caused by failed or completed stream ingest. For the specific reason, check the stream ingest callback. This operation does not provide detailed information.'."\n", + 'type' => 'string', + 'example' => 'online', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => 'Parameter invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Type\\": \\"push\\",\\n \\"RequestId\\": \\"CE6CD79D-0A98-1F22-A15F-FADA74DF2729\\",\\n \\"StreamState\\": \\"online\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\nonline\\npush\\nCE6CD79D-0A98-1F22-A15F-FADA74DF2729\\n","errorExample":""}]', + 'title' => 'DescribeLiveStreamState', + 'description' => 'Obtain the streaming domain, and then call this operation to query the status of a stream in real time. If the stream is in the offline status, you can check the stream ingest callback to learn about the reason that causes the offline status. This operation does not provide detailed information.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteLiveStreamMerge' => [ + 'summary' => 'Deletes an active mixed stream.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application that generates the output stream. You can view the application name on the [Primary/Secondary Stream Mixing](~~606583~~) page of the ApsaraVideo Live console.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'app', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the output stream. You can view the stream name on the [Primary/Secondary Stream Mixing](~~606583~~) page of the ApsaraVideo Live console.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'StreamName', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB9*********', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => 'Parameter invalid.', + ], + [ + 'errorCode' => 'QuotaExceeded.Merge', + 'errorMessage' => 'Exceed max merge count limit', + ], + [ + 'errorCode' => 'ConfigAlreadyExists', + 'errorMessage' => 'Config has already exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB9*********\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + 'title' => 'DeleteLiveStreamMerge', + 'description' => '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", + ], + 'AddLiveStreamMerge' => [ + 'summary' => 'Invoke AddLiveStreamMerge to add primary and backup stream merging 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application that generates the output stream. The value must be the same as the application name in the ingest URL of the output stream. Otherwise, the configuration does not take effect. You cannot set the value to an asterisk (\\*).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'app', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the output stream. The value must be the same as the stream name in the ingest URL of the output stream. Otherwise, the configuration does not take effect. You cannot set the value to an asterisk (\\*).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'StreamName', + ], + ], + [ + 'name' => 'InAppName1', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application that generates the input primary stream. The value must be the same as the application name that is specified in the ingest URL of the primary stream. Otherwise, the configuration does not take effect.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'app1', + ], + ], + [ + 'name' => 'InStreamName1', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the input primary stream. The value must be the same as the stream name that is specified in the ingest URL of the primary stream. Otherwise, the configuration does not take effect.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'InStream1', + ], + ], + [ + 'name' => 'InAppName2', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application that generates the input secondary stream. The value must be the same as the application name that is specified in the ingest URL of the secondary stream. Otherwise, the configuration does not take effect.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'app2', + ], + ], + [ + 'name' => 'InStreamName2', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the input secondary stream. The value must be the same as the stream name that is specified in the ingest URL of the secondary stream. Otherwise, the configuration does not take effect.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'stream2', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The start time of the stream mixing.'."\n" + ."\n" + .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2020-05-29T00:00:00Z', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end time of the stream mixing.'."\n" + ."\n" + .'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 interval between the start time and the end time must be within 7 days.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2020-05-29T01:00:00Z', + ], + ], + [ + 'name' => 'Protocol', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming protocol. Valid values:'."\n" + ."\n" + .'* **rtmp**: This is the default value.'."\n" + .'* **rtc**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rtmp', + ], + ], + [ + 'name' => 'LiveMerger', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'default' => 'off', + ], + ], + [ + 'name' => 'MergeParameters', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', + ], + 'Message' => [ + 'type' => 'string', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified parameter StartTime is not valid.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified parameter EndTime is not valid.', + ], + [ + 'errorCode' => 'InvalidStartTime.ValueNotSupported', + 'errorMessage' => 'The specified value of parameter StartTime is not supported.', + ], + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => 'Parameter invalid.', + ], + [ + 'errorCode' => 'QuotaExceeded.Merge', + 'errorMessage' => 'Exceed max merge count limit', + ], + [ + 'errorCode' => 'ConfigAlreadyExists', + 'errorMessage' => 'Config has already exist.', + ], + [ + 'errorCode' => 'Duration.Exceed', + 'errorMessage' => 'Duration between StartTime and EndTime is too long.', + ], + [ + 'errorCode' => 'InvalidParam.CodeIllegalDuration', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\",\\n \\"Message\\": \\"OK\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + 'title' => 'AddLiveStreamMerge', + 'description' => '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", + 'requestParamsDescription' => '> Any two of the AppName, InAppName1, and InAppName2 parameters cannot have the same values. Any two of the StreamName, InStreamName1, and InStreamName2 parameters cannot have the same values.'."\n", + ], + 'DescribeLiveStreamMerge' => [ + 'summary' => 'Invoke DescribeLiveStreamMerge to query the primary-standby stream merging 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application that generates the output stream. You can view the application name on the [Primary/Secondary Stream Mixing Settings](~~606583~~) page of the ApsaraVideo Live console.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'app', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the output stream. You can view the stream name on the [Primary/Secondary Stream Mixing Settings](~~606583~~) page of the ApsaraVideo Live console.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'StreamName', + ], + ], + [ + 'name' => 'Protocol', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming protocol. Valid values:'."\n" + ."\n" + .'* **rtmp**: This is the default value.'."\n" + .'* **rtc**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rtmp', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'LiveStreamMergeList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LiveStreamMerge' => [ + 'description' => 'Live stream information list.', + 'type' => 'array', + 'items' => [ + 'description' => 'Live streaming information list.', + 'type' => 'object', + 'properties' => [ + 'AppName' => [ + 'description' => 'The name of the application that generates the output stream.'."\n", + 'type' => 'string', + 'example' => 'app', + ], + 'AppUsing' => [ + 'description' => 'The application that is being used.'."\n", + 'type' => 'string', + 'example' => 'app1', + ], + 'DomainName' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'EndTime' => [ + 'description' => 'The end time of the stream mixing.'."\n", + 'type' => 'string', + 'example' => '2020-05-29T01:00:00Z', + ], + 'ExtraInAppStreams' => [ + 'description' => 'The names of the applications that generate the input additional streams other than the primary stream and secondary stream, and the names of these additional streams.'."\n", + 'type' => 'string', + 'example' => 'app3/stream3,app4/stream4,app5/stream5,…,appN/streamN', + ], + 'InAppName1' => [ + 'description' => 'The name of the application that generates the input primary stream.'."\n", + 'type' => 'string', + 'example' => 'app1', + ], + 'InAppName2' => [ + 'description' => 'The name of the application that generates the input secondary stream.'."\n", + 'type' => 'string', + 'example' => 'app2', + ], + 'InStreamName1' => [ + 'description' => 'The name of the input primary stream.'."\n", + 'type' => 'string', + 'example' => 'InStream1', + ], + 'InStreamName2' => [ + 'description' => 'The name of the input secondary stream.'."\n", + 'type' => 'string', + 'example' => 'stream2', + ], + 'Protocol' => [ + 'description' => 'The streaming protocol.'."\n", + 'type' => 'string', + 'example' => 'rtmp', + ], + 'StartTime' => [ + 'description' => 'The start time of the stream mixing.'."\n", + 'type' => 'string', + 'example' => '2020-05-29T00:00:00Z', + ], + 'StreamName' => [ + 'description' => 'The name of the output stream.'."\n", + 'type' => 'string', + 'example' => 'StreamName', + ], + 'StreamUsing' => [ + 'description' => 'The stream that is being used.'."\n", + 'type' => 'string', + 'example' => 'InStream1', + ], + 'LiveMerger' => [ + 'type' => 'string', + ], + 'MergeParameters' => [ + 'type' => 'string', + ], + ], + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => 'Parameter invalid.', + ], + [ + 'errorCode' => 'QuotaExceeded.Merge', + 'errorMessage' => 'Exceed max merge count limit', + ], + [ + 'errorCode' => 'ConfigAlreadyExists', + 'errorMessage' => 'Config has already exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"LiveStreamMergeList\\": {\\n \\"LiveStreamMerge\\": [\\n {\\n \\"AppName\\": \\"app\\",\\n \\"AppUsing\\": \\"app1\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"EndTime\\": \\"2020-05-29T01:00:00Z\\",\\n \\"ExtraInAppStreams\\": \\"app3/stream3,app4/stream4,app5/stream5,…,appN/streamN\\",\\n \\"InAppName1\\": \\"app1\\",\\n \\"InAppName2\\": \\"app2\\",\\n \\"InStreamName1\\": \\"InStream1\\",\\n \\"InStreamName2\\": \\"stream2\\",\\n \\"Protocol\\": \\"rtmp\\",\\n \\"StartTime\\": \\"2020-05-29T00:00:00Z\\",\\n \\"StreamName\\": \\"StreamName\\",\\n \\"StreamUsing\\": \\"InStream1\\",\\n \\"LiveMerger\\": \\"on\\",\\n \\"MergeParameters\\": \\"ali_low_frame_rate_threshold=10&ali_max_no_frame_timeout=5&block_all_jitter=0\\\\n\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n \\n \\n app\\n app1\\n example.com\\n 2020-05-29T01:00:00Z\\n app3/stream3,app4/stream4,app5/stream5,…,appN/streamN\\n app1\\n app2\\n InStream1\\n stream2\\n rtmp\\n 2020-05-29T00:00:00Z\\n StreamName\\n InStream1\\n \\n \\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + 'title' => 'DescribeLiveStreamMerge', + 'description' => '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", + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'App', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs. You can specify an asterisk (\\*) as the value to match all applications that belong to the domain name.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'Stream', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream. You can use the wildcard (\\*) to specify all streams of the application.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveStream****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameters', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + 'title' => 'DeleteLiveDelayConfig', + 'description' => 'You can call this operation up to 60 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", + ], + 'UpdateLiveDelayConfig' => [ + 'summary' => 'Updates a stream delay configuration.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'App', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs. You can specify an asterisk (\\*) as the value to match all applications that belong to the domain name.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'Stream', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream. You can use the wildcard (\\*) to specify all streams of the application.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveStream****', + ], + ], + [ + 'name' => 'DelayTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The duration for which the playback of the live stream is delayed. The value must be an integer. Valid values: 16 to 3600. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '60', + ], + ], + [ + 'name' => 'TaskTriggerMode', + 'in' => 'query', + 'schema' => [ + 'description' => 'The trigger mode. Valid values:'."\n" + ."\n" + .'* **PUBLISH_ONLY**: Stream delay can be triggered only by specifying the stream delay parameter in the ingest URL.'."\n" + .'* **CONFIG_ONLY**: Stream delay can be triggered only by the stream delay configuration.'."\n" + .'* **PUBLISH_CONFIG**: Stream delay can be triggered by the stream delay parameter in the ingest URL or the stream delay configuration. The stream delay parameter takes precedence over the stream delay configuration.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'PUBLISH_ONLY', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameters', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + 'title' => 'UpdateLiveDelayConfig', + 'description' => '## [](#qps-)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 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", + ], + 'DescribeLiveDelayConfig' => [ + 'summary' => 'Queries the information about a 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', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'App', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs. You can specify an asterisk (\\*) as the value to match all applications under the domain name.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'Stream', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream. You can specify an asterisk (\\*) as the value to match all streams in the application.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveStream****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'App' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'example' => 'liveApp****', + ], + 'DelayTime' => [ + 'description' => 'The duration for which the playback of the live stream is delayed.'."\n", + 'type' => 'string', + 'example' => '60', + ], + 'Domain' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'A3136B58-5876-4168-83CA-B562781981A0', + ], + 'Stream' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'example' => 'liveStream****', + ], + 'TaskTriggerMode' => [ + 'description' => 'The trigger mode. Valid values:'."\n" + ."\n" + .'* **PUBLISH_ONLY**: Stream delay can be triggered only by specifying the stream delay parameter in the ingest URL.'."\n" + .'* **CONFIG_ONLY**: Stream delay can be triggered only by the stream delay configuration.'."\n" + .'* **PUBLISH_CONFIG**: Stream delay can be triggered by the stream delay parameter in the ingest URL or the stream delay configuration. The stream delay parameter takes precedence over the stream delay configuration.'."\n", + 'type' => 'string', + 'example' => 'PUBLISH_ONLY', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameters', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"App\\": \\"liveApp****\\",\\n \\"DelayTime\\": \\"60\\",\\n \\"Domain\\": \\"example.com\\",\\n \\"RequestId\\": \\"A3136B58-5876-4168-83CA-B562781981A0\\",\\n \\"Stream\\": \\"liveStream****\\",\\n \\"TaskTriggerMode\\": \\"PUBLISH_ONLY\\"\\n}","errorExample":""},{"type":"xml","example":"\\n example.com\\n A3136B58-5876-4168-83CA-B562781981A0\\n PUBLISH_ONLY\\n liveApp****\\n 60\\n liveStream****\\n","errorExample":""}]', + 'title' => 'DescribeLiveDelayConfig', + 'description' => '## [](#qps-)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 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", + ], + 'ListLiveDelayConfig' => [ + 'summary' => 'Queries 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'PageNum', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: 1.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Valid values: 5 to 30. Default value: 10.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'DelayConfigList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DelayConfig' => [ + 'description' => 'The stream delay configurations.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'App' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'example' => 'liveApp****', + ], + 'DelayTime' => [ + 'description' => 'The duration for which the playback of the live stream is delayed. Unit: seconds.'."\n", + 'type' => 'string', + 'example' => '60', + ], + 'Domain' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'Stream' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'example' => 'liveStream****', + ], + 'TaskTriggerMode' => [ + 'description' => 'The trigger mode. Valid values:'."\n" + ."\n" + .'* **PUBLISH_ONLY**: Stream delay can be triggered only by specifying the stream delay parameter in the ingest URL.'."\n" + .'* **CONFIG_ONLY**: Stream delay can be triggered only by the stream delay configuration.'."\n" + .'* **PUBLISH_CONFIG**: Stream delay can be triggered by the stream delay parameter in the ingest URL or the stream delay configuration. The stream delay parameter takes precedence over the stream delay configuration.'."\n", + 'type' => 'string', + 'example' => 'PUBLISH_ONLY', + ], + ], + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'A3136B58-5876-4168-83CA-B562781981A0', + ], + 'Total' => [ + 'description' => 'The number of stream delay configurations.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameters', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DelayConfigList\\": {\\n \\"DelayConfig\\": [\\n {\\n \\"App\\": \\"liveApp****\\",\\n \\"DelayTime\\": \\"60\\",\\n \\"Domain\\": \\"example.com\\",\\n \\"Stream\\": \\"liveStream****\\",\\n \\"TaskTriggerMode\\": \\"PUBLISH_ONLY\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"A3136B58-5876-4168-83CA-B562781981A0\\",\\n \\"Total\\": 1\\n}","errorExample":""},{"type":"xml","example":"\\n \\n \\n liveApp****\\n 60\\n example.com\\n liveStream****\\n PUBLISH_ONLY\\n \\n \\n A3136B58-5876-4168-83CA-B562781981A0\\n 1\\n","errorExample":""}]', + 'title' => 'ListLiveDelayConfig', + 'description' => 'You can call this operation up to 60 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", + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'App', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs. You can specify an asterisk (\\*) as the value to match all applications that belong to the domain name.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'Stream', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream. You can use the wildcard (\\*) to specify all streams of the application.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveStream****', + ], + ], + [ + 'name' => 'DelayTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The duration for which the playback of the live stream is delayed. The value must be an integer. Valid values: 16 to 3600. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '60', + ], + ], + [ + 'name' => 'TaskTriggerMode', + 'in' => 'query', + 'schema' => [ + 'description' => 'The trigger mode. Valid values:'."\n" + ."\n" + .'* **PUBLISH_ONLY**: Stream delay can be triggered only by specifying the stream delay parameter in the ingest URL.'."\n" + .'* **CONFIG_ONLY**: Stream delay can be triggered only by the stream delay configuration.'."\n" + .'* **PUBLISH_CONFIG**: Stream delay can be triggered by the stream delay parameter in the ingest URL or the stream delay configuration. The stream delay parameter takes precedence over the stream delay configuration.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'PUBLISH_ONLY', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameters', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + 'title' => 'CreateLiveDelayConfig', + 'description' => 'Stream delay is different from latency caused by streaming protocols. Stream delay is a feature that allows you to delay the playback of a live stream that is processed in the cloud.'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + ], + 'SetLiveStreamsNotifyUrlConfig' => [ + 'summary' => 'Configures stream ingest callbacks under an ingest domain.', + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo.aliyundoc.com', + ], + ], + [ + 'name' => 'SwitchNotifyUrl', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + ], + ], + [ + 'name' => 'NotifyUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The URL to which the stream ingest callbacks are sent.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'http://guide.aliyundoc.com/notify', + ], + ], + [ + 'name' => 'ExceptionNotifyUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'Exception event callback URL.', + 'type' => 'string', + 'required' => false, + 'example' => 'https://4a7e5f08.r37.cpolar.top/live/Rsssd/call-back/streamStart', + ], + ], + [ + 'name' => 'NotifyReqAuth', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable callback authentication. Valid values:'."\n" + ."\n" + .'* **yes**: enables callback authentication. If you set this parameter to **yes**, you must also specify the NotifyAuthKey parameter.'."\n" + .'* **no**: disables callback authentication.'."\n" + ."\n" + .'> If you do not specify this parameter, the default value **no** is used.'."\n" + ."\n" + .'For information about the authentication logic, see **Authentication for stream ingest callbacks**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'yes', + 'default' => 'no', + 'enum' => [ + 'yes', + 'no', + ], + ], + ], + [ + 'name' => 'NotifyAuthKey', + 'in' => 'query', + 'schema' => [ + 'description' => 'The authentication key.'."\n" + ."\n" + .'> This parameter is required if you set the NotifyReqAuth parameter to **yes**.'."\n" + ."\n" + .'Value requirements:'."\n" + ."\n" + .'* The key must be 16 to 64 characters in length.'."\n" + .'* The key can contain letters and digits.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123456', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => ' 40A4F36D-A7CC-473A-88E7-154F92242566', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => 'Parameter invalid.', + ], + [ + 'errorCode' => 'ConfigAlreadyExists', + 'errorMessage' => 'Config has already exist.', + ], + [ + 'errorCode' => 'CodeGetMainPlaybackDomainError', + 'errorMessage' => 'Failed to obtain the main playback domain name.', + ], + [ + 'errorCode' => 'CodeNotPushDomain', + 'errorMessage' => 'The domain name is not a push domain name.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\" 40A4F36D-A7CC-473A-88E7-154F92242566\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t4C747C97-7ECD-4C61-8A92-67AD806331FF\\n\\t","errorExample":"{\\n \\"RequestId\\":\\"4C747C97-7ECD-4C61-8A92-67AD806331FF\\"\\n}"}]', + 'title' => 'SetLiveStreamsNotifyUrlConfig', + 'description' => '* You can call this operation to configure the callback URL and authentication information of an ingest domain.'."\n" + .'* If you configure callbacks for stream ingest status, you can receive callback notifications about successful or interrupted stream ingest in a timely manner. For more information, see [Format of stream ingest callbacks](~~54787~~).'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + ], + 'DescribeLiveStreamsNotifyUrlConfig' => [ + 'summary' => 'Queries the callback configuration for stream ingest under an ingest domain.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ingest domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo.aliyundoc.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => ' 40A4F36D-A7CC-473A-88E7-154F92242566', + ], + 'LiveStreamsNotifyConfig' => [ + 'description' => 'The callback configuration.'."\n", + 'type' => 'object', + 'properties' => [ + 'DomainName' => [ + 'description' => 'The ingest domain.'."\n", + 'type' => 'string', + 'example' => 'demo.aliyundoc.com', + ], + 'NotifyUrl' => [ + 'description' => 'The callback URL.'."\n", + 'type' => 'string', + 'example' => 'http://guide.aliyundoc.com/notify', + ], + 'ExceptionNotifyUrl' => [ + 'description' => 'Exception event callback URL.', + 'type' => 'string', + 'example' => 'https://4a7e5f08.r37.cpolar.top/live/Record/call-back/streamException', + ], + 'NotifyReqAuth' => [ + 'description' => 'Indicates whether callback authentication is enabled. Valid values:'."\n" + ."\n" + .'* yes'."\n" + .'* no'."\n", + 'type' => 'string', + 'example' => 'yes', + ], + 'NotifyAuthKey' => [ + 'description' => 'The authentication key.'."\n", + 'type' => 'string', + 'example' => '123456', + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\" 40A4F36D-A7CC-473A-88E7-154F92242566\\",\\n \\"LiveStreamsNotifyConfig\\": {\\n \\"DomainName\\": \\"demo.aliyundoc.com\\",\\n \\"NotifyUrl\\": \\"http://guide.aliyundoc.com/notify\\",\\n \\"ExceptionNotifyUrl\\": \\"https://4a7e5f08.r37.cpolar.top/live/Record/call-back/streamException\\",\\n \\"NotifyReqAuth\\": \\"yes\\",\\n \\"NotifyAuthKey\\": \\"123456\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 40A4F36D-A7CC-473A-88E7-154F92242566\\n \\n yes\\n http://guide.aliyundoc.com/notify\\n 123456\\n demo.aliyundoc.com\\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveStreamsNotifyUrlConfig', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + ], + 'DeleteLiveStreamsNotifyUrlConfig' => [ + 'summary' => 'Deletes the callback configuration for stream ingest under an ingest domain.', + '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', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ingest domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo.aliyundoc.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => ' 40A4F36D-A7CC-473A-88E7-154F92242566', + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\" 40A4F36D-A7CC-473A-88E7-154F92242566\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t4C747C97-7ECD-4C61-8A92-67AD806331FF\\n","errorExample":"{\\n \\"RequestId\\":\\"4C747C97-7ECD-4C61-8A92-67AD806331FF\\"\\n}"}]', + 'title' => 'DeleteLiveStreamsNotifyUrlConfig', + 'description' => 'Obtain the ingest domain, and then call this operation to delete the callback configuration for stream ingest under the ingest domain.'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLiveStreamsNotifyRecords' => [ + 'summary' => 'Queries stream ingest 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ingest domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'push.example1.com', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'app', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'stream', + ], + ], + [ + 'name' => 'Status', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to return the records of successful or failed callbacks. Valid values:'."\n" + ."\n" + .'* success'."\n" + .'* failed'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'success', + 'enum' => [ + 'success', + 'failed', + ], + ], + ], + [ + '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.'."\n" + ."\n" + .'> The start time must be in the last seven days.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2017-12-10T08:00:00Z', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2017-12-10T09:00:00Z', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: 20. Maximum value: 500. Valid values: integers from 1 to 500.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '20', + 'default' => '20', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: 1.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The stream ingest callback records.'."\n", + 'type' => 'object', + 'properties' => [ + 'NotifyRecordsInfo' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LiveStreamNotifyRecordsInfo' => [ + 'description' => 'The stream ingest callback records.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'NotifyType' => [ + 'description' => 'The event. Valid values:'."\n" + ."\n" + .'* publish: The stream ingest starts.'."\n" + .'* publish_done: The stream ingest is interrupted.'."\n", + 'type' => 'string', + 'example' => 'publish_done', + ], + 'Description' => [ + 'description' => 'The result of the request. If success is returned, the request is successful. If an error message is returned, the request failed.'."\n", + 'type' => 'string', + 'example' => 'success', + ], + 'StreamName' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'example' => 'stream', + ], + 'NotifyTime' => [ + 'description' => 'The time when the callback was invoked. The time is displayed in UTC.'."\n", + 'type' => 'string', + 'example' => '2022-10-19T19:09:28Z', + ], + 'DomainName' => [ + 'description' => 'The ingest domain.'."\n", + 'type' => 'string', + 'example' => 'push.example1.com', + ], + 'NotifyContent' => [ + 'description' => 'The callback content.'."\n", + 'type' => 'string', + 'example' => '{\\"action\\":\\"publish_done\\",\\"app\\":\\"push.example1.com\\"}', + ], + 'NotifyUrl' => [ + 'description' => 'The callback URL.'."\n", + 'type' => 'string', + 'example' => 'http://xx.xx.xx.xx/callbacks', + ], + 'NotifyResult' => [ + 'description' => 'The callback result. Valid values:'."\n" + ."\n" + .'* success'."\n" + .'* failed'."\n", + 'type' => 'string', + 'example' => 'success', + ], + 'AppName' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'example' => 'app', + ], + 'NotifyResponse' => [ + 'type' => 'string', + ], + 'NotifyHeader' => [ + 'type' => 'string', + ], + ], + 'description' => '', + ], + ], + ], + ], + 'PageNum' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'PageSize' => [ + 'description' => 'The number of entries per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '20', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'F675E4B4-125D-1533-901B-11A724644285', + ], + 'TotalNum' => [ + 'description' => 'The total number of entries that meet the specified conditions.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '20', + ], + 'TotalPage' => [ + 'description' => 'The total number of pages.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '20', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified parameter StartTime is not valid.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified parameter EndTime is not valid.', + ], + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => 'Parameter invalid.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified EndTime does not match the specified StartTime.', + ], + [ + 'errorCode' => 'Duration.Exceed', + 'errorMessage' => 'StartTime needs to be within the last 7 days.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"NotifyRecordsInfo\\": {\\n \\"LiveStreamNotifyRecordsInfo\\": [\\n {\\n \\"NotifyType\\": \\"publish_done\\",\\n \\"Description\\": \\"success\\",\\n \\"StreamName\\": \\"stream\\",\\n \\"NotifyTime\\": \\"2022-10-19T19:09:28Z\\",\\n \\"DomainName\\": \\"push.example1.com\\",\\n \\"NotifyContent\\": \\"{\\\\\\\\\\\\\\"action\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"publish_done\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"app\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"push.example1.com\\\\\\\\\\\\\\"}\\",\\n \\"NotifyUrl\\": \\"http://xx.xx.xx.xx/callbacks\\",\\n \\"NotifyResult\\": \\"success\\",\\n \\"AppName\\": \\"app\\",\\n \\"NotifyResponse\\": \\"{\\\\\\"Code\\\\\\":0,\\\\\\"Msg\\\\\\":\\\\\\"Success\\\\\\"}\\",\\n \\"NotifyHeader\\": \\"Host: 123456.cn-shanghai.example1.com\\\\nUser-Agent: Go-http-client/1.1\\\\nAccept-Encoding: gzip\\"\\n }\\n ]\\n },\\n \\"PageNum\\": 1,\\n \\"PageSize\\": 20,\\n \\"RequestId\\": \\"F675E4B4-125D-1533-901B-11A724644285\\",\\n \\"TotalNum\\": 20,\\n \\"TotalPage\\": 20\\n}","errorExample":""},{"type":"xml","example":"\\n \\n app\\n success\\n push.example1.com\\n {\\\\\\"action\\\\\\":\\\\\\"publish_done\\\\\\",\\\\\\"app\\\\\\":\\\\\\"push.example1.com\\\\\\"}\\n success\\n 2022-10-19T19:09:28Z\\n publish_done\\n http://xx.xx.xx.xx/callbacks\\n stream\\n \\n 1\\n 20\\n F675E4B4-125D-1533-901B-11A724644285\\n 20\\n 20\\n","errorExample":""}]', + 'title' => 'DescribeLiveStreamsNotifyRecords', + 'description' => '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", + ], + 'DeleteLiveStreamBlock' => [ + 'summary' => 'Deletes a configuration of stream-level region blocking.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveStream****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Description' => [ + 'description' => 'The result description. If the request was successful, ok is returned. If the request failed, the failure detail is returned.'."\n", + 'type' => 'string', + 'example' => 'ok', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'B908FF89-B03C-4831-B55B-48D2A7DA0A68', + ], + 'Status' => [ + 'description' => 'The status. Valid values:'."\n" + ."\n" + .'* ok: The request was successful.'."\n" + .'* fail: The request failed.'."\n" + ."\n" + .'> If any parameter failed to be configured, the request failed.'."\n", + 'type' => 'string', + 'example' => 'ok', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => 'Parameter invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Description\\": \\"ok\\",\\n \\"RequestId\\": \\"B908FF89-B03C-4831-B55B-48D2A7DA0A68\\",\\n \\"Status\\": \\"ok\\"\\n}","type":"json"}]', + 'title' => 'DeleteLiveStreamBlock', + 'description' => 'You can call this operation to delete a configuration of stream-level region blocking.'."\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", + ], + 'SetLiveStreamBlock' => [ + 'summary' => 'Configures stream-level region blocking.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveStream****', + ], + ], + [ + 'name' => 'BlockType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The blocking type. Valid values: blacklist and whitelist.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'blacklist', + 'enum' => [ + 'blacklist', + 'whitelist', + ], + ], + ], + [ + 'name' => 'LocationList', + 'in' => 'query', + 'schema' => [ + 'description' => 'The blocked region. If you specify multiple regions, such as CN and AS, separate them with commas (,).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'CN', + ], + ], + [ + 'name' => 'ReleaseTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time when the blocking ends. The time must be in UTC. If you do not specify this parameter, the blocking is valid for 7 days by default.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2016-06-29T19:00:00Z', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Description' => [ + 'description' => 'The result description.'."\n" + ."\n" + .'* If the request was successful, ok is returned.'."\n" + .'* If the request failed, the failure detail is returned.'."\n", + 'type' => 'string', + 'example' => 'ok', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '3be7ade8-d907-483c-b24a-0dad4595beaf', + ], + 'Status' => [ + 'description' => 'The status. Valid values:'."\n" + ."\n" + .'* ok: The request was successful.'."\n" + .'* fail: The request failed.'."\n" + ."\n" + .'> If any parameter failed to be configured, the request failed.'."\n", + 'type' => 'string', + 'example' => 'ok', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidReleaseTime.Malformed', + 'errorMessage' => 'Specified ReleaseTime is malformed.', + ], + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => 'Parameter invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Description\\": \\"ok\\",\\n \\"RequestId\\": \\"3be7ade8-d907-483c-b24a-0dad4595beaf\\",\\n \\"Status\\": \\"ok\\"\\n}","type":"json"}]', + 'title' => 'SetLiveStreamBlock', + 'description' => 'You can configure up to 200 stream-level region blocking rules for a domain name. If there are rules in which the same application name and the same stream name are specified, the rule that is updated the most recently takes effect.'."\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", + ], + 'DescribeStreamLocationBlock' => [ + 'summary' => 'Queries configurations of stream-level region blocking.', + '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', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'stream', + ], + ], + [ + 'name' => 'BlockType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The blocking type. Valid values:'."\n" + ."\n" + .'* blacklist'."\n" + .'* whitelist'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'blacklist', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Valid values: integers from 1 to 100.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '5', + 'default' => '20', + ], + ], + [ + 'name' => 'PageNum', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: 1.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Count' => [ + 'description' => 'The total number of entries that meet the specified conditions.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '2', + ], + 'PageNum' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'PageSize' => [ + 'description' => 'The number of entries per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '5', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'C7C69682-7F88-40DD-A198-10D0309E439B', + ], + 'StreamBlockList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'StreamBlock' => [ + 'description' => 'The configurations.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The details of the configuration.'."\n", + 'type' => 'object', + 'properties' => [ + 'AppName' => [ + 'description' => 'The name of the application in which the blocking applies.'."\n", + 'type' => 'string', + 'example' => 'liveApp****', + ], + 'BlockType' => [ + 'description' => 'The blocking type. Valid values:'."\n" + ."\n" + .'* blacklist'."\n" + .'* whitelist'."\n", + 'type' => 'string', + 'example' => 'blacklist', + ], + 'DomainName' => [ + 'description' => 'The accelerated domain name.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'LocationList' => [ + 'description' => 'The blocked region. If multiple regions are specified, such as CN and AS, they are separated by commas (,).'."\n", + 'type' => 'string', + 'example' => 'CN', + ], + 'ReleaseTime' => [ + 'description' => 'The time when the blocking ends. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n", + 'type' => 'string', + 'example' => '2023-08-13T09:27Z', + ], + 'Status' => [ + 'description' => 'The blocking status. Valid values: 0 (not started), 1 (blocking), 2 (successful), 3 (failed), 4 (expired), and 5 (deleting).'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'StreamName' => [ + 'description' => 'The name of the stream.'."\n", + 'type' => 'string', + 'example' => 'stream', + ], + 'UpdateTime' => [ + 'description' => 'The time when the configuration was last modified. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n", + 'type' => 'string', + 'example' => '2023-08-14T09:27Z', + ], + ], + ], + ], + ], + ], + 'TotalPage' => [ + 'description' => 'The total number of pages.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => 'Parameter invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Count\\": 2,\\n \\"PageNum\\": 1,\\n \\"PageSize\\": 5,\\n \\"RequestId\\": \\"C7C69682-7F88-40DD-A198-10D0309E439B\\",\\n \\"StreamBlockList\\": {\\n \\"StreamBlock\\": [\\n {\\n \\"AppName\\": \\"liveApp****\\",\\n \\"BlockType\\": \\"blacklist\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"LocationList\\": \\"CN\\",\\n \\"ReleaseTime\\": \\"2023-08-13T09:27Z\\",\\n \\"Status\\": 0,\\n \\"StreamName\\": \\"stream\\",\\n \\"UpdateTime\\": \\"2023-08-14T09:27Z\\"\\n }\\n ]\\n },\\n \\"TotalPage\\": 1\\n}","type":"json"}]', + 'title' => 'DescribeStreamLocationBlock', + 'description' => 'Queries configurations of stream-level region blocking.'."\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", + ], + 'DescribeLiveShiftConfigs' => [ + 'summary' => 'Queries the time shifting configurations of a domain name.', + '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 where the streaming domain resides.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-shanghai', + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.', + 'type' => 'string', + 'example' => 'B49E6DDA-F413-422B-B58E-2FA23F286726', + ], + 'Content' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Config' => [ + 'description' => 'The time shifting configurations.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'AppName' => [ + 'description' => 'The application for which you configure time shifting.'."\n", + 'type' => 'string', + 'example' => 'liveApp****', + ], + 'Vision' => [ + 'description' => 'The number of days for which the time shifting configurations are retained.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '7', + ], + 'DomainName' => [ + 'description' => 'The domain name for which you configure time shifting.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'StreamName' => [ + 'description' => 'The name of the live stream for which you configure time shifting.'."\n", + 'type' => 'string', + 'example' => 'liveStream****', + ], + 'IgnoreTranscode' => [ + 'description' => 'Whether to ignore time shift generation for the transcode stream.'."\n" + ."\n" + .'* true: Ignore time shifting generation.'."\n" + .'* false: Generate time shifting.'."\n" + ."\n" + .'The default value is true.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => '%s.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidDataNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 409 => [ + [ + 'errorCode' => 'InvalidStreamNum', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B49E6DDA-F413-422B-B58E-2FA23F286726\\",\\n \\"Content\\": {\\n \\"Config\\": [\\n {\\n \\"AppName\\": \\"liveApp****\\",\\n \\"Vision\\": 7,\\n \\"DomainName\\": \\"example.com\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"IgnoreTranscode\\": true\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n B49E6DDA-F413-422B-B58E-2FA23F286726\\n \\n liveApp****\\n 7\\n example.com\\n liveStream****\\n true\\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveShiftConfigs', + 'description' => 'This operation is applicable to the streaming domains.'."\n" + ."\n" + .'## QPS limit'."\n" + ."\n" + .'A single user can perform a maximum of 10 queries per second (QPS). Throttling is triggered when the number of calls per second exceeds the QPS limit. The throttling may affect your business. Thus, we recommend that you observe the QPS limit on this operation. For more information about what a single user means and the QPS details, 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#topic-2136805).', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => '## Special error codes'."\n" + ."\n" + .'| Error code | Error message | HTTP status code | Description |'."\n" + .'| ---------- | ------------- | ---------------- | ----------- |'."\n" + .'| InvalidParam | param error | 400 | The error message returned because one or more specified parameters are invalid. |'."\n" + .'| InvalidDataNotFound | data not found | 404 | The error message returned because user data cannot be found. |', + ], + 'OpenLiveShift' => [ + 'summary' => 'Enables 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' => 'paid', + 'abilityTreeNodes' => [ + 'FEATUREliveGDJYFA', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs. You can specify an asterisk (\\*) as the value to match all applications under the domain name. You can view the application name on the [Stream Management](~~197397~~) page of the ApsaraVideo Live console.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream. You can specify an asterisk (\\*) as the value to match all streams in the application. You can view the stream name on the [Stream Management](~~197397~~) page of the ApsaraVideo Live console.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveStream****', + ], + ], + [ + 'name' => 'Duration', + 'in' => 'query', + 'schema' => [ + 'description' => 'The length of a TS segment for HTTP Live Streaming (HLS). Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '3', + ], + ], + [ + 'name' => 'Vision', + 'in' => 'query', + 'schema' => [ + 'description' => 'The duration for which data is retained. Default value: 7. Unit: day.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + ], + ], + [ + 'name' => 'IgnoreTranscode', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to disable time shifting for the transcoded stream. Valid values:'."\n" + ."\n" + .'* **true**: disables time shifting for the transcoded stream.'."\n" + .'* **false**: enables time shifting for the transcoded stream.'."\n" + ."\n" + .'Default value: true.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'ConfigAlreadyExists', + 'errorMessage' => '%s Please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => '%s.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidDataNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 409 => [ + [ + 'errorCode' => 'InvalidStreamNum', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + 'title' => 'OpenLiveShift', + 'description' => 'You cannot configure time shifting and delayed transcoding at the same time.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs. You can specify an asterisk (\\*) as the value to match all applications under the domain name. You can view the application name on the [Stream Management](~~197397~~) page of the ApsaraVideo Live console.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream. You can specify an asterisk (\\*) as the value to match all streams in the application. You can view the stream name on the [Stream Management](~~197397~~) page of the ApsaraVideo Live console.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveStream****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => '%s.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidDataNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 409 => [ + [ + 'errorCode' => 'InvalidStreamNum', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\r\\n","errorExample":""}]', + 'title' => 'CloseLiveShift', + 'description' => 'Obtain the streaming domain, and then call this operation to disable time shifting for the streaming domain or an application or a live stream under the streaming domain.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + ], + 'AddLiveStreamTranscode' => [ + 'summary' => 'Adds transcoding configurations for a streaming domain.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'App', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n" + ."\n" + .'* The transcoding template takes effect only if the value of this parameter is the same as the application name that is specified in the ingest URL. The name can be up to 256 characters in length and can contain digits, letters, hyphens (-), and underscores (\\_).'."\n" + .'* You can also set this parameter to an asterisk (\\*). Asterisks (\\*) can match any string, including an empty string.'."\n" + ."\n" + .'> If you configure a transcoding template for which App is set to an asterisk (\\*), the transcoding template is used only if no transcoding template for which App is set to the same value as AppName in the ingest URL exists.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'Template', + 'in' => 'query', + 'schema' => [ + 'description' => 'The transcoding template. Valid values:'."\n" + ."\n" + .'* Standard transcoding template:'."\n" + ."\n" + .' * **lld**: low definition'."\n" + .' * **lsd**: standard definition'."\n" + .' * **lhd**: high definition'."\n" + .' * **lud**: ultra-high definition'."\n" + ."\n" + .'* Narrowband HD™ transcoding template:'."\n" + ."\n" + .' * **ld**: low definition'."\n" + .' * **sd**: standard definition'."\n" + .' * **hd**: high definition'."\n" + .' * **ud**: ultra-high definition'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'lsd', + ], + ], + [ + 'name' => 'EncryptParameters', + 'in' => 'query', + 'schema' => [ + 'description' => 'The encryption configuration. The value is a JSON string. The following fields are included in the syntax:'."\n" + ."\n" + .'* EncryptType: the type of the encryption. Set the value to **aliyun**.'."\n" + .'* KmsKeyID: the ID of the CMK in KMS.'."\n" + .'* KmsKeyExpireInterval: the validity period of the CMK. Valid values: **60 to 3600**. Unit: seconds.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{"EncryptType": "aliyun", "KmsKeyID":"afce5722-81d2-43c3-9930-7601da11****","KmsKeyExpireInterval":"3600"}', + ], + ], + [ + 'name' => 'Lazy', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use the load-on-demand mechanism for transcoding. Default value: **yes**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'yes', + 'default' => 'yes', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameters', + 'errorMessage' => '%s Please check and try again later.', + ], + [ + 'errorCode' => 'ConfigAlreadyExists', + 'errorMessage' => '%s Please check and try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n\\t 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\r\\n","errorExample":""}]', + 'title' => 'AddLiveStreamTranscode', + 'description' => 'You must obtain the customer master key (CMK) in Key Management Service (KMS) before you call this operation to add transcoding configurations. Only standard transcoding templates and Narrowband HD™ transcoding templates are supported for this operation.'."\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 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' => ' ', + ], + 'AddCustomLiveStreamTranscode' => [ + 'summary' => 'Adds a custom transcoding configuration for a streaming domain.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'App', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'KmsKeyID', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the customer master key (CMK) that you created in Key Management Service (KMS).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'afce5722-81d2-43c3-9930-7601da11****', + ], + ], + [ + 'name' => 'KmsUID', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of your KMS account.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '25346073170691****', + ], + ], + [ + 'name' => 'KmsKeyExpireInterval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The rotation period of the CMK. Valid values: 60 to 3600. Unit: seconds.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '3600', + ], + ], + [ + 'name' => 'Template', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the custom transcoding template.'."\n" + ."\n" + .'> The name can contain digits, letters, and hyphens (-), and must start with a letter or digit. The name must be different from the names of any default transcoding templates.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'LiveCusTranscode****', + ], + ], + [ + 'name' => 'TemplateType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the custom transcoding template. Valid values:'."\n" + ."\n" + .'* **h264**: custom H.264 standard transcoding.'."\n" + .'* **h264-nbhd**: custom H.264 Narrowband HD™ transcoding.'."\n" + .'* **h265**: custom H.265 standard transcoding.'."\n" + .'* **h265-nbhd**: custom H.265 Narrowband HD™ transcoding.'."\n" + .'* **audio**: audio-only transcoding.'."\n" + ."\n" + .'> If you set **TemplateType** to **h264**, **h264-nbhd**, **h265**, or **h265-nbhd**, the **Height**, **Width**, **FPS**, and **VideoBitrate** parameters are required.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'h264', + ], + ], + [ + 'name' => 'Height', + 'in' => 'query', + 'schema' => [ + 'description' => 'The height of the output video. Unit: pixel. Valid values:'."\n" + ."\n" + .'The value must comply with all the following rules:'."\n" + ."\n" + .'* **Height ≥ 100**: The height of the video is greater than or equal to 100 pixels.'."\n" + .'* **max(Height,Width) ≤ 2560**: The width or height of the video, whichever is greater, cannot exceed 2,560 pixels.'."\n" + .'* **min(Height,Width) ≤ 1440**: The width or height of the video, whichever is smaller, cannot exceed 1,440 pixels.'."\n" + ."\n" + .'> The resolution of the output video that is transcoded by using the H.265 Narrowband HD™ transcoding template cannot exceed 1280 × 720 pixels.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '720', + ], + ], + [ + 'name' => 'Width', + 'in' => 'query', + 'schema' => [ + 'description' => 'The width of the output video. Unit: pixel. Valid values:'."\n" + ."\n" + .'The value must comply with all the following rules:'."\n" + ."\n" + .'* **Width ≥ 100**: The width of the video is greater than or equal to 100 pixels.'."\n" + .'* **max(Height,Width) ≤ 2560**: The width or height of the video, whichever is greater, cannot exceed 2,560 pixels.'."\n" + .'* **min(Height,Width) ≤ 1440**: The width or height of the video, whichever is smaller, cannot exceed 1,440 pixels.'."\n" + ."\n" + .'> The resolution of the output video that is transcoded by using the H.265 Narrowband HD™ transcoding template cannot exceed 1280 × 720 pixels.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '576', + ], + ], + [ + 'name' => 'FPS', + 'in' => 'query', + 'schema' => [ + 'description' => 'The frame rate of the output video. Unit: frames per second (FPS). Valid values: **1 to 60**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '30', + ], + ], + [ + 'name' => 'VideoBitrate', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bitrate of the output video. Unit: Kbit/s. Valid values: **1 to 6000**.'."\n" + ."\n" + .'> The bitrate of the output video may not be the same as the value that you specify, but is as close to the value as possible, especially when the value is excessively large or small.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '720', + ], + ], + [ + 'name' => 'AudioBitrate', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bitrate of the output audio. Unit: Kbit/s. Valid values: **1 to 1000**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '512', + ], + ], + [ + 'name' => 'Gop', + 'in' => 'query', + 'schema' => [ + 'description' => 'The Group of Picture (GOP) size of the video. Unit: frames or seconds.'."\n" + ."\n" + .'* Unit: frames. Valid values: **1 to 3000**.'."\n" + .'* Unit: seconds. Valid value: **1 to 20**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'Profile', + 'in' => 'query', + 'schema' => [ + 'description' => 'The video encoding profile. The profile defines a set of parameters that are used to encode a video. In most cases, a greater value indicates better image quality and higher resource consumption. Valid values:'."\n" + ."\n" + .'* **1**: baseline. This value is suitable for mobile devices.'."\n" + .'* **2**: main. This value is suitable for standard-definition devices.'."\n" + .'* **3**: high. This value is suitable for high-definition devices.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '2', + ], + ], + [ + 'name' => 'AudioProfile', + 'in' => 'query', + 'schema' => [ + 'description' => 'The audio encoding profile. Valid values:'."\n" + ."\n" + .'* **aac_low**'."\n" + .'* **aac_he**'."\n" + .'* **aac_he_v2**'."\n" + .'* **aac_ld**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'aac_low', + ], + ], + [ + 'name' => 'AudioCodec', + 'in' => 'query', + 'schema' => [ + 'description' => 'The audio encoding format. Valid values:'."\n" + ."\n" + .'* **AAC**'."\n" + .'* **MP3**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'AAC', + ], + ], + [ + 'name' => 'AudioRate', + 'in' => 'query', + 'schema' => [ + 'description' => 'The audio sampling rate. Valid values: **22050 to 96000**.'."\n" + ."\n\n" + .'>If you set AudioProfile to **aac_ld**, the audio sampling rate cannot exceed 44100.>', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '96000', + ], + ], + [ + 'name' => 'AudioChannelNum', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of sound channels. Valid values:'."\n" + ."\n" + .'* **1**: mono.'."\n" + .'* **2**: binaural.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '2', + ], + ], + [ + 'name' => 'Lazy', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use the load-on-demand mechanism for transcoding. Valid values: yes and no. Default value: **yes**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'yes', + ], + ], + [ + 'name' => 'EncryptParameters', + 'in' => 'query', + 'schema' => [ + 'description' => 'Encryption configuration. In JSON format, the fields are explained as follows:'."\n" + .'- **EncryptType**: Encryption type. Fixed value is aliyun.'."\n" + .'- **KmsKeyID**: User KMS master key ID.'."\n" + .'- **KmsKeyExpireInterval**: Key rotation period. Range: 60~3600, unit: seconds.'."\n" + .'> If the EncryptParameters is configured, the KmsKeyID, KmsUID, and KmsKeyExpireInterval parameters cannot be empty', + 'type' => 'string', + 'required' => false, + 'example' => '{"EncryptType": "aliyun", "KmsKeyID":"afce5722-81d2-43c3-9930-7601da11****","KmsKeyExpireInterval":"3600"}', + ], + ], + [ + 'name' => 'ResWithSource', + 'in' => 'query', + 'schema' => [ + 'description' => 'The source-based resolution settings. This parameter takes precedence over other resolution settings. The following fields must be included:'."\n" + ."\n" + .'* **Type**: You can set this field to short, long, or screen. short specifies that the resolution of the output video is adapted to the shorter side, long specifies that the resolution of the output video is adapted to the longer side, and screen specifies that the output video has an adaptive resolution.'."\n" + ."\n" + .'* **Value**:'."\n" + ."\n" + .' * Set this field to 360, 480, 540, 720, or 1080 if the Type field is set to short.'."\n" + .' * Set this field to 640, 848, 960, 1280, or 1920 if the Type field is set to long.'."\n" + .' * Set this field to 640\\*360, 848\\*480, 960\\*540, 1280\\*720, or 1920\\*1080 if the Type field is set to screen.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{"Type":"short","Value":"1080"}', + ], + ], + [ + 'name' => 'FpsWithSource', + 'in' => 'query', + 'schema' => [ + 'description' => 'The source-based frame rate settings. This parameter takes precedence over other frame rate settings. The following fields must be included:'."\n" + ."\n" + .'* **UpLimit**: the maximum frame rate. Valid values: an integer from 1 to 60. The value must be greater than the minimum frame rate.'."\n" + .'* **LowerLimit**: the minimum frame rate. Valid values: an integer from 1 to 60. The value must be smaller than the maximum frame rate.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{"UpLimit":60,"LowerLimit":1}', + ], + ], + [ + 'name' => 'BitrateWithSource', + 'in' => 'query', + 'schema' => [ + 'description' => 'The source-based bitrate settings. This parameter takes precedence over other bitrate settings. The following fields must be included:'."\n" + ."\n" + .'* **UpLimit**: the maximum bitrate limit. Valid values: an integer from 128 to 10000. The value must be greater than the minimum bitrate.'."\n" + .'* **LowerLimit int** : the minimum bitrate rate. Valid values: an integer from 128 to 10000. The value must be smaller than the maximum bitrate.'."\n" + .'* **Factor**: The ratio of the output bitrate to the source bitrate. Valid values: 0.1 to 1. The value is accurate to one decimal place. A value of 1 indicates that the output video has the same bitrate as the source video.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{"UpLimit":2500,"LowerLimit":800,"Factor":1}', + ], + ], + [ + 'name' => 'ExtWithSource', + 'in' => 'query', + 'schema' => [ + 'description' => 'Other source-based settings, including the following fields:'."\n" + ."\n" + .'* **KeyFrameOpen**: specifies whether to use the key frames of the source video. Valid values: yes or no.'."\n" + .'* **Copyts**: specifies whether to use the presentation time stamp (PTS) of the source video. Valid values: yes or no.'."\n" + .'* **SeiMode**: specifies whether to pass through supplemental enhancement information (SEI) messages. Valid values: 0, 1, and 2, where 0 specifies that no SEI messages are passed through, 1 specifies that part of SEI messages are passed through, and 2 specifies that all SEI messages are passed through.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{"KeyFrameOpen":"yes","Copyts":"yes","SeiMode":1}', + ], + ], + [ + 'name' => 'DeInterlaced', + 'in' => 'query', + 'schema' => [ + 'type' => 'boolean', + 'required' => false, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameters', + 'errorMessage' => '%s Please check and try again later.', + ], + [ + 'errorCode' => 'ConfigAlreadyExists', + 'errorMessage' => '%s Please check and try again later.', + ], + [ + 'errorCode' => 'TemplateLimit', + 'errorMessage' => '%s Please check and try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', + 'title' => 'AddCustomLiveStreamTranscode', + 'description' => 'This operation supports the following types of custom transcoding templates:'."\n" + ."\n" + .'* h264: H.264'."\n" + .'* h264-nbhd: H.264 Narrowband HD™'."\n" + .'* h265: H.265'."\n" + .'* h265-nbhd: H.265 Narrowband HD™'."\n" + .'* audio: audio-only'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 6,000 times per minute 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. For more information, see [QPS limits](~~343507~~).'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'AddRtsLiveStreamTranscode' => [ + 'summary' => 'Creates a Real-Time Streaming (RTS) transcoding configuration for a streaming domain.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'App', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs. Value requirements:'."\n" + ."\n" + .'* The name can contain letters, digits, underscores (\\_), and hyphens (-).'."\n" + .'* We recommend that you specify a name that is more than three characters in length. The name must start with a letter or digit.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'aliyun-test', + ], + ], + [ + 'name' => 'Template', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the transcoding template. Value requirements:'."\n" + ."\n" + .'* The name can contain letters, digits, underscores (\\_), and hyphens (-).'."\n" + .'* We recommend that you specify a name that is more than three characters in length. The name must start with a letter or digit.'."\n" + ."\n" + .'> The name cannot be the same as that of a default transcoding template.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'ld', + ], + ], + [ + 'name' => 'TemplateType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the transcoding template.'."\n" + ."\n" + .'If you set this parameter to h264, h264-nbhd, or h264-origin, you must also specify the Height, Width, FPS, VideoBitrate, and DeleteBframes parameters. Valid values:'."\n" + ."\n" + .'* **h264**: H.264 standard transcoding template.'."\n" + .'* **h264-nbhd**: H.264 Narrowband HD™ transcoding template.'."\n" + .'* **h264-origin**: H.264 original quality template. If you use this type of template, the same transcoding parameters of the video source are retained by default.'."\n" + .'* **audio**: audio-only transcoding template. If you use this type of template, images are removed from the video source and an audio-only stream is generated. In addition, you must also specify the AudioBitrate parameter.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'h264', + ], + ], + [ + 'name' => 'Height', + 'in' => 'query', + 'schema' => [ + 'description' => 'The height of the output video. Unit: pixels.'."\n" + ."\n" + .'> This parameter is required if you set the TemplateType parameter to h264, h264-nbhd, or h264-origin.'."\n" + ."\n" + .'The value must comply with the following rules:****'."\n" + ."\n" + .'* **Height ≥ 100**: The height of the video is no less than 100 pixels.'."\n" + .'* **max(Height,Width) ≤ 2560**: The width or height of the video, whichever is greater, cannot exceed 2,560 pixels.'."\n" + .'* **min(Height,Width) ≤ 1440**: The width or height of the video, whichever is smaller, cannot exceed 1,440 pixels.'."\n" + ."\n" + .'For example, a resolution of 1560 × 1560 pixels is invalid.'."\n" + ."\n" + .'> An original quality template needs to retain the source information. Therefore, the video resolution cannot exceed 4K.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1280', + ], + ], + [ + 'name' => 'Width', + 'in' => 'query', + 'schema' => [ + 'description' => 'The width of the output video. Unit: pixels.'."\n" + ."\n" + .'> This parameter is required if you set the TemplateType parameter to h264, h264-nbhd, or h264-origin.'."\n" + ."\n" + .'The value must comply with the following rules:'."\n" + ."\n" + .'* **Width ≥ 100**: The width of the video is no less than 100 pixels.'."\n" + .'* **max(Height,Width) ≤ 2560**: The width or height of the video, whichever is greater, cannot exceed 2,560 pixels.'."\n" + .'* **min(Height,Width) ≤ 1440**: The width or height of the video, whichever is smaller, cannot exceed 1,440 pixels.'."\n" + ."\n" + .'For example, a resolution of 1560 × 1560 pixels is invalid.'."\n" + ."\n" + .'> An original quality template needs to retain the source information. Therefore, the video resolution cannot exceed 4K.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '720', + ], + ], + [ + 'name' => 'FPS', + 'in' => 'query', + 'schema' => [ + 'description' => 'The frame rate of the output video. Unit: FPS. Valid values: **1** to **60**.'."\n" + ."\n" + .'> This parameter is required if you set the TemplateType parameter to h264, h264-nbhd, or h264-origin.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '30', + ], + ], + [ + 'name' => 'VideoBitrate', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bitrate of the output video. Unit: Kbit/s. Valid values: **1** to **6000**.'."\n" + ."\n" + .'> This parameter is required if you set the TemplateType parameter to h264, h264-nbhd, or h264-origin.'."\n" + ."\n" + .'> The bitrate of the output video is as close to the value that you specify as possible, but not exactly the same as the value, especially when the value is excessively large or small.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '2000', + ], + ], + [ + 'name' => 'AudioBitrate', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bitrate of the output audio. Unit: Kbit/s. Valid values: **1** to **1000**.'."\n" + ."\n" + .'> This parameter is required if you set the TemplateType parameter to audio.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '128', + ], + ], + [ + 'name' => 'Gop', + 'in' => 'query', + 'schema' => [ + 'description' => 'The group of pictures (GOP) size of the output video. This parameter is used to specify the keyframe interval. Unit: seconds. Valid values: **1** to **3**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2', + ], + ], + [ + 'name' => 'DeleteBframes', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to remove B-frames during transcoding. Valid values:'."\n" + ."\n" + .'> This parameter is required if you set the TemplateType parameter to h264, h264-nbhd, or h264-origin.'."\n" + ."\n" + .'* **true**: removes B-frames.'."\n" + .'* **false**: retains B-frames. This is the default value.'."\n" + ."\n" + .'> If you do not specify this parameter, the default value **false** is used.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + ], + [ + 'name' => 'Opus', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to transcode audio to the Opus format to be compatible with native WebRTC. Valid values:'."\n" + ."\n" + .'* **true**: transcodes audio to the Opus format.'."\n" + .'* **false**: does not transcode audio to the Opus format.'."\n" + ."\n" + .'> If you do not specify this parameter, the default value **false** is used.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + [ + 'name' => 'Profile', + 'in' => 'query', + 'schema' => [ + 'description' => 'The codec profile. The video codec profile determines how ApsaraVideo Live performs codec on the video. In normal cases, a greater value indicates a higher image quality and requires more codec resources. Valid values:'."\n" + ."\n" + .'* **1**: baseline, which is suitable for mobile devices.'."\n" + .'* **2**: main, which is suitable for standard-definition devices.'."\n" + .'* **3**: high, which is suitable for high-definition devices.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '2', + ], + ], + [ + 'name' => 'AudioProfile', + 'in' => 'query', + 'schema' => [ + 'description' => 'The audio codec profile. Valid values:'."\n" + ."\n" + .'* **aac_low**'."\n" + .'* **aac_he**'."\n" + .'* **aac_he_v2**'."\n" + .'* **aac_ld**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'aac_low', + ], + ], + [ + 'name' => 'AudioCodec', + 'in' => 'query', + 'schema' => [ + 'description' => 'The audio encoder. Valid values:'."\n" + ."\n" + .'* **aac**'."\n" + .'* **mp3**'."\n" + ."\n" + .'> If you want to use the Opus encoding format, set the Opus parameter to true.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'aac', + ], + ], + [ + 'name' => 'AudioRate', + 'in' => 'query', + 'schema' => [ + 'description' => 'The audio sampling rate. Valid values: **22050 to 96000**. The value 44100 is commonly used. Unit: Hz.'."\n" + ."\n" + .'> If you set the AudioProfile parameter to aac_ld, the audio sampling rate cannot exceed 44,100 Hz.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '44100', + ], + ], + [ + 'name' => 'AudioChannelNum', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of sound channels. Valid values:'."\n" + ."\n" + .'* **1**: mono'."\n" + .'* **2**: stereo'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '2', + ], + ], + [ + 'name' => 'Lazy', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to trigger transcoding only when a stream is pulled. Valid values:'."\n" + ."\n" + .'* **yes**: triggers transcoding only when a stream is pulled.'."\n" + .'* **no**: triggers transcoding whenever a stream is ingested, no matter whether the stream is pulled.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'no', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameters', + 'errorMessage' => '%s Please check and try again later.', + ], + [ + 'errorCode' => 'ConfigAlreadyExists', + 'errorMessage' => '%s Please check and try again later.', + ], + [ + 'errorCode' => 'TemplateLimit', + 'errorMessage' => '%s Please check and try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\r\\n","errorExample":""}]', + 'title' => 'AddRtsLiveStreamTranscode', + 'description' => 'You can call this operation to add an RTS transcoding configuration. This operation supports four template types: 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. 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](~~343507~~).', + '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.|', + ], + 'UpdateCustomLiveStreamTranscode' => [ + 'summary' => 'Updates a custom transcoding configuration.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'description' => 'Streamer domain name, unmodifiable.', + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'App', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the stream belongs, and it cannot be modified.', + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'Template', + 'in' => 'query', + 'schema' => [ + 'description' => 'Custom name of the transcoding template, not modifiable.', + 'type' => 'string', + 'required' => true, + 'example' => 'LiveCusTranscode****', + ], + ], + [ + 'name' => 'TemplateType', + 'in' => 'query', + 'schema' => [ + 'description' => 'Custom transcoding template type, unmodifiable.', + 'type' => 'string', + 'required' => true, + 'example' => 'h264', + ], + ], + [ + 'name' => 'Height', + 'in' => 'query', + 'schema' => [ + 'description' => 'Video transcoding height. Unit: pixels. The value must meet the following three conditions:'."\n" + .' - Height ≥ 100: The height of the video must be no less than 100 pixels.'."\n" + .' - max(Height, Width) ≤ 2560: The larger of the video\'s width and height cannot exceed 2560.'."\n" + .' - min(Height, Width) ≤ 1440: The smaller of the video\'s width and height cannot exceed 1440.'."\n" + .' > For 265 narrowband HD templates, the maximum resolution is 1280×720.', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '720', + ], + ], + [ + 'name' => 'Width', + 'in' => 'query', + 'schema' => [ + 'description' => 'Video transcoding width. Unit: pixels. The value must meet the following three conditions: '."\n" + .'- Width ≥ 100: The video width must be no less than 100 pixels. '."\n" + .'- max(Height, Width) ≤ 2560: The larger of the video\'s height and width cannot exceed 2560. '."\n" + .'- min(Height, Width) ≤ 1440: The smaller of the video\'s height and width cannot exceed 1440.'."\n" + .'> For 265 narrowband HD templates, the maximum resolution is 1280×720.', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '576', + ], + ], + [ + 'name' => 'FPS', + 'in' => 'query', + 'schema' => [ + 'description' => 'Transcode video frame rate. Unit: FPS, value range: 1 to 60.', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '30', + ], + ], + [ + 'name' => 'VideoBitrate', + 'in' => 'query', + 'schema' => [ + 'description' => 'Video transcoding bitrate. Unit: kbps, value range: 1 to 6000.'."\n" + .'> The actual bitrate of the transcoded video will try to be as close as possible to the one you set, but it cannot be guaranteed to be exactly the same, especially when the set bitrate is too high or too low.', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '720', + ], + ], + [ + 'name' => 'AudioBitrate', + 'in' => 'query', + 'schema' => [ + 'description' => 'Audio transcoding bitrate. Unit: kbps, value range: 1 to 1000.', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '512', + ], + ], + [ + 'name' => 'Gop', + 'in' => 'query', + 'schema' => [ + 'description' => 'Video GOP (Group of Pictures), supports units in frames or seconds. When the unit is frames, the value should be {number}; when the unit is seconds, the value should be {number}s. '."\n" + .'- For frames, the range is 1 to 3000. '."\n" + .'- For seconds, the range is 1 to 20s.', + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'Profile', + 'in' => 'query', + 'schema' => [ + 'description' => 'Encoding level. A set of specific encoding features supported by the video, generally, the higher the value, the better the picture quality, but also the higher the resources consumed for encoding and decoding. Values: '."\n" + .'- 1: baseline (suitable for mobile devices).'."\n" + .' - 2: main (suitable for standard resolution devices). '."\n" + .'- 3: high (suitable for high-resolution devices).', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '2', + ], + ], + [ + 'name' => 'AudioProfile', + 'in' => 'query', + 'schema' => [ + 'description' => 'Audio encoding. Values: '."\n" + .'- aac_low'."\n" + .' - aac_he'."\n" + .' - aac_he_v2 '."\n" + .'- aac_ld', + 'type' => 'string', + 'required' => false, + 'example' => 'aac_low', + ], + ], + [ + 'name' => 'AudioCodec', + 'in' => 'query', + 'schema' => [ + 'description' => 'Audio encoding format. Values: '."\n" + .'- aac '."\n" + .'- mp3', + 'type' => 'string', + 'required' => false, + 'example' => 'aac', + ], + ], + [ + 'name' => 'AudioRate', + 'in' => 'query', + 'schema' => [ + 'description' => 'Audio sampling rate. Values: 22050, 32000, 44100, 48000, 96000. Unit: Hz.'."\n" + .'> If **AudioProfile** is set to **aac_ld**, the sampling rate must not exceed 44100.', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '96000', + ], + ], + [ + 'name' => 'AudioChannelNum', + 'in' => 'query', + 'schema' => [ + 'description' => 'Number of audio channels. Values: '."\n" + .'- 1: Mono. '."\n" + .'- 2: Stereo.', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '2', + ], + ], + [ + 'name' => 'Lazy', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable triggered transcoding. Valid values:'."\n" + ."\n" + .'* **yes**: enables triggered transcoding.'."\n" + .'* **no**: disables triggered transcoding.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'yes', + ], + ], + [ + 'name' => 'EncryptParameters', + 'in' => 'query', + 'schema' => [ + 'description' => 'Encryption configuration. JSON format, with the following fields: '."\n" + .'- EncryptType: Type of encryption. Fixed value is aliyun.'."\n" + .' - KmsKeyID: User\'s KMS master key ID. '."\n" + .'- KmsKeyExpireInterval: Key rotation period. Value range: 60~3600, unit: seconds.'."\n" + .'> When using DRM encryption, KmsKeyID cannot be modified.', + 'type' => 'string', + 'required' => false, + 'example' => '{"EncryptType": "aliyun", "KmsKeyID":"afce5722-81d2-43c3-9930-7601da11****","KmsKeyExpireInterval":"3600"}', + ], + ], + [ + 'name' => 'ResWithSource', + 'in' => 'query', + 'schema' => [ + 'description' => 'The source-based resolution settings. This parameter takes precedence over other resolution settings. The following fields must be included:'."\n" + ."\n" + .'* **Type**: You can set this field to short, long, or screen. short specifies that the resolution of the output video is adapted to the shorter side, long specifies that the resolution of the output video is adapted to the longer side, and screen specifies that the output video has an adaptive resolution.'."\n" + ."\n" + .'* **Value**:'."\n" + ."\n" + .' * Set this field to 360, 480, 540, 720, or 1080 if the Type field is set to short.'."\n" + .' * Set this field to 640, 848, 960, 1280, or 1920 if the Type field is set to long.'."\n" + .' * Set this field to 640\\*360, 848\\*480, 960\\*540, 1280\\*720, or 1920\\*1080 if the Type field is set to screen.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{\\"Type\\":\\"short\\",\\"Value\\":\\"1080\\"}', + ], + ], + [ + 'name' => 'FpsWithSource', + 'in' => 'query', + 'schema' => [ + 'description' => 'The source-based frame rate settings. This parameter takes precedence over other frame rate settings. The following fields must be included:'."\n" + ."\n" + .'* **UpLimit**: the maximum frame rate. Set this field to an integer from 1 to 60. The value must be greater than the minimum frame rate.'."\n" + .'* **LowerLimit**: the minimum frame rate. Set this field to an integer from 1 to 60. The value must be smaller than the maximum frame rate.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{\\"UpLimit\\":60,\\"LowerLimit\\":1}', + ], + ], + [ + 'name' => 'BitrateWithSource', + 'in' => 'query', + 'schema' => [ + 'description' => 'The source-based bitrate settings. This parameter takes precedence over other bitrate settings. The following fields must be included:'."\n" + ."\n" + .'* **UpLimit**: the maximum bitrate. Set this field to an integer from 128 to 10000. The value must be greater than the minimum bitrate.'."\n" + .'* **LowerLimit**: the minimum bitrate. Set this field to an integer from 128 to 10000. The value must be smaller than the maximum bitrate.'."\n" + .'* **Factor**: the ratio of the output bitrate to the source bitrate. Valid values: 0.1 to 1. The value is accurate to one decimal place. A value of 1 indicates that the output video has the same bitrate as the source video.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{\\"UpLimit\\":2500,\\"LowerLimit\\":800,\\"Factor\\":1}', + ], + ], + [ + 'name' => 'ExtWithSource', + 'in' => 'query', + 'schema' => [ + 'description' => 'Other source-based settings. The following fields are included:'."\n" + ."\n" + .'* **KeyFrameOpen**: Valid values: yes and no.'."\n" + .'* **Copyts**: Valid values: yes and no.'."\n" + .'* **SeiMode**: Valid values: 0, 1, and 2. 0 specifies that no supplemental enhancement information (SEI) messages are passed through, 1 specifies that part of SEI messages are passed through, and 2 specifies that all SEI messages are passed through.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{\\"KeyFrameOpen\\":\\"yes\\",\\"Copyts\\":\\"yes\\",\\"SeiMode\\":1}', + ], + ], + [ + 'name' => 'DeInterlaced', + 'in' => 'query', + 'schema' => [ + 'type' => 'boolean', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'Request ID.', + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameters', + 'errorMessage' => '%s Please check and try again later.', + ], + [ + 'errorCode' => 'ConfigAlreadyExists', + 'errorMessage' => '%s Please check and try again later.', + ], + [ + 'errorCode' => 'TemplateLimit', + 'errorMessage' => '%s Please check and try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + 'title' => 'UpdateCustomLiveStreamTranscode', + 'description' => 'This operation supports the following types of custom transcoding templates:'."\n" + ."\n" + .'* h264: custom H.264 standard transcoding.'."\n" + .'* h264-nbhd: custom H.264 Narrowband HD™ transcoding.'."\n" + .'* h265: custom H.265 standard transcoding.'."\n" + .'* h265-nbhd: custom H.265 Narrowband HD™ transcoding.'."\n" + .'* audio: audio-only transcoding.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 6,000 times per minute per account.'."\n", + 'translator' => 'machine', + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'description' => 'Streamer domain name, not modifiable.', + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'App', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the stream belongs, and it cannot be modified.', + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'Template', + 'in' => 'query', + 'schema' => [ + 'description' => 'Transcoding template, not modifiable.', + 'type' => 'string', + 'required' => true, + 'example' => 'lsd', + ], + ], + [ + 'name' => 'EncryptParameters', + 'in' => 'query', + 'schema' => [ + 'description' => 'The encryption configuration. The value is a JSON string. The following fields are included in the syntax:'."\n" + ."\n" + .'* EncryptType: the type of the encryption. Set the value to **aliyun**.'."\n" + .'* KmsKeyID: the ID of the CMK in KMS.'."\n" + .'* KmsKeyExpireInterval: the validity period of the CMK. Valid values: **60 to 3600**. Unit: seconds.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{"EncryptType": "aliyun", "KmsKeyID":"afce5722-81d2-43c3-9930-7601da11****","KmsKeyExpireInterval":"3600"}', + ], + ], + [ + 'name' => 'Lazy', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable triggered transcoding. Valid values:'."\n" + ."\n" + .'* **yes**: enables triggered transcoding.'."\n" + .'* **no**: disables triggered transcoding.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'yes', + 'default' => 'yes', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'Request ID.', + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameters', + 'errorMessage' => '%s Please check and try again later.', + ], + [ + 'errorCode' => 'ConfigAlreadyExists', + 'errorMessage' => '%s Please check and try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + 'title' => 'UpdateLiveStreamTranscode', + 'description' => 'You must obtain the customer master key (CMK) in Key Management Service (KMS) before you call this operation to update a transcoding configuration. Only standard transcoding templates and Narrowband HD™ transcoding templates are supported for this operation.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 30 times per second per account.'."\n", + 'translator' => 'machine', + ], + 'UpdateRtsLiveStreamTranscode' => [ + 'summary' => 'Updates a custom Real-Time Streaming (RTS) transcoding configuration.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain, which cannot be modified.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'App', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs, which cannot be modified.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'aliyun-test', + ], + ], + [ + 'name' => 'Template', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the custom transcoding template, which cannot be modified.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'ld', + ], + ], + [ + 'name' => 'TemplateType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the custom transcoding template, which cannot be modified.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'h264', + ], + ], + [ + 'name' => 'Height', + 'in' => 'query', + 'schema' => [ + 'description' => 'The height of the output video. Unit: pixel.'."\n" + ."\n" + .'The value must comply with the following rules:'."\n" + ."\n" + .'* Height ≥ 100: The height of the video is at least 100 pixels.'."\n" + .'* max(Height,Width) ≤ 2560: The larger of the width and height of the video cannot exceed 2,560 pixels.'."\n" + .'* min(Height,Width) ≤ 1440: The smaller of the width and height of the video cannot exceed 1,440 pixels. For example, a resolution of 1560 × 1560 pixels is invalid.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* This parameter is required when the TemplateType parameter is set to h264, h264-nbhd, or h264-origin.'."\n" + ."\n" + .'* If the TemplateType parameter is set to h264-origin, the highest resolution supported is 4K.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1280', + ], + ], + [ + 'name' => 'Width', + 'in' => 'query', + 'schema' => [ + 'description' => 'The width of the output video. Unit: pixel.'."\n" + ."\n" + .'The value must comply with the following rules:'."\n" + ."\n" + .'* Width ≥ 100: The width of the video is at least 100 pixels.'."\n" + .'* max(Height,Width) ≤ 2560: The larger of the width and height of the video cannot exceed 2,560 pixels.'."\n" + .'* min(Height,Width) ≤ 1440: The smaller of the width and height of the video cannot exceed 1,440 pixels. For example, a resolution of 1560 × 1560 pixels is invalid.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* This parameter is required when the TemplateType parameter is set to h264, h264-nbhd, or h264-origin.'."\n" + ."\n" + .'* If the TemplateType parameter is set to h264-origin, the highest resolution supported is 4K.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '720', + ], + ], + [ + '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" + .'> This parameter is required when the TemplateType parameter is set to h264, h264-nbhd, or h264-origin.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '30', + ], + ], + [ + 'name' => 'VideoBitrate', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bitrate of the output video. Unit: Kbit/s. Valid values: 1 to 6000.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* This parameter is required when the TemplateType parameter is set to h264, h264-nbhd, or h264-origin.'."\n" + ."\n" + .'* The bitrate of the output video is as close to the value that you specify as possible, but not the same as the value, especially when the value is excessively large or small.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '2000', + ], + ], + [ + 'name' => 'AudioBitrate', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bitrate of the output audio. Unit: Kbit/s. Valid values: 1 to 1000.'."\n" + ."\n" + .'> This parameter is required if you set the TemplateType parameter to audio.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '128', + ], + ], + [ + 'name' => 'Gop', + 'in' => 'query', + 'schema' => [ + 'description' => 'The group of pictures (GOP) of the output video. This parameter is used to specify the keyframe interval. Unit: seconds. Valid values: 1 to 3.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2', + ], + ], + [ + 'name' => 'DeleteBframes', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to remove B frames during transcoding. Valid values:'."\n" + ."\n" + .'* true: Remove B frames.'."\n" + .'* false (default): Retain B frames.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* This parameter is required when the TemplateType parameter is set to h264, h264-nbhd, or h264-origin.'."\n" + ."\n" + .'* If this parameter is not specified, the default value false is used.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + ], + [ + 'name' => 'Opus', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to transcode streams to the Opus format to be compatible with native WebRTC. Valid values:'."\n" + ."\n" + .'* true: Transcode streams to the Opus format.'."\n" + .'* false: Do not transcode streams to the Opus format.'."\n" + ."\n" + .'> If this parameter is not specified, the default value false is used.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + [ + 'name' => 'Profile', + 'in' => 'query', + 'schema' => [ + 'description' => 'The video encoding profile. The profile defines a set of parameters that are used to encode a video. In most cases, a greater value indicates better image quality and higher resource consumption. Valid values:'."\n" + ."\n" + .'* **1**: baseline. This value is suitable for mobile devices.'."\n" + .'* **2**: main. This value is suitable for standard-definition devices.'."\n" + .'* **3**: high. This value is suitable for high-definition devices.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '2', + ], + ], + [ + 'name' => 'AudioProfile', + 'in' => 'query', + 'schema' => [ + 'description' => 'The audio codec profile. Valid values:'."\n" + ."\n" + .'* aac_low'."\n" + .'* aac_he'."\n" + .'* aac_he_v2'."\n" + .'* aac_ld'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'aac_low', + ], + ], + [ + 'name' => 'AudioCodec', + 'in' => 'query', + 'schema' => [ + 'description' => 'The audio encoder. Valid values:'."\n" + ."\n" + .'* aac'."\n" + .'* mp3'."\n" + ."\n" + .'> To use the Opus encoder, you need only to set the Opus parameter to true.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'aac', + ], + ], + [ + 'name' => 'AudioRate', + 'in' => 'query', + 'schema' => [ + 'description' => 'The audio sampling rate. Valid values: 22050, 32000, 44100, 48000, and 96000. 44100 is commonly used. Unit: Hz.'."\n" + ."\n" + .'> If the value of the AudioProfile parameter is aac_ld, the audio sampling rate cannot exceed 44,100.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '44100', + ], + ], + [ + 'name' => 'AudioChannelNum', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of sound channels. Valid values:'."\n" + ."\n" + .'* **1**: mono'."\n" + .'* **2**: stereo'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '2', + ], + ], + [ + 'name' => 'Lazy', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable triggered transcoding. Valid values:'."\n" + ."\n" + .'* **yes**: enables triggered transcoding.'."\n" + .'* **no**: disables triggered transcoding.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'no', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameters', + 'errorMessage' => '%s Please check and try again later.', + ], + [ + 'errorCode' => 'ConfigAlreadyExists', + 'errorMessage' => '%s Please check and try again later.', + ], + [ + 'errorCode' => 'TemplateLimit', + 'errorMessage' => '%s Please check and try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + 'title' => 'UpdateRtsLiveStreamTranscode', + 'description' => 'This operation supports the following types of custom transcoding templates: h264, h264-nbhd, h264-origin, and audio.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 10 times per second per account.'."\n", + ], + 'DeleteLiveStreamTranscode' => [ + 'summary' => 'Deletes a transcoding configuration.', + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'App', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'Template', + 'in' => 'query', + 'schema' => [ + 'description' => 'The transcoding template ID. Valid values:'."\n" + ."\n" + .'* Standard transcoding:'."\n" + ."\n" + .' * lld: low definition'."\n" + .' * lsd: standard definition'."\n" + .' * lhd: high definition'."\n" + .' * lud : ultra-high definition'."\n" + ."\n" + .'* Narrowband HD™ transcoding:'."\n" + ."\n" + .' * ld: low definition'."\n" + .' * sd: standard definition'."\n" + .' * hd: high definition'."\n" + .' * ud: ultra-high definition'."\n" + ."\n" + .'* Custom transcoding: a custom ID'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'lld', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', + 'title' => 'DeleteLiveStreamTranscode', + 'description' => 'Standard transcoding templates, Narrowband HD™ transcoding templates, and custom transcoding templates are supported for this operation.'."\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.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLiveStreamTranscodeInfo' => [ + 'summary' => 'Queries the transcoding configurations of a streaming domain.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainTranscodeName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'myapp', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '62136AE6-7793-45ED-B14A-60D19A9486D3', + ], + 'DomainTranscodeList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DomainTranscodeInfo' => [ + 'description' => 'The transcoding configurations.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The transcoding configuration.'."\n", + 'type' => 'object', + 'properties' => [ + 'TranscodeApp' => [ + 'description' => 'The application name.'."\n", + 'type' => 'string', + 'example' => 'liveApp****', + ], + 'TranscodeTemplate' => [ + 'description' => 'The transcoding template ID. Valid values:'."\n" + ."\n" + .'* **Standard transcoding**:'."\n" + ."\n" + .' * **lld**: low definition'."\n" + .' * **lsd**: standard definition'."\n" + .' * **lhd**: high definition'."\n" + .' * **lud**: ultra-high definition'."\n" + ."\n" + .'* **Narrowband HD™ transcoding**:'."\n" + ."\n" + .' * **ld**: low definition'."\n" + .' * **sd**: standard definition'."\n" + .' * **hd**: high definition'."\n" + .' * **ud**: ultra-high definition'."\n", + 'type' => 'string', + 'example' => 'lld', + ], + 'IsLazy' => [ + 'description' => 'Indicates whether forcible transcoding is used. Valid values:'."\n" + ."\n" + .'* **true**: Delayed transcoding is used.'."\n" + .'* **false**: Forcible transcoding is used.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'TranscodeName' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'CustomTranscodeParameters' => [ + 'description' => 'The custom transcoding configuration.'."\n", + 'type' => 'object', + 'properties' => [ + 'BitrateWithSource' => [ + 'description' => 'The source-based bitrate settings.'."\n", + 'type' => 'object', + 'example' => '{\\"UpLimit\\":2500,\\"LowerLimit\\":800,\\"Factor\\":1}', + ], + 'VideoProfile' => [ + 'description' => 'The video encoding profile. Valid values:'."\n" + ."\n" + .'* **baseline**: suitable for mobile devices.'."\n" + .'* **main**: suitable for standard-definition devices.'."\n" + .'* **high**: suitable for high-definition devices.'."\n", + 'type' => 'string', + 'example' => 'high', + ], + 'AudioBitrate' => [ + 'description' => 'The bitrate of the output audio. Unit: Kbit/s. Valid values: **1 to 1000**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '64', + ], + 'Height' => [ + 'description' => 'The height of the output video.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1200', + ], + 'RtsFlag' => [ + 'description' => 'The Real-Time Transcoding (RTS) flag. Fixed value: **true**.'."\n" + ."\n" + .'> This parameter is returned only if RTS is used for transcoding.'."\n", + 'type' => 'string', + 'example' => 'true', + ], + 'TemplateType' => [ + 'description' => 'The type of the custom transcoding template. Valid values:'."\n" + ."\n" + .'* **h264**: custom H.264 standard transcoding'."\n" + .'* **h264-nbhd**: custom H.264 Narrowband HD™ transcoding'."\n" + .'* **h265**: custom H.265 standard transcoding'."\n" + .'* **h265-nbhd**: custom H.265 Narrowband HD™ transcoding'."\n" + .'* **audio**: audio-only transcoding'."\n", + 'type' => 'string', + 'example' => 'h264', + ], + 'Bframes' => [ + 'description' => 'Indicates whether B-frame removal is enabled. Fixed value: **0**.'."\n", + 'type' => 'string', + 'example' => '0', + ], + 'ExtWithSource' => [ + 'description' => 'Other source-based settings.'."\n", + 'type' => 'object', + 'example' => '{\\"KeyFrameOpen\\":\\"yes\\",\\"Copyts\\":\\"yes\\",\\"SeiMode\\":1}', + ], + 'AudioRate' => [ + 'description' => 'The audio sampling rate. Valid values: **22050 to 96000**.'."\n" + ."\n" + .'> If the value of AudioProfile is **aac_ld**, the audio sampling rate cannot exceed 44100.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '44100', + ], + 'FpsWithSource' => [ + 'description' => 'The source-based frame rate settings.'."\n", + 'type' => 'object', + 'example' => '{\\"UpLimit\\":60,\\"LowerLimit\\":1}', + ], + 'AudioCodec' => [ + 'description' => 'The audio encoding format.'."\n", + 'type' => 'string', + 'example' => 'ACC', + ], + 'FPS' => [ + 'description' => 'The frame rate of the output video. Unit: frames per second (FPS).'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '15', + ], + 'Gop' => [ + 'description' => 'The group of pictures (GOP) size of the output video. Unit: frames. Valid values: **1 to 3000**.'."\n", + 'type' => 'string', + 'example' => '10', + ], + 'Width' => [ + 'description' => 'The width of the output video.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1000', + ], + 'VideoBitrate' => [ + 'description' => 'The bitrate of the output video. Unit: Kbit/s.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '3000', + ], + 'AudioChannelNum' => [ + 'description' => 'The number of sound channels. Valid values:'."\n" + ."\n" + .'* **1**: mono'."\n" + .'* **2**: binaural'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '2', + ], + 'AudioProfile' => [ + 'description' => 'The audio encoding profile. Valid values:'."\n" + ."\n" + .'* **aac_low**'."\n" + .'* **aac_he**'."\n" + .'* **aac_he_v2**'."\n" + .'* **aac_ld**'."\n", + 'type' => 'string', + 'example' => 'aac_low', + ], + 'ResWithSource' => [ + 'description' => 'The source-based resolution settings.'."\n", + 'type' => 'object', + 'example' => '{\\"Type\\":\\"short\\",\\"Value\\":\\"1080\\"}', + ], + 'DeInterlaced' => [ + 'type' => 'boolean', + ], + ], + ], + 'EncryptParameters' => [ + 'description' => 'The encryption settings.'."\n", + 'type' => 'object', + 'properties' => [ + 'EncryptType' => [ + 'description' => 'The type of encryption. Fixed value: **aliyun**.'."\n", + 'type' => 'string', + 'example' => 'aliyun', + ], + 'KmsKeyID' => [ + 'description' => 'The ID of the customer master key (CMK) in Key Management Service (KMS).'."\n", + 'type' => 'string', + 'example' => 'afce5722-81d2-43c3-9930-7601da11****', + ], + 'KmsKeyExpireInterval' => [ + 'description' => 'The rotation period of the CMK. Valid values: **60 to 3600**. Unit: seconds.'."\n", + 'type' => 'string', + 'example' => '3600', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameters', + 'errorMessage' => '%s Please check and try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"62136AE6-7793-45ED-B14A-60D19A9486D3\\",\\n \\"DomainTranscodeList\\": {\\n \\"DomainTranscodeInfo\\": [\\n {\\n \\"TranscodeApp\\": \\"liveApp****\\",\\n \\"TranscodeTemplate\\": \\"lld\\",\\n \\"IsLazy\\": true,\\n \\"TranscodeName\\": \\"example.com\\",\\n \\"CustomTranscodeParameters\\": {\\n \\"BitrateWithSource\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"VideoProfile\\": \\"high\\",\\n \\"AudioBitrate\\": 64,\\n \\"Height\\": 1200,\\n \\"RtsFlag\\": \\"true\\",\\n \\"TemplateType\\": \\"h264\\",\\n \\"Bframes\\": \\"0\\",\\n \\"ExtWithSource\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"AudioRate\\": 44100,\\n \\"FpsWithSource\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"AudioCodec\\": \\"ACC\\",\\n \\"FPS\\": 15,\\n \\"Gop\\": \\"10\\",\\n \\"Width\\": 1000,\\n \\"VideoBitrate\\": 3000,\\n \\"AudioChannelNum\\": 2,\\n \\"AudioProfile\\": \\"aac_low\\",\\n \\"ResWithSource\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"DeInterlaced\\": true\\n },\\n \\"EncryptParameters\\": {\\n \\"EncryptType\\": \\"aliyun\\",\\n \\"KmsKeyID\\": \\"afce5722-81d2-43c3-9930-7601da11****\\",\\n \\"KmsKeyExpireInterval\\": \\"3600\\"\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 62136AE6-7793-45ED-B14A-60D19A9486D3\\n \\n liveApp****\\n lld\\n true\\n example.com\\n \\n high\\n 64\\n 1200\\n true\\n h264\\n 0\\n 44100\\n ACC\\n 15\\n 10\\n 1000\\n 3000\\n 2\\n aac_low\\n \\n \\n aliyun\\n afce5722-81d2-43c3-9930-7601da11****\\n 3600\\n \\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveStreamTranscodeInfo', + 'description' => 'Obtain the main streaming domain, and then call this operation to query the transcoding configurations.'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'AddTrancodeSEI' => [ + 'summary' => 'Inserts supplemental enhancement information (SEI) to 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream.'."\n" + ."\n" + .'> The value of this parameter must be the name of the source stream. This way, the SEI is inserted to all the transcoded streams.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveStream****', + ], + ], + [ + 'name' => 'Text', + 'in' => 'query', + 'schema' => [ + 'description' => 'The SEI text. It can be up to 4,000 bytes in length.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveSei****', + ], + ], + [ + 'name' => 'Pattern', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to append the SEI to each keyframe or frame. Valid values:'."\n" + ."\n" + .'* **keyframe**'."\n" + .'* **frame**'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'keyframe', + ], + ], + [ + 'name' => 'Repeat', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of times that the SEI is repeatedly inserted. A value of -1 specifies infinite times.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '-1', + ], + ], + [ + 'name' => 'Delay', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time period after which the SEI is inserted after the request is received. Unit: milliseconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '100', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4E*****43-CB92E68F4CD8', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameters', + 'errorMessage' => '%s Please check and try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4E*****43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4E*****43-CB92E68F4CD8\\n","errorExample":""}]', + 'title' => 'AddTrancodeSEI', + 'description' => 'Obtain the streaming domain, and then call this operation to insert SEI to the transcoded streams. Make sure that the stream name is the name of the source stream. This way, the SEI is inserted to all the transcoded streams.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 6,000 times per minute 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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'AddLiveRecordVodConfig' => [ + 'summary' => 'Adds a Live-to-VOD configuration to store recordings in the media library of 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n" + ."\n" + .'> Make sure that ApsaraVideo VOD is activated in the same region as the live center of the streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'testName', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'stream', + ], + ], + [ + 'name' => 'VodTranscodeGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the transcoding template group in ApsaraVideo VOD.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'e2d796d3bb5fd8049d32bff62f94****', + ], + ], + [ + 'name' => 'CycleDuration', + 'in' => 'query', + 'schema' => [ + 'description' => 'The recording cycle. Unit: seconds. Valid values: **300 to 21600**. Default value: **3600**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '21600', + 'minimum' => '300', + 'example' => '300', + ], + ], + [ + 'name' => 'AutoCompose', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable automatic merging. If you set the value to **ON**, automatic merging is enabled and the ComposeVodTranscodeGroupId parameter is required. If you do not specify this parameter, automatic merging is disabled.'."\n" + ."\n" + .'> If you enable automatic merging, the VOD files that are created from live streams are automatically merged by using the editing and production feature of ApsaraVideo VOD. For information about the billing of the feature, see [Billing of value-added services](~~188310~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'ON', + ], + ], + [ + 'name' => 'StorageLocation', + 'in' => 'query', + 'schema' => [ + 'description' => 'The storage location.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '****-tjptr2vatm.oss-cn-shanghai.aliyuncs.com', + ], + ], + [ + 'name' => 'ComposeVodTranscodeGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the transcoding template group in ApsaraVideo VOD that is used to transcode the video file. The video file is generated by merging the VOD files created from live streams.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* This parameter is required if you set the AutoCompose parameter to ON.'."\n" + ."\n" + .'* For more information about automatic merging and transcoding, see [FAQ about Live-to-VOD](~~99726~~).'."\n" + ."\n" + .'* For information about the billing of transcoding in ApsaraVideo VOD, see [Billing of basic services](~~188308~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '*****', + ], + ], + [ + 'name' => 'OnDemand', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable on-demand recording. Valid values:'."\n" + ."\n" + .'* **0** (default): disables on-demand recording.'."\n" + .'* **1**: enables on-demand recording.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '0', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'ConfigAlreadyExists', + 'errorMessage' => 'Config has already exist.', + ], + [ + 'errorCode' => 'CommomLiveRcordConfigExisted', + 'errorMessage' => 'Commom liverecord config has already exist.', + ], + [ + 'errorCode' => 'InvalidAutoCompose.Malformed', + 'errorMessage' => 'Specified parameter AutoCompose is not valid.', + ], + [ + 'errorCode' => 'InvalidAutoComposeAndComposeVodTranscodeGroupId.Malformed', + 'errorMessage' => 'Specified parameter AutoCompose and ComposeVodTranscodeGroupId is not valid, must both empty or input', + ], + ], + 403 => [ + [ + 'errorCode' => 'InvalidRegion.Conflict', + 'errorMessage' => 'Specified parameter StorageLocation and Region is not match', + ], + ], + [ + [ + 'errorCode' => 'InvalidStorage.NotFound', + 'errorMessage' => 'Specified parameter StorageLocation is not exist', + ], + [ + 'errorCode' => 'InvalidTemplateGroupId.NotFound', + 'errorMessage' => 'Specified parameter vodTranscodeGroupId or composeVodTranscodeGroupId is not exist', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n} "}]', + 'title' => 'AddLiveRecordVodConfig', + 'description' => 'You can call this operation to configure the Live-to-VOD feature to store recordings in the media library of ApsaraVideo VOD.'."\n" + ."\n" + .'> You cannot configure the Live-to-VOD feature by using a Finance Cloud account.'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'UpdateLiveRecordVodConfig' => [ + 'summary' => 'Updates a Live-to-VOD configuration.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '181113', + 'abilityTreeNodes' => [ + 'FEATUREliveG4SX14', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'testName', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'stream', + ], + ], + [ + 'name' => 'VodTranscodeGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the transcoding template group in ApsaraVideo VOD.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'e2d796d3bb5fd8049d32bff62f94****', + ], + ], + [ + 'name' => 'CycleDuration', + 'in' => 'query', + 'schema' => [ + 'description' => 'The recording cycle. Unit: seconds. Valid values: **300 to 21600**. Default value: **3600**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '21600', + 'minimum' => '300', + 'example' => '300', + ], + ], + [ + 'name' => 'AutoCompose', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable automatic merging. Valid values:'."\n" + ."\n" + .'* **ON**: enables automatic merging. If you set this parameter to ON, you must also specify the ComposeVodTranscodeGroupId parameter.'."\n" + .'* **OFF**: disables automatic merging.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'OFF', + ], + ], + [ + 'name' => 'ComposeVodTranscodeGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the transcoding template group in ApsaraVideo VOD that is used to transcode the video file. The video file is generated by merging the VOD files created from live streams.'."\n" + ."\n" + .'> To query transcoding template groups, call the [ListTranscodeTemplateGroup](~~454928~~) operation.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '*****', + ], + ], + [ + 'name' => 'OnDemand', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable on-demand recording. Valid values:'."\n" + ."\n" + .'* **0** (default): disables on-demand recording.'."\n" + .'* **1**: enables on-demand recording by using the HTTP callback method.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '0', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '61C96B9A-F203-4EC5-8E43-CB92E68F67DF', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'ConfigAlreadyExists', + 'errorMessage' => 'Config has already exist.', + ], + [ + 'errorCode' => 'CommomLiveRcordConfigExisted', + 'errorMessage' => 'Commom liverecord config has already exist.', + ], + [ + 'errorCode' => 'InvalidAutoCompose.Malformed', + 'errorMessage' => 'Specified parameter AutoCompose is not valid.', + ], + [ + 'errorCode' => 'InvalidAutoComposeAndComposeVodTranscodeGroupId.Malformed', + 'errorMessage' => 'Specified parameter AutoCompose and ComposeVodTranscodeGroupId is not valid, must both empty or input', + ], + ], + 403 => [ + [ + 'errorCode' => 'InvalidRegion.Conflict', + 'errorMessage' => 'Specified parameter StorageLocation and Region is not match', + ], + ], + [ + [ + 'errorCode' => 'InvalidStorage.NotFound', + 'errorMessage' => 'Specified parameter StorageLocation is not exist', + ], + [ + 'errorCode' => 'InvalidTemplateGroupId.NotFound', + 'errorMessage' => 'Specified parameter vodTranscodeGroupId or composeVodTranscodeGroupId is not exist', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"61C96B9A-F203-4EC5-8E43-CB92E68F67DF\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 61C96B9A-F203-4EC5-8E43-CB92E68F67DF\\n","errorExample":""}]', + 'title' => 'UpdateLiveRecordVodConfig', + 'description' => 'You can call this operation up to 1,000 times per minute 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", + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveStream****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => ' 40A4F36D-A7CC-473A-88E7-154F92242566', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\" 40A4F36D-A7CC-473A-88E7-154F92242566\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', + 'title' => 'DeleteLiveRecordVodConfig', + 'description' => 'Obtain the main streaming domain, and then call this operation to delete a Live-to-VOD configuration.'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLiveRecordVodConfigs' => [ + 'summary' => 'Queries Live-to-VOD configurations.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveStream****', + ], + ], + [ + 'name' => 'PageNum', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: **10**. Valid values: **5 to 100**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '100', + 'minimum' => '5', + 'example' => '10', + 'default' => '10', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'PageNum' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5056369B-D337-499E-B8B7-B761BD37B08A', + ], + 'PageSize' => [ + 'description' => 'The number of entries per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'Total' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'string', + 'example' => '100', + ], + 'LiveRecordVodConfigs' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LiveRecordVodConfig' => [ + 'description' => 'The configurations.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'StorageLocation' => [ + 'description' => 'The storage location.'."\n", + 'type' => 'string', + 'example' => '****-tjptr2vatm.oss-cn-shanghai.aliyuncs.com', + ], + 'AppName' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'example' => 'liveApp****', + ], + 'AutoCompose' => [ + 'description' => 'Indicates whether automatic merging is enabled. Valid values:'."\n" + ."\n" + .'* **ON**'."\n" + .'* **OFF**'."\n", + 'type' => 'string', + 'example' => 'ON', + ], + 'OnDemand' => [ + 'description' => 'Indicates whether on-demand recording is enabled. Valid values:'."\n" + ."\n" + .'* **0** (default): On-demand recording is disabled.'."\n" + .'* **1**: On-demand recording is enabled by using the HTTP callback method.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'StreamName' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'example' => 'liveStream****', + ], + 'CreateTime' => [ + 'description' => 'The time when the live stream 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' => '2015-12-01T17:37:00Z', + ], + 'VodTranscodeGroupId' => [ + 'description' => 'The ID of the transcoding template group in ApsaraVideo VOD.'."\n", + 'type' => 'string', + 'example' => 'e2d796d3bb5fd8049d32bff62f94****', + ], + 'CycleDuration' => [ + 'description' => 'The recording cycle. Unit: seconds. Default value: **3600**. Valid values: **300 to 21600**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '360', + ], + 'DomainName' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'ComposeVodTranscodeGroupId' => [ + 'description' => 'The ID of the transcoding template group that was used to automatically merge the VOD files created from the live streams.'."\n" + ."\n" + .'> This parameter is returned if the value of the AutoCompose parameter is ON.'."\n", + 'type' => 'string', + 'example' => 'dadfcaadde****', + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageNum\\": 1,\\n \\"RequestId\\": \\"5056369B-D337-499E-B8B7-B761BD37B08A\\",\\n \\"PageSize\\": 1,\\n \\"Total\\": \\"100\\",\\n \\"LiveRecordVodConfigs\\": {\\n \\"LiveRecordVodConfig\\": [\\n {\\n \\"StorageLocation\\": \\"****-tjptr2vatm.oss-cn-shanghai.aliyuncs.com\\",\\n \\"AppName\\": \\"liveApp****\\",\\n \\"AutoCompose\\": \\"ON\\",\\n \\"OnDemand\\": 0,\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"CreateTime\\": \\"2015-12-01T17:37:00Z\\",\\n \\"VodTranscodeGroupId\\": \\"e2d796d3bb5fd8049d32bff62f94****\\",\\n \\"CycleDuration\\": 360,\\n \\"DomainName\\": \\"example.com\\",\\n \\"ComposeVodTranscodeGroupId\\": \\"dadfcaadde****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 1\\n 5056369B-D337-499E-B8B7-B761BD37B08A\\n 1\\n 100\\n \\n \\n ****-tjptr2vatm.oss-cn-shanghai.aliyuncs.com\\n liveApp****\\n ON\\n 0\\n liveStream****\\n 2015-12-01T17:37:00Z\\n e2d796d3bb5fd8049d32bff62f94****\\n 360\\n example.com\\n dadfcaadde****\\n \\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveRecordVodConfigs', + 'description' => '## [](#)Usage notes'."\n" + ."\n" + .'Obtain the streaming domain, and then call this operation to query the Live-to-VOD configurations.'."\n" + ."\n" + .'## [](#qps-)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 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' => ' ', + ], + 'AddLiveAppRecordConfig' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'systemTags' => [ + 'operationType' => 'create', + ], + 'parameters' => [ + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.', + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + '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. If you want to match all applications, specify an asterisk (\\*) as the value.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'OssEndpoint', + 'in' => 'query', + 'schema' => [ + 'description' => 'The endpoint of the OSS bucket. '."\n" + .'To store live stream recordings in OSS, you need to create an OSS bucket in advance. For more information, see Configure OSS.', + 'type' => 'string', + 'required' => true, + 'example' => 'learn.developer.aliyundoc.com', + ], + ], + [ + 'name' => 'OssBucket', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the OSS bucket where live streaming recording files are stored. To store recorded files in OSS, you need to create an OSS bucket in advance. For creation method, please refer to [Configure OSS](~~84932~~).', + 'type' => 'string', + 'required' => true, + 'example' => 'liveBucket****', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'Stream broadcast name.', + 'type' => 'string', + 'required' => false, + 'example' => 'teststream', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'Start time of the recording. Format: yyyy-MM-ddTHH:mm:ssZ (UTC time).'."\n" + .'> The set time must be within 7 days of the actual streaming start time, and is only valid for stream-level recording (when StreamName is not empty).', + 'type' => 'string', + 'required' => false, + 'example' => '2018-04-10T09:57:21Z', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'Recording end time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC time).'."\n" + .'> The difference between EndTime and StartTime should not exceed 7 days; if it does, it will be calculated as 7 days. This is only valid for stream-level recording (when StreamName is not empty).', + 'type' => 'string', + 'required' => false, + 'example' => '2018-04-16T09:57:21Z', + ], + ], + [ + 'name' => 'OnDemand', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable on-demand recording. Valid values:'."\n" + ."\n" + .'* **0**: disables on-demand recording.'."\n" + .'* **1**: enables on-demand recording by using the HTTP callback method.'."\n" + .'* **2**: enables on-demand recording by parsing the stream ingest parameters.'."\n" + .'* **7**: By default, ApsaraVideo Live does not automatically record live streams. You can call the [RealTimeRecordCommand](~~2847882~~) operation to manually start or stop recording.'."\n" + ."\n" + .'> If you set the OnDemand parameter to **1**, you need to call the [AddLiveRecordNotifyConfig](~~2847891~~) operation to configure the OnDemandUrl parameter. Otherwise, ApsaraVideo Live does not perform on-demand recording.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'DelayTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'Duration for stream concatenation. If the live streaming interruption exceeds the set concatenation duration, a new file will be generated. The concatenation duration can be set between 15 to 21600 seconds.', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '180', + ], + ], + [ + 'name' => 'RecordFormat', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The recording details.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + '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.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '30', + ], + 'SliceOssObjectPrefix' => [ + 'description' => 'The naming format of a segment.'."\n" + ."\n" + .'> This parameter is required only if you set the RecordFormat.N.Format parameter to m3u8 or cmaf.'."\n" + ."\n" + .'* By default, the duration of a segment is 30 seconds. The segment name must be less than 256 bytes in length and can contain the {AppName}, {StreamName}, {UnixTimestamp}, and {Sequence} variables.'."\n" + .'* The segment name must contain the {UnixTimestamp} and {Sequence} variables.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'record/{AppName}/{StreamName}/{UnixTimestamp}_{Sequence}', + ], + 'CycleDuration' => [ + 'description' => 'The recording cycle. Unit: seconds. If you do not specify this parameter, the default value 6 hours is used.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* If a live stream is interrupted during a recording cycle but is resumed within the interruption duration threshold, the stream is recorded in the same recording before and after the interruption.'."\n" + ."\n" + .'* If a live stream is interrupted for longer than the interruption duration threshold, a new recording is generated.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + 'OssObjectPrefix' => [ + 'description' => 'The naming format of a recording to store in OSS.'."\n" + ."\n" + .'* The name must be less than 256 bytes in length and can contain the {AppName}, {StreamName}, {Sequence}, {StartTime}, {EndTime}, {EscapedStartTime}, and {EscapedEndTime} variables.'."\n" + .'* The name must contain the {StartTime} and {EndTime} variables or the {EscapedStartTime} and {EscapedEndTime} variables.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'record/{AppName}/{StreamName}/{Sequence}_{EscapedStartTime}_{EscapedEndTime}', + ], + 'Format' => [ + 'description' => 'The recording format. Supported formats include M3U8, FLV, MP4, and CMAF. Valid values:'."\n" + ."\n" + .'> You need to specify at lease one of the RecordFormat and TranscodeRecordFormat parameters. If you set this parameter to m3u8 or cmaf, you must also specify the RecordFormat.N.SliceOssObjectPrefix and RecordFormat.N.SliceDuration parameters.'."\n" + ."\n" + .'* m3u8'."\n" + .'* flv'."\n" + .'* mp4'."\n" + .'* cmaf'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'm3u8', + ], + ], + 'required' => false, + 'description' => '', + ], + 'required' => false, + 'maxItems' => 3, + ], + ], + [ + 'name' => 'TranscodeRecordFormat', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The transcoded stream recording details.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'SliceDuration' => [ + 'description' => 'The duration of a single segment in a 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.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '30', + ], + 'SliceOssObjectPrefix' => [ + 'description' => 'The naming format of a segment in a transcoded stream recording.'."\n" + ."\n" + .'> This parameter is required only if you set the TranscodeRecordFormat.N.Format parameter to m3u8 or cmaf.'."\n" + ."\n" + .'* By default, the duration of a segment is 30 seconds. The segment name must be less than 256 bytes in length and can contain the {AppName}, {StreamName}, {UnixTimestamp}, and {Sequence} variables.'."\n" + .'* The segment name must contain the {UnixTimestamp} and {Sequence} variables.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'record/{AppName}/{StreamName}/{UnixTimestamp}_{Sequence}', + ], + 'CycleDuration' => [ + 'description' => 'The transcoded stream recording cycle. Unit: seconds. If you do not specify this parameter, the default value 6 hours is used.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '21600', + ], + 'OssObjectPrefix' => [ + 'description' => 'The naming format of a transcoded stream recording to store in OSS.'."\n" + ."\n" + .'* The name must be less than 256 bytes in length and can contain the {AppName}, {StreamName}, {Sequence}, {StartTime}, {EndTime}, {EscapedStartTime}, and {EscapedEndTime} variables.'."\n" + .'* The name must contain the {StartTime} and {EndTime} variables or the {EscapedStartTime} and {EscapedEndTime} variables.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'record/{AppName}/{StreamName}/{Sequence}_{EscapedStartTime}_{EscapedEndTime}', + ], + 'Format' => [ + 'description' => 'The transcoded stream recording format. Supported formats include M3U8, FLV, MP4, and CMAF. Valid values:'."\n" + ."\n" + .'> If you set this parameter to m3u8 or cmaf, you must also specify the TranscodeRecordFormat.N.SliceOssObjectPrefix and TranscodeRecordFormat.N.SliceDuration parameters.'."\n" + ."\n" + .'* m3u8'."\n" + .'* flv'."\n" + .'* mp4'."\n" + .'* cmaf'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'm3u8', + ], + ], + 'required' => false, + 'description' => '', + ], + 'required' => false, + 'maxItems' => 3, + ], + ], + [ + 'name' => 'TranscodeTemplates', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'Transcoding stream recording template group.', + 'type' => 'array', + 'items' => [ + 'description' => '- Transcoding stream recording [transcoding templates](~~45039~~), allowing multiple settings, up to 10. '."\n" + .'- When setting TranscodeRecordFormat.N.xxx configuration, at least one TranscodeTemplates must be set. '."\n" + .'- To record multiple or all transcoded streams, set TranscodeTemplates.1 to *****. '."\n" + .'>TranscodeTemplates does not allow inputting `raw`, which is a reserved identifier.
RepeatList signifies the N in TranscodeTemplates.N, interpretable as incrementally setting multiple configurations, e.g., TranscodeTemplates.1=sd, TranscodeTemplates.2=hd.', + 'type' => 'string', + 'required' => false, + 'example' => 'sd', + ], + 'required' => false, + 'example' => 'sd', + 'maxItems' => 10, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidOssEndpoint.Malformed', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidOssBucket.Malformed', + 'errorMessage' => 'Specified parameter OssBucket is not valid.', + ], + [ + 'errorCode' => 'InvalidOssBucket.NotFound', + 'errorMessage' => 'The parameter OssBucket does not exist.', + ], + [ + 'errorCode' => 'InvalidFormat.Malformed', + 'errorMessage' => 'Specified parameter Format is not valid.', + ], + [ + 'errorCode' => 'InvalidCycleDuration.Malformed', + 'errorMessage' => 'Specified CycleDuration Format is not valid.', + ], + [ + 'errorCode' => 'InvalidSliceDuration.Malformed', + 'errorMessage' => 'Specified SliceDuration Format is not valid.', + ], + [ + 'errorCode' => 'InvalidTemplateLength.Malformed', + 'errorMessage' => 'Specified record template length is not valid.', + ], + [ + 'errorCode' => 'InvalidTemplate.ForbidRaw', + 'errorMessage' => 'Template named raw is Forbidden.', + ], + [ + 'errorCode' => 'MissingTemplate', + 'errorMessage' => 'Template is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingOssObjectPrefix', + 'errorMessage' => 'OssObjectPrefix is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingSliceOssObjectPrefix', + 'errorMessage' => 'SliceOssObjectPrefix is mandatory for this action.', + ], + [ + 'errorCode' => 'InvalidOssObjectPrefix.Malformed', + 'errorMessage' => 'Specified parameter OssObjectPrefix is not valid.', + ], + [ + 'errorCode' => 'InvalidSliceOssObjectPrefix.Malformed', + 'errorMessage' => 'Specified parameter SliceOssObjectPrefix is not valid.', + ], + [ + 'errorCode' => 'ConfigAlreadyExists', + 'errorMessage' => 'Config has already exist.', + ], + [ + 'errorCode' => 'InvalidFormat.IllegalOperation', + 'errorMessage' => 'Specified parameter Format can not be multiple.', + ], + [ + 'errorCode' => 'InvalidDelayTime', + 'errorMessage' => 'Specified Delaytime is invalid.', + ], + [ + 'errorCode' => 'Live2Vod.ConfigAlreadyExists', + 'errorMessage' => 'Had live2vod record config already.', + ], + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified StartTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified EndTime does not math the specified StartTime or current time.', + ], + [ + 'errorCode' => 'InvalidStartTime.Mismatch', + 'errorMessage' => 'Specified StartTime does not math the current time.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', + 'title' => 'AddLiveAppRecordConfig', + 'summary' => 'Configure APP recording, with output saved to OSS.', + 'description' => 'The live stream recording feature allows you to record a live stream and stores the recordings in a specified location. You can view the recordings whenever you want to. Recordings that are stored in OSS support multiple formats, such as Transport Stream (TS), MP4, Flash Video (FLV), and Common Media Application Format (CMAF). You can use different recording policies, including automatic recording, on-demand recording, and manual recording. By calling this operation, you can configure the recording template. For more information about live stream recording, see [Live stream recording](~~199357~~).'."\n" + ."\n" + .'A configuration is identified by the DomainName, AppName, and StreamName parameters all together. If you try to call this operation to add a configuration that has the same DomainName, AppName, and StreamName parameters as an existing configuration, an error indicating that the configuration already exists is returned.'."\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.'."\n", + '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.', + ], + 'RealTimeRecordCommand' => [ + 'summary' => 'Controls recordings manually on demand. For example, you can call this operation to start or stop recording at a specific point in 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Command', + 'in' => 'query', + 'schema' => [ + 'description' => 'The action to be performed. Valid values:'."\n" + ."\n" + .'* **start**: forcibly starts recording.'."\n" + .'* **stop**: forcibly stops recording. If the live stream is interrupted for longer than a specific latency, a recording is generated.'."\n" + .'* **cancel_delay**: resets the latency for stream interruption and completely stops recording. If the recording task is stopped when you perform this action, a recording is generated.'."\n" + .'* **restart**: forcibly restarts recording. If the live stream is being recorded when you perform this action, a recording is generated.'."\n" + ."\n" + .'> **stop** forcibly stops recording. By default, a recording is generated after 180 seconds. **cancel_delay** resets the latency for stream interruption from 180 seconds to 0 seconds. This means that a recording is generated immediately.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'start', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream. Make sure that you specify the correct stream name. You can view the stream name on the [Stream Management](~~197397~~) page of the ApsaraVideo Live console.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveStream****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MalformedParam', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissingParam', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'CodeConfigNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 409 => [ + [ + 'errorCode' => 'StreamNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'TaskAlreadyStarted', + 'errorMessage' => '%s, please do not start again.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', + 'title' => 'RealTimeRecordCommand', + 'description' => '* Before you call this operation, make sure that you fully understand the billing method and pricing of live stream recording in ApsaraVideo Live. For more information, see [Billing of live stream recording](~~195287~~).'."\n" + .'* If a live stream is being automatically or manually recorded, you can call this operation to stop recording the live stream.'."\n" + .'* If you call this operation to start recording a live stream while it is being recorded, a TaskAlreadyStarted error is returned, indicating that the task has been started.'."\n" + .'* If a live stream that you manually record is interrupted, the recording stops.'."\n" + .'* If automatic recording is not configured for the live stream, ApsaraVideo Live does not automatically record the live stream after it is resumed.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + ], + 'UpdateLiveAppRecordConfig' => [ + 'summary' => 'Updates a recording configuration for an application. The recordings are stored in Object Storage Service (OSS).', + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'OssEndpoint', + 'in' => 'query', + 'schema' => [ + 'description' => 'The endpoint of the Object Storage Service (OSS) bucket.'."\n" + ."\n" + .'To store live stream recordings in OSS, you need to create an OSS bucket in advance. For more information, see [Configure OSS](~~84932~~).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'learn.developer.aliyundoc.com', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'teststream', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The recording 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 start time must be within seven days after the stream ingest starts. This parameter takes effect only for the live stream specified by the StreamName parameter. If the StreamName parameter is not specified, this parameter does not take effect.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2018-04-10T09:57:21Z', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The recording end 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 that is specified by the EndTime and StartTime parameters must be less than or equal to seven days. If the value exceeds seven days, ApsaraVideo Live considers seven days as the time range. This parameter takes effect only for the live stream specified by the StreamName parameter. If the StreamName parameter is not specified, this parameter does not take effect.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2018-04-16T09:57:21Z', + ], + ], + [ + 'name' => 'OnDemand', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable on-demand recording. Valid values:'."\n" + ."\n" + .'* **0**: disables on-demand recording.'."\n" + .'* **1**: enables on-demand recording by using the HTTP callback method.'."\n" + .'* **2**: enables on-demand recording by parsing the stream ingest parameters.'."\n" + .'* **7**: By default, ApsaraVideo Live does not automatically record live streams. You can call the [RealTimeRecordCommand](~~2847882~~) operation to manually start or stop recording.'."\n" + ."\n" + .'> If you set the OnDemand parameter to **1**, you need to call the [AddLiveRecordNotifyConfig](~~2847891~~) operation to configure the OnDemandUrl parameter. Otherwise, ApsaraVideo Live does not perform on-demand recording.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'DelayTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The interruption duration for merge. If the stream interruption duration exceeds the specified duration, a new recording is generated. The value of this parameter ranges from 15 to 21600 seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '180', + ], + ], + [ + 'name' => 'RecordFormat', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The recording details.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'CycleDuration' => [ + 'description' => 'The recording cycle. Unit: seconds If you do not specify this parameter, the default value 6 hours is used.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* If a live stream is interrupted during a recording cycle but is resumed within the interruption duration threshold, the stream is recorded in the same recording before and after the interruption.'."\n" + ."\n" + .'* If a live stream is interrupted for longer than the interruption duration threshold, a new recording is generated.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + 'Format' => [ + 'description' => 'The recording format. Supported formats include M3U8, Flash Video (FLV), MP4, and Common Media Application Format (CMAF). Valid values:'."\n" + ."\n" + .'> You need to specify at lease one of the RecordFormat and TranscodeRecordFormat parameters. If you set this parameter to m3u8 or cmaf, you must also specify the RecordFormat.N.SliceOssObjectPrefix and RecordFormat.N.SliceDuration parameters.'."\n" + ."\n" + .'* m3u8'."\n" + .'* flv'."\n" + .'* mp4'."\n" + .'* cmaf'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'm3u8', + ], + '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.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '30', + ], + ], + 'required' => false, + 'description' => '', + ], + 'required' => false, + 'maxItems' => 3, + ], + ], + [ + 'name' => 'TranscodeRecordFormat', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The transcoded stream recording details.'."\n", + '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.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '21600', + ], + 'Format' => [ + 'description' => 'The format of the transcoded stream recording. Supported formats include M3U8, FLV, MP4, and CMAF. Valid values:'."\n" + ."\n" + .'> If you set this parameter to m3u8 or cmaf, you must also specify the TranscodeRecordFormat.N.SliceOssObjectPrefix and TranscodeRecordFormat.N.SliceDuration parameters.'."\n" + ."\n" + .'* m3u8'."\n" + .'* flv'."\n" + .'* mp4'."\n" + .'* cmaf'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'm3u8', + ], + 'SliceDuration' => [ + 'description' => 'The duration of a single segment in the 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.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '30', + ], + ], + 'required' => false, + 'description' => '', + ], + 'required' => false, + 'maxItems' => 3, + ], + ], + [ + 'name' => 'TranscodeTemplates', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The transcoding template group details.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '* The [transcoding template](~~45039~~) of the transcoded stream. You can configure up to 10 transcoding templates at a time.'."\n" + .'* If you specify the TranscodeRecordFormat.N.xxx parameters, configure at least one transcoding template.'."\n" + .'* If you want to record multiple or all transcoded streams, set TranscodeTemplates.1 to \\*\\*\\*\\*\\*.'."\n" + ."\n" + .'> You cannot set the TranscodeTemplates parameter to `raw`, which is a reserved identifier.\\'."\n" + .'RepeatList is expressed as N in TranscodeTemplates.N, which means multiple templates are configured. Examples: TranscodeTemplates.1=sd and TranscodeTemplates.2=hd.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'sd', + ], + 'required' => false, + 'maxItems' => 10, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidOssBucket.Malformed', + 'errorMessage' => 'Specified parameter OssBucket is not valid.', + ], + [ + 'errorCode' => 'InvalidOssBucket.NotFound', + 'errorMessage' => 'The parameter OssBucket does not exist.', + ], + [ + 'errorCode' => 'InvalidFormat.Malformed', + 'errorMessage' => 'Specified parameter Format is not valid.', + ], + [ + 'errorCode' => 'InvalidCycleDuration.Malformed', + 'errorMessage' => 'Specified CycleDuration Format is not valid.', + ], + [ + 'errorCode' => 'InvalidSliceDuration.Malformed', + 'errorMessage' => 'Specified SliceDuration Format is not valid.', + ], + [ + 'errorCode' => 'InvalidTemplateLength.Malformed', + 'errorMessage' => 'Specified record template length is not valid.', + ], + [ + 'errorCode' => 'InvalidTemplate.ForbidRaw', + 'errorMessage' => 'Template named raw is Forbidden.', + ], + [ + 'errorCode' => 'MissingTemplate', + 'errorMessage' => 'Template is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingOssObjectPrefix', + 'errorMessage' => 'OssObjectPrefix is mandatory for this action.', + ], + [ + 'errorCode' => 'MissingSliceOssObjectPrefix', + 'errorMessage' => 'SliceOssObjectPrefix is mandatory for this action.', + ], + [ + 'errorCode' => 'InvalidOssObjectPrefix.Malformed', + 'errorMessage' => 'Specified parameter OssObjectPrefix is not valid.', + ], + [ + 'errorCode' => 'InvalidSliceOssObjectPrefix.Malformed', + 'errorMessage' => 'Specified parameter SliceOssObjectPrefix is not valid.', + ], + [ + 'errorCode' => 'ConfigAlreadyExists', + 'errorMessage' => 'Config has already exist.', + ], + [ + 'errorCode' => 'InvalidFormat.IllegalOperation', + 'errorMessage' => 'Specified parameter Format can not be multiple.', + ], + [ + 'errorCode' => 'InvalidDelayTime', + 'errorMessage' => 'Specified Delaytime is invalid.', + ], + [ + 'errorCode' => 'Live2Vod.ConfigAlreadyExists', + 'errorMessage' => 'Had live2vod record config already.', + ], + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified StartTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified EndTime does not math the specified StartTime or current time.', + ], + [ + 'errorCode' => 'InvalidStartTime.Mismatch', + 'errorMessage' => 'Specified StartTime does not math the current time.', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'Ram Permission is forbidden.', + ], + [ + 'errorCode' => 'InvalidOssEndpoint.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]', + 'title' => 'UpdateLiveAppRecordConfig', + 'description' => 'Obtain the main streaming domain, and then call this operation to update a recording configuration.'."\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.'."\n", + ], + 'DeleteLiveAppRecordConfig' => [ + 'summary' => 'Deletes a recording configuration at the application 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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveStream****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '6EBD1AC4-C34D-4AE1-963E-B688A228BE31', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidRegion', + 'errorMessage' => 'The current region does not support this operation.', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'Ram Permission is forbidden.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\n\\t","errorExample":"{\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"}]', + 'title' => 'DeleteLiveAppRecordConfig', + 'description' => 'Obtain the main streaming domain, and then call this operation to delete a recording configuration at the application level.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteLiveStreamRecordIndexFiles' => [ + 'summary' => 'Deletes live stream recordings.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'RecordId', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The index file IDs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the index file. You can specify up to 20 IDs.'."\n" + ."\n" + .'> You can call the [DescribeLiveStreamRecordIndexFiles](~~2847890~~) operation to query the IDs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'c4d7f0a4-b506-43f9-8de3-07732c3f****', + ], + 'required' => true, + 'example' => 'c4d7f0a4-b506-43f9-8de3-07732c3f****', + 'maxItems' => 20, + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveStream****', + ], + ], + [ + 'name' => 'RemoveFile', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to delete the corresponding file in Object Storage Service (OSS) synchronously. Valid values:'."\n" + ."\n" + .'* **true**: The corresponding file in OSS is deleted.'."\n" + .'* **false**: The corresponding file in OSS is not deleted.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'true', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The details.'."\n", + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The status code. A return value of 500 indicates an error. For details, see the Error codes section of this topic.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + 'Message' => [ + 'description' => 'The status description. A return value of 500 indicates an error. For details, see the Error codes section of this topic.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + 'RecordDeleteInfoList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RecordDeleteInfo' => [ + 'description' => 'The deletion information.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The deletion information.'."\n", + 'type' => 'object', + 'properties' => [ + 'Message' => [ + 'description' => 'The processing result of each file indicated by the file ID. Valid values:'."\n" + ."\n" + .'* **OK**: The file has been deleted.'."\n" + .'* **AccessDenied**: Access to the file has been denied.'."\n" + .'* **FileNotFound**: The file fails to be found.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + 'RecordId' => [ + 'description' => 'The ID of the index file that is used to locate the live stream recording files to be deleted.'."\n", + 'type' => 'string', + 'example' => 'c4d7f0a4-b506-43f9-8de3-07732c3f**', + ], + ], + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '939D19EE-59A0-18E9-B458-*****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParams', + 'errorMessage' => 'Failed to parse given parameters.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"OK\\",\\n \\"Message\\": \\"OK\\",\\n \\"RecordDeleteInfoList\\": {\\n \\"RecordDeleteInfo\\": [\\n {\\n \\"Message\\": \\"OK\\",\\n \\"RecordId\\": \\"c4d7f0a4-b506-43f9-8de3-07732c3f**\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"939D19EE-59A0-18E9-B458-*****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n OK\\n OK\\n \\n OK\\n c4d7f0a4-b506-43f9-8de3-07732c3f**\\n \\n 939D19EE-59A0-18E9-B458-*****\\n","errorExample":""}]', + 'title' => 'DeleteLiveStreamRecordIndexFiles', + 'description' => '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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLiveRecordConfig' => [ + 'summary' => 'Queries all recording configurations of an application for a 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 name of the main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveStream****', + ], + ], + [ + 'name' => 'PageNum', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Valid values: **5 to 30**. Default value: **10**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '30', + 'minimum' => '5', + 'example' => '5', + 'default' => '10', + ], + ], + [ + 'name' => 'Order', + 'in' => 'query', + 'schema' => [ + 'description' => 'The order in which the entries are sorted based on creation time. Valid values:'."\n" + ."\n" + .'* **asc** (default): ascending order'."\n" + .'* **desc**: descending order'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'asc', + 'default' => 'asc', + 'enum' => [ + 'asc', + 'desc', + ], + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'PageNum' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '5', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5056369B-D337-499E-B8B7-B761BD37B08A', + ], + 'Order' => [ + 'description' => 'The sorting order of recording configurations by creation time.'."\n", + 'type' => 'string', + 'example' => 'desc', + ], + 'TotalPage' => [ + 'description' => 'The total number of pages.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '20', + ], + 'PageSize' => [ + 'description' => 'The number of entries per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'TotalNum' => [ + 'description' => 'The total number of recording configurations that meet the specified conditions.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '12', + ], + 'LiveAppRecordList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LiveAppRecord' => [ + 'description' => 'The list of recording configurations.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The recording configuration.'."\n", + 'type' => 'object', + 'properties' => [ + 'EndTime' => [ + 'description' => 'The end time of the recording. 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' => '2018-11-08T03:49:18Z', + ], + 'StartTime' => [ + 'description' => 'The start time of the recording. 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' => '2018-11-08T02:49:18Z', + ], + 'AppName' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'example' => 'liveApp****', + ], + 'StreamName' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'example' => 'liveStream****', + ], + 'DelayTime' => [ + 'description' => 'The maximum interruption duration of the live stream. If the actual interruption duration exceeds the threshold, a new recording is generated. Valid values: 15 to 21600. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '180', + ], + 'CreateTime' => [ + 'description' => 'The time when the recording configuration 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' => '2016-05-20T09:33:38Z', + ], + 'OnDemond' => [ + 'description' => 'The configuration of on-demand recording. Valid values:'."\n" + ."\n" + .'* **0**: disables on-demand recording.'."\n" + .'* **1**: enables on-demand recording that is triggered by HTTP callbacks.'."\n" + .'* **2**: enables on-demand recording that is triggered by stream ingest parameters.'."\n" + .'* **7**: enables on-demand recording by calling the [RealTimeRecordCommand](~~85907~~) operation to manually start or stop recording.'."\n" + ."\n" + .'> If you set OnDemand to **1**, you must call the [AddLiveRecordNotifyConfig](~~51831~~) operation to configure OnDemandUrl. Otherwise, the configuration of on-demand recording is invalid.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'OssBucket' => [ + 'description' => 'The name of the Object Storage Service (OSS) bucket in which the recordings are stored.'."\n", + 'type' => 'string', + 'example' => 'liveBucket****', + ], + 'DomainName' => [ + 'description' => 'The name of the main streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'OssEndpoint' => [ + 'description' => 'The endpoint of the OSS bucket.'."\n", + 'type' => 'string', + 'example' => 'cn-oss-****.aliyuncs.com', + ], + 'RecordFormatList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RecordFormat' => [ + 'description' => 'The recording formats of original streams.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'SliceDuration' => [ + 'description' => 'The duration of a segment file. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '30', + ], + 'CycleDuration' => [ + 'description' => 'The duration of a recording file. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '3600', + ], + 'SliceOssObjectPrefix' => [ + 'description' => 'The naming format of a segment file.'."\n", + 'type' => 'string', + 'example' => 'record/{liveApp****}/{liveStream****}/{UnixTimestamp}', + ], + 'OssObjectPrefix' => [ + 'description' => 'The naming format of a recording file.'."\n", + 'type' => 'string', + 'example' => 'record/{liveApp****}/{liveStream****}', + ], + 'Format' => [ + 'description' => 'The format of recording files.'."\n", + 'type' => 'string', + 'example' => 'M3U8', + ], + ], + ], + ], + ], + ], + 'TranscodeRecordFormatList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RecordFormat' => [ + 'description' => 'The recording formats of transcoded streams.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'SliceDuration' => [ + 'description' => 'The duration of a segment file. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '30', + ], + 'CycleDuration' => [ + 'description' => 'The duration of a recording file. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '3600', + ], + 'SliceOssObjectPrefix' => [ + 'description' => 'The naming format of a segment file.'."\n", + 'type' => 'string', + 'example' => 'record/{liveApp****}/{liveStream****}/{UnixTimestamp}', + ], + 'OssObjectPrefix' => [ + 'description' => 'The naming format of a recording file.'."\n", + 'type' => 'string', + 'example' => 'record/{liveApp****}/{liveStream****}', + ], + 'Format' => [ + 'description' => 'The format of recording files.'."\n", + 'type' => 'string', + 'example' => 'M3U8', + ], + ], + ], + ], + ], + ], + 'TranscodeTemplates' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Templates' => [ + 'description' => 'The transcoding templates.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The transcoding template used by the recorded stream. If all transcoded streams are recorded, \\["\\*"] is returned.'."\n", + 'type' => 'string', + 'example' => '["sd","hd"]', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageNum\\": 5,\\n \\"RequestId\\": \\"5056369B-D337-499E-B8B7-B761BD37B08A\\",\\n \\"Order\\": \\"desc\\",\\n \\"TotalPage\\": 20,\\n \\"PageSize\\": 10,\\n \\"TotalNum\\": 12,\\n \\"LiveAppRecordList\\": {\\n \\"LiveAppRecord\\": [\\n {\\n \\"EndTime\\": \\"2018-11-08T03:49:18Z\\",\\n \\"StartTime\\": \\"2018-11-08T02:49:18Z\\",\\n \\"AppName\\": \\"liveApp****\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"DelayTime\\": 180,\\n \\"CreateTime\\": \\"2016-05-20T09:33:38Z\\",\\n \\"OnDemond\\": 0,\\n \\"OssBucket\\": \\"liveBucket****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"OssEndpoint\\": \\"cn-oss-****.aliyuncs.com\\",\\n \\"RecordFormatList\\": {\\n \\"RecordFormat\\": [\\n {\\n \\"SliceDuration\\": 30,\\n \\"CycleDuration\\": 3600,\\n \\"SliceOssObjectPrefix\\": \\"record/{liveApp****}/{liveStream****}/{UnixTimestamp}\\",\\n \\"OssObjectPrefix\\": \\"record/{liveApp****}/{liveStream****}\\",\\n \\"Format\\": \\"M3U8\\"\\n }\\n ]\\n },\\n \\"TranscodeRecordFormatList\\": {\\n \\"RecordFormat\\": [\\n {\\n \\"SliceDuration\\": 30,\\n \\"CycleDuration\\": 3600,\\n \\"SliceOssObjectPrefix\\": \\"record/{liveApp****}/{liveStream****}/{UnixTimestamp}\\",\\n \\"OssObjectPrefix\\": \\"record/{liveApp****}/{liveStream****}\\",\\n \\"Format\\": \\"M3U8\\"\\n }\\n ]\\n },\\n \\"TranscodeTemplates\\": {\\n \\"Templates\\": [\\n \\"[\\\\\\"sd\\\\\\",\\\\\\"hd\\\\\\"]\\"\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\ndesc\\n12\\n20\\n10\\n5\\n5056369B-D337-499E-B8B7-B761BD37B08A\\n\\n \\n liveStream****\\n 2018-11-08T03:49:18Z\\n cn-oss-****.aliyuncs.com\\n example.com\\n 2016-05-20T09:33:38Z\\n 2018-11-08T02:49:18Z\\n liveBucket****\\n 0\\n liveApp****\\n \\n \\n M3U8\\n record/{liveApp****}/{liveStream****}/{UnixTimestamp}\\n 3600\\n 30\\n record/{liveApp****}/{liveStream****}\\n \\n \\n \\n \\n M3U8\\n record/{liveApp****}/{liveStream****}/{UnixTimestamp}\\n 3600\\n 30\\n record/{liveApp****}/{liveStream****}\\n \\n \\n \\n [\\"sd\\",\\"hd\\"]\\n \\n \\n\\n","errorExample":"{\\n \\"LiveAppRecordList\\":{\\n \\"LiveAppRecord\\":[{\\n \\"AppName\\":\\"aliyuntest\\",\\n \\"CreateTime\\":\\"2016-05-20T09:33:38Z\\",\\n \\"DomainName\\":\\"xxxxx\\",\\n \\"FormatList\\":{\\n \\"Format\\":[{\\n \\"Name\\":\\"m3u8\\",\\n \\"OssObjectPrefix\\":\\"xxx\\",\\n \\"SliceOssObjectPrefix\\":\\"xxx\\"\\n }]\\n },\\n \\"OssBucket\\":\\"chimang.bucket\\",\\n \\"OssEndpoint\\":\\"oss-cn-hangzhou.aliyuncs.com\\"\\n }]\\n },\\n \\"RequestId\\":\\"5056369B-D337-499E-B8B7-B761BD37B08A\\"\\n}"}]', + 'title' => 'DescribeLiveRecordConfig', + 'description' => 'Obtain the main streaming domain, and then call this operation to query the recording configurations of all applications under the main streaming domain.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + '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 operation that you want to perform. Set the value to **DescribeLiveStreamRecordContent**.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveStream****', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2017-12-21T08:00:00Z', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. You can only query the recordings in the last 6 months. 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", + 'type' => 'string', + 'required' => true, + 'example' => '2017-12-22T08:00:00Z', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The end of the time range to query. The time range that is specified by the StartTime and EndTime parameters cannot exceed 4 days. 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", + 'type' => 'string', + 'example' => '62136AE6-7793-45ED-B14A-60D19A9486D3', + ], + 'RecordContentInfoList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RecordContentInfo' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'EndTime' => [ + 'description' => 'The recordings.'."\n", + 'type' => 'string', + 'example' => '2015-12-01T07:46:00Z', + ], + 'StartTime' => [ + 'description' => 'The end of the time range for which the recordings were queried. 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' => '2015-12-01T07:36:00Z', + ], + 'Duration' => [ + 'description' => 'The beginning of the time range for which the recordings were queried. 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' => 'number', + 'format' => 'float', + 'example' => '10', + ], + 'OssBucket' => [ + 'description' => 'The recording length. Unit: seconds.'."\n", + 'type' => 'string', + 'example' => 'liveBucket****', + ], + 'OssObjectPrefix' => [ + 'description' => 'The name of the Object Storage Service (OSS) bucket.'."\n", + 'type' => 'string', + 'example' => 'record/{Date}/{UnixTimestamp}_{Sequence}', + ], + 'OssEndpoint' => [ + 'description' => 'The naming rule of recordings in OSS.'."\n", + 'type' => 'string', + 'example' => 'cn-oss-****.aliyuncs.com', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified StartTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified end time does not math the specified start time.', + ], + [ + 'errorCode' => 'InvalidStartTime.Mismatch', + 'errorMessage' => 'Specified StartTime does not math the current time.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"62136AE6-7793-45ED-B14A-60D19A9486D3\\",\\n \\"RecordContentInfoList\\": {\\n \\"RecordContentInfo\\": [\\n {\\n \\"EndTime\\": \\"2015-12-01T07:46:00Z\\",\\n \\"StartTime\\": \\"2015-12-01T07:36:00Z\\",\\n \\"Duration\\": 10,\\n \\"OssBucket\\": \\"liveBucket****\\",\\n \\"OssObjectPrefix\\": \\"record/{Date}/{UnixTimestamp}_{Sequence}\\",\\n \\"OssEndpoint\\": \\"cn-oss-****.aliyuncs.com\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n62136AE6-7793-45ED-B14A-60D19A9486D3\\n\\n \\n 2015-12-01T07:46:00Z\\n cn-oss-****.aliyuncs.com\\n 2015-12-01T07:36:00Z\\n liveBucket****\\n 10\\n record/{Date}/{UnixTimestamp}_{Sequence}\\n \\n\\n","errorExample":"{\\n \\"RecordContentInfoList\\":{\\n \\"RecordContentInfo\\":[{\\n \\"Duration\\":14638.0,\\n \\"EndTime\\":\\"2016-05-25T09:41:09Z\\",\\n \\"OssBucket\\":\\"livevideo-test\\",\\n \\"OssEndpoint\\":\\"oss-cn-hangzhou.aliyuncs.com\\",\\n \\"OssObjectPrefix\\":\\"record/{Date}/{UnixTimestamp}_{Sequence}\\",\\n \\"StartTime\\":\\"2016-05-25T05:37:11Z\\"\\n }]\\n },\\n \\"RequestId\\":\\"62136AE6-7793-45ED-B14A-60D19A9486D3\\"\\n}"}]', + 'title' => 'DescribeLiveStreamRecordContent', + 'description' => 'Obtain the main streaming domain, and then call this operation to query the recordings of the live stream.'."\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' => ' ', + 'extraInfo' => ' ', + ], + 'CreateLiveStreamRecordIndexFiles' => [ + 'summary' => 'Creates an M3U8 index file for a recording in a specified time period.', + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + '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. If you want to match all applications, specify an asterisk (\\*) as the value.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream. The value of this parameter must be the same as the stream name in the ingest URL. Otherwise, the configuration does not take effect. If you want to match all streams, specify an asterisk (\\*) as the value.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveStream****', + ], + ], + [ + 'name' => 'OssEndpoint', + 'in' => 'query', + 'schema' => [ + 'description' => 'The endpoint of the OSS bucket.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-oss-****.aliyuncs.com', + ], + ], + [ + 'name' => 'OssBucket', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the OSS bucket.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveBucket****', + ], + ], + [ + 'name' => 'OssObject', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the recording that is stored in OSS.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '{AppName}/{StreamName}/{Date}/{Hour}/{Minute}_{Second}.m3u8', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The start time of the index file. TS segments that are uploaded after the start time are included in the index file. 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", + 'type' => 'string', + 'required' => true, + 'example' => '2017-12-21T08:00:00Z', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end time of the index file. TS segments that are uploaded before the end time are included in the index file. 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", + 'type' => 'string', + 'required' => true, + 'example' => '2017-12-22T08:00:00Z', + ], + ], + [ + 'name' => 'EndTimeIncluded', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to include the end time. If you set this parameter to true, the system attempts to include one more TS segment. The created index file covers the entire time range that is specified by the StartTime and EndTime parameters.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '550439A3-F8EC-4CA2-BB62-B9DB43EEEF30', + ], + 'RecordInfo' => [ + 'description' => 'The recording configuration.'."\n", + 'type' => 'object', + 'properties' => [ + 'RecordUrl' => [ + 'description' => 'The URL of the M3U8 index file.'."\n", + 'type' => 'string', + 'example' => 'http://*****/atestObject.m3u8', + ], + 'StreamName' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'example' => 'liveStream****', + ], + 'CreateTime' => [ + 'description' => 'The time when the index file 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' => '2016-05-27T09:40:56Z', + ], + 'RecordId' => [ + 'description' => 'The ID of the index file.'."\n", + 'type' => 'string', + 'example' => 'c4d7f0a4-b506-43f9-8de3-07732c3f****', + ], + 'Height' => [ + 'description' => 'The height of the video.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '480', + ], + 'OssBucket' => [ + 'description' => 'The name of the OSS bucket.'."\n", + 'type' => 'string', + 'example' => 'liveBucket****', + ], + 'DomainName' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'OssObject' => [ + 'description' => 'The name of the recording that is stored in OSS.'."\n", + 'type' => 'string', + 'example' => 'liveObject****.m3u8', + ], + 'EndTime' => [ + 'description' => 'The end time of the index file. 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' => '2015-12-01T07:40:00Z', + ], + 'AppName' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'example' => 'liveApp****', + ], + 'StartTime' => [ + 'description' => 'The start time of the index file. 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' => '2015-12-01T07:36:00Z', + ], + 'Width' => [ + 'description' => 'The width of the video.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '640', + ], + 'Duration' => [ + 'description' => 'The recording length. Unit: seconds.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '20', + ], + 'OssEndpoint' => [ + 'description' => 'The endpoint of the OSS bucket.'."\n", + 'type' => 'string', + 'example' => 'cn-oss-****.aliyuncs.com', + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.Mismatch', + 'errorMessage' => 'Specified StartTime does not math the current time.', + ], + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified StartTime is malformed.', + ], + [ + 'errorCode' => 'InvalidParams', + 'errorMessage' => 'invalid params', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified end time does not math the specified start time.', + ], + [ + 'errorCode' => 'InvalidOssEndpoint.Malformed', + 'errorMessage' => 'Specified OssEndpoint is malformed.', + ], + [ + 'errorCode' => 'InvalidOssBucket.Malformed', + 'errorMessage' => 'Specified OssBucket is malformed.', + ], + [ + 'errorCode' => 'InvalidOssObject.Malformed', + 'errorMessage' => 'Specified OssObject is malformed.', + ], + [ + 'errorCode' => 'InvalidStream.NotFound', + 'errorMessage' => 'Speicified stream does not exist.', + ], + [ + 'errorCode' => 'InvalidConfig.Changed', + 'errorMessage' => 'The oss bucket info between StartTime and EndTime has changed.', + ], + [ + 'errorCode' => 'NoRecordContent', + 'errorMessage' => 'The record content between StartTime and EndTime is empty.', + ], + [ + 'errorCode' => 'RecordContentExceed', + 'errorMessage' => 'The record content between StartTime and EndTime is exceeded, please narrow down the range.', + ], + [ + 'errorCode' => 'OperationNotSupport', + 'errorMessage' => 'The Operation is not support for flv/mp4 format or live to vod record.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidBucket.NotFound', + 'errorMessage' => 'The bucket does not belong to you.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"550439A3-F8EC-4CA2-BB62-B9DB43EEEF30\\",\\n \\"RecordInfo\\": {\\n \\"RecordUrl\\": \\"http://*****/atestObject.m3u8\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"CreateTime\\": \\"2016-05-27T09:40:56Z\\",\\n \\"RecordId\\": \\"c4d7f0a4-b506-43f9-8de3-07732c3f****\\",\\n \\"Height\\": 480,\\n \\"OssBucket\\": \\"liveBucket****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"OssObject\\": \\"liveObject****.m3u8\\",\\n \\"EndTime\\": \\"2015-12-01T07:40:00Z\\",\\n \\"AppName\\": \\"liveApp****\\",\\n \\"StartTime\\": \\"2015-12-01T07:36:00Z\\",\\n \\"Width\\": 640,\\n \\"Duration\\": 20,\\n \\"OssEndpoint\\": \\"cn-oss-****.aliyuncs.com\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 550439A3-F8EC-4CA2-BB62-B9DB43EEEF30\\n \\n 2015-12-01T07:40:00Z\\n example.com\\n 2016-05-27T09:40:56Z\\n 2015-12-01T07:36:00Z\\n liveBucket****\\n 20\\n liveApp****\\n liveStream****\\n cn-oss-****.aliyuncs.com\\n http://*****/atestObject.m3u8\\n liveObject****.m3u8\\n 480\\n c4d7f0a4-b506-43f9-8de3-07732c3f****\\n 640\\n \\n","errorExample":""}]', + 'title' => 'CreateLiveStreamRecordIndexFiles', + 'description' => 'You must have configured Object Storage Service (OSS) before you call this operation. For more information, see [Configure OSS](~~84932~~). ApsaraVideo Live allows you to record a live stream in the M3U8 format and store the M3U8 file in OSS. You can edit the TS segments that are included in the stored M3U8 file in real time.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* You can create an index file only after a live stream is ingested. If no live stream is available within the specified time range or the name of the specified live stream is invalid, the index file fails to be created.'."\n" + ."\n" + .'* The time range that is specified by the StartTime and EndTime parameters must be the duration of at least one TS segment. The default duration of a TS segment is 30 seconds.'."\n" + ."\n" + .'* ApsaraVideo Live stores the information about TS segments for only three months. You can create M3U8 index files only for the recordings of the last three months.'."\n" + ."\n" + .'* OSS stores TS segments for a time period that is specified by the storage configuration in OSS. For more information, see [Configure lifecycle rules](~~31904~~).'."\n" + ."\n" + .'* ApsaraVideo Live stores the information about M3U8 index files for six months. You can query the information about only the M3U8 index files that were created in the last six months.'."\n" + ."\n" + .'* OSS stores M3U8 index files for a time period that is specified by the storage configuration in OSS.'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLiveStreamRecordIndexFile' => [ + 'summary' => 'Queries the information about an index file.', + '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' => '## [](#)Usage notes'."\n" + ."\n" + .'ApsaraVideo Live stores the configuration information of an M3U8 index file for six months. You can query only index files created in the previous six months. M3U8 index files are stored in Object Storage Service (OSS) buckets. The retention period is determined by the storage configuration of the OSS buckets.'."\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. For more information, see [QPS limits](~~343507~~).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'System-defined parameter. Value: **DescribeLiveStreamRecordIndexFile**.', + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main domain of the live stream.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveStream****', + ], + ], + [ + 'name' => 'RecordId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the index file.'."\n" + ."\n" + .'> You can call the [DescribeLiveStreamRecordIndexFiles](~~2847890~~) operation to query the ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'c4d7f0a4-b506-43f9-8de3-07732c3f****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5EBF2AC3-4B73-40A5-8B32-83F49D5F035E', + ], + 'RecordIndexInfo' => [ + 'description' => 'The information about the index file.'."\n", + 'type' => 'object', + 'properties' => [ + 'RecordUrl' => [ + 'description' => 'The URL of the index file.'."\n", + 'type' => 'string', + 'example' => 'http://****/atestObject****.m3u8', + ], + 'StreamName' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'example' => 'liveStream****', + ], + 'CreateTime' => [ + 'description' => 'The time when the index file 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' => '2016-05-27T09:40:56Z', + ], + 'RecordId' => [ + 'description' => 'The ID of the index file.'."\n", + 'type' => 'string', + 'example' => 'c4d7f0a4-b506-43f9-8de3-07732c3f****', + ], + 'Height' => [ + 'description' => 'The video height.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '480', + ], + 'OssBucket' => [ + 'description' => 'The name of the Object Storage Service (OSS) bucket.'."\n", + 'type' => 'string', + 'example' => 'liveBucket****', + ], + 'DomainName' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'OssObject' => [ + 'description' => 'The name of the storage file in OSS.'."\n", + 'type' => 'string', + 'example' => 'liveObject****', + ], + 'EndTime' => [ + 'description' => 'The end time of the index file. 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' => '2016-05-25T05:47:11Z', + ], + 'AppName' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'example' => 'liveApp****', + ], + 'StartTime' => [ + 'description' => 'The start time of the index file. 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' => '2015-12-01T05:36:00Z', + ], + 'Width' => [ + 'description' => 'The video width.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '640', + ], + 'Duration' => [ + 'description' => 'The recording length. Unit: seconds.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '588.849', + ], + 'OssEndpoint' => [ + 'description' => 'The endpoint of the OSS bucket.'."\n", + 'type' => 'string', + 'example' => 'cn-oss-****.aliyuncs.com', + ], + 'Format' => [ + 'description' => 'The video format.'."\n", + 'type' => 'string', + 'example' => 'mp4', + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5EBF2AC3-4B73-40A5-8B32-83F49D5F035E\\",\\n \\"RecordIndexInfo\\": {\\n \\"RecordUrl\\": \\"http://****/atestObject****.m3u8\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"CreateTime\\": \\"2016-05-27T09:40:56Z\\",\\n \\"RecordId\\": \\"c4d7f0a4-b506-43f9-8de3-07732c3f****\\",\\n \\"Height\\": 480,\\n \\"OssBucket\\": \\"liveBucket****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"OssObject\\": \\"liveObject****\\",\\n \\"EndTime\\": \\"2016-05-25T05:47:11Z\\",\\n \\"AppName\\": \\"liveApp****\\",\\n \\"StartTime\\": \\"2015-12-01T05:36:00Z\\",\\n \\"Width\\": 640,\\n \\"Duration\\": 588.849,\\n \\"OssEndpoint\\": \\"cn-oss-****.aliyuncs.com\\",\\n \\"Format\\": \\"mp4\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n \\n 2016-05-25T05:47:11Z\\n example.com\\n 2016-05-27T09:40:56Z\\n 2015-12-01T05:36:00Z\\n liveBucket****\\n 588.849\\n liveApp****\\n liveStream****\\n cn-oss-****.aliyuncs.com\\n http://****/atestObject****.m3u8\\n liveObject****\\n 480\\n c4d7f0a4-b506-43f9-8de3-07732c3f****\\n 640\\n mp4\\n \\n 5EBF2AC3-4B73-40A5-8B32-83F49D5F035E\\n","errorExample":""}]', + 'title' => 'DescribeLiveStreamRecordIndexFile', + 'description' => 'ApsaraVideo Live stores the information about M3U8 index files for six months. You can query the information about only the M3U8 index files that were created in the last six months. OSS stores M3U8 index files for a time period that is specified by the storage configuration in OSS.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLiveStreamRecordIndexFiles' => [ + 'summary' => 'Queries all index files within a specific 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' => '## [](#)Usage notes'."\n" + ."\n" + .'* ApsaraVideo Live stores the information about an M3U8 index file for six months. You can query only the information of index files created in the previous six months.'."\n" + .'* M3U8 index files are stored in Object Storage Service (OSS) buckets. The retention period is determined by the storage configuration of the OSS buckets.'."\n" + ."\n" + .'## [](#qps-)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. We recommend that you take note of this limit when you call this operation. For more information, see [QPS limits](~~343507~~).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'System-defined parameter. Value: **DescribeLiveStreamRecordIndexFiles**.', + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveStream****', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2017-12-21T08:00:00Z', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2017-12-22T08:00:00Z', + ], + ], + [ + 'name' => 'PageNum', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Valid values: **5 to 30**. Default value: **10**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '30', + 'minimum' => '5', + 'example' => '10', + 'default' => '10', + ], + ], + [ + 'name' => 'Order', + 'in' => 'query', + 'schema' => [ + 'description' => 'The order in which the entries are sorted based on creation time. Valid values:'."\n" + ."\n" + .'* **asc** (default): ascending order'."\n" + .'* **desc**: descending order'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'asc', + 'default' => 'asc', + 'enum' => [ + 'asc', + 'desc', + ], + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'PageNum' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'DE24625C-7C0F-4020-8448-9C31A50C1556', + ], + 'Order' => [ + 'description' => 'The sort order.'."\n", + 'type' => 'string', + 'example' => 'asc', + ], + 'TotalPage' => [ + 'description' => 'The total number of pages.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '20', + ], + 'PageSize' => [ + 'description' => 'The number of entries per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '5', + ], + 'TotalNum' => [ + 'description' => 'The total number of entries that meet the specified conditions.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '12', + ], + 'RecordIndexInfoList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RecordIndexInfo' => [ + 'description' => 'The index files.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'RecordUrl' => [ + 'description' => 'The URL of the index file.'."\n", + 'type' => 'string', + 'example' => 'http://****/atestObject****.m3u8', + ], + 'StreamName' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'example' => 'liveStream****', + ], + 'CreateTime' => [ + 'description' => 'The time when the index file was created.'."\n", + 'type' => 'string', + 'example' => '2016-05-27T09:40:56Z', + ], + 'RecordId' => [ + 'description' => 'The ID of the index file.'."\n", + 'type' => 'string', + 'example' => 'c4d7f0a4-b506-43f9-8de3-07732c3f****', + ], + 'Height' => [ + 'description' => 'The video height.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '480', + ], + 'OssBucket' => [ + 'description' => 'The name of the Object Storage Service (OSS) bucket.'."\n", + 'type' => 'string', + 'example' => 'liveBucket****', + ], + 'DomainName' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'OssObject' => [ + 'description' => 'The name of the storage file in OSS.'."\n", + 'type' => 'string', + 'example' => 'liveObject****', + ], + 'EndTime' => [ + 'description' => 'The end time of the index file. 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' => '2015-12-01T07:46:00Z', + ], + 'AppName' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'example' => 'liveApp****', + ], + 'StartTime' => [ + 'description' => 'The start time of the index file. 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' => '2015-12-01T07:36:00Z', + ], + 'Width' => [ + 'description' => 'The video width.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '640', + ], + 'Duration' => [ + 'description' => 'The recording length. Unit: seconds.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '588.849', + ], + 'OssEndpoint' => [ + 'description' => 'The endpoint of the OSS bucket.'."\n", + 'type' => 'string', + 'example' => 'cn-oss-****.aliyuncs.com', + ], + 'Format' => [ + 'description' => 'The video format.'."\n", + 'type' => 'string', + 'example' => 'HLS', + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified StartTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified end time does not math the specified start time.', + ], + [ + 'errorCode' => 'InvalidStartTime.Mismatch', + 'errorMessage' => 'Specified StartTime does not math the current time.', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'Ram Permission is forbidden.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageNum\\": 10,\\n \\"RequestId\\": \\"DE24625C-7C0F-4020-8448-9C31A50C1556\\",\\n \\"Order\\": \\"asc\\",\\n \\"TotalPage\\": 20,\\n \\"PageSize\\": 5,\\n \\"TotalNum\\": 12,\\n \\"RecordIndexInfoList\\": {\\n \\"RecordIndexInfo\\": [\\n {\\n \\"RecordUrl\\": \\"http://****/atestObject****.m3u8\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"CreateTime\\": \\"2016-05-27T09:40:56Z\\",\\n \\"RecordId\\": \\"c4d7f0a4-b506-43f9-8de3-07732c3f****\\",\\n \\"Height\\": 480,\\n \\"OssBucket\\": \\"liveBucket****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"OssObject\\": \\"liveObject****\\",\\n \\"EndTime\\": \\"2015-12-01T07:46:00Z\\",\\n \\"AppName\\": \\"liveApp****\\",\\n \\"StartTime\\": \\"2015-12-01T07:36:00Z\\",\\n \\"Width\\": 640,\\n \\"Duration\\": 588.849,\\n \\"OssEndpoint\\": \\"cn-oss-****.aliyuncs.com\\",\\n \\"Format\\": \\"HLS\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n asc\\n 12\\n 20\\n 5\\n 10\\n DE24625C-7C0F-4020-8448-9C31A50C1556\\n \\n \\n 2015-12-01T07:46:00Z\\n example.com\\n 2016-05-27T09:40:56Z\\n 2015-12-01T07:36:00Z\\n liveBucket****\\n 588.849\\n liveApp****\\n liveStream****\\n cn-oss-****.aliyuncs.com\\n http://****/atestObject****.m3u8\\n liveObject****\\n 480\\n c4d7f0a4-b506-43f9-8de3-07732c3f****\\n 640\\n mp4\\n \\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveStreamRecordIndexFiles', + 'description' => '* ApsaraVideo Live stores the information about M3U8 index files for six months. You can query the information about only the M3U8 index files that were created in the last six months.'."\n" + .'* OSS stores M3U8 index files for a time period that is specified by the storage configuration in OSS.'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'AddLiveRecordNotifyConfig' => [ + 'summary' => 'Configures recording callbacks for a domain name.', + '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 main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'NotifyUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The callback URL that is used to receive notifications about recording events and status.'."\n" + ."\n" + .'> The URL must start with `http://` or `https://`. For more information, see [Callbacks for live stream recording](~~55016~~).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'http://demo.aliyundoc.com/examplecallback.action', + ], + ], + [ + 'name' => 'NeedStatusNotify', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable callbacks for recording status. Valid values:'."\n" + ."\n" + .'* true: enables callbacks for recording status. If you set this parameter to **true**, an example of recording status callback is returned.'."\n" + .'* false (default): disables callbacks for recording status.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + 'default' => 'false', + ], + ], + [ + 'name' => 'OnDemandUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The callback URL for on-demand recordings.'."\n" + ."\n" + .'> The URL must start with `http://` or `https://`. For more information, see [On-demand recording](~~85910~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'http://learn.aliyundoc.com/ondemandcallback.action', + ], + ], + [ + 'name' => 'NotifyReqAuth', + 'in' => 'query', + 'schema' => [ + 'type' => 'boolean', + 'required' => false, + 'default' => 'false', + ], + ], + [ + 'name' => 'NotifyAuthKey', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'required' => false, + 'maxLength' => 64, + 'minLength' => 16, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidNotifyUrl.Malformed', + 'errorMessage' => 'Specified NotifyUrl is invalid.', + ], + [ + 'errorCode' => 'InvalidNotifyUrl.Unsafe', + 'errorMessage' => 'Specified NotifyUrl is not safe.', + ], + [ + 'errorCode' => 'ConfigAlreadyExists', + 'errorMessage' => 'Config has already exist.', + ], + [ + 'errorCode' => 'InvalidOnDemandUrl.Malformed', + 'errorMessage' => 'Specified OnDemandUrl is invalid.', + ], + [ + 'errorCode' => 'InvalidOnDemandUrl.Unsafe', + 'errorMessage' => 'Specified OnDemandUrl is not safe.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t394966CA-5940-44D7-A1C5-24211C7B07A9\\n\\t","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', + 'title' => 'AddLiveRecordNotifyConfig', + 'description' => 'Before you call this operation to configure recording callbacks for a domain name, you can query whether the domain name already has recording callbacks configured. For more information, see [DescribeLiveRecordNotifyConfig](~~2847893~~).'."\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.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'Ram Permission is forbidden.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidConfig.NotFound', + 'errorMessage' => 'Config does not exist.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', + 'title' => '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.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLiveRecordNotifyConfig' => [ + 'summary' => 'Queries the configuration of callbacks for live stream recording under 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 main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5056369B-D337-499E-B8B7-B761BD37B08A', + ], + 'LiveRecordNotifyConfig' => [ + 'description' => 'The configuration of callbacks for live stream recording.'."\n", + 'type' => 'object', + 'properties' => [ + 'NotifyReqAuth' => [ + 'type' => 'boolean', + ], + 'NotifyAuthKey' => [ + 'type' => 'string', + ], + 'DomainName' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'NotifyUrl' => [ + 'description' => 'The recording callback URL.'."\n", + 'type' => 'string', + 'example' => 'http://learn.aliyundoc.com/examplecallback.action', + ], + 'NeedStatusNotify' => [ + 'description' => 'Indicates whether recording status callbacks are enabled. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false** (default)'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + 'OnDemandUrl' => [ + 'description' => 'The callback URL for on-demand recording.'."\n", + 'type' => 'string', + 'example' => 'http://guide.aliyundoc.com/ondemandcallback.action', + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 404 => [ + [ + 'errorCode' => 'InvalidConfig.NotFound', + 'errorMessage' => 'Config does not exist.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5056369B-D337-499E-B8B7-B761BD37B08A\\",\\n \\"LiveRecordNotifyConfig\\": {\\n \\"NotifyReqAuth\\": true,\\n \\"NotifyAuthKey\\": \\"KbT8mN2pQ9rS4vX7wZ1aB3cE5fG6hJ8kL\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"NotifyUrl\\": \\"http://learn.aliyundoc.com/examplecallback.action\\",\\n \\"NeedStatusNotify\\": false,\\n \\"OnDemandUrl\\": \\"http://guide.aliyundoc.com/ondemandcallback.action\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n5056369B-D337-499E-B8B7-B761BD37B08A\\n\\n false\\n http://guide.aliyundoc.com/ondemandcallback.action\\n example.com\\n http://learn.aliyundoc.com/examplecallback.action\\n\\n","errorExample":"{\\n \\"LiveRecordNotifyConfig\\":{\\n \\"DomainName\\":\\"xxxx\\",\\n \\"NeedStatusNotify\\":false,\\n \\"NotifyUrl\\":\\"http://xxx\\"\\n },\\n \\"RequestId\\":\\"5056369B-D337-499E-B8B7-B761BD37B08A\\"\\n}"}]', + 'title' => 'DescribeLiveRecordNotifyConfig', + 'description' => 'Obtain the main streaming domain, and then call this operation to query the configuration of callbacks for live stream recording under the domain name.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'UpdateLiveRecordNotifyConfig' => [ + 'summary' => 'Modifies the recording callback configuration of a streaming domain.', + '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 main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'NotifyUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The callback URL that is used to receive notifications about recording events and status.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* The URL must start with `http://` or `https://`.'."\n" + ."\n" + .'* You must use URLEncoder for encoding. This way, the system can identify Chinese characters, spaces, and special characters.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'http://learn.aliyundoc.com/examplecallback.action', + ], + ], + [ + 'name' => 'OnDemandUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The callback URL for on-demand recordings.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* The URL must start with `http://` or `https://`.'."\n" + ."\n" + .'* You must use URLEncoder for encoding. This way, the system can identify Chinese characters, spaces, and special characters.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'http://guide.aliyundoc.com/ondemandcallback.action', + ], + ], + [ + 'name' => 'NeedStatusNotify', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable callbacks for recording status. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false** (default)'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + ], + [ + 'name' => 'NotifyReqAuth', + 'in' => 'query', + 'schema' => [ + 'type' => 'boolean', + 'required' => false, + ], + ], + [ + 'name' => 'NotifyAuthKey', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'required' => false, + 'maxLength' => 64, + 'minLength' => 16, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidNotifyUrl.Malformed', + 'errorMessage' => 'Specified NotifyUrl is invalid.', + ], + [ + 'errorCode' => 'InvalidNotifyUrl.Unsafe', + 'errorMessage' => 'Specified NotifyUrl is not safe.', + ], + [ + 'errorCode' => 'InvalidOnDemandUrl.Malformed', + 'errorMessage' => 'Specified OnDemandUrl is invalid.', + ], + [ + 'errorCode' => 'InvalidOnDemandUrl.Unsafe', + 'errorMessage' => 'Specified OnDemandUrl is not safe.', + ], + [ + 'errorCode' => 'InvalidDomain.NotFound', + 'errorMessage' => 'Specified Domain is invalid.', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'Ram Permission is forbidden.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidConfig.NotFound', + 'errorMessage' => 'Config does not exist.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t\\n","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', + 'title' => 'UpdateLiveRecordNotifyConfig', + 'description' => 'You can call this operation to modify the following settings:'."\n" + ."\n" + .'* The callback URL that is used to receive notifications about recording events and status. For more information, see [Recording event callbacks](~~55016~~).'."\n" + .'* The callback URL for on-demand recordings. For more information, see [On-demand recording callbacks](~~85910~~).'."\n" + .'* The setting that specifies whether to enable callbacks for recording status.'."\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.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLiveRecordNotifyRecords' => [ + 'summary' => 'Queries the recording callback records that are stored in Object Storage Service (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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveStream****', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Valid values: 1 to 500. Default value: 20.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '10', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: 1. Valid values: 1 to 100000.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'Status', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether the callback is successful. Valid values:'."\n" + ."\n" + .'* success'."\n" + .'* failed'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'success', + ], + ], + [ + '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.'."\n" + ."\n" + .'> You can query data within the last seven days.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2023-02-10T21:03:47Z', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2023-02-10T21:03:47Z', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The callback records.'."\n", + 'type' => 'object', + 'properties' => [ + 'CallbackList' => [ + 'description' => 'The callback records.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The callback records.'."\n", + 'type' => 'object', + 'properties' => [ + 'AppName' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'example' => 'liveApp****', + ], + 'Description' => [ + 'description' => 'The description of the result. A value of success indicates that the request is successful. If the request fails, an error message is returned.'."\n", + 'type' => 'string', + 'example' => 'success', + ], + 'DomainName' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'NotifyContent' => [ + 'description' => 'The callback content.'."\n", + 'type' => 'string', + 'example' => 'July 26, 16:14{"domain":"al.xxxx.com","stream":"livestream01","pull _stream_result":true,"cdn":"al"}', + ], + 'NotifyResult' => [ + 'description' => 'The callback result. Valid values:'."\n" + ."\n" + .'* success'."\n" + .'* failed'."\n", + 'type' => 'string', + 'example' => 'success', + ], + 'NotifyTime' => [ + 'description' => 'The time when the callback was returned. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n", + 'type' => 'string', + 'example' => '2022-10-19T19:09:28Z', + ], + 'NotifyType' => [ + 'description' => 'The callback type. Valid values:'."\n" + ."\n" + .'* file_created: The recording file is created.'."\n" + .'* record_error: A recording error occurs.'."\n" + .'* record_started: Recording is started.'."\n" + .'* record_paused: Recording is paused.'."\n" + .'* record_resumed: Recording is resumed.'."\n" + .'* record_force_transcode_fail: The recording task fails to trigger transcoding.'."\n" + .'* transformat_error: An error occurs when the live stream is parsed.'."\n", + 'type' => 'string', + 'example' => 'record_started', + ], + 'NotifyUrl' => [ + 'description' => 'The recording callback URL.'."\n", + 'type' => 'string', + 'example' => 'http://learn.aliyundoc.com/examplecallback.action', + ], + 'NotifyHeader' => [ + 'type' => 'string', + ], + 'StreamName' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'example' => 'liveStream****', + ], + 'NotifyResponse' => [ + 'type' => 'string', + ], + ], + ], + ], + 'Code' => [ + 'description' => 'The error code.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'Msg' => [ + 'description' => 'The returned message.'."\n", + 'type' => 'string', + 'example' => 'ok', + ], + 'PageNum' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'PageSize' => [ + 'description' => 'The number of entries per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '20', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '180FA0D2-1A02-5158-A36B-115DBF7B218D', + ], + 'TotalNum' => [ + 'description' => 'The total number of entries that meet the specified conditions.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '20', + ], + 'TotalPage' => [ + 'description' => 'The total number of pages.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '20', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParams', + 'errorMessage' => 'Invalid JSON', + ], + [ + 'errorCode' => 'MissingParams', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MalformedParams', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CallbackList\\": [\\n {\\n \\"AppName\\": \\"liveApp****\\",\\n \\"Description\\": \\"success\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"NotifyContent\\": \\"7月26日 16:14{\\\\\\"domain\\\\\\":\\\\\\"al.xxxx.com\\\\\\",\\\\\\"stream\\\\\\":\\\\\\"livestream01\\\\\\",\\\\\\"pull _stream_result\\\\\\":true,\\\\\\"cdn\\\\\\":\\\\\\"al\\\\\\"}\\",\\n \\"NotifyResult\\": \\"success\\",\\n \\"NotifyTime\\": \\"2022-10-19T19:09:28Z\\",\\n \\"NotifyType\\": \\"record_started\\",\\n \\"NotifyUrl\\": \\"http://learn.aliyundoc.com/examplecallback.action\\",\\n \\"NotifyHeader\\": \\"{\\\\n \\\\\\"Content-Type\\\\\\": [\\\\n \\\\\\"application/json; charset=utf-8\\\\\\"\\\\n ]\\\\n}\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"NotifyResponse\\": \\"{\\\\\\"Code\\\\\\":0,\\\\\\"Msg\\\\\\":\\\\\\"Success\\\\\\"}\\"\\n }\\n ],\\n \\"Code\\": 0,\\n \\"Msg\\": \\"ok\\",\\n \\"PageNum\\": 1,\\n \\"PageSize\\": 20,\\n \\"RequestId\\": \\"180FA0D2-1A02-5158-A36B-115DBF7B218D\\",\\n \\"TotalNum\\": 20,\\n \\"TotalPage\\": 20\\n}","errorExample":""},{"type":"xml","example":"\\n \\n liveApp****\\n success\\n example.com\\n 7月26日 16:14{\\"domain\\":\\"al.xxxx.com\\",\\"stream\\":\\"livestream01\\",\\"pull _stream_result\\":true,\\"cdn\\":\\"al\\"}\\n success\\n 2022-10-19T19:09:28Z\\n record_started\\n http://learn.aliyundoc.com/examplecallback.action\\n liveStream****\\n \\n 0\\n ok\\n 1\\n 20\\n 180FA0D2-1A02-5158-A36B-115DBF7B218D\\n 20\\n 20\\n","errorExample":""}]', + 'title' => 'DescribeLiveRecordNotifyRecords', + 'description' => '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", + ], + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'TimeInterval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The interval at which snapshots are captured. Unit: seconds. Valid values: **5 to 3600**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'maximum' => '3600', + 'minimum' => '5', + 'example' => '5', + ], + ], + [ + '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~~).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-oss-****.aliyuncs.com', + ], + ], + [ + '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~~).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveBucket****', + ], + ], + [ + '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" + .'* Only JPG images are supported.'."\n" + .'* The name can contain variables such as {AppName} and {StreamName}.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{AppName}/{StreamName}.jpg', + ], + ], + [ + '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" + .'* Only JPG images are supported.'."\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", + 'type' => 'string', + 'required' => false, + 'example' => 'snapshot/{AppName}/{StreamName}/{UnixTimestamp}.jpg', + ], + ], + [ + 'name' => 'Callback', + 'in' => 'query', + 'schema' => [ + 'description' => 'The callback URL that is used to receive notifications about snapshot capture.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'https://learn.aliyundoc.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidOverwriteOssObjectOrSequenceOssObject.Malformed', + 'errorMessage' => 'Specified paramters OverwriteOssObject or SequenceOssObject should have one.', + ], + [ + 'errorCode' => 'InvalidOssBucket.Malformed', + 'errorMessage' => 'Specified parameter OssBucket is not valid.', + ], + [ + 'errorCode' => 'InvalidOssEndpoint.Malformed', + 'errorMessage' => 'Specified parameter OssEndpoint is not valid.', + ], + [ + 'errorCode' => 'InvalidOverwriteOssObject.Malformed', + 'errorMessage' => 'Specified parameter OverwriteOssObject is not valid.', + ], + [ + 'errorCode' => 'InvalidSequenceOssObject.Malformed', + 'errorMessage' => 'Specified parameter SequenceOssObject is not valid.', + ], + [ + 'errorCode' => 'InvalidOssBucket.NotFound', + 'errorMessage' => 'The parameter OssBucket does not exist.', + ], + [ + 'errorCode' => 'ConfigAlreadyExists', + 'errorMessage' => 'Config has already exist.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', + 'title' => '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" + .'* 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" + .'* If you store snapshots in OSS, storage fees are generated. For more information, see [Storage fees](~~173534~~).'."\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.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":"{\\n\\t\\"RequestId\\": \\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\",\\n\\t\\"HostId\\": \\"live.aliyuncs.com\\",\\n\\t\\"Code\\": \\"InternalError\\",\\n\\t\\"Message\\": \\"The request processing has failed due to some unknown error.\\"\\n}"},{"type":"xml","example":"\\r\\n\\r\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\r\\n\\t","errorExample":""}]', + 'title' => '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.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteSnapshotFiles' => [ + 'summary' => 'Deletes snapshots.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'CreateTimestampList', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The timestamps when the snapshots that you want to delete were captured.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The timestamp when the snapshot that you want to delete was captured. Unit: milliseconds.'."\n" + ."\n" + .'You can obtain the timestamp of a snapshot from the CreateTimestamp parameter in the response of the [DescribeLiveStreamSnapshotInfo](~~2847902~~) operation.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1653641526637', + ], + 'required' => true, + 'example' => '1653641526637', + 'maxItems' => 200, + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveStream****', + ], + ], + [ + 'name' => 'RemoveFile', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to also delete the corresponding file in Object Storage Service (OSS) at the same time. Value values:'."\n" + ."\n" + .'* **true**: deletes the corresponding file in OSS.'."\n" + .'* **false**: does not delete the corresponding file in OSS.'."\n" + ."\n" + .'> To delete the corresponding file in OSS, you must have the permissions on the OSS bucket.'."\n", + 'type' => 'boolean', + 'required' => true, + 'example' => 'true', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'FailureCount' => [ + 'description' => 'The number of snapshots that failed to be deleted.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '90F60327-ABEC-5A93-BF1F-****', + ], + 'SnapshotDeleteInfoList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SnapshotDeleteInfo' => [ + 'description' => 'The information about the snapshots.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the snapshot.'."\n", + 'type' => 'object', + 'properties' => [ + 'CreateTimestamp' => [ + 'description' => 'The timestamp when the snapshot was captured. Unit: milliseconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1653641526637', + ], + 'Message' => [ + 'description' => 'The processing result of the snapshot. Valid values:'."\n" + ."\n" + .'* **OK**: The snapshot was deleted.'."\n" + .'* **FileNotFound**: The snapshot was not found.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + ], + ], + ], + ], + ], + 'SuccessCount' => [ + 'description' => 'The number of successful screenshot deletions.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParams', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'Cannot find task', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissingParams', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OSSAccessDenied', + 'errorMessage' => 'OSS bucket not authorised', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'Server internal error', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"FailureCount\\": 1,\\n \\"RequestId\\": \\"90F60327-ABEC-5A93-BF1F-****\\",\\n \\"SnapshotDeleteInfoList\\": {\\n \\"SnapshotDeleteInfo\\": [\\n {\\n \\"CreateTimestamp\\": 1653641526637,\\n \\"Message\\": \\"OK\\"\\n }\\n ]\\n },\\n \\"SuccessCount\\": 1\\n}","errorExample":""},{"type":"xml","example":"\\n1\\n\\n \\n OK\\n 1653641526637\\n \\n \\n Not Found\\n 1656936778524\\n \\n\\n90F60327-ABEC-5A93-BF1F-****\\n1\\n","errorExample":""}]', + 'title' => 'DeleteSnapshotFiles', + 'description' => 'You can delete only snapshots that were captured in the last year.'."\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.'."\n", + '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.|', + ], + 'DescribeLiveSnapshotConfig' => [ + 'summary' => 'Queries the snapshot configurations of 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 main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'PageNum', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Valid values: **5 to 30**. Default value: **10**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '30', + 'minimum' => '5', + 'example' => '10', + 'default' => '10', + ], + ], + [ + 'name' => 'Order', + 'in' => 'query', + 'schema' => [ + 'description' => 'The sort order. Valid values:'."\n" + ."\n" + .'* **asc** (default): ascending order'."\n" + .'* **desc**: descending order'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'asc', + 'default' => 'asc', + 'enum' => [ + 'asc', + 'desc', + ], + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'PageNum' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '2', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'A3136B58-5876-4168-83CA-B562781981A0', + ], + 'Order' => [ + 'description' => 'The sort order.'."\n", + 'type' => 'string', + 'example' => 'asc', + ], + 'TotalPage' => [ + 'description' => 'The total number of pages.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'PageSize' => [ + 'description' => 'The number of entries per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '11', + ], + 'TotalNum' => [ + 'description' => 'The total number of entries that meet the specified conditions.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '6', + ], + 'LiveStreamSnapshotConfigList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LiveStreamSnapshotConfig' => [ + 'description' => 'The snapshot configurations.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'OverwriteOssObject' => [ + 'description' => 'The naming format of snapshots that are stored in the overwrite mode, which means that a new snapshot overwrites the previous snapshot.'."\n", + 'type' => 'string', + 'example' => '{liveApp****}/{liveStream****}.jpg', + ], + 'TimeInterval' => [ + 'description' => 'The interval at which snapshots are captured. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'AppName' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'example' => 'liveApp****', + ], + 'CreateTime' => [ + 'description' => 'The time when the configuration 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' => '2016-05-20T01:33:38Z', + ], + 'OssBucket' => [ + 'description' => 'The name of the Object Storage Service (OSS) bucket.'."\n", + 'type' => 'string', + 'example' => 'liveBucket****', + ], + 'DomainName' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'Callback' => [ + 'description' => 'The callback URL that is used to receive notifications about snapshot capture.'."\n", + 'type' => 'string', + 'example' => 'https://learn.aliyundoc.com', + ], + 'SequenceOssObject' => [ + 'description' => 'The naming format of snapshots that are stored in sequence, which means that a new snapshot does not overwrite the previous snapshot.'."\n", + 'type' => 'string', + 'example' => 'snapshot/{liveApp****}/{liveStream****}/{UnixTimestamp}.jpg', + ], + 'OssEndpoint' => [ + 'description' => 'The endpoint of the OSS bucket.'."\n", + 'type' => 'string', + 'example' => 'cn-oss-****.aliyuncs.com', + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageNum\\": 2,\\n \\"RequestId\\": \\"A3136B58-5876-4168-83CA-B562781981A0\\",\\n \\"Order\\": \\"asc\\",\\n \\"TotalPage\\": 10,\\n \\"PageSize\\": 11,\\n \\"TotalNum\\": 6,\\n \\"LiveStreamSnapshotConfigList\\": {\\n \\"LiveStreamSnapshotConfig\\": [\\n {\\n \\"OverwriteOssObject\\": \\"{liveApp****}/{liveStream****}.jpg\\",\\n \\"TimeInterval\\": 10,\\n \\"AppName\\": \\"liveApp****\\",\\n \\"CreateTime\\": \\"2016-05-20T01:33:38Z\\",\\n \\"OssBucket\\": \\"liveBucket****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"Callback\\": \\"https://learn.aliyundoc.com\\",\\n \\"SequenceOssObject\\": \\"snapshot/{liveApp****}/{liveStream****}/{UnixTimestamp}.jpg\\",\\n \\"OssEndpoint\\": \\"cn-oss-****.aliyuncs.com\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\nasc\\n6\\n10\\n11\\n2\\nA3136B58-5876-4168-83CA-B562781981A0\\n\\n \\n {liveApp****}/{liveStream****}.jpg\\n snapshot/{liveApp****}/{liveStream****}/{UnixTimestamp}.jpg\\n https://learn.aliyundoc.com\\n cn-oss-****.aliyuncs.com\\n 10\\n example.com\\n 2016-05-20T01:33:38Z\\n liveBucket****\\n liveApp****\\n \\n\\n","errorExample":"{\\n \\"LiveStreamSnapshotConfigList\\":{\\n \\"LiveStreamSnapshotConfig\\":[{\\n \\"AppName\\":\\"xxx\\",\\n \\"CreateTime\\":\\"2016-05-20T01:33:38Z\\",\\n \\"DomainName\\":\\"xxx\\",\\n \\"OssBucket\\":\\"bucket\\",\\n \\"OssEndpoint\\":\\"endpoint\\",\\n \\"OverwriteOssObject\\":\\"object\\",\\n \\"SequenceOssObject\\":\\"object\\",\\n \\"TimeInterval\\":10\\n }]\\n },\\n \\"Order\\":\\"asc\\",\\n \\"PageNum\\":1,\\n \\"PageSize\\":10,\\n \\"RequestId\\":\\"A3136B58-5876-4168-83CA-B562781981A0\\",\\n \\"TotalNum\\":100,\\n \\"TotalPage\\":10\\n}"}]', + 'title' => 'DescribeLiveSnapshotConfig', + 'description' => 'Obtain the main streaming domain, and then call this operation to query the snapshot configurations.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + '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.', + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'TimeInterval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The interval at which snapshots are captured. Valid values: **5 to 3600**. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '3600', + 'minimum' => '5', + 'example' => '5', + ], + ], + [ + 'name' => 'OssEndpoint', + 'in' => 'query', + 'schema' => [ + 'description' => 'The endpoint of the OSS bucket.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-oss-****.aliyuncs.com', + ], + ], + [ + 'name' => 'OssBucket', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the OSS bucket.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveBucket****', + ], + ], + [ + '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" + .'* Only JPG images are supported.'."\n" + .'* The name can contain variables such as {AppName} and {StreamName}.'."\n" + .'* A value of hyphen (-) indicates that this parameter is deleted.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{liveApp****}/{liveStream****}.jpg', + ], + ], + [ + '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" + .'* Only JPG images are supported.'."\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" + .'* A value of hyphen (-) indicates that this parameter is deleted.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'snapshot/{liveApp****}/{liveStream****}/{UnixTimestamp****}.jpg', + ], + ], + [ + 'name' => 'Callback', + 'in' => 'query', + 'schema' => [ + 'description' => 'The callback URL that is used to receive notifications about snapshot capture.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'https://learn.aliyundoc.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidOverwriteOssObjectOrSequenceOssObject.Malformed', + 'errorMessage' => 'Specified paramters OverwriteOssObject or SequenceOssObject should have one.', + ], + [ + 'errorCode' => 'InvalidOssEndpoint.Malformed', + 'errorMessage' => 'Specified parameter OssEndpoint is not valid.', + ], + [ + 'errorCode' => 'InvalidOssBucket.Malformed', + 'errorMessage' => 'Specified parameter OssBucket is not valid.', + ], + [ + 'errorCode' => 'InvalidOssBucket.NotFound', + 'errorMessage' => 'The parameter OssBucket does not exist.', + ], + [ + 'errorCode' => 'InvalidOverwriteOssObject.Malformed', + 'errorMessage' => 'Specified parameter OverwriteOssObject is not valid.', + ], + [ + 'errorCode' => 'InvalidSequenceOssObject.Malformed', + 'errorMessage' => 'Specified parameter SequenceOssObject is not valid.', + ], + [ + 'errorCode' => 'InvalidConfig.NotFound', + 'errorMessage' => 'The speicified config does not exist.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', + 'title' => 'UpdateLiveAppSnapshotConfig', + '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.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLiveStreamSnapshotInfo' => [ + 'summary' => 'Queries the snapshots that were captured within a specific time period.', + '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 main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveStream****', + ], + ], + [ + '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", + 'type' => 'string', + 'required' => true, + 'example' => '2017-12-21T08:00:00Z', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range to query. The time range specified by the EndTime and StartTime parameters cannot exceed **one** day. 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", + 'type' => 'string', + 'required' => true, + 'example' => '2017-12-22T08:00:00Z', + ], + ], + [ + 'name' => 'Limit', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of snapshots to return per call. Valid values: **1 to 100**. Default value: **10**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '100', + 'minimum' => '1', + 'example' => '10', + 'default' => '10', + ], + ], + [ + 'name' => 'Order', + 'in' => 'query', + 'schema' => [ + 'description' => 'The sort order. Valid values:'."\n" + ."\n" + .'* **asc** (default): ascending order'."\n" + .'* **desc**: descending order'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'asc', + 'default' => 'asc', + 'enum' => [ + 'asc', + 'desc', + ], + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'NextStartTime' => [ + 'description' => 'The time when the next call occurred. 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" + ."\n" + .'> If the number of snapshots that were captured within the specified time period exceeds the value of the Limit parameter, this parameter is returned. It indicates the time when the DescribeLiveStreamSnapshotInfo operation was called again. If this parameter is not returned, the number of snapshots that are captured within the specified time period does not exceed the specified limit.'."\n", + 'type' => 'string', + 'example' => '2015-12-01T17:36:00Z', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '62136AE6-7793-45ED-B14A-60D19A9486D3', + ], + 'LiveStreamSnapshotInfoList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LiveStreamSnapshotInfo' => [ + 'description' => 'The snapshots.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'OssObject' => [ + 'description' => 'The name of the snapshot stored in Object Storage Service (OSS).'."\n", + 'type' => 'string', + 'example' => '{liveApp****}/{liveStream****}.jpg', + ], + 'OssBucket' => [ + 'description' => 'The name of the OSS bucket.'."\n", + 'type' => 'string', + 'example' => 'liveBucket****', + ], + 'CreateTime' => [ + 'description' => 'The time when the snapshot was captured. 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' => '2015-12-01T17:36:00Z', + ], + 'OssEndpoint' => [ + 'description' => 'The endpoint of the OSS bucket.'."\n", + 'type' => 'string', + 'example' => 'cn-oss-****.aliyuncs.com', + ], + 'IsOverlay' => [ + 'description' => 'The snapshot mode. Valid values:'."\n" + ."\n" + .'* **true**: overwrite mode, which means that a new snapshot overwrites the previous snapshot.'."\n" + .'* **false**: sequence mode, which means that a new snapshot does not overwrite the previous snapshot.'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + 'CreateTimestamp' => [ + 'description' => 'The timestamp when the snapshot file was created. Unit: milliseconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1653641526637', + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified parameter StartTime is not valid.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified parameter EndTime is not valid.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified end time does not math the specified start time.', + ], + [ + 'errorCode' => 'InvalidStream.NotFound', + 'errorMessage' => 'Speicified stream does not exist.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextStartTime\\": \\"2015-12-01T17:36:00Z\\",\\n \\"RequestId\\": \\"62136AE6-7793-45ED-B14A-60D19A9486D3\\",\\n \\"LiveStreamSnapshotInfoList\\": {\\n \\"LiveStreamSnapshotInfo\\": [\\n {\\n \\"OssObject\\": \\"{liveApp****}/{liveStream****}.jpg\\",\\n \\"OssBucket\\": \\"liveBucket****\\",\\n \\"CreateTime\\": \\"2015-12-01T17:36:00Z\\",\\n \\"OssEndpoint\\": \\"cn-oss-****.aliyuncs.com\\",\\n \\"IsOverlay\\": false,\\n \\"CreateTimestamp\\": 1653641526637\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 2015-12-01T17:36:00Z\\n 62136AE6-7793-45ED-B14A-60D19A9486D3\\n \\n {liveApp****}/{liveStream****}.jpg\\n liveBucket****\\n 2015-12-01T17:36:00Z\\n cn-oss-****.aliyuncs.com\\n false\\n 1653641526637\\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveStreamSnapshotInfo', + 'description' => 'You can query only snapshots that were captured in the last year.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLiveSnapshotNotifyConfig' => [ + 'summary' => 'Queries the configuration of snapshot callbacks.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'www.yourdomain***.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'DomainName' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'example' => 'www.yourdomain***.com', + ], + 'NotifyAuthKey' => [ + 'description' => 'The callback authentication key.'."\n", + 'type' => 'string', + 'example' => 'yourkey', + ], + 'NotifyReqAuth' => [ + 'description' => 'Indicates whether callback authentication is enabled. Valid values:'."\n" + ."\n" + .'* **yes**: Callback authentication is enabled.'."\n" + .'* **no**: Callback authentication is disabled.'."\n", + 'type' => 'string', + 'example' => 'yes', + ], + 'NotifyUrl' => [ + 'description' => 'The callback URL.'."\n", + 'type' => 'string', + 'example' => 'http://callback.yourdomain***.com', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '5056369B-D337-499E-B8B7-B761BD37B08A', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParam', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DomainName\\": \\"www.yourdomain***.com\\",\\n \\"NotifyAuthKey\\": \\"yourkey\\",\\n \\"NotifyReqAuth\\": \\"yes\\",\\n \\"NotifyUrl\\": \\"http://callback.yourdomain***.com\\",\\n \\"RequestId\\": \\"5056369B-D337-499E-B8B7-B761BD37B08A\\"\\n}","errorExample":""},{"type":"xml","example":"\\n yes\\n 5056369B-D337-499E-B8B7-B761BD37B08A\\n yourkey\\n www.yourdomain***.com\\n http://callback.yourdomain***.com\\n","errorExample":""}]', + 'title' => 'DescribeLiveSnapshotNotifyConfig', + 'description' => '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.'."\n", + ], + 'DeleteLiveSnapshotNotifyConfig' => [ + 'summary' => 'Deletes the configuration of 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'www.yourdomain***.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '32A96B9A-F203-4EC5-8E43-CB92E68F4I79E', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParam', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"32A96B9A-F203-4EC5-8E43-CB92E68F4I79E\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 32A96B9A-F203-4EC5-8E43-CB92E68F4I79E\\n","errorExample":""}]', + 'title' => 'DeleteLiveSnapshotNotifyConfig', + 'description' => '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.'."\n", + ], + 'AddLiveSnapshotNotifyConfig' => [ + 'summary' => 'Configures snapshot callbacks.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'www.yourdomain***.com', + ], + ], + [ + 'name' => 'NotifyUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The callback URL. Specify a valid URL that is up to 500 characters in length.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'http://callback.yourdomain***.com', + ], + ], + [ + 'name' => 'NotifyReqAuth', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable callback authentication. Valid values:'."\n" + ."\n" + .'* **yes**'."\n" + .'* **no** (default)'."\n" + ."\n" + .'> This parameter is required if you set the NotifyAuthKey parameter to yes.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'yes', + ], + ], + [ + '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" + ."\n" + .'> This parameter is required if you set the NotifyReqAuth parameter to **yes**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'yourkey', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParam', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MalformedParam', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 409 => [ + [ + 'errorCode' => 'ConfigAlreadyExists', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F3EC5\\n","errorExample":""}]', + 'title' => 'AddLiveSnapshotNotifyConfig', + 'description' => '### QPS Limit '."\n" + .'The QPS limit for this API per user is 30 times/second. Exceeding this limit will result in API calls being throttled, which may impact your business operations. Please use the API reasonably. For more information, please refer to [QPS Limitation](~~343507~~).', + ], + 'UpdateLiveSnapshotNotifyConfig' => [ + 'summary' => 'Modifies the configuration of snapshot callbacks.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'ww.yourdomain***.com', + ], + ], + [ + 'name' => 'NotifyUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The callback URL. Specify a valid URL that is up to 500 characters in length.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'http://callback.yourdomain***.com', + ], + ], + [ + 'name' => 'NotifyReqAuth', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable callback authentication. Valid values:'."\n" + ."\n" + .'* **yes**: enables callback authentication'."\n" + .'* **no**: disables callback authentication'."\n" + ."\n" + .'> Default value: **no**. If you set this parameter to **yes**, the NotifyAuthKey parameter is required.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'yes', + ], + ], + [ + 'name' => 'NotifyAuthKey', + 'in' => 'query', + 'schema' => [ + 'description' => 'The callback authentication key. The key can be 16 to 32 characters in length and can contain only letters and digits.'."\n" + ."\n" + .'> This parameter is required if you set the NotifyReqAuth parameter to **yes**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'yourkey', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'A3136B58-5876-5A93-83CA-B562781981A0', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParam', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MalformedParam', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'ConfigNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A3136B58-5876-5A93-83CA-B562781981A0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n A3136B58-5876-5A93-83CA-B562781981A0\\n","errorExample":""}]', + 'title' => 'UpdateLiveSnapshotNotifyConfig', + 'description' => '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.'."\n", + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.aliyundoc.com', + ], + ], + [ + 'name' => 'CallbackReqAuth', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable callback authentication. Valid values:'."\n" + ."\n" + .'* **yes**: enables callback authentication.'."\n" + .'* **no**: disables callback authentication.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'yes', + ], + ], + [ + 'name' => 'CallbackAuthKey', + 'in' => 'query', + 'schema' => [ + 'description' => 'The custom key that is used for callback authentication.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'yourkey', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD5', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParam', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MalformedParam', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD5\\"\\n}","errorExample":""},{"type":"xml","example":" \\r\\n16A96B9A-F203-4EC5-8E43-CB92E68F4CD5\\r\\n ","errorExample":""}]', + 'title' => 'SetSnapshotCallbackAuth', + 'description' => '* Before you configure authentication for snapshot callbacks, you need to specify the callback URL. For more information, see [AddLiveAppSnapshotConfig](~~2847897~~).'."\n" + .'* You can call this operation to configure authentication for snapshot callbacks for a main streaming domain. Make sure that the parameter settings meet the requirements.'."\n" + .'* ApsaraVideo Live allows you to add a specific signature header to each HTTP or HTTPS callback request. This way, the server that receives callback messages can authenticate the signature to prevent illegal or invalid requests. For more information, see [Usage notes for callback authentication](~~417349~~).'."\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.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'QuerySnapshotCallbackAuth' => [ + 'summary' => 'Queries the configuration of authentication for snapshot callbacks.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.aliyundoc.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD5', + ], + 'CallbackAuthKey' => [ + 'description' => 'The callback authentication key.'."\n", + 'type' => 'string', + 'example' => 'yourkey', + ], + 'DomainName' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.aliyundoc.com', + ], + 'CallbackReqAuth' => [ + 'description' => 'Indicates whether callback authentication is enabled. Valid values:'."\n" + ."\n" + .'* **yes**: Callback authentication is enabled.'."\n" + .'* **no**: Callback authentication is disabled.'."\n", + 'type' => 'string', + 'example' => 'yes', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParam', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD5\\",\\n \\"CallbackAuthKey\\": \\"yourkey\\",\\n \\"DomainName\\": \\"example.aliyundoc.com\\",\\n \\"CallbackReqAuth\\": \\"yes\\"\\n}","errorExample":""},{"type":"xml","example":" \\nyourkey\\nyes\\n16A96B9A-F203-4EC5-8E43-CB92E68F4CD5\\nexample.aliyundoc.com\\n","errorExample":""}]', + 'title' => 'QuerySnapshotCallbackAuth', + 'description' => 'Before you call this operation, make sure that you have configured authentication for snapshot callbacks. For more information, see [SetSnapshotCallbackAuth](~~2847907~~). You can call this operation to query the configuration of authentication for snapshot callbacks for a main streaming domain. Make sure that the parameter settings meet the requirements.'."\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.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteSnapshotCallbackAuth' => [ + 'summary' => 'Deletes the configuration of authentication 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.aliyundoc.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD5', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParam', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD5\\"\\n}","errorExample":""},{"type":"xml","example":" \\r\\n16A96B9A-F203-4EC5-8E43-CB92E68F4CD5\\r\\n","errorExample":""}]', + 'title' => 'DeleteSnapshotCallbackAuth', + 'description' => 'You can call this operation to delete the configuration of authentication for snapshot callbacks for a main streaming domain. For an ongoing live stream, the deletion takes effect after you re-ingest the stream. Snapshot callbacks for the stream are no longer authenticated.'."\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.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'AddLivePackageConfig' => [ + 'summary' => 'Adds a live stream encapsulation configuration.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The application name. The value of this parameter must be the same as the application name that is specified 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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'AppName', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The stream name. The value of this parameter must be the same as the stream name that is specified 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 streams.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'StreamName', + ], + ], + [ + 'name' => 'Protocol', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming protocol and encapsulation format. Valid values:'."\n" + ."\n" + .'* **HLS_CMAF**'."\n" + .'* **LLHLS_TS** (low latency)'."\n" + .'* **LLHLS_CMAF** (low latency)'."\n" + .'* **DASH_CMAF**'."\n" + .'* **HLSDASH_CMAF**'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'HLS_CMAF', + ], + ], + [ + 'name' => 'SegmentNum', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of segments.'."\n" + ."\n" + .'* Valid values: 3 to 10.'."\n" + .'* Default value: 3.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '3', + ], + ], + [ + 'name' => 'SegmentDuration', + 'in' => 'query', + 'schema' => [ + 'description' => 'The segment length. Unit: seconds.'."\n" + ."\n" + .'* If Protocol is set to HLS_CMAF: Valid values: 1 to 10. Default value: 5.'."\n" + .'* If Protocol is set to LLHLS_TS or LLHLS_CMAF: Valid values: 1 to 2. Default value: 1.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '5', + ], + ], + [ + 'name' => 'PartDuration', + 'in' => 'query', + 'schema' => [ + 'description' => 'The part length. Unit: milliseconds.'."\n" + ."\n" + .'* If the value of SegmentDuration is 1, the valid values of this parameter are 100 to 500 and the default value of this parameter is 350.'."\n" + .'* If the value of SegmentDuration is 2, the valid values of this parameter are 100 to 1000 and the default value of this parameter is 700.'."\n" + .'* This parameter takes effect only if Protocol is set to LLHLS_TS or LLHLS_CMAF.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '350', + ], + ], + [ + 'name' => 'IgnoreTranscode', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to ignore the transcoded stream. Valid values:'."\n" + ."\n" + .'* **true** (default)'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '05D00B48-DF50-5DC0-A07D-A250DFAE****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParam', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParams', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'ConfigAlreadyExists', + 'errorMessage' => '%s Please check and try again later.', + ], + [ + 'errorCode' => 'InvalidProtocol', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidSegmentNum', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidSegmentDuration', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidPartDuration', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 409 => [ + [ + 'errorCode' => 'ConfigConflicts', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalErr', + 'errorMessage' => '%s, please try again.', + ], + [ + 'errorCode' => 'DomainConfigFailed', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"05D00B48-DF50-5DC0-A07D-A250DFAE****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 05D00B48-DF50-5DC0-A07D-A250DFAE4258\\n","errorExample":""}]', + 'title' => 'AddLivePackageConfig', + 'description' => '* The first time you configure encapsulation for a domain name, domain acceleration is automatically configured and takes effect in 3 to 5 minutes.'."\n" + .'* If the streaming domain resides in a region outside China, including Singapore, Germany (Frankfurt), Japan (Tokyo), and Indonesia (Jakarta), you may encounter high latency issues. We recommend that you test and verify whether the settings meet expectations.'."\n" + .'* You can call this operation to add a live stream encapsulation configuration. The configuration takes effect only after you re-ingest the stream.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 300 times per minute 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", + ], + 'UpdateLivePackageConfig' => [ + 'summary' => 'Updates a live stream encapsulation configuration.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The application name. The value of this parameter must be the same as the application name that is specified 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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'AppName', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The stream name. The value of this parameter must be the same as the stream name that is specified 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 streams.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'StreamName', + ], + ], + [ + 'name' => 'Protocol', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming protocol and encapsulation format. Valid values:'."\n" + ."\n" + .'* **HLS_CMAF**'."\n" + .'* **LLHLS_TS** (low latency)'."\n" + .'* **LLHLS_CMAF** (low latency)'."\n" + .'* **DASH_CMAF**'."\n" + .'* **HLSDASH_CMAF**'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'HLS_CMAF', + ], + ], + [ + 'name' => 'SegmentNum', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of segments. Valid values: 3 to 10.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '3', + ], + ], + [ + 'name' => 'SegmentDuration', + 'in' => 'query', + 'schema' => [ + 'description' => 'The segment length. Unit: seconds.'."\n" + ."\n" + .'* If Protocol is set to HLS_CMAF, the valid values of this parameter are 1 to 10.'."\n" + .'* If Protocol is set to LLHLS_TS or LLHLS_CMAF, the valid values of this parameter are 1 to 2.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '5', + ], + ], + [ + 'name' => 'PartDuration', + 'in' => 'query', + 'schema' => [ + 'description' => 'The part length. Unit: milliseconds.'."\n" + ."\n" + .'> This parameter is required if Protocol is set to LLHLS_TS or LLHLS_CMAF.'."\n" + ."\n" + .'* If the value of SegmentDuration is 1, the valid values of this parameter are 100 to 500.'."\n" + .'* If the value of SegmentDuration is 2, the valid values of this parameter are 100 to 1000.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '350', + ], + ], + [ + 'name' => 'IgnoreTranscode', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to ignore the transcoded stream. Valid values:'."\n" + ."\n" + .'* **true** (default)'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParam', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParams', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidProtocol', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidSegmentNum', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidSegmentDuration', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidPartDuration', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'ConfigNotFound', + 'errorMessage' => '%s, please check and try again.', + ], + ], + 409 => [ + [ + 'errorCode' => 'ConfigConflicts', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalErr', + 'errorMessage' => '%s, please try again.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + 'title' => 'UpdateLivePackageConfig', + 'description' => 'You can call this operation to update a live stream encapsulation configuration. The update takes effect only after you re-ingest the stream.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 300 times per minute 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", + ], + 'DescribeLivePackageConfig' => [ + 'summary' => '查询直播封装配置', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The application name. If you leave this parameter empty, all applications are matched.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'AppName', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The stream name. If you leave this parameter empty, all streams are matched.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'StreamName', + ], + ], + [ + 'name' => 'PageNum', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: 1.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Valid values: 5 to 30. Default value: 10.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '30', + 'minimum' => '5', + 'example' => '10', + 'default' => '10', + ], + ], + [ + 'name' => 'Order', + 'in' => 'query', + 'schema' => [ + 'description' => 'The sorting order. Valid values:'."\n" + ."\n" + .'* **asc** (default): ascending order'."\n" + .'* **desc**: descending order'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'asc', + 'default' => 'asc', + 'enum' => [ + 'asc', + 'desc', + ], + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The encapsulation information.'."\n", + 'type' => 'object', + 'properties' => [ + 'LivePackageConfigList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LivePackageConfig' => [ + 'description' => 'The live stream encapsulation configurations.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The details about the live stream encapsulation configuration.'."\n", + 'type' => 'object', + 'properties' => [ + 'AppName' => [ + 'description' => 'The application name.'."\n", + 'type' => 'string', + 'example' => 'AppName', + ], + 'DomainName' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'IgnoreTranscode' => [ + 'description' => 'Indicates whether the transcoded stream is ignored. Valid values:'."\n" + ."\n" + .'* **true** (default)'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'PartDuration' => [ + 'description' => 'The part length. Unit: milliseconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'Protocol' => [ + 'description' => 'The streaming protocol and encapsulation format.'."\n", + 'type' => 'string', + 'example' => 'HLS_CMAF', + ], + 'SegmentDuration' => [ + 'description' => 'The segment length. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '5', + ], + 'SegmentNum' => [ + 'description' => 'The number of segments.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '3', + ], + 'StreamName' => [ + 'description' => 'The stream name.'."\n", + 'type' => 'string', + 'example' => 'StreamName', + ], + ], + ], + ], + ], + ], + 'Order' => [ + 'description' => 'The sorting order. Valid values:'."\n" + ."\n" + .'* **asc** (default): ascending order'."\n" + .'* **desc**: descending order'."\n", + 'type' => 'string', + 'example' => 'asc', + ], + 'PageNum' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'PageSize' => [ + 'description' => 'The number of entries per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '1FEDCFD8-4C5D-5CB3-A5A1-0B59E5AE57B0', + ], + 'TotalNum' => [ + 'description' => 'The total number of live stream encapsulation configurations.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'TotalPage' => [ + 'description' => 'The total number of pages.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParam', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParams', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'ConfigAlreadyExists', + 'errorMessage' => '%s Please check and try again later.', + ], + [ + 'errorCode' => 'InvalidProtocol', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidSegmentNum', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidSegmentDuration', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidPartDuration', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalErr', + 'errorMessage' => '%s, please try again.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"LivePackageConfigList\\": {\\n \\"LivePackageConfig\\": [\\n {\\n \\"AppName\\": \\"AppName\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"IgnoreTranscode\\": true,\\n \\"PartDuration\\": 0,\\n \\"Protocol\\": \\"HLS_CMAF\\",\\n \\"SegmentDuration\\": 5,\\n \\"SegmentNum\\": 3,\\n \\"StreamName\\": \\"StreamName\\"\\n }\\n ]\\n },\\n \\"Order\\": \\"asc\\",\\n \\"PageNum\\": 1,\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"1FEDCFD8-4C5D-5CB3-A5A1-0B59E5AE57B0\\",\\n \\"TotalNum\\": 1,\\n \\"TotalPage\\": 10\\n}","errorExample":""},{"type":"xml","example":"\\n 1\\n 1FEDCFD8-4C5D-5CB3-A5A1-0B59E5AE57B0\\n asc\\n 10\\n 10\\n 1\\n \\n AppName\\n 3\\n StreamName\\n HLS_CMAF\\n true\\n 0\\n 5\\n example.com\\n \\n","errorExample":""}]', + 'title' => 'DescribeLivePackageConfig', + 'description' => 'Obtain the main streaming domain, and then call this operation to query live stream encapsulation configurations.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 300 times per minute 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", + ], + 'DeleteLivePackageConfig' => [ + 'summary' => '删除直播封装配置', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'Live streaming domain (primary playback domain).', + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'App name, `*` matches all names.', + 'type' => 'string', + 'required' => true, + 'example' => 'AppName', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'Live stream name, `*` matches all streams under AppName.', + 'type' => 'string', + 'required' => true, + 'example' => 'StreamName', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '72ABAD7B-B14C-52DE-B6C6-C639FECAF5AD', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParam', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParams', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidProtocol', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidSegmentNum', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidSegmentDuration', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidPartDuration', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'ConfigNotFound', + 'errorMessage' => '%s, please check and try again.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalErr', + 'errorMessage' => '%s, please try again.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"72ABAD7B-B14C-52DE-B6C6-C639FECAF5AD\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72ABAD7B-B14C-52DE-B6C6-C639FECAF5AD\\n","errorExample":""}]', + 'title' => 'DeleteLivePackageConfig', + 'description' => 'You can call this operation to delete a live stream encapsulation configuration. The deletion takes effect after you re-ingest the stream.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 300 times per minute 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", + ], + 'AddLiveSnapshotDetectPornConfig' => [ + 'summary' => 'Adds a video moderation configuration for live streams in an application under a domain name.', + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'testApp', + ], + ], + [ + '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~~).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-oss-****.aliyuncs.com', + ], + ], + [ + '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~~).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'livebucket', + ], + ], + [ + 'name' => 'OssObject', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the snapshot that stores violations such as pornographic content and politically sensitive content.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'record/{AppName}/{StreamName}/{Sequence}.jpg', + ], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The interval at which snapshots are captured from the live stream. Valid values: **5 to 3600**. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '3600', + 'minimum' => '5', + 'example' => '10', + ], + ], + [ + '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" + .'* **terrorism**: terrorism detection'."\n" + .'* **ad**: ad violation detection'."\n" + .'* **live**: undesirable scene detection'."\n" + .'* **logo**: logo detection'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'live', + ], + 'required' => false, + 'example' => 'live', + 'maxItems' => 5, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidOssEndpoint.Malformed', + 'errorMessage' => 'Specified parameter OssEndpoint is not valid.', + ], + [ + 'errorCode' => 'InvalidOssBucket.Malformed', + 'errorMessage' => 'Specified parameter OssBucket is not valid.', + ], + [ + 'errorCode' => 'InvalidOssObject.Malformed', + 'errorMessage' => 'Specified parameter OssObject is not valid.', + ], + [ + 'errorCode' => 'InvalidOssBucket.NotFound', + 'errorMessage' => 'The parameter OssBucket does not exist.', + ], + [ + 'errorCode' => 'InvalidScenes', + 'errorMessage' => 'Specified parameter Scene is not valid.', + ], + [ + 'errorCode' => 'ConfigAlreadyExists', + 'errorMessage' => 'Config has already exist.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', + 'title' => 'AddLiveSnapshotDetectPornConfig', + 'description' => "\n" + .'- The live streaming audit function identifies and reviews违规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" + .'- 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" + .'## QPS Limitation '."\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' => ' ', + ], + 'AddLiveDetectNotifyConfig' => [ + 'summary' => 'Configures callbacks for video moderation results. As a result, a callback URL that is used to receive the callback notifications is added.', + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'http://demo.aliyundoc.com/examplecallback.action', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidNotifyUrl.Malformed', + 'errorMessage' => 'Specified NotifyUrl is invalid.', + ], + [ + 'errorCode' => 'InvalidNotifyUrl.Unsafe', + 'errorMessage' => 'Specified NotifyUrl is not safe.', + ], + [ + 'errorCode' => 'ConfigAlreadyExists', + 'errorMessage' => 'Config has already exist.', + ], + [ + 'errorCode' => 'InvalidParams', + 'errorMessage' => 'Invalid Params.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', + 'title' => 'AddLiveDetectNotifyConfig', + '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" + .'* 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' => ' ', + ], + 'DescribeLiveSnapshotDetectPornConfig' => [ + 'summary' => 'Queries video moderation configurations.', + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'PageNum', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Valid values: **5 to 30**. Default value: **10**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '30', + 'minimum' => '5', + 'example' => '10', + 'default' => '10', + ], + ], + [ + 'name' => 'Order', + 'in' => 'query', + 'schema' => [ + 'description' => 'The order in which the entries are sorted based on creation time. Valid values:'."\n" + ."\n" + .'* **Asc** (default): ascending order'."\n" + .'* **Desc**: descending order'."\n" + ."\n" + .'Enumerated values:'."\n" + ."\n" + .'* asc'."\n" + .'* desc'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Asc', + 'default' => 'asc', + 'enum' => [ + 'asc', + 'desc', + ], + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'PageNum' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + 'Order' => [ + 'description' => 'The sort order.'."\n", + 'type' => 'string', + 'example' => 'Asc', + ], + 'TotalPage' => [ + 'description' => 'The total number of pages.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '11', + ], + 'PageSize' => [ + 'description' => 'The number of entries per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '2', + ], + 'TotalNum' => [ + 'description' => 'The total number of entries that meet the specified conditions.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '6', + ], + 'LiveSnapshotDetectPornConfigList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LiveSnapshotDetectPornConfig' => [ + 'description' => 'The list of video moderation configurations.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'OssObject' => [ + 'description' => 'The name of the storage file in Object Storage Service (OSS).'."\n", + 'type' => 'string', + 'example' => ' {liveApp****}/{liveStream****}/{Date}/{Hour}/{Minute}_{Second}.jpg', + ], + 'AppName' => [ + 'description' => 'The application name.'."\n", + 'type' => 'string', + 'example' => 'liveApp****', + ], + 'Interval' => [ + 'description' => 'The interval at which snapshots are captured from the live stream. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '80', + ], + 'OssBucket' => [ + 'description' => 'The name of the OSS bucket.'."\n", + 'type' => 'string', + 'example' => 'liveBucket****', + ], + 'DomainName' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'OssEndpoint' => [ + 'description' => 'The endpoint of the OSS bucket.'."\n", + 'type' => 'string', + 'example' => 'cn-oss-****.aliyuncs.com', + ], + 'Scenes' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'scene' => [ + 'description' => 'The moderation scenario array.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The moderation scenario. Valid values:'."\n" + ."\n" + .'* **porn** (default): pornography'."\n" + .'* **terrorism**: terrorism or politically sensitive content'."\n" + .'* **ad**: ad violation'."\n" + .'* **live**: undesirable scene'."\n" + .'* **logo**'."\n", + 'type' => 'string', + 'example' => 'porn', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageNum\\": 1,\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"Order\\": \\"Asc\\",\\n \\"TotalPage\\": 11,\\n \\"PageSize\\": 2,\\n \\"TotalNum\\": 6,\\n \\"LiveSnapshotDetectPornConfigList\\": {\\n \\"LiveSnapshotDetectPornConfig\\": [\\n {\\n \\"OssObject\\": \\" {liveApp****}/{liveStream****}/{Date}/{Hour}/{Minute}_{Second}.jpg\\",\\n \\"AppName\\": \\"liveApp****\\",\\n \\"Interval\\": 80,\\n \\"OssBucket\\": \\"liveBucket****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"OssEndpoint\\": \\"cn-oss-****.aliyuncs.com\\",\\n \\"Scenes\\": {\\n \\"scene\\": [\\n \\"porn\\"\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 1\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n Asc\\n 11\\n 2\\n 6\\n \\n \\n {liveApp****}/{liveStream****}/{Date}/{Hour}/{Minute}_{Second}.jpg\\n liveApp****\\n 80\\n liveBucket****\\n example.com\\n cn-oss-****.aliyuncs.com\\n porn\\n \\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveSnapshotDetectPornConfig', + 'description' => '* Obtain the main streaming domain, and then call this operation to query video moderation configurations. The configurations can be sorted in ascending or descending order.'."\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 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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + 'LiveDetectNotifyConfig' => [ + 'description' => 'The callback configuration.'."\n", + 'type' => 'object', + 'properties' => [ + 'DomainName' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'NotifyUrl' => [ + 'description' => 'The callback URL.'."\n", + 'type' => 'string', + 'example' => 'http://aliyundoc.com', + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 404 => [ + [ + 'errorCode' => 'InvalidConfig.NotFound', + 'errorMessage' => 'Config does not exist.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E6******\\",\\n \\"LiveDetectNotifyConfig\\": {\\n \\"DomainName\\": \\"example.com\\",\\n \\"NotifyUrl\\": \\"http://aliyundoc.com\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n \\n example.com\\n http://aliyundoc.com\\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveDetectNotifyConfig', + 'description' => '* Obtain the main streaming domain, and then call this operation to query the configuration of callbacks for video moderation results.'."\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' => ' ', + ], + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'OssEndpoint', + 'in' => 'query', + 'schema' => [ + 'description' => 'The endpoint of the Object Storage Service (OSS) bucket.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-oss-****.aliyuncs.com', + ], + ], + [ + 'name' => 'OssBucket', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the OSS bucket.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveBucket****', + ], + ], + [ + 'name' => 'OssObject', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the snapshot that stores violations such as pornographic content and politically sensitive content.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{liveApp****}/{liveStream****}/{Date}/{Hour}/{Minute}_{Second}.jpg', + ], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The interval at which snapshots are captured from the live stream. Valid values: **5 to 3600**. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '3600', + 'minimum' => '5', + 'example' => '5', + ], + ], + [ + 'name' => 'Scene', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The moderation scenario array.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The moderation scenario. Valid values:'."\n" + ."\n" + .'* **porn** (default): pornography detection'."\n" + .'* **terrorism**: terrorism detection'."\n" + .'* **ad**: ad violation detection'."\n" + .'* **live**: undesirable scene detection'."\n" + .'* **logo**: logo detection'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'live', + ], + 'required' => false, + 'example' => 'porn', + 'maxItems' => 5, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidOssEndpoint.Malformed', + 'errorMessage' => 'Specified parameter OssEndpoint is not valid.', + ], + [ + 'errorCode' => 'InvalidOssBucket.Malformed', + 'errorMessage' => 'Specified parameter OssBucket is not valid.', + ], + [ + 'errorCode' => 'InvalidOssObject.Malformed', + 'errorMessage' => 'Specified parameter OssObject is not valid.', + ], + [ + 'errorCode' => 'InvalidOssBucket.NotFound', + 'errorMessage' => 'The parameter OssBucket does not exist.', + ], + [ + 'errorCode' => 'InvalidScenes', + 'errorMessage' => 'Specified parameter Scene is not valid.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidConfig.NotFound', + 'errorMessage' => 'Config does not exist.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + 'title' => 'UpdateLiveSnapshotDetectPornConfig', + 'description' => '* Obtain the main streaming domain, and then call this operation to modify a video moderation configuration.'."\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.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + '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.', + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'http://guide.aliyundoc.com/examplecallback.action', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidNotifyUrl.Malformed', + 'errorMessage' => 'Specified NotifyUrl is invalid.', + ], + [ + 'errorCode' => 'InvalidNotifyUrl.Unsafe', + 'errorMessage' => 'Specified NotifyUrl is not safe.', + ], + [ + 'errorCode' => 'InvalidParams', + 'errorMessage' => 'Invalid Params.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidConfig.NotFound', + 'errorMessage' => 'Config does not exist.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + 'title' => 'UpdateLiveDetectNotifyConfig', + 'description' => '* Obtain the main streaming domain, and then call this operation to modify the configuration of callbacks for video moderation results.'."\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.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E6*******', + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E6*******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + 'title' => 'DeleteLiveSnapshotDetectPornConfig', + 'description' => '* Obtain the main streaming domain, and then call this operation to delete a video moderation configuration.'."\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.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteLiveDetectNotifyConfig' => [ + 'summary' => 'Deletes the configuration of callbacks for video moderation results.', + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + 'title' => 'DeleteLiveDetectNotifyConfig', + '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" + .'* 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.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + '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 application name is case-sensitive.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream. The value of this parameter must be the same as the stream name in the ingest URL. Otherwise, the configuration does not take effect. The stream name is case-sensitive.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveStream****', + ], + ], + [ + 'name' => 'OssBucket', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the OSS bucket in which the recording is stored.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveBucket****', + ], + ], + [ + 'name' => 'OssEndpoint', + 'in' => 'query', + 'schema' => [ + 'description' => 'The endpoint of OSS.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-oss-****.aliyuncs.com', + ], + ], + [ + 'name' => 'OssObject', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the recording stored in OSS.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveObject****', + ], + ], + [ + 'name' => 'BizType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The business type. You can specify a model. The default value is the domain name.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'example.edu', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '7BF95F2A-3B24-4CDE-9346-7F6FA86697A1', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MalformedParam', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissingParam', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'ConfigExisted', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'ConfigNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\n","errorExample":""}]', + 'title' => 'AddLiveAudioAuditConfig', + 'description' => '* The content moderation feature detects undesirable sensitive content in the audio from live streams and returns callbacks to notify you of the violations. Then, you can manually review the content and take actions accordingly.'."\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 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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'AddLiveAudioAuditNotifyConfig' => [ + 'summary' => 'Configures callbacks for audio moderation results.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'Callback', + 'in' => 'query', + 'schema' => [ + 'description' => 'The callback URL. This URL is used to receive callback notifications about violations in audio.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'https://demo.aliyundoc.com/callback', + ], + ], + [ + 'name' => 'CallbackTemplate', + 'in' => 'query', + 'schema' => [ + 'description' => 'The callback template. Valid values:'."\n" + ."\n" + .'* **{DomainName}**: the streaming domain.'."\n" + .'* **{AppName}**: the name of the application to which the live stream belongs.'."\n" + .'* **{StreamName}**: the name of the live stream.'."\n" + .'* **{Timestamp}**: the time when the callback is returned. The value of this field is a UNIX timestamp. Unit: seconds.'."\n" + .'* **{Result}**: the moderation results.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{"domain":{DomainName},"app":{AppName},"stream":{StreamName},"timestamp":{Timestamp},"result":{Result}}', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '7BF95F2A-3B24-4CDE-9346-7F6FA86697A1', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MalformedParam', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissingParam', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'ConfigExisted', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'ConfigNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'UnsafeCallback', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\n","errorExample":""}]', + 'title' => 'AddLiveAudioAuditNotifyConfig', + 'description' => '* The content moderation feature returns the audio moderation results based on the configured callback template.'."\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 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", + 'requestParamsDescription' => '## [](#)Format of the Result field'."\n" + ."\n" + .'Result example:'."\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" + .' "The Shambhala team on the third floor cooperates with the team on the fifth floor.",'."\n" + .' "label": "normal"'."\n" + .' },'."\n" + .' {'."\n" + .' "startTime": 1571989515,'."\n" + .' "endTime": 1571989518,'."\n" + .' "text": "Two dishes, roasted fish and hot pot, are launched for celebration.",'."\n" + .' "label": "normal"'."\n" + .' },'."\n" + .' {'."\n" + .' "startTime": 1571989520,'."\n" + .' "endTime": 1571989522,'."\n" + .' "text": "The VIP price for Shambhala members is RMB 39.",'."\n" + .' "label": "normal"'."\n" + .' },'."\n" + .' {'."\n" + .' "startTime": 1571989523,'."\n" + .' "endTime": 1571989526,'."\n" + .' "text": "A discount of RMB 66 is offered for each consumption.",'."\n" + .' "label": "normal"'."\n" + .' },'."\n" + .' {'."\n" + .' "startTime": 1571989530,'."\n" + .' "endTime": 1571989533,'."\n" + .' "text": "Big prize! For more information, contact 3398787",'."\n" + .' "label": "ad"'."\n" + .' },'."\n" + .' {'."\n" + .' "startTime": 1571989533,'."\n" + .' "endTime": 1571989534,'."\n" + .' "text": "Good news! It seems so.",'."\n" + .' "label": "normal"'."\n" + .' },'."\n" + .' {'."\n" + .' "startTime": 1571989538,'."\n" + .' "endTime": 1571989539,'."\n" + .' "text": "Four persons carry the vehicle license with them.",'."\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": "China Construction Bank ETC witness",'."\n" + .' "label": "normal"'."\n" + .' },'."\n" + .' {'."\n" + .' "startTime": 1571989550,'."\n" + .' "endTime": 1571989552,'."\n" + .' "text": "Zhao Xinyuan of Lvliang State Investment Group Co., Ltd.",'."\n" + .' "label": "normal"'."\n" + .' }'."\n" + .' ]'."\n" + .' }'."\n" + .' ]'."\n", + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteLiveAudioAuditConfig' => [ + 'summary' => 'Deletes an audio moderation configuration.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n" + ."\n" + .'> A value of asterisk (\\*) specifies all applications under the domain name.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream.'."\n" + ."\n" + .'> A value of asterisk (\\*) specifies all live streams in the application.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveStream****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E******', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MalformedParam', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissingParam', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'ConfigExisted', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'ConfigNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + 'title' => 'DeleteLiveAudioAuditConfig', + 'description' => '* Obtain the main streaming domain, and then call this operation to delete an audio moderation configuration.'."\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 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. For more information, see [QPS limits](~~343507~~).'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteLiveAudioAuditNotifyConfig' => [ + 'summary' => 'Deletes the configuration of callbacks for audio moderation results.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '7BF95F2A-3B24-4CDE-9346-7F6FA86697A1', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MalformedParam', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissingParam', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'ConfigExisted', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'ConfigNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\n","errorExample":""}]', + 'title' => 'DeleteLiveAudioAuditNotifyConfig', + 'description' => '* Obtain the main streaming domain, and then call this operation to delete the configuration of callbacks for audio moderation results.'."\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 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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'UpdateLiveAudioAuditNotifyConfig' => [ + 'summary' => 'Modifies the configuration of callbacks for audio moderation results.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'Callback', + 'in' => 'query', + 'schema' => [ + 'description' => 'The callback URL. This URL is used to receive callback notifications about violations in audio.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'http://guide.aliyundoc.com/callback', + ], + ], + [ + 'name' => 'CallbackTemplate', + 'in' => 'query', + 'schema' => [ + 'description' => 'The callback template. Configure the following fields:'."\n" + ."\n" + .'* **{DomainName}**: the streaming domain.'."\n" + .'* **{AppName}**: the name of the application to which the live stream belongs.'."\n" + .'* **{StreamName}**: the name of the live stream.'."\n" + .'* **{Timestamp}**: the time when the callback is returned. The value of this field is a UNIX timestamp. Unit: seconds.'."\n" + .'* **{Result}**: the moderation results.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{"domain":{DomainName},"app":{AppName},"stream":{StreamName},"timestamp":{Timestamp},"result":{Result}}', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '7BF95F2A-3B24-4CDE-9346-7F6FA86697A1', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MalformedParam', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissingParam', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'ConfigExisted', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'ConfigNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'UnsafeCallback', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\n","errorExample":""}]', + 'title' => 'UpdateLiveAudioAuditNotifyConfig', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'UpdateLiveAudioAuditConfig' => [ + 'summary' => 'Modifies an audio moderation configuration.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + '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 application name is case-sensitive.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream. The value of this parameter must be the same as the stream name in the ingest URL. Otherwise, the configuration does not take effect. The stream name is case-sensitive.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveStream****', + ], + ], + [ + 'name' => 'OssBucket', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the Object Storage Service (OSS) bucket.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveBucket****', + ], + ], + [ + 'name' => 'OssEndpoint', + 'in' => 'query', + 'schema' => [ + 'description' => 'The endpoint of the OSS bucket.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-oss-****.aliyuncs.com', + ], + ], + [ + 'name' => 'OssObject', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the recording that is stored in OSS.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveObject****', + ], + ], + [ + 'name' => 'BizType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The business type. You can specify a model. The default value is the domain name.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => ' example.edu', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '7BF95F2A-3B24-4CDE-9346-7F6FA86697A1', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MalformedParam', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissingParam', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'ConfigExisted', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'ConfigNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\n","errorExample":""}]', + 'title' => 'UpdateLiveAudioAuditConfig', + 'description' => '* Obtain the main streaming domain, and then call this operation to modify an audio moderation configuration.'."\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 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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLiveAudioAuditConfig' => [ + 'summary' => 'Queries 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveStream****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '7BF95F2A-3B24-4CDE-9346-7F6FA86697A1', + ], + 'LiveAudioAuditConfigList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LiveAudioAuditConfig' => [ + 'description' => 'The list of audio moderation configurations.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'AppName' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'example' => 'liveApp****', + ], + 'DomainName' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'StreamName' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'example' => 'liveStream****', + ], + 'BizType' => [ + 'description' => 'The business type. You can specify a model. The default value is the domain name.'."\n", + 'type' => 'string', + 'example' => 'example.edu', + ], + 'Scenes' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'scene' => [ + 'description' => 'The moderation scenarios.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The moderation scenario.'."\n", + 'type' => 'string', + 'example' => '["antispam"]', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MalformedParam', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissingParam', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'ConfigExisted', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'ConfigNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\",\\n \\"LiveAudioAuditConfigList\\": {\\n \\"LiveAudioAuditConfig\\": [\\n {\\n \\"AppName\\": \\"liveApp****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"BizType\\": \\"example.edu\\",\\n \\"Scenes\\": {\\n \\"scene\\": [\\n \\"antispam\\"\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\n \\n liveApp****\\n example.com\\n liveStream****\\n example.edu\\n [\\"antispam\\"]\\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveAudioAuditConfig', + 'description' => '* Obtain the main streaming domain, and then call this operation to query audio moderation configurations.'."\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 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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLiveAudioAuditNotifyConfig' => [ + 'summary' => 'Queries the configuration of callbacks for audio moderation results.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'B908FF89-B03C-4831-B55B-48D2A******', + ], + 'LiveAudioAuditNotifyConfigList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LiveAudioAuditNotifyConfig' => [ + 'description' => 'The configuration of callbacks for audio moderation results.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'CallbackTemplate' => [ + 'description' => 'The callback template. The following fields are configured:'."\n" + ."\n" + .'* **{DomainName}**: the streaming domain.'."\n" + .'* **{AppName}**: the name of the application to which the live stream belongs.'."\n" + .'* **{StreamName}**: the name of the live stream.'."\n" + .'* **{Timestamp}**: the time when the callback is returned. The value of this field is a UNIX timestamp. Unit: seconds.'."\n" + .'* **{Result}**: the moderation results.'."\n", + 'type' => 'string', + 'example' => '{\\"domain\\":{DomainName},\\"app\\":{AppName},\\"stream\\":{StreamName},\\"timestamp\\":{Timestamp},\\"result\\":{Result}}', + ], + 'DomainName' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'Callback' => [ + 'description' => 'The callback URL.'."\n", + 'type' => 'string', + 'example' => 'http://guide.aliyundoc.com/callback', + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MalformedParam', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissingParam', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'ConfigExisted', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'ConfigNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B908FF89-B03C-4831-B55B-48D2A******\\",\\n \\"LiveAudioAuditNotifyConfigList\\": {\\n \\"LiveAudioAuditNotifyConfig\\": [\\n {\\n \\"CallbackTemplate\\": \\"{\\\\\\\\\\\\\\"domain\\\\\\\\\\\\\\":{DomainName},\\\\\\\\\\\\\\"app\\\\\\\\\\\\\\":{AppName},\\\\\\\\\\\\\\"stream\\\\\\\\\\\\\\":{StreamName},\\\\\\\\\\\\\\"timestamp\\\\\\\\\\\\\\":{Timestamp},\\\\\\\\\\\\\\"result\\\\\\\\\\\\\\":{Result}}\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"Callback\\": \\"http://guide.aliyundoc.com/callback\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n B908FF89-B03C-4831-B55B-48D2A7DA0A68\\n \\n \\n {\\\\\\"domain\\\\\\":{DomainName},\\\\\\"app\\\\\\":{AppName},\\\\\\"stream\\\\\\":{StreamName},\\\\\\"timestamp\\\\\\":{Timestamp},\\\\\\"result\\\\\\":{Result}}\\n example.com\\n http://guide.aliyundoc.com/callback\\n \\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveAudioAuditNotifyConfig', + 'description' => '* Obtain the main streaming domain, and then call this operation to query the configuration of callbacks for audio moderation results.'."\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 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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo.aliyundoc.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'live', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'testStream', + ], + ], + [ + 'name' => 'VideoCenter', + 'in' => 'query', + 'schema' => [ + 'description' => 'The live center. Valid values: cn-beijing, cn-shanghai, cn-shenzhen, cn-qingdao, ap-northeast-1, ap-southeast-5, eu-central-1, and ap-southeast-1, which indicate China (Beijing), China (Shanghai), China (Shenzhen), China (Qingdao), Japan (Tokyo), Indonesia (Jakarta), Germany (Frankfurt), and Singapore, respectively.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-shanghai', + ], + ], + [ + 'name' => 'AccelerationType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The acceleration type. Valid values:'."\n" + ."\n" + .'* play: streaming acceleration'."\n" + .'* publish: stream ingest acceleration'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'play', + 'enum' => [ + 'play', + 'publish', + ], + ], + ], + [ + 'name' => 'AccelerationArea', + 'in' => 'query', + 'schema' => [ + 'description' => 'The acceleration channel.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'ap-southeast-1', + ], + ], + [ + 'name' => 'Reuse', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to reuse an existing acceleration channel. Valid values:'."\n" + ."\n" + .'* yes: reuses an existing acceleration channel.'."\n" + .'* no: creates a new acceleration channel.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'no', + 'enum' => [ + 'yes', + 'no', + ], + ], + ], + [ + 'name' => 'MaxBandwidth', + 'in' => 'query', + 'schema' => [ + 'description' => 'The accelerated bandwidth. Unit: Mbit/s. This parameter is required if Reuse is set to no.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '200', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The acceleration channel that you want to reuse. This parameter is required if Reuse is set to yes.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'ga-bp1iovsdpf01ym9su****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '7908F2FF-44F8-120F-9FD6-85AE4B6C****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => 'Parameter invalid.', + ], + [ + 'errorCode' => 'NoSpecialConfiguration', + 'errorMessage' => 'no special configuration for acceleration_area.', + ], + [ + 'errorCode' => 'ConfigAlreadyExists', + 'errorMessage' => 'Config has already exist.', + ], + [ + 'errorCode' => 'HasNoPermission', + 'errorMessage' => 'You do not have permission to create accelerator.', + ], + [ + 'errorCode' => 'PostPayNotOpen', + 'errorMessage' => 'The Accelerator PostPay service is not open.', + ], + [ + 'errorCode' => 'TryAgain', + 'errorMessage' => 'Create SLR first and please try again.', + ], + [ + 'errorCode' => 'HasNoPermisionToCreateSLR', + 'errorMessage' => 'You do not have ram:CreateServiceLinkedRole to create SLR.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7908F2FF-44F8-120F-9FD6-85AE4B6C****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7908F2FF-44F8-120F-9FD6-85AE4B6C19EC\\n","errorExample":""}]', + 'title' => 'CreateLivePrivateLine', + 'description' => '* You can call this operation to create a GA instance and bind it to an acceleration circuit. The granularity is at the stream level. You need to specify the access points where the acceleration circuit starts and ends.'."\n" + .'* The settings take effect only if the value of AppName and the value of StreamName are the same as the application name and stream name that are specified in the streaming URL.'."\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", + ], + 'DeleteLivePrivateLine' => [ + 'summary' => 'Unbinds a Global Accelerator (GA) instance from an acceleration circuit.', + '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', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo.aliyundoc.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'live', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'testStream', + ], + ], + [ + 'name' => 'AccelerationType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The acceleration type. Valid values:'."\n" + ."\n" + .'* play: streaming acceleration'."\n" + .'* publish: stream ingest acceleration'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'play', + 'enum' => [ + 'play', + 'publish', + ], + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '7908F2FF-44F8-120F-9FD6-85AE4******', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => 'Parameter invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7908F2FF-44F8-120F-9FD6-85AE4******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7908F2FF-44F8-120F-9FD6-85AE4B6C19EC\\n","errorExample":""}]', + 'title' => 'DeleteLivePrivateLine', + 'description' => 'After you unbind a GA instance from an acceleration circuit, your stream ingest and streaming are no longer accelerated by the GA instance. The GA instance still exists. If you want to release the GA instance, delete it in the GA console.'."\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", + ], + 'DescribeLivePrivateLineAreas' => [ + 'summary' => 'Queries available access points where acceleration circuits start.', + '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', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo.aliyundoc.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'LiveAreasList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LiveArea' => [ + 'description' => 'Details about the regions.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RegionType' => [ + 'description' => 'The region type. Valid values:'."\n" + ."\n" + .'* domestic: in the Chinese mainland'."\n" + .'* overseas: outside the Chinese mainland'."\n", + 'type' => 'string', + 'example' => 'domestic', + ], + 'Regions' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Region' => [ + 'description' => 'The regions.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The regions.', + 'type' => 'object', + 'properties' => [ + 'LocalName' => [ + 'description' => 'The region name.'."\n", + 'type' => 'string', + 'example' => 'cn-shenzhen'."\n", + ], + 'RegionId' => [ + 'description' => 'The region ID.'."\n", + 'type' => 'string', + 'example' => 'cn-shenzhen', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'C4865B85-664B-19D3-BB16-C62FB83C8226', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => 'Parameter invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"LiveAreasList\\": {\\n \\"LiveArea\\": [\\n {\\n \\"RegionType\\": \\"domestic\\",\\n \\"Regions\\": {\\n \\"Region\\": [\\n {\\n \\"LocalName\\": \\"深圳\\",\\n \\"RegionId\\": \\"cn-shenzhen\\"\\n }\\n ]\\n }\\n }\\n ]\\n },\\n \\"RequestId\\": \\"C4865B85-664B-19D3-BB16-C62FB83C8226\\"\\n}","errorExample":""},{"type":"xml","example":"\\n C4865B85-664B-19D3-BB16-C62FB83C8226\\n \\n \\n domestic\\n \\n \\n 深圳\\n cn-shenzhen\\n \\n \\n \\n \\n overseas\\n \\n \\n 新加坡\\n ap-southeast-1\\n \\n \\n \\n \\n","errorExample":""}]', + 'title' => 'DescribeLivePrivateLineAreas', + 'description' => 'Before you call the CreateLivePrivateLine operation, you can call this operation to query available acceleration regions, which are access points where acceleration circuits start.'."\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", + ], + 'DescribeLivePrivateLineAvailGA' => [ + 'summary' => 'Queries the binding information between Global Accelerator (GA) instances and acceleration circuits.', + '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', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo.aliyundoc.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'live', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'testStream', + ], + ], + [ + 'name' => 'AccelerationArea', + 'in' => 'query', + 'schema' => [ + 'description' => 'The acceleration channel.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'ap-southeast-1', + ], + ], + [ + 'name' => 'VideoCenter', + 'in' => 'query', + 'schema' => [ + 'description' => 'The live center. Valid values: cn-beijing, cn-shanghai, cn-shenzhen, cn-qingdao, ap-northeast-1, ap-southeast-5, eu-central-1, ap-southeast-1, and ap-south-1. cn-beijing indicates China (Beijing). cn-shanghai indicates China (Shanghai). cn-shenzhen indicates China (Shenzhen). cn-qingdao indicates China (Qingdao). ap-northeast-1 indicates Japan (Tokyo). ap-southeast-5 indicates Indonesia (Jakarta). eu-central-1 indicates Germany (Frankfurt). ap-southeast-1 indicates Singapore.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-shanghai', + ], + ], + [ + 'name' => 'IsGaInstance', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to query Global Accelerator (GA) instances. Valid values:'."\n" + ."\n" + .'* yes: queries the status of GA instances.'."\n" + .'* no: queries the binding information between GA instances and acceleration circuits.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'no', + 'enum' => [ + 'yes', + 'no', + ], + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The returned data.'."\n", + 'type' => 'object', + 'properties' => [ + 'LivePrivateLineAvailGAs' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LivePrivateLineAvailGA' => [ + 'description' => 'The GA instance configuration details.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'AccelerationArea' => [ + 'description' => 'The acceleration channel.'."\n", + 'type' => 'string', + 'example' => 'ap-southeast-1', + ], + 'AccelerationType' => [ + 'description' => 'The acceleration type. Valid values:'."\n" + ."\n" + .'* play: streaming acceleration'."\n" + .'* publish: stream ingest acceleration'."\n", + 'type' => 'string', + 'example' => 'play', + ], + 'AppName' => [ + 'description' => 'The name of the application.'."\n", + 'type' => 'string', + 'example' => 'live', + ], + 'BindingStatus' => [ + 'description' => 'Indicates whether the GA instance is bound to an acceleration circuit. Valid values:'."\n" + ."\n" + .'* yes'."\n" + .'* no'."\n", + 'type' => 'string', + 'example' => 'yes', + ], + 'DomainName' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'example' => 'demo.aliyundoc.com', + ], + 'IP' => [ + 'description' => 'The accelerated IP address.'."\n", + 'type' => 'string', + 'example' => '127.0.0.1', + ], + 'InstanceId' => [ + 'description' => 'The ID of the GA instance.'."\n", + 'type' => 'string', + 'example' => 'ga-bp1iovsdpf01ym9su****', + ], + 'Status' => [ + 'description' => 'The status of the GA instance. Valid values:'."\n" + ."\n" + .'* active: The GA instance is available.'."\n" + .'* inactive: The GA instance is unavailable.'."\n", + 'type' => 'string', + 'example' => 'active', + ], + 'StreamName' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'example' => 'testStream', + ], + 'Uid' => [ + 'description' => 'The user ID (UID).'."\n", + 'type' => 'string', + 'example' => '1833220971116****', + ], + 'VideoCenter' => [ + 'description' => 'The live center.'."\n", + 'type' => 'string', + 'example' => 'cn-shanghai', + ], + ], + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'C4865B85-664B-19D3-BB16-C62FB83C8226', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => 'Parameter invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"LivePrivateLineAvailGAs\\": {\\n \\"LivePrivateLineAvailGA\\": [\\n {\\n \\"AccelerationArea\\": \\"ap-southeast-1\\",\\n \\"AccelerationType\\": \\"play\\",\\n \\"AppName\\": \\"live\\",\\n \\"BindingStatus\\": \\"yes\\",\\n \\"DomainName\\": \\"demo.aliyundoc.com\\",\\n \\"IP\\": \\"127.0.0.1\\",\\n \\"InstanceId\\": \\"ga-bp1iovsdpf01ym9su****\\",\\n \\"Status\\": \\"active\\",\\n \\"StreamName\\": \\"testStream\\",\\n \\"Uid\\": \\"1833220971116****\\",\\n \\"VideoCenter\\": \\"cn-shanghai\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"C4865B85-664B-19D3-BB16-C62FB83C8226\\"\\n}","errorExample":""},{"type":"xml","example":"\\n C4865B85-664B-19D3-BB16-C62FB83C8226\\n \\n \\n xxx.example1.com\\n test\\n test\\n ga-bp1iovsdpf01ym9sulesm\\n 18332209711160785\\n 127.0.0.1\\n cn-shanghai\\n ap-southeast-1\\n active\\n play\\n yes\\n \\n \\n","errorExample":""}]', + 'title' => 'DescribeLivePrivateLineAvailGA', + 'description' => 'If you set the IsGaInstance parameter to yes, the status of GA instances is queried. If you set the IsGaInstance parameter to no, the binding information between GA instances and acceleration circuits is 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", + ], + 'DescribeLiveStreamDelayConfig' => [ + 'summary' => 'Queries the live streaming latency.', + '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', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '785C9CB0-EB8A-4912-BBF2-966BEFD32DC3', + ], + 'LiveStreamHlsDelayConfig' => [ + 'description' => 'The latency of HLS-based playback.'."\n", + 'type' => 'object', + 'properties' => [ + 'Delay' => [ + 'description' => 'The playback latency. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '3', + ], + 'Level' => [ + 'description' => 'The latency level. Valid values:'."\n" + ."\n" + .'* **short**: The latency is less than or equal to 4 seconds.'."\n" + .'* **medium**: The latency is greater than 4 seconds, and less than or equal to 8 seconds.'."\n" + .'* **long**: The latency is greater than 8 seconds.'."\n", + 'type' => 'string', + 'example' => 'short', + ], + ], + ], + 'LiveStreamFlvDelayConfig' => [ + 'description' => 'The latency of FLV-based playback.'."\n", + 'type' => 'object', + 'properties' => [ + 'Delay' => [ + 'description' => 'The playback latency. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '5', + ], + 'Level' => [ + 'description' => 'The latency level. Valid values:'."\n" + ."\n" + .'* **short**: The latency is less than or equal to 4 seconds.'."\n" + .'* **medium**: The latency is greater than 4 seconds, and less than or equal to 8 seconds.'."\n" + .'* **long**: The latency is greater than 8 seconds.'."\n", + 'type' => 'string', + 'example' => 'medium', + ], + ], + ], + 'LiveStreamRtmpDelayConfig' => [ + 'description' => 'The latency of RTMP-based playback.'."\n", + 'type' => 'object', + 'properties' => [ + 'Delay' => [ + 'description' => 'The playback latency. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '4', + ], + 'Level' => [ + 'description' => 'The latency level. Valid values:'."\n" + ."\n" + .'* **short**: The latency is less than or equal to 4 seconds.'."\n" + .'* **medium**: The latency is greater than 4 seconds, and less than or equal to 8 seconds.'."\n" + .'* **long**: The latency is greater than 8 seconds.'."\n", + 'type' => 'string', + 'example' => 'short', + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"785C9CB0-EB8A-4912-BBF2-966BEFD32DC3\\",\\n \\"LiveStreamHlsDelayConfig\\": {\\n \\"Delay\\": 3,\\n \\"Level\\": \\"short\\"\\n },\\n \\"LiveStreamFlvDelayConfig\\": {\\n \\"Delay\\": 5,\\n \\"Level\\": \\"medium\\"\\n },\\n \\"LiveStreamRtmpDelayConfig\\": {\\n \\"Delay\\": 4,\\n \\"Level\\": \\"short\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 785C9CB0-EB8A-4912-BBF2-966BEFD32DC3\\n \\n 3\\n short\\n \\n \\n 4\\n short\\n \\n \\n 5\\n medium\\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveStreamDelayConfig', + 'description' => 'Obtain the streaming domain, and then call this operation to query the live streaming latency.'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + ], + 'SetLiveStreamDelayConfig' => [ + 'summary' => 'Configures the 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'HlsDelay', + 'in' => 'query', + 'schema' => [ + 'description' => 'The latency of HLS-based playback. Unit: seconds.'."\n" + ."\n" + .'> If this parameter is left empty, the latency is set to a value corresponding to the HlsLevel parameter.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '4', + ], + ], + [ + 'name' => 'HlsLevel', + 'in' => 'query', + 'schema' => [ + 'description' => 'The latency level of HLS-based playback. Ignore this parameter if the HlsDelay parameter is configured.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* **short**: The latency is 3 seconds. This is the default value.'."\n" + .'* **medium**: The latency is 6 seconds.'."\n" + .'* **long**: The latency is 15 seconds.'."\n" + ."\n" + .'> If both the HlsDelay and HlsLevel parameters are left empty, HlsLevel is set to **short** by default.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'short', + ], + ], + [ + 'name' => 'FlvDelay', + 'in' => 'query', + 'schema' => [ + 'description' => 'The latency of FLV-based playback. Unit: seconds.'."\n" + ."\n" + .'> If this parameter is left empty, the latency is set to a value corresponding to the FlvLevel parameter.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '8', + ], + ], + [ + 'name' => 'FlvLevel', + 'in' => 'query', + 'schema' => [ + 'description' => 'The latency level of FLV-based playback. Ignore this parameter if the FlvDelay parameter is configured.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* **short** (default): The latency is 4 seconds.'."\n" + .'* **medium**: The latency is 8 seconds.'."\n" + .'* **long**: The latency is 16 seconds.'."\n" + ."\n" + .'> If both the FlvDelay and FlvLevel parameters are left empty, FlvLevel is set to **short** by default.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'medium', + ], + ], + [ + 'name' => 'RtmpDelay', + 'in' => 'query', + 'schema' => [ + 'description' => 'The latency of RTMP-based playback. Unit: seconds.'."\n" + ."\n" + .'> If this parameter is left empty, the latency is set to a value corresponding to the RtmpLevel parameter.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '4', + ], + ], + [ + 'name' => 'RtmpLevel', + 'in' => 'query', + 'schema' => [ + 'description' => 'The latency level of RTMP-based playback. Ignore this parameter if the RtmpDelay parameter is configured.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* **short** (default): The latency is 4 seconds.'."\n" + .'* **medium**: The latency is 8 seconds.'."\n" + .'* **long**: The latency is 16 seconds.'."\n" + ."\n" + .'> If both the RtmpDelay and RtmpLevel parameters are left empty, RtmpLevel is set to **short** by default.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'short', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '4C747C97-7ECD-4C61-8A92-67AD806331FF', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4C747C97-7ECD-4C61-8A92-67AD806331FF\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 4C747C97-7ECD-4C61-8A92-67AD806331FF\\n","errorExample":""}]', + 'title' => 'SetLiveStreamDelayConfig', + 'description' => '* You can call this operation to configure the latency of a streaming domain.'."\n" + .'* Because an integer number of groups of pictures (GOPs) are cached, the latency is not less than the GOP size. The actual latency is calculated based on the GOP size. For example, if RtmpDelay is set to 4 seconds and the GOP size is 2 seconds, the minimum latency is 2 seconds (4 seconds minus 2 seconds) and the maximum latency is 6 seconds (4 seconds plus 2 seconds). If the GOP size is greater than the value of RtmpDelay, for example, the GOP size is 5 seconds and RtmpDelay is set to 4 seconds, the latency ranges from 0 to 9 seconds.'."\n" + .'* Configuration for the latency of an audio-only stream is invalid. By default, the latency is close to 0.'."\n" + .'* For HTTP Live Streaming (HLS)-based playback, the segment size equals the latency divided by 3. Round the value down to the nearest integer. The value cannot be less than 1 second. Then, calculate the maximum number of segments. If the segment size is greater than or equal to 3 seconds, the maximum number of segments is 4. Otherwise, the maximum number of segments is 6.'."\n" + .'* The actual HLS segment size is not smaller than the GOP size.'."\n" + .'* The latency of HLS-based playback equals the configured segment size times 3.'."\n" + .'* If you do not call this operation, the default latency is 2 seconds for Real-Time Messaging Protocol (RTMP)-based playback and 4 seconds for Flash Video (FLV)-based playback. By default, the size of an HLS segment is 5 seconds. In this case, the latency is 15 seconds and the maximum number of segments is 6.'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + ], + 'DescribeLiveDomainBpsData' => [ + 'summary' => 'Queries the bandwidth data for one or more streaming domains.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain. You can query one or more domain names. If you specify multiple domain names, separate them with commas (,). If you leave this parameter empty, the data of all domain names within your Alibaba Cloud account is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'example.com', + ], + ], + [ + '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", + 'type' => 'string', + 'required' => false, + 'example' => '2017-12-10T08:00:00Z', + ], + ], + [ + '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", + 'type' => 'string', + 'required' => false, + 'example' => '2017-12-10T09:00:00Z', + ], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time granularity of the query. Unit: seconds. Valid values:'."\n" + ."\n" + .'* **300** (default)'."\n" + .'* **3600**'."\n" + .'* **86400**'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* If you specify an invalid value or do not specify this parameter, the default value **300** is used.'."\n" + ."\n" + .'* When the time granularity is **300** seconds, the returned bandwidth is the average bandwidth within the 300 seconds.'."\n" + .'* When the time granularity is **3600** or **86400** seconds, the returned bandwidth is the peak value of all average bandwidths within each 300-second period.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '300', + ], + ], + [ + 'name' => 'IspNameEn', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the Internet service provider (ISP). You can call the [DescribeCdnRegionAndIsp](~~91077~~) operation to query a list of available ISPs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'alibaba', + ], + ], + [ + 'name' => 'LocationNameEn', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the region. You can call the [DescribeCdnRegionAndIsp](~~91077~~) operation to query a list of available regions.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'tianjin', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'EndTime' => [ + 'description' => 'The end of the time range during which the data was queried. 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-10T09:00:00Z', + ], + 'StartTime' => [ + 'description' => 'The beginning of the time range during which the data was queried. 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-10T08:00:00Z', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', + ], + 'DomainName' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'DataInterval' => [ + 'description' => 'The time granularity of the query. Unit: seconds.'."\n", + 'type' => 'string', + 'example' => '300', + ], + 'BpsDataPerInterval' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DataModule' => [ + 'description' => 'The bandwidth data returned at each interval.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The bandwidth data returned at each interval.'."\n", + 'type' => 'object', + 'properties' => [ + 'BpsValue' => [ + 'description' => 'The bandwidth. Unit: bit/s.'."\n", + 'type' => 'string', + 'example' => '11288111', + ], + 'TimeStamp' => [ + 'description' => 'The timestamp of the data returned.'."\n", + 'type' => 'string', + 'example' => '2017-12-10T08:00:05Z', + ], + 'HttpsBpsValue' => [ + 'description' => 'The bandwidth over HTTPS. Unit: bit/s.'."\n", + 'type' => 'string', + 'example' => '2000', + ], + 'HttpBpsValue' => [ + 'description' => 'The bandwidth over HTTP. Unit: bit/s.'."\n", + 'type' => 'string', + 'example' => '11286111', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified StartTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified end time does not math the specified start time.', + ], + [ + 'errorCode' => 'InvalidStartTime.ValueNotSupported', + 'errorMessage' => 'The specified value of parameter StartTime is not supported.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","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}","errorExample":""},{"type":"xml","example":"\\n 2017-12-10T09:00:00Z\\n 2017-12-10T08:00:00Z\\n B955107D-E658-4E77-B913-E0AC3D31693E\\n example.com\\n 300\\n \\n 11288111\\n 2017-12-10T08:00:05Z\\n 2000\\n 11286111\\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveDomainBpsData', + 'description' => '* You can specify both the StartTime and EndTime parameters to query the data in the specified period of time. If you do not specify the StartTime and EndTime parameters, the data of the last hour is queried by default.'."\n" + .'* If you specify only the StartTime parameter but not the EndTime parameter, the data of the hour following the specified start time is queried.'."\n" + .'* If you specify only the EndTime parameter but not the StartTime parameter, the data of the hour preceding the specified end time is queried.'."\n" + .'* You can query the data in the last 90 days.'."\n" + .'* This operation is used to monitor data. The data returned by this operation cannot be used as a reference to calculate resource usage for billing.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLiveDomainTrafficData' => [ + 'summary' => 'Queries the network traffic data for one or more domain names.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'systemTags' => [ + 'operationType' => 'get', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain. You can query one or more domain names. If you specify multiple domain names, separate them with commas (,). If you do not specify this parameter, the data of all domain names within your Alibaba Cloud account is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'example.com', + ], + ], + [ + '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 **90** days.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2017-12-10T14:00:00Z', + ], + ], + [ + '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", + 'type' => 'string', + 'required' => false, + 'example' => '2017-12-10T15:00:00Z', + ], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time granularity of the query. Unit: seconds. Valid values:'."\n" + ."\n" + .'* **300** (default)'."\n" + .'* **3600**'."\n" + .'* **86400**'."\n" + ."\n" + .'> If you specify an invalid value or do not specify this parameter, the default value **300** is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '300', + ], + ], + [ + 'name' => 'IspNameEn', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the Internet service provider (ISP). You can call the [DescribeCdnRegionAndIsp](~~91077~~) operation to query a list of available ISPs. If you do not specify this parameter, the data of all ISPs is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'alibaba', + ], + ], + [ + 'name' => 'LocationNameEn', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the region. You can call the [DescribeCdnRegionAndIsp](~~91077~~) operation to query a list of available regions. If you do not specify this parameter, the data of all regions is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'tianjin', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'EndTime' => [ + 'description' => 'The end of the time range during which the data was queried. 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-10T15:00:00Z', + ], + 'StartTime' => [ + 'description' => 'The beginning of the time range during which the data was queried. 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-10T14:00:00Z', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', + ], + 'DomainName' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'DataInterval' => [ + 'description' => 'The time granularity of the query.'."\n", + 'type' => 'string', + 'example' => '300', + ], + 'TrafficDataPerInterval' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DataModule' => [ + 'description' => 'The network traffic data that was collected at each interval.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The network traffic data that was collected at each interval.'."\n", + 'type' => 'object', + 'properties' => [ + 'TrafficValue' => [ + 'description' => 'The total traffic. Unit: bytes.'."\n", + 'type' => 'string', + 'example' => '454680793', + ], + 'HttpTrafficValue' => [ + 'description' => 'The traffic over HTTP. Unit: bytes.'."\n", + 'type' => 'string', + 'example' => '0', + ], + 'TimeStamp' => [ + 'description' => 'The timestamp of the data returned.'."\n", + 'type' => 'string', + 'example' => '2017-12-10T15:00:05Z', + ], + 'HttpsTrafficValue' => [ + 'description' => 'The traffic over HTTPS. Unit: bytes.'."\n", + 'type' => 'string', + 'example' => '454680793', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified StartTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified end time does not math the specified start time.', + ], + [ + 'errorCode' => 'InvalidStartTime.ValueNotSupported', + 'errorMessage' => 'The specified value of parameter StartTime is not supported.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T15:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T14:00:00Z\\",\\n \\"RequestId\\": \\"B955107D-E658-4E77-B913-E0AC3D31693E\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"TrafficDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"TrafficValue\\": \\"454680793\\",\\n \\"HttpTrafficValue\\": \\"0\\",\\n \\"TimeStamp\\": \\"2017-12-10T15:00:05Z\\",\\n \\"HttpsTrafficValue\\": \\"454680793\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n2017-12-10T15:00:00Z\\nB955107D-E658-4E77-B913-E0AC3D31693E\\nexample.com\\n\\n \\n 0\\n 454680793\\n 454680793\\n 2017-12-10T15:00:05Z\\n \\n\\n300\\n2017-12-10T14:00:00Z\\n","errorExample":"{\\n \\"DataInterval\\":\\"300\\",\\n \\"DomainName\\":\\"test.com\\",\\n \\"EndTime\\":\\"2017-12-10T21:00:00Z\\",\\n \\"RequestId\\":\\"B955107D-E658-4E77-B913-E0AC3D31693E\\",\\n \\"StartTime\\":\\"2017-12-10T20:00:00Z\\",\\n \\"TrafficDataPerInterval\\":{\\n \\"DataModule\\":[\\n {\\n \\"HttpTrafficValue\\":\\"0\\",\\n \\"HttpsTrafficValue\\":\\"423304182\\",\\n \\"TimeStamp\\":\\"2017-12-10T20:00:00Z\\",\\n \\"TrafficValue\\":\\"423304182\\"\\n },\\n {\\n \\"HttpTrafficValue\\":\\"0\\",\\n \\"HttpsTrafficValue\\":\\"454680793\\",\\n \\"TimeStamp\\":\\"2017-12-10T20:00:05Z\\",\\n \\"TrafficValue\\":\\"454680793\\"\\n }\\n ]\\n }\\n}"}]', + 'title' => 'DescribeLiveDomainTrafficData', + 'description' => '* If you do not specify the StartTime or EndTime parameter, the data of the last 24 hours is returned.'."\n" + .'* This operation is used to monitor data. The data returned by this operation cannot be used as a reference to calculate resource usage for billing.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLiveStreamTranscodeMetricData' => [ + 'summary' => 'Queries the transcoding data of a specified domain name at the application level and the stream level.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The domain name. You can specify only one domain name in each request.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + '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", + 'type' => 'string', + 'required' => true, + 'example' => '2023-06-11T02:46:40Z', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2023-06-11T03:46:40Z', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'app', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the stream.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'stream', + ], + ], + [ + 'name' => 'NextPageToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'A pagination token. When you call this operation, up to 5,000 rows of data can be returned per query. If the number of rows exceeds 5,000, the response includes a pagination token that is used in the next request to retrieve a new page of results.'."\n" + ."\n" + .'When you specify the token in the next query, data continues to be obtained from the end of the previous query.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0=', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The returned results.'."\n", + 'type' => 'object', + 'properties' => [ + 'DomainName' => [ + 'description' => 'The domain name.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'EndTime' => [ + 'description' => 'The end of the time range during which data was queried. 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' => '2023-06-11T02:46:40Z', + ], + 'NextPageToken' => [ + 'description' => 'A pagination token. When you call this operation, up to 5,000 rows of data can be returned per query. If the number of rows exceeds 5,000, the response includes a pagination token that is used in the next request to retrieve a new page of results.'."\n" + ."\n" + .'When you specify the token in the next query, data continues to be obtained from the end of the previous query.'."\n", + 'type' => 'string', + 'example' => 'UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0=', + ], + 'PageSize' => [ + 'description' => 'The number of rows returned.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '5000', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + 'StartTime' => [ + 'description' => 'The beginning of the time range during which data was queried. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n", + 'type' => 'string', + 'example' => '2023-06-11T03:46:40Z'."\n", + ], + 'StreamDetailData' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'StreamData' => [ + 'description' => 'The data array returned.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'AppName' => [ + 'description' => 'The name of the application.'."\n", + 'type' => 'string', + 'example' => 'app', + ], + 'Duration' => [ + 'description' => 'The duration. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '300', + ], + 'Fps' => [ + 'description' => 'The frame rate.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* '."\n" + ."\n" + .' '."\n" + ."\n" + .' normal'."\n" + ."\n" + .' '."\n" + ."\n" + .'* '."\n" + ."\n" + .' '."\n" + ."\n" + .' high'."\n" + ."\n" + .' '."\n" + ."\n" + .'* '."\n" + ."\n" + .' '."\n" + ."\n" + .' def'."\n" + ."\n" + .' '."\n", + 'type' => 'string', + 'enumValueTitles' => [ + 'normal' => 'normal', + 'high' => 'high', + 'def' => 'def', + ], + 'example' => 'high', + ], + 'Region' => [ + 'description' => 'The region.'."\n", + 'type' => 'string', + 'example' => 'cn-shanghai', + ], + 'Resolution' => [ + 'description' => 'The resolution. Valid values:'."\n" + ."\n" + .'* 2K: 2K resolution'."\n" + .'* 4K: 4K resolution'."\n" + .'* LD: low definition'."\n" + .'* SD: standard definition'."\n" + .'* HD: high definition'."\n" + .'* def: audio'."\n", + 'type' => 'string', + 'enumValueTitles' => [ + 'SD' => 'SD', + 'def' => 'def', + '4K' => '4K', + 'LD' => 'LD', + '2K' => '2K', + 'HD' => 'HD', + ], + 'example' => '4K', + ], + 'StreamName' => [ + 'description' => 'The name of the stream.'."\n", + 'type' => 'string', + 'example' => 'stream', + ], + 'TimeStamp' => [ + 'description' => 'The timestamp of the returned data.'."\n", + 'type' => 'string', + 'example' => '2023-06-11T02:45:00Z', + ], + 'TranscodeType' => [ + 'description' => 'The transcoding type. Valid values:'."\n" + ."\n" + .'* H264STD: standard transcoding based on H.264'."\n" + .'* H264NBHD: Narrowband HD™ transcoding based on H.264'."\n" + .'* H265STD: standard transcoding based on H.265'."\n" + .'* AUDIO: audio transcoding'."\n", + 'type' => 'string', + 'enumValueTitles' => [ + 'H264NBHD' => 'H264NBHD', + 'AUDIO' => 'AUDIO', + 'H264STD' => 'H264STD', + 'H265STD' => 'H265STD', + ], + 'example' => 'H264STD', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified StartTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidTime.Malformed', + 'errorMessage' => 'Specified StartTime or EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified end time does not math the specified start time.', + ], + [ + 'errorCode' => 'InvalidTimeSpan', + 'errorMessage' => 'The time span exceeds the limit.', + ], + [ + 'errorCode' => 'InvalidPageToken', + 'errorMessage' => 'The token of page is invalid.', + ], + [ + 'errorCode' => 'InvalidAppName.Mismatch', + 'errorMessage' => 'The AppName param must be passed.', + ], + [ + 'errorCode' => 'InvalidStreamProtocol.NotSupport', + 'errorMessage' => 'The specified stream protocol is not support.', + ], + [ + 'errorCode' => 'InvalidStreamName.LengthTooLong', + 'errorMessage' => 'The specified stream name is too long.', + ], + [ + 'errorCode' => 'InvalidAppName.LengthTooLong', + 'errorMessage' => 'The specified app name is too long.', + ], + [ + 'errorCode' => 'InvalidTime.ValueNotSupported', + 'errorMessage' => 'Specified Time is malformed.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DomainName\\": \\"example.com\\",\\n \\"EndTime\\": \\"2023-06-11T02:46:40Z\\",\\n \\"NextPageToken\\": \\"UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0=\\",\\n \\"PageSize\\": 5000,\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"StartTime\\": \\"2023-06-11T03:46:40Z\\\\n\\",\\n \\"StreamDetailData\\": {\\n \\"StreamData\\": [\\n {\\n \\"AppName\\": \\"app\\",\\n \\"Duration\\": 300,\\n \\"Fps\\": \\"high\\",\\n \\"Region\\": \\"cn-shanghai\\",\\n \\"Resolution\\": \\"4K\\",\\n \\"StreamName\\": \\"stream\\",\\n \\"TimeStamp\\": \\"2023-06-11T02:45:00Z\\",\\n \\"TranscodeType\\": \\"H264STD\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 2023-06-11T02:46:40Z\\n 2023-06-11T03:46:40Z\\n\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0=\\n 5000\\n example.com\\n \\n app\\n stream\\n cn-shanghai\\n 300\\n high\\n 2023-06-11T02:45:00Z\\n H264STD\\n 4K\\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveStreamTranscodeMetricData', + 'description' => '* The maximum time range for a query is 24 hours.'."\n" + .'* The minimum time granularity for a query is 5 minutes.'."\n" + .'* You can query data in the last 31 days.'."\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", + ], + 'DescribeLiveCenterStreamRateData' => [ + 'summary' => 'Queries the audio and video frame rates and bitrates of a stream in a live center.', + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ingest domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo.aliyundoc.com', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveStream****', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2024-03-05T18:00:53Z', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2024-03-05T18:01:03Z', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RateDatas' => [ + 'description' => 'The list of frame rates and bitrates.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'AudioFps' => [ + 'description' => 'The audio frame rate.'."\n", + 'type' => 'string', + 'example' => '47', + ], + 'AudioRate' => [ + 'description' => 'The audio bitrate.'."\n", + 'type' => 'string', + 'example' => '600', + ], + '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.'."\n", + 'type' => 'string', + 'example' => '2024-03-05T18:00:53Z', + ], + 'VideoFps' => [ + 'description' => 'The video frame rate.'."\n", + 'type' => 'string', + 'example' => '30', + ], + 'VideoRate' => [ + 'description' => 'The video bitrate.'."\n", + 'type' => 'string', + 'example' => '1953584', + ], + ], + 'description' => '', + ], + ], + 'RequestId' => [ + 'title' => 'Id', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'B6E125BE-E9B8-1103-8684-A3585CB632F1', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Meter.ParamError', + 'errorMessage' => 'Param Error:%s,Please Check Again.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Meter.AuthError', + 'errorMessage' => 'Authentication Failed,Please Try Again.', + ], + ], + 500 => [ + [ + 'errorCode' => 'Meter.ServerInternalError', + 'errorMessage' => 'The Request Processing Has Failed Due To Some Unknown Error.', + ], + [ + 'errorCode' => 'Meter.DataSourceQueryError', + 'errorMessage' => 'Data Source Error:%s,Please Try Again.', + ], + ], + 502 => [ + [ + 'errorCode' => 'Meter.ReadyTsError', + 'errorMessage' => 'Get ReadyTs Failed,Please Try Again.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RateDatas\\": [\\n {\\n \\"AudioFps\\": \\"47\\",\\n \\"AudioRate\\": \\"600\\",\\n \\"Time\\": \\"2024-03-05T18:00:53Z\\",\\n \\"VideoFps\\": \\"30\\",\\n \\"VideoRate\\": \\"1953584\\"\\n }\\n ],\\n \\"RequestId\\": \\"B6E125BE-E9B8-1103-8684-A35*******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n B6E125BE-E9B8-1103-8684-A3585CB632F1\\n \\n 30\\n 1953584\\n 47\\n 600\\n \\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveCenterStreamRateData', + '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.'."\n", + ], + 'DescribeLiveDomainBpsDataByLayer' => [ + 'summary' => 'Queries the bandwidth and traffic data by protocol for one or more domain names.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain. You can specify multiple domain names by separating them with commas (,). If you leave this parameter empty, the data of all domain names within your Alibaba Cloud account is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'pull.aliyundoc.com', + ], + ], + [ + '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 displayed in UTC.'."\n" + ."\n" + .'> If you do not specify this parameter, the data of the last 24 hours is returned by default. The minimum time granularity is 5 minutes.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2022-03-15T16:00:00Z', + ], + ], + [ + '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 displayed in UTC.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2022-03-16T16:59:59Z', + ], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time granularity of the query. Unit: seconds. Valid values:'."\n" + ."\n" + .'* **300**'."\n" + .'* **3600**'."\n" + .'* **86400**'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* If the time range specified by the StartTime and EndTime parameters is smaller than or equal to 3 days, the supported time granularities include 300, 3,600, and 86,400 seconds.'."\n" + ."\n" + .'* If the time range is larger than 3 days but smaller than or equal to 31 days, the supported time granularities include 3,600 and 86,400 seconds.'."\n" + ."\n" + .'* If the time range is larger than 31 days, the supported time granularity is 86,400 seconds.'."\n" + ."\n" + .'* If you specify an invalid value or do not specify this parameter, the default time granularity of 300 seconds is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '300', + ], + ], + [ + 'name' => 'IspNameEn', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the Internet service provider (ISP). If you do not specify this parameter, the data of all ISPs is returned.'."\n" + ."\n" + .'> You can call the [DescribeLiveRegionAndIsp](~~91077~~) operation to query available regions and ISPs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'tele***', + ], + ], + [ + 'name' => 'LocationNameEn', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the region. If you do not specify this parameter, the data of all regions is returned.'."\n" + ."\n" + .'> You can call the [DescribeLiveRegionAndIsp](~~91077~~) operation to query available regions and ISPs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'hangzhou', + ], + ], + [ + 'name' => 'Layer', + 'in' => 'query', + 'schema' => [ + 'description' => 'The layer at which you want to query the data. Valid values:'."\n" + ."\n" + .'* IPv4 and IPv6 (network layer)'."\n" + .'* http, https, and quic (application layer)'."\n" + .'* all (default)'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'all', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'BpsDataInterval' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DataModule' => [ + 'description' => 'The data returned at each time interval.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The data returned at each time interval.'."\n", + 'type' => 'object', + 'properties' => [ + 'TimeStamp' => [ + 'description' => 'The timestamp of the data returned.'."\n", + 'type' => 'string', + 'example' => '2022-03-15T16:00:00Z', + ], + 'TrafficValue' => [ + 'description' => 'The total traffic. Unit: bytes.'."\n", + 'type' => 'string', + 'example' => '331', + ], + 'Value' => [ + 'description' => 'The peak bandwidth. Unit: bit/s.'."\n", + 'type' => 'string', + 'example' => '0.56', + ], + ], + ], + ], + ], + ], + 'DataInterval' => [ + 'description' => 'The time interval between the data entries returned. Unit: seconds.'."\n", + 'type' => 'string', + 'example' => '300', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'BEA5625F-8FCF-48F4-851B-2A48566EA967', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified parameter StartTime is not valid.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified parameter EndTime is not valid.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified end time does not math the specified start time.', + ], + [ + 'errorCode' => 'InvalidStartTime.ValueNotSupported', + 'errorMessage' => 'Specified end time does not math the specified start time,And the time range does not exceed 90 days.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"BpsDataInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"TimeStamp\\": \\"2022-03-15T16:00:00Z\\",\\n \\"TrafficValue\\": \\"331\\",\\n \\"Value\\": \\"0.56\\"\\n }\\n ]\\n },\\n \\"DataInterval\\": \\"300\\",\\n \\"RequestId\\": \\"BEA5625F-8FCF-48F4-851B-2A48566EA967\\"\\n}","errorExample":""},{"type":"xml","example":"\\nBEA5625F-8FCF-48F4-851B-2A48566EA967\\n300\\n\\n \\n 0.56\\n 331\\n 2022-03-15T16:00:00Z\\n \\n\\n","errorExample":""}]', + 'title' => 'DescribeLiveDomainBpsDataByLayer', + 'description' => 'You can query data in the last 90 days. You can specify up to 500 domain names. Separate multiple domain names with commas (,). The data of multiple domain names is aggregated and returned. The following section describes the time granularities of the data entries returned depending on the time range specified by the **StartTime** and **EndTime** parameters:'."\n" + ."\n" + .'* If the time range is smaller than or equal to 3 days, the time granularity is 5 minutes.'."\n" + .'* If the time range is larger than 3 days but smaller than or equal to 31 days, the time granularity is 1 hour.'."\n" + .'* If the time range is larger than 31 days, the time granularity is 1 day.'."\n" + ."\n" + .'> If neither the **StartTime** nor the **EndTime** parameter is specified, the data of the last 24 hours is returned.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 20 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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLiveDomainPushBpsData' => [ + 'summary' => 'Queries the bandwidth data for one or more ingest domains.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ingest domain. You can specify multiple ingest domains and separate them with commas (,). If you do not specify this parameter, the merged data of all your ingest domains is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'demo.aliyundoc.com', + ], + ], + [ + '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. If you do not specify this parameter, the data of the last 24 hours is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2017-12-10T20:00:00Z', + ], + ], + [ + '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. The end time must be later than the start time.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2017-12-10T21:00:00Z', + ], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time granularity of the query. Unit: seconds. Valid values:'."\n" + ."\n" + .'* **300**'."\n" + .'* **3600**'."\n" + .'* **86400**'."\n" + ."\n" + .'The default value is 300. If you specify an invalid value or do not specify this parameter, the default value is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '300', + ], + ], + [ + 'name' => 'IspNameEn', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the Internet service provider (ISP). You can call the [DescribeCdnRegionAndIsp](~~91077~~) operation to query a list of available ISPs. If you do not specify this parameter, the data of all ISPs is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'alibaba', + ], + ], + [ + 'name' => 'LocationNameEn', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the region. You can call the [DescribeCdnRegionAndIsp](~~91077~~) operation to query a list of available regions. If you do not specify this parameter, the data of all regions is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'tianjin', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'EndTime' => [ + 'description' => 'The end of the time range during which the data was queried.'."\n", + 'type' => 'string', + 'example' => '2017-12-10T21:00:00Z', + ], + 'StartTime' => [ + 'description' => 'The beginning of the time range during which the data was queried.'."\n", + 'type' => 'string', + 'example' => '2017-12-10T20:00:00Z', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F', + ], + 'DomainName' => [ + 'description' => 'The ingest domain.'."\n", + 'type' => 'string', + 'example' => 'demo.aliyundoc.com', + ], + 'DataInterval' => [ + 'description' => 'The time granularity of the query.'."\n", + 'type' => 'string', + 'example' => '300', + ], + 'BpsDataPerInterval' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DataModule' => [ + 'description' => 'The bandwidth data that was collected at each interval.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'BpsValue' => [ + 'description' => 'The bandwidth. Unit: bit/s.'."\n", + 'type' => 'string', + 'example' => '11288111', + ], + 'TimeStamp' => [ + 'description' => 'The timestamp of the data returned.'."\n", + 'type' => 'string', + 'example' => '2017-12-10T20:00:00Z', + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified StartTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified end time does not math the specified start time.', + ], + [ + 'errorCode' => 'InvalidStartTime.ValueNotSupported', + 'errorMessage' => 'The specified value of parameter StartTime is not supported.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F\\",\\n \\"DomainName\\": \\"demo.aliyundoc.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"BpsDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"BpsValue\\": \\"11288111\\",\\n \\"TimeStamp\\": \\"2017-12-10T20:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 2017-12-10T21:00:00Z\\n 2017-12-10T20:00:00Z\\n 3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F\\n demo.aliyundoc.com\\n 300\\n \\n 11288111\\n 2017-12-10T20:00:00Z\\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveDomainPushBpsData', + 'description' => '* The bandwidth unit is bit/s.'."\n" + .'* You can specify multiple domain names by separating them with commas (,).'."\n" + .'* If you do not specify the StartTime or EndTime parameter, the data of the last 24 hours is queried. You can specify both the StartTime and EndTime parameters to query the data of a specific time range.'."\n" + .'* You can query the data in the last 90 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.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLiveDomainPushTrafficData' => [ + 'summary' => 'Queries the network traffic data for one or more ingest domains.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ingest domain. You can specify multiple ingest domains and separate them with commas (,). If you do not specify this parameter, the merged data of all your ingest domains is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'demo.aliyundoc.com', + ], + ], + [ + '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. If you do not specify this parameter, the data of the last 24 hours is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2017-12-10T20:00:00Z', + ], + ], + [ + '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", + 'type' => 'string', + 'required' => false, + 'example' => '2017-12-10T21:00:00Z', + ], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time granularity of the query. Unit: seconds. Valid values:'."\n" + ."\n" + .'* **300**'."\n" + .'* **3600**'."\n" + .'* **86400**'."\n" + ."\n" + .'The default value is 300. If you specify an invalid value or do not specify this parameter, the default value is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '300', + ], + ], + [ + 'name' => 'IspNameEn', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the Internet service provider (ISP). You can call the [DescribeCdnRegionAndIsp](~~91077~~) operation to query a list of available ISPs. If you do not specify this parameter, the data of all ISPs is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'alibaba', + ], + ], + [ + 'name' => 'LocationNameEn', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the region. You can call the [DescribeCdnRegionAndIsp](~~91077~~) operation to query a list of available regions. If you do not specify this parameter, the data of all regions is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'tianjin', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'EndTime' => [ + 'description' => 'The end of the time range during which the data was queried.'."\n", + 'type' => 'string', + 'example' => '2017-12-10T21:00:00Z', + ], + 'StartTime' => [ + 'description' => 'The beginning of the time range during which the data was queried.'."\n", + 'type' => 'string', + 'example' => '2017-12-10T20:00:00Z', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F', + ], + 'DomainName' => [ + 'description' => 'The ingest domain.'."\n", + 'type' => 'string', + 'example' => 'demo.aliyundoc.com', + ], + 'DataInterval' => [ + 'description' => 'The time granularity.'."\n", + 'type' => 'string', + 'example' => '300', + ], + 'TrafficDataPerInterval' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DataModule' => [ + 'description' => 'The traffic data that was collected at each interval.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The traffic data.'."\n", + 'type' => 'object', + 'properties' => [ + 'TrafficValue' => [ + 'description' => 'The traffic. Unit: bytes.'."\n", + 'type' => 'string', + 'example' => '1288111', + ], + 'TimeStamp' => [ + 'description' => 'The timestamp of the data returned.'."\n", + 'type' => 'string', + 'example' => '2017-12-10T20:05:00Z', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified StartTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified end time does not math the specified start time.', + ], + [ + 'errorCode' => 'InvalidStartTime.ValueNotSupported', + 'errorMessage' => 'The specified value of parameter StartTime is not supported.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F\\",\\n \\"DomainName\\": \\"demo.aliyundoc.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"TrafficDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"TrafficValue\\": \\"1288111\\",\\n \\"TimeStamp\\": \\"2017-12-10T20:05:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n2017-12-10T21:00:00Z\\n3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F\\ndemo.aliyundoc.com\\n\\n \\n 1288111\\n 2017-12-10T20:05:00Z\\n \\n\\n300\\n2017-12-10T20:00:00Z\\n","errorExample":""}]', + 'title' => 'DescribeLiveDomainPushTrafficData', + 'description' => '* The traffic unit is bytes.'."\n" + .'* You can specify multiple domain names by separating them with commas (,).'."\n" + .'* If you do not specify the StartTime or EndTime parameter, the data of the last 24 hours is queried. You can specify both the StartTime and EndTime parameters to query the data of a specific time range.'."\n" + .'* You can query the data in the last 90 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.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLiveStreamPushMetricDetailData' => [ + 'summary' => 'Queries the stream ingest data of a specified domain name at the application level and the stream level.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => '* The accelerated domain name. You can specify only one domain name. If you specify multiple domain names, an error occurs.'."\n" + .'* If you do not specify the AppName and StreamName parameters, data of all streams under the specified domain name is returned. The data is not aggregated.'."\n" + .'* If you specify the DomainName parameter and set both the AppName and StreamName parameters to all, data of all streams in all applications under the specified domain name is aggregated and returned.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2022-09-10T20:00:00Z', + ], + ], + [ + '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 maximum time range that can be specified is one day. Specify the time in the ISO 8601 standard'."\n" + ."\n" + .'in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2022-09-10T21:00:00Z', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs. The stream-level data of this application is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'app', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream. The data of the stream in the specified application is returned. If the StreamName parameter is specified, the AppName parameter must also be specified.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + ], + [ + 'name' => 'NextPageToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'A pagination token. When you call this operation, up to 5,000 rows of data can be returned per query. If the number of rows exceeds 5,000, the response includes a pagination token that is used in the next request to retrieve a new page of results.'."\n" + ."\n" + .'When you specify the token in the next query, data continues to be obtained from the end of the previous query.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0=', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'DomainName' => [ + 'description' => 'The accelerated domain name.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'EndTime' => [ + 'description' => 'The end of the time range that was queried. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n", + 'type' => 'string', + 'example' => '2022-09-10T21:00:00Z', + ], + 'NextPageToken' => [ + 'description' => 'A pagination token. When you call this operation, up to 5,000 rows of data can be returned per query. If the number of rows exceeds 5,000, the response includes a pagination token that is used in the next request to retrieve a new page of results.'."\n" + ."\n" + .'When you specify the token in the next query, data continues to be obtained from the end of the previous query.'."\n", + 'type' => 'string', + 'example' => 'UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0=', + ], + 'PageSize' => [ + 'description' => 'The number of rows returned.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '5000', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '5EBF2AC3-4B73-40A5-8B32-83F49D5F035E', + ], + 'StartTime' => [ + 'description' => 'The beginning of the time range that was queried. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n", + 'type' => 'string', + 'example' => '2022-09-10T20:00:00Z', + ], + 'StreamDetailData' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'StreamData' => [ + 'description' => 'The data array returned.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The data array returned.'."\n", + 'type' => 'object', + 'properties' => [ + 'AppName' => [ + 'description' => 'The name of the application.'."\n", + 'type' => 'string', + 'example' => 'app', + ], + 'ReqBps' => [ + 'description' => 'The total bandwidth consumed by the stream per minute. Unit: bit/s.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '423304182', + ], + 'ReqTraffic' => [ + 'description' => 'The total amount of traffic consumed by the stream per minute. Unit: bytes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '423304182.66', + ], + 'StreamName' => [ + 'description' => 'The name of the stream.'."\n", + 'type' => 'string', + 'example' => 'test.flv', + ], + 'TimeStamp' => [ + 'description' => 'The timestamp of the returned data.'."\n", + 'type' => 'string', + 'example' => '2022-09-10T20:00:00Z', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified StartTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidTime.Malformed', + 'errorMessage' => 'Specified StartTime or EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified end time does not math the specified start time.', + ], + [ + 'errorCode' => 'InvalidTimeSpan', + 'errorMessage' => 'The time span exceeds the limit.', + ], + [ + 'errorCode' => 'InvalidPageToken', + 'errorMessage' => 'The token of page is invalid.', + ], + [ + 'errorCode' => 'InvalidAppName.Mismatch', + 'errorMessage' => 'The AppName param must be passed.', + ], + [ + 'errorCode' => 'InvalidStreamProtocol.NotSupport', + 'errorMessage' => 'The specified stream protocol is not support.', + ], + [ + 'errorCode' => 'InvalidStreamName.LengthTooLong', + 'errorMessage' => 'The specified stream name is too long.', + ], + [ + 'errorCode' => 'InvalidAppName.LengthTooLong', + 'errorMessage' => 'The specified app name is too long.', + ], + [ + 'errorCode' => 'InvalidTime.ValueNotSupported', + 'errorMessage' => 'Specified Time is malformed.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DomainName\\": \\"example.com\\",\\n \\"EndTime\\": \\"2022-09-10T21:00:00Z\\",\\n \\"NextPageToken\\": \\"UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0=\\",\\n \\"PageSize\\": 5000,\\n \\"RequestId\\": \\"5EBF2AC3-4B73-40A5-8B32-83F49D5F035E\\",\\n \\"StartTime\\": \\"2022-09-10T20:00:00Z\\",\\n \\"StreamDetailData\\": {\\n \\"StreamData\\": [\\n {\\n \\"AppName\\": \\"liveApp****\\",\\n \\"ReqBps\\": 133.33,\\n \\"ReqTraffic\\": 1000,\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"TimeStamp\\": \\"2022-09-10T20:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n example.com\\n 2022-09-10T21:00:00Z\\n UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0=\\n 5000\\n 5EBF2AC3-4B73-40A5-8B32-83F49D5F035E\\n 2022-09-10T20:00:00Z\\n \\n liveApp****\\n 133.33\\n 1000\\n liveStream****\\n 2022-09-10T20:00:00Z\\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveStreamPushMetricDetailData', + 'description' => '* You can query data of a single domain name in each request. If you specify multiple domain names, an error is returned.'."\n" + .'* The maximum time range to query is 24 hours.'."\n" + .'* The minimum data granularity to query is 1 minute.'."\n" + .'* You can query data in the last 31 days.'."\n" + .'* This operation is used to monitor data. The data returned by this operation cannot be used as a reference to calculate resource usage for billing.'."\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", + ], + 'DescribeLiveDomainPublishErrorCode' => [ + 'summary' => 'Queries the HTTP status codes that are returned within a specified period of time under an ingest domain.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ingest domain. If you want to specify multiple ingest domains, separate them with commas (,).'."\n" + ."\n" + .'> This parameter is required.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'example.com,example.aliyundoc.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The application name. The data is aggregated based on the application. If you specify this parameter, the DomainName parameter is required.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'AppName', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The start time. 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 configure StartTime, the data within the previous hour is queried.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2016-06-29T09:00:00Z', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end time. 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 configure StartTime, the data within the previous hour is queried.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2016-06-29T09:10:00Z', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'DataInterval' => [ + 'description' => 'The time granularity of the query. Unit: seconds. Default value: 60.'."\n", + 'type' => 'string', + 'example' => '60', + ], + 'DomainName' => [ + 'description' => 'The ingest domain.'."\n", + 'type' => 'string', + 'example' => 'example.com,example.aliyundoc.com', + ], + 'EndTime' => [ + 'description' => 'The end of the time range during which data was queried. 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' => '2016-06-29T09:10:00Z', + ], + 'RealTimeCodeData' => [ + 'description' => 'The proportions of error codes at each time interval.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The proportion of the error code at each time interval.'."\n", + 'type' => 'object', + 'properties' => [ + 'CodeData' => [ + 'description' => 'The proportions of error codes.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The proportion of the error code.'."\n", + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The response code. Valid values:'."\n" + ."\n" + .'* 3: The data read timed out.'."\n" + .'* 4: A data write error occurred.'."\n" + .'* 6: The data write timed out.'."\n" + .'* 200: The request is successful.'."\n" + .'* 500: An unknown internal error occurred.'."\n" + .'* 501: The stream ingest failed.'."\n" + .'* 502: The signaling operation timed out.'."\n" + .'* 401: A stream ingest parameter is invalid.'."\n" + .'* 403: The stream ingest authentication failed.'."\n", + 'type' => 'string', + 'example' => '200', + ], + 'Count' => [ + 'description' => 'The number of times the HTTP status code was returned.'."\n", + 'type' => 'string', + 'example' => '20', + ], + 'Proportion' => [ + 'description' => 'The proportion of the HTTP status code.'."\n", + 'type' => 'string', + 'example' => '66.04', + ], + ], + ], + ], + 'TimeStamp' => [ + 'description' => 'The timestamp of the data returned.'."\n", + 'type' => 'string', + 'example' => '2016-06-29T09:01:00Z', + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'BC858082-736F-4A25-867B-E5B67C85ACF7', + ], + 'StartTime' => [ + 'description' => 'The beginning of the time range during which data was queried. 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' => '2016-06-29T09:00:00Z', + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DataInterval\\": \\"60\\",\\n \\"DomainName\\": \\"example1.aliyundoc.com,example2.aliyundoc.com\\",\\n \\"EndTime\\": \\"2016-06-29T09:10:00Z\\",\\n \\"RealTimeCodeData\\": [\\n {\\n \\"CodeData\\": [\\n {\\n \\"Code\\": \\"200\\",\\n \\"Count\\": \\"20\\",\\n \\"Proportion\\": \\"66.04\\"\\n }\\n ],\\n \\"TimeStamp\\": \\"2016-06-29T09:01:00Z\\"\\n }\\n ],\\n \\"RequestId\\": \\"BC858082-736F-4A25-867B-E5B67C******\\",\\n \\"StartTime\\": \\"2016-06-29T09:00:00Z\\"\\n}","errorExample":""},{"type":"xml","example":"\\n BC858082-736F-4A25-867B-E5B67C85ACF7\\n 60\\n example.com,example.aliyundoc.com\\n 2016-06-29T09:00:00Z\\n 2016-06-29T09:10:00Z\\n \\n 2016-06-29T09:01:00Z\\n \\n 200\\n 20\\n 66.04\\n \\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveDomainPublishErrorCode', + 'description' => '* This operation is used to monitor data. The returned data cannot be used as a reference to calculate resource usage for billing.'."\n" + .'* You can query data within the previous 90 days.'."\n" + .'* The data is delayed for 3 to 5 minutes.'."\n" + ."\n" + .'## [](#qps-)QPS limits'."\n" + ."\n" + .'You can call this API 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", + 'requestParamsDescription' => 'You can specify both the StartTime and EndTime parameters to query the data in the specified period of time. If you do not specify the StartTime and EndTime parameters, the data of the last hour is queried by default.'."\n", + 'responseParamsDescription' => '|Error code|HTTP status code|Description|'."\n" + .'|:---|:---|:---|'."\n" + .'|NGX\\_RTMP\\_EF\\_READ\\_TIMEDOUT 3|3|A timeout occurred while reading the data.|'."\n" + .'|NGX\\_RTMP\\_EF\\_WRITE\\_ERROR 4|4|An error occurred while writing the data.|'."\n" + .'|NGX\\_RTMP\\_EF\\_WRITE\\_TIMEDOUT 6|6|A timeout occurred while writing the data.|'."\n" + .'|NGX\\_RTMP\\_EF\\_NETCALL\\_INTERNAL\\_ERROR 500|500|An unknown internal system error occurred.|'."\n" + .'|NGX\\_RTMP\\_EF\\_NETCALL\\_EXCEPTION 501|501|A stream ingest exception occurred.|'."\n" + .'|NGX\\_RTMP\\_EF\\_NETCALL\\_TOO\\_LONG 502|502|The signaling took too long.|'."\n" + .'|NGX\\_RTMP\\_EF\\_NETCALL\\_UNAUTHORIZED 401|401|Abnormal stream ingest parameters exist.|'."\n" + .'|NGX\\_RTMP\\_EF\\_NETCALL\\_FORBIDDEN 403|403|Failed to authenticate the ingested stream.|', + ], + 'DescribeLiveUpVideoAudioInfo' => [ + 'summary' => 'Queries the audio and video data of an ingested stream within a specific period of time.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Stream', + 'in' => 'query', + 'schema' => [ + 'description' => 'The operation that you want to perform. Set the value to **DescribeLiveUpVideoAudioInfo**.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'rtmp://example.com/AppName/StreamName', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the stream that you want to query. Specify this parameter in the following format: `rtmp://Ingest domain/Application name/Stream name`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2015-12-10T15:00:00Z', + ], + ], + [ + 'name' => 'EndTime', + '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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2015-12-10T15:10:00Z ', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + '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.'."\n", + 'type' => 'string', + 'example' => 'BC858082-736F-4A25-867B-E5B67C85ACF7', + ], + 'UpItems' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'PublishItem' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'AacHeaders' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AacHeaders' => [ + 'description' => 'The details about the audio and video data of the stream ingest occurrences.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The number of AAC headers in the audio.', + 'type' => 'object', + 'properties' => [ + 'Time' => [ + 'description' => 'The number of AAC headers in the audio.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1538134750408', + ], + 'Value' => [ + 'description' => 'The query time. The value is a UNIX timestamp in milliseconds.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '20', + ], + ], + ], + ], + ], + ], + 'AppName' => [ + 'description' => 'The metric value at a granularity of seconds at the query time.', + 'type' => 'string', + 'example' => 'AppName', + ], + 'AudioBitRate' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AudioBitRate' => [ + 'description' => 'The name of the application to which the ingested stream belongs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The bitrate of the audio. Unit: bit/s.', + 'type' => 'object', + 'properties' => [ + 'Time' => [ + 'description' => 'The bitrate of the audio. Unit: bit/s.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1538134750408', + ], + 'Value' => [ + 'description' => 'The query time. The value is a UNIX timestamp in milliseconds.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '24552', + ], + ], + ], + ], + ], + ], + 'AudioFrames' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AudioFrames' => [ + 'description' => 'The metric value at a granularity of seconds at the query time.', + 'type' => 'array', + 'items' => [ + 'description' => 'The frame rate of the audio. Unit: frames.', + 'type' => 'object', + 'properties' => [ + 'Time' => [ + 'description' => 'The frame rate of the audio. Unit: frames.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1538134750408', + ], + 'Value' => [ + 'description' => 'The query time. The value is a UNIX timestamp in milliseconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '23', + ], + ], + ], + ], + ], + ], + 'AudioInterval' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AudioInterval' => [ + 'description' => 'The metric value at a granularity of seconds at the query time.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The maximum audio frame interval. Unit: milliseconds.', + 'type' => 'object', + 'properties' => [ + 'Time' => [ + 'description' => 'The maximum audio frame interval. Unit: milliseconds.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1538134750408', + ], + 'Value' => [ + 'description' => 'The query time. The value is a UNIX timestamp in milliseconds.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '254', + ], + ], + ], + ], + ], + ], + 'AudioStamps' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AudioStamps' => [ + 'description' => 'The metric value at a granularity of seconds at the query time.', + 'type' => 'array', + 'items' => [ + 'description' => 'The audio timestamp. Unit: milliseconds.', + 'type' => 'object', + 'properties' => [ + 'Time' => [ + 'description' => 'The audio timestamp. Unit: milliseconds.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1538134750408', + ], + 'Value' => [ + 'description' => 'The query time. The value is a UNIX timestamp in milliseconds.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '725053422', + ], + ], + ], + ], + ], + ], + 'AvcHeaders' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AvcHeaders' => [ + 'description' => 'The metric value at a granularity of seconds at the query time.', + 'type' => 'array', + 'items' => [ + 'description' => 'The number of AVC headers in the audio.', + 'type' => 'object', + 'properties' => [ + 'Time' => [ + 'description' => 'The number of AVC headers in the audio.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1538134750408', + ], + 'Value' => [ + 'description' => 'The query time. The value is a UNIX timestamp in milliseconds.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '11', + ], + ], + ], + ], + ], + ], + 'CodecInfo' => [ + 'description' => 'The metric value at a granularity of seconds at the query time.', + 'type' => 'string', + 'example' => 'H264/AAC', + ], + 'DomainName' => [ + 'description' => 'The audio and video encoding information.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'ErrorFlags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'ErrorFlags' => [ + 'description' => 'The ingest domain.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The number of times the error code that indicates interrupted stream ingest was returned.', + 'type' => 'object', + 'properties' => [ + 'Time' => [ + 'description' => 'The number of times the error code that indicates interrupted stream ingest was returned.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1538134750408', + ], + 'Value' => [ + 'description' => 'The query time. The value is a UNIX timestamp in milliseconds.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + ], + ], + ], + ], + ], + 'PublishInterval' => [ + 'description' => 'The metric value at a granularity of seconds at the query time.', + 'type' => 'string', + 'example' => '-', + ], + 'PublishIp' => [ + 'description' => 'The stream ingest duration. Unit: seconds. A hyphen (-) indicates that the stream is being ingested and the duration cannot be returned.'."\n", + 'type' => 'string', + 'example' => 'cn397', + ], + 'PublishStatus' => [ + 'description' => 'The IP address of the stream ingest client.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'PublishTime' => [ + 'description' => 'The stream ingest status. A value of 1 indicates that the stream is being ingested. A value of 0 indicates that the stream was ingested.'."\n", + 'type' => 'string', + 'example' => '2015-12-10T15:00:00Z', + ], + 'StopTime' => [ + 'description' => 'The start time of stream ingest. The time is displayed in UTC.'."\n", + 'type' => 'string', + 'example' => '2015-12-10T15:10:00Z', + ], + 'StreamName' => [ + 'description' => 'The end time of stream ingest. The time is displayed in UTC.'."\n", + 'type' => 'string', + 'example' => 'StreamName', + ], + 'UniqueId' => [ + 'description' => 'The name of the stream.'."\n", + 'type' => 'string', + 'example' => '2.-395_37261_9848098_1538080899396', + ], + 'VideoAndAudioStamp' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'V_AStamp' => [ + 'description' => 'The unique ID of each stream ingest occurrence.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The difference between the audio and video timestamps. Unit: milliseconds.', + 'type' => 'object', + 'properties' => [ + 'Time' => [ + 'description' => 'The difference between the audio and video timestamps. Unit: milliseconds.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1538134750408', + ], + 'Value' => [ + 'description' => 'The query time. The value is a UNIX timestamp in milliseconds.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '359', + ], + ], + ], + ], + ], + ], + 'VideoBitRate' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'VideoBitRate' => [ + 'description' => 'The metric value at a granularity of seconds at the query time.', + 'type' => 'array', + 'items' => [ + 'description' => 'The bitrate of the video. Unit: bit/s.', + 'type' => 'object', + 'properties' => [ + 'Time' => [ + 'description' => 'The bitrate of the video. Unit: bit/s.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1538134750408', + ], + 'Value' => [ + 'description' => 'The query time. The value is a UNIX timestamp in milliseconds.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '3970160', + ], + ], + ], + ], + ], + ], + 'VideoFrames' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'VideoFrames' => [ + 'description' => 'The metric value at a granularity of seconds at the query time.', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Time' => [ + 'description' => 'The frame rate of the video. Unit: frames.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1538134750408', + ], + 'Value' => [ + 'description' => 'The query time. The value is a UNIX timestamp in milliseconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '29', + ], + ], + ], + ], + ], + ], + 'VideoInterval' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'VideoInterval' => [ + 'description' => 'The metric value at a granularity of seconds at the query time.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The maximum video frame interval. Unit: milliseconds.', + 'type' => 'object', + 'properties' => [ + 'Time' => [ + 'description' => 'The maximum video frame interval. Unit: milliseconds.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1538134750408', + ], + 'Value' => [ + 'description' => 'The query time. The value is a UNIX timestamp in milliseconds.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '278', + ], + ], + ], + ], + ], + ], + 'VideoStamps' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'VideoStamps' => [ + 'description' => 'The metric value at a granularity of seconds at the query time.', + 'type' => 'array', + 'items' => [ + 'description' => 'The video timestamp. Unit: milliseconds.', + 'type' => 'object', + 'properties' => [ + 'Time' => [ + 'description' => 'The video timestamp. Unit: milliseconds.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1538134750408', + ], + 'Value' => [ + 'description' => 'The query time. The value is a UNIX timestamp in milliseconds.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '725053781', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 200 => [ + [ + 'errorCode' => 'InvalidDuration.ExceedOneDay', + 'errorMessage' => 'StartTime and EndTime Duration Exceeds One Day', + ], + [ + 'errorCode' => 'InvalidDuration.StratTimeBiggerEndTime', + 'errorMessage' => 'StartTime Bigger Than EndTime', + ], + ], + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => 'Parameter Stream invalid.', + ], + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified StartTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BC858082-736F-4A25-867B-E5B67C85ACF7\\",\\n \\"UpItems\\": {\\n \\"PublishItem\\": [\\n {\\n \\"AacHeaders\\": {\\n \\"AacHeaders\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 20\\n }\\n ]\\n },\\n \\"AppName\\": \\"AppName\\",\\n \\"AudioBitRate\\": {\\n \\"AudioBitRate\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 24552\\n }\\n ]\\n },\\n \\"AudioFrames\\": {\\n \\"AudioFrames\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 23\\n }\\n ]\\n },\\n \\"AudioInterval\\": {\\n \\"AudioInterval\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 254\\n }\\n ]\\n },\\n \\"AudioStamps\\": {\\n \\"AudioStamps\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 725053422\\n }\\n ]\\n },\\n \\"AvcHeaders\\": {\\n \\"AvcHeaders\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 11\\n }\\n ]\\n },\\n \\"CodecInfo\\": \\"H264/AAC\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"ErrorFlags\\": {\\n \\"ErrorFlags\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 0\\n }\\n ]\\n },\\n \\"PublishInterval\\": \\"-\\",\\n \\"PublishIp\\": \\"cn397\\",\\n \\"PublishStatus\\": \\"1\\",\\n \\"PublishTime\\": \\"2015-12-10T15:00:00Z\\",\\n \\"StopTime\\": \\"2015-12-10T15:10:00Z\\",\\n \\"StreamName\\": \\"StreamName\\",\\n \\"UniqueId\\": \\"2.-395_37261_9848098_1538080899396\\",\\n \\"VideoAndAudioStamp\\": {\\n \\"V_AStamp\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 359\\n }\\n ]\\n },\\n \\"VideoBitRate\\": {\\n \\"VideoBitRate\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 3970160\\n }\\n ]\\n },\\n \\"VideoFrames\\": {\\n \\"VideoFrames\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 29\\n }\\n ]\\n },\\n \\"VideoInterval\\": {\\n \\"VideoInterval\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 278\\n }\\n ]\\n },\\n \\"VideoStamps\\": {\\n \\"VideoStamps\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 725053781\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n BC858082-736F-4A25-867B-E5B67C85ACF7\\n \\n 2015-12-10T15:00:00Z\\n AppName\\n H264/AAC\\n cn397\\n StreamName\\n 1\\n 2.-395_37261_9848098_1538080899396\\n -\\n 2015-12-10T15:10:00Z\\n example.com\\n \\n 29\\n \\n \\n \\n 23\\n \\n \\n \\n 725053781\\n \\n \\n \\n 725053422\\n \\n \\n \\n 359\\n \\n \\n \\n 11\\n \\n \\n \\n 20\\n \\n \\n \\n 3970160\\n \\n \\n \\n 24552\\n \\n \\n \\n 278\\n \\n \\n \\n 254\\n \\n \\n \\n 0\\n \\n \\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveUpVideoAudioInfo', + 'description' => '### Usage notes'."\n" + .'- The maximum time range for a query is 24 hours. '."\n" + .'- The minimum time range for a query is 1 hour. '."\n" + .'- You can query data in the last 31 days. '."\n" + .'### QPS limit'."\n" + .'You can call this operation up to 10 times per minute 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~~).', + ], + 'DescribeLiveDomainRealTimeBpsData' => [ + 'summary' => 'Queries the bandwidth data that is collected every minute for one or more domain names.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain name or names.'."\n" + ."\n" + .'Separate multiple domain names with commas (,).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com,example.aliyundoc.com', + ], + ], + [ + 'name' => 'IspNameEn', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the Internet service provider (ISP).'."\n" + ."\n" + .'To query ISPs, call the [DescribeCdnRegionAndIsp](~~91077~~) operation.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'alibaba', + ], + ], + [ + 'name' => 'LocationNameEn', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the region in which you want to query data.'."\n" + ."\n" + .'To query regions, call the [DescribeCdnRegionAndIsp](~~91077~~) operation.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'tianjin', + ], + ], + [ + '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", + 'type' => 'string', + 'required' => false, + 'example' => '2015-11-30T05:39:00Z', + ], + ], + [ + '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" + .'> If you do not set this parameter, the data of the hour following the specified start time is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2015-11-30T05:40:00Z', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'EndTime' => [ + 'description' => 'The end of the time range in which data was queried. 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' => '2015-11-30T05:40:00Z', + ], + 'StartTime' => [ + 'description' => 'The beginning of the time range in which data was queried. 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' => '2015-11-30T05:33:00Z', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'BC858082-736F-4A25-867B-E5B67C85ACF7', + ], + 'DomainName' => [ + 'description' => 'The streaming domain name or names that was queried.'."\n", + 'type' => 'string', + 'example' => 'example.com,example.aliyundoc.com', + ], + 'DataInterval' => [ + 'description' => 'The interval at which data was queried.'."\n", + 'type' => 'string', + 'example' => '60', + ], + 'RealTimeBpsDataPerInterval' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DataModule' => [ + 'description' => 'The bandwidth data that was collected every minute.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Value' => [ + 'description' => 'The bandwidth. Unit: bit/s.'."\n", + 'type' => 'string', + 'example' => '59392614.8', + ], + 'TimeStamp' => [ + 'description' => 'The timestamp of the returned data.'."\n", + 'type' => 'string', + 'example' => '2015-11-30T05:39:00Z', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidTime.Malformed', + 'errorMessage' => 'Specified StartTime or EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidDomainName.Malformed', + 'errorMessage' => 'Specified domain name is malformed.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2015-11-30T05:40:00Z\\",\\n \\"StartTime\\": \\"2015-11-30T05:33:00Z\\",\\n \\"RequestId\\": \\"BC858082-736F-4A25-867B-E5B6******\\",\\n \\"DomainName\\": \\"example1.aliyundoc.com,example2.aliyundoc.com\\",\\n \\"DataInterval\\": \\"60\\",\\n \\"RealTimeBpsDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"Value\\": \\"59392614.8\\",\\n \\"TimeStamp\\": \\"2015-11-30T05:39:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n2015-11-30T05:40:00Z\\nBC858082-736F-4A25-867B-E5B67C85ACF7\\nexample.com,example.aliyundoc.com\\n60\\n2015-11-30T05:33:00Z\\n\\n \\n 59392614.8\\n 2015-11-30T05:39:00Z\\n \\n\\n","errorExample":"{\\n \\"RealTimeBpsDataPerInterval\\":{\\n \\"DataModule\\":[\\n {\\n \\"TimeStamp\\":\\"2018-01-02T11:05:00Z\\",\\n \\"Value\\":16710625.733333332\\n },\\n {\\n \\"TimeStamp\\":\\"2018-01-02T11:04:00Z\\",\\n \\"Value\\":59392614.8\\n }\\n ]\\n },\\n \\"RequestId\\":\\"B49E6DDA-F413-422B-B58E-2FA23F286726\\"\\n}"}]', + 'title' => 'DescribeLiveDomainRealTimeBpsData', + 'description' => '* You can call this operation to query the bandwidth usage of one or more specified domain names.'."\n" + .'* You can query data in the last seven days. The time range that is specified by the StartTime and EndTime parameters cannot exceed 24 hours for a query.'."\n" + .'* If you specify neither the StartTime parameter nor the EndTime parameter, the data of the last hour is returned.'."\n" + .'* This operation is used to monitor data. The data returned by this operation cannot be used as a reference to calculate resource usage for billing.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLiveDomainRealTimeTrafficData' => [ + 'summary' => 'Queries the network traffic data that is collected in real time for one or more 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain.'."\n" + ."\n" + .'Separate multiple streaming domains with commas (,).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com,example.aliyundoc.com', + ], + ], + [ + '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" + .'> If you do not specify this parameter, the data of the last hour is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2015-12-10T15:00:00Z', + ], + ], + [ + 'name' => 'IspNameEn', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the ISP.'."\n" + ."\n" + .'You can call the [DescribeCdnRegionAndIsp](~~91077~~) operation to query a list of available ISPs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'alibaba', + ], + ], + [ + 'name' => 'LocationNameEn', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the region.'."\n" + ."\n" + .'You can call the [DescribeCdnRegionAndIsp](~~91077~~) operation to query a list of available regions.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'tianjin', + ], + ], + [ + '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", + 'type' => 'string', + 'required' => false, + 'example' => '2015-12-10T15:01:00Z', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'EndTime' => [ + 'description' => 'The end of the time range during which the data was queried. 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' => '2015-12-10T15:01:00Z', + ], + 'StartTime' => [ + 'description' => 'The beginning of the time range during which the data was queried. 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' => '2015-12-10T15:00:00Z', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'A666D44F-19D6-490E-97CF-1A64AB962C57', + ], + 'DomainName' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com,example.aliyundoc.com', + ], + 'DataInterval' => [ + 'description' => 'The time interval between the entries returned. Unit: seconds'."\n", + 'type' => 'string', + 'example' => '60', + ], + 'RealTimeTrafficDataPerInterval' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DataModule' => [ + 'description' => 'The traffic that was collected at each interval.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Value' => [ + 'description' => 'The traffic. Unit: bytes.'."\n", + 'type' => 'string', + 'example' => '0', + ], + 'TimeStamp' => [ + 'description' => 'The timestamp of the data returned. 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' => '2015-12-10T15:01:00Z', + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'StartTime and EndTime can not be single.', + ], + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified StartTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified end time does not math the specified start time.', + ], + [ + 'errorCode' => 'InvalidStartTime.ValueNotSupported', + 'errorMessage' => 'The specified value of parameter StartTime is not supported.', + ], + [ + 'errorCode' => 'Abs.DomainName.Malformed', + 'errorMessage' => 'The size of DomainName is too big.', + ], + [ + 'errorCode' => 'InvalidInterval.Malformed', + 'errorMessage' => 'Specified Interval is malformed.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2015-12-10T15:01:00Z\\",\\n \\"StartTime\\": \\"2015-12-10T15:00:00Z\\",\\n \\"RequestId\\": \\"A666D44F-19D6-490E-97CF-1A64AB962C57\\",\\n \\"DomainName\\": \\"example.com,example.aliyundoc.com\\",\\n \\"DataInterval\\": \\"60\\",\\n \\"RealTimeTrafficDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"Value\\": \\"0\\",\\n \\"TimeStamp\\": \\"2015-12-10T15:01:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 2015-12-10T15:01:00Z\\n 2015-12-10T15:00:00Z\\n A666D44F-19D6-490E-97CF-1A64AB962C57\\n example.com,example.aliyundoc.com\\n 60\\n \\n 0\\n 2015-12-10T15:01:00Z\\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveDomainRealTimeTrafficData', + 'description' => '* You can call this operation to query the real-time traffic in a region for an Internet service provider (ISP) within a specified period of time under one or more streaming domains.'."\n" + .'* If you do not specify the StartTime parameter or the EndTime parameter, the data of the last hour is returned. You can specify both the StartTime and EndTime parameters to query the data of a specific time range.'."\n" + .'* This operation is used to monitor data. The data returned by this operation cannot be used as a reference to calculate resource usage for billing.'."\n" + .'* You can query the data in the last 90 days.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'This operation does not have a queries per second (QPS) limit on a single user. You can call this operation based on your business requirements.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLiveDomainRealTimeHttpCodeData' => [ + 'summary' => 'Queries the proportions of HTTP status codes returned for one or more domain names. Data is collected every minute.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain.'."\n" + ."\n" + .'Separate multiple domain names with commas (,).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com,example.aliyundoc.com', + ], + ], + [ + '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" + .'> If you specify neither the StartTime parameter nor the EndTime parameter, the data of the last **1** hour is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2015-11-30T05:39:00Z', + ], + ], + [ + '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" + .'> If you specify neither the StartTime parameter nor the EndTime parameter, the data of the last **1** hour is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2015-11-30T05:40:00Z', + ], + ], + [ + 'name' => 'IspNameEn', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the Internet service provider (ISP).'."\n" + ."\n" + .'You can call the [DescribeCdnRegionAndIsp](~~448109~~) operation to query a list of available ISPs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'alibaba', + ], + ], + [ + 'name' => 'LocationNameEn', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the region.'."\n" + ."\n" + .'You can call the [DescribeCdnRegionAndIsp](~~448109~~) operation to query a list of available regions.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'tianjin', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'EndTime' => [ + 'description' => 'The end of the time range during which the data was queried. 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' => '2015-11-30T05:40:00Z', + ], + 'StartTime' => [ + 'description' => 'The beginning of the time range during which the data was queried. 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' => '2015-11-30T05:33:00Z', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'BC858082-736F-4A25-867B-E5B67C85ACF7', + ], + 'DomainName' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com,example.aliyundoc.com', + ], + 'DataInterval' => [ + 'description' => 'The time interval between the entries returned. Unit: seconds Default value: 60.'."\n", + 'type' => 'string', + 'example' => '60', + ], + 'RealTimeHttpCodeData' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'UsageData' => [ + 'description' => 'The proportions of HTTP status codes at each time interval.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TimeStamp' => [ + 'description' => 'The timestamp of the data returned.'."\n", + 'type' => 'string', + 'example' => '2015-11-30T05:39:00Z', + ], + 'Value' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RealTimeCodeProportionData' => [ + 'description' => 'The proportions of HTTP status codes.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The HTTP status code.'."\n", + 'type' => 'string', + 'example' => '200', + ], + 'Proportion' => [ + 'description' => 'The proportion of the HTTP status code.'."\n", + 'type' => 'string', + 'example' => '66.046511627907', + ], + 'Count' => [ + 'description' => 'The number of times the HTTP status code was returned.'."\n", + 'type' => 'string', + 'example' => '20', + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingTimeParameter', + 'errorMessage' => 'The StartTime and EndTime must be both specified.', + ], + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'The specified StartTime is invalid.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'The specified EndTime is invalid.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', + ], + [ + 'errorCode' => 'InvalidStartTime.ValueNotSupported', + 'errorMessage' => 'The specified StartTime is invalid.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2015-11-30T05:40:00Z\\",\\n \\"StartTime\\": \\"2015-11-30T05:33:00Z\\",\\n \\"RequestId\\": \\"BC858082-736F-4A25-867B-E5B67C85ACF7\\",\\n \\"DomainName\\": \\"example.com,example.aliyundoc.com\\",\\n \\"DataInterval\\": \\"60\\",\\n \\"RealTimeHttpCodeData\\": {\\n \\"UsageData\\": [\\n {\\n \\"TimeStamp\\": \\"2015-11-30T05:39:00Z\\",\\n \\"Value\\": {\\n \\"RealTimeCodeProportionData\\": [\\n {\\n \\"Code\\": \\"200\\",\\n \\"Proportion\\": \\"66.046511627907\\",\\n \\"Count\\": \\"20\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n2015-11-30T05:40:00Z\\nBC858082-736F-4A25-867B-E5B67C85ACF7\\nexample.com,example.aliyundoc.com\\n60\\n2015-11-30T05:33:00Z\\n\\n \\n 2015-11-30T05:39:00Z\\n \\n \\n 66.046511627907\\n 20\\n 200\\n \\n \\n \\n\\n","errorExample":"{\\n \\"RealTimeHttpCodeData\\": {\\n \\"UsageData\\": [\\n {\\n \\"TimeStamp\\": \\"2015-11-30T05:40:00Z\\",\\n \\"Value\\": {\\n \\"RealTimeCodeProportionData\\": [\\n {\\n \\"Proportion\\": \\"66.046511627907\\",\\n \\"Code\\": \\"200\\"\\n },\\n {\\n \\"Proportion\\": \\"4.72868217054264\\",\\n \\"Code\\": \\"206\\"\\n },\\n {\\n \\"Proportion\\": \\"0.155038759689922\\",\\n \\"Code\\": \\"302\\"\\n },\\n {\\n \\"Proportion\\": \\"0.62015503875969\\",\\n \\"Code\\": \\"304\\"\\n },\\n {\\n \\"Proportion\\": \\"28.4496124031008\\",\\n \\"Code\\": \\"500\\"\\n }\\n ]\\n }\\n },\\n {\\n \\"TimeStamp\\": \\"2015-11-30T05:39:00Z\\",\\n \\"Value\\": {\\n \\"RealTimeCodeProportionData\\": [\\n {\\n \\"Proportion\\": \\"66.046511627907\\",\\n \\"Code\\": \\"200\\"\\n },\\n {\\n \\"Proportion\\": \\"4.72868217054264\\",\\n \\"Code\\": \\"206\\"\\n },\\n {\\n \\"Proportion\\": \\"0.155038759689922\\",\\n \\"Code\\": \\"302\\"\\n },\\n {\\n \\"Proportion\\": \\"0.62015503875969\\",\\n \\"Code\\": \\"304\\"\\n },\\n {\\n \\"Proportion\\": \\"28.4496124031008\\",\\n \\"Code\\": \\"500\\"\\n }\\n ]\\n }\\n }\\n ]\\n },\\n \\"DataInterval\\": \\"60\\",\\n \\"RequestId\\": \\"BC858082-736F-4A25-867B-E5B67C85ACF7\\",\\n \\"DomainName\\": \\"test.com,abc.com\\",\\n \\"EndTime\\": \\"2015-11-30T05:40:00Z\\",\\n \\"StartTime\\": \\"2015-11-30T05:33:00Z\\"\\n}"}]', + 'title' => 'DescribeLiveDomainRealTimeHttpCodeData', + 'description' => 'The following table describes the time granularities supported by this operation.'."\n" + ."\n" + .'|Time granularity|Maximum time range per query|Historical data available|Data delay|'."\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|Usually 4 hours|'."\n" + .'|1 day|Unlimited|366 days|After 04:00 on the next day|'."\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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveStream****', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2017-12-21T08:00:00Z', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2017-12-22T08:00:00Z', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F5FF8', + ], + 'LiveStreamUserNumInfos' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LiveStreamUserNumInfo' => [ + 'description' => 'The number of historical online users for the live stream.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'UserNum' => [ + 'description' => 'The number of users at the current point in time.'."\n", + 'type' => 'string', + 'example' => '1', + ], + '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.'."\n", + 'type' => 'string', + 'example' => '2017-10-20T06:20:00Z', + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified StartTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified end time does not math the specified start time or current time.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F5FF8\\",\\n \\"LiveStreamUserNumInfos\\": {\\n \\"LiveStreamUserNumInfo\\": [\\n {\\n \\"UserNum\\": \\"1\\",\\n \\"StreamTime\\": \\"2017-10-20T06:20:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\n \\n 2017-10-20T06:20:00Z\\n 1\\n \\n\\n16A96B9A-F203-4EC5-8E43-CB92E68F5FF8\\n","errorExample":"{\\n \\"LiveStreamUserNumInfos\\":{\\n \\"LiveStreamUserNumInfo\\":[\\n {\\n \\"StreamTime\\":\\"2017-10-20T06:20:00Z\\",\\n \\"UserNum\\":0\\n },\\n {\\n \\"StreamTime\\":\\"2017-10-20T06:19:00Z\\",\\n \\"UserNum\\":0\\n },\\n {\\n \\"StreamTime\\":\\"2017-10-20T06:18:00Z\\",\\n \\"UserNum\\":15\\n },\\n {\\n \\"StreamTime\\":\\"2017-10-20T06:17:00Z\\",\\n \\"UserNum\\":0\\n },\\n {\\n \\"StreamTime\\":\\"2017-10-20T06:16:00Z\\",\\n \\"UserNum\\":0\\n },\\n {\\n \\"StreamTime\\":\\"2017-10-20T06:15:00Z\\",\\n \\"UserNum\\":6\\n },\\n {\\n \\"StreamTime\\":\\"2017-10-20T06:14:00Z\\",\\n \\"UserNum\\":0\\n }\\n ]\\n },\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F5FF8\\"\\n}"}]', + 'title' => 'DescribeLiveStreamHistoryUserNum', + 'description' => '* The data returned by this operation is delayed for an average of 2 to 5 minutes.'."\n" + .'* This operation queries the number of historical online users for only Flash Video (FLV) and Real-Time Messaging Protocol (RTMP) streams.'."\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.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLiveStreamCount' => [ + 'summary' => 'Queries the numbers of online source streams and transcoded streams.', + 'methods' => [ + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREliveYUZBM3', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'FCFFE4A4-F34F-4EEF-B401-36A01689AFBC', + ], + 'StreamCountInfos' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'StreamCountInfo' => [ + 'description' => 'The statistics of the live streams.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Type' => [ + 'description' => 'The type of the live stream. Valid values:'."\n" + ."\n" + .'* **raw**: source streams'."\n" + .'* **trans**: transcoded streams'."\n", + 'type' => 'string', + 'example' => 'raw', + ], + 'Count' => [ + 'description' => 'The number of online streams.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '3', + ], + 'Limit' => [ + 'description' => 'The maximum allowed number of concurrently ingested streams. This parameter is available only to users in the whitelist.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + 'StreamCountDetails' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'StreamCountDetail' => [ + 'description' => 'The information about the live streams.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'VideoDataRate' => [ + 'description' => 'The video bitrate. This parameter is returned only for transcoded streams.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '390', + ], + 'Format' => [ + 'description' => 'The video codec. Valid values:'."\n" + ."\n" + .'* **h264**'."\n" + .'* **h265**'."\n", + 'type' => 'string', + 'example' => 'h264', + ], + 'Count' => [ + 'description' => 'The number of online streams.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2', + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"FCFFE4A4-F34F-4EEF-B401-36A01689AFBC\\",\\n \\"StreamCountInfos\\": {\\n \\"StreamCountInfo\\": [\\n {\\n \\"Type\\": \\"raw\\",\\n \\"Count\\": 3,\\n \\"Limit\\": 10,\\n \\"StreamCountDetails\\": {\\n \\"StreamCountDetail\\": [\\n {\\n \\"VideoDataRate\\": 390,\\n \\"Format\\": \\"h264\\",\\n \\"Count\\": 2\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n FCFFE4A4-F34F-4EEF-B401-36A01689AFBC\\n \\n raw\\n 3\\n 10\\n \\n 390\\n h264\\n 2\\n \\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveStreamCount', + 'description' => 'Obtain the main streaming domain, and then call this operation to query the numbers of online source streams and transcoded streams. The streams that are returned by calling this operation are encoded in H.264 or H.265.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation once 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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLiveStreamTranscodeStreamNum' => [ + 'summary' => 'Queries the number of transcoded streams in real time.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'SplitType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The grouping method.'."\n" + ."\n" + .'* Domain name (default)'."\n" + .'* Template'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* domain'."\n" + .'* template'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'domain', + 'default' => 'domain', + 'enum' => [ + 'domain', + 'template', + ], + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'UntranscodeNumber' => [ + 'description' => 'The number of streams that are not transcoded.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '27', + ], + 'LazyTranscodedNumber' => [ + 'description' => 'The number of streams for which transcoding is triggered by stream pulling.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + 'TranscodedNumber' => [ + 'description' => 'The number of streams that are transcoded.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '30', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '150191A4-DD88-5941-B48C-9DF59E0A8B1F', + ], + 'Total' => [ + 'description' => 'The total number of streams.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '57', + ], + 'TranscodeStreamCountDetails' => [ + 'description' => 'The details about the transcoding templates.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Template' => [ + 'description' => 'The name of the transcoding template.'."\n", + 'type' => 'string', + 'example' => 'template_name', + ], + 'Count' => [ + 'description' => 'The number of streams that use the transcoding template.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '30', + ], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"UntranscodeNumber\\": 27,\\n \\"LazyTranscodedNumber\\": 10,\\n \\"TranscodedNumber\\": 30,\\n \\"RequestId\\": \\"150191A4-DD88-5941-B48C-9DF59E0A8B1F\\",\\n \\"Total\\": 57,\\n \\"TranscodeStreamCountDetails\\": [\\n {\\n \\"Template\\": \\"template_name\\",\\n \\"Count\\": 30\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 27\\n 10\\n 30\\n 150191A4-DD88-5941-B48C-9DF59E0A8B1F\\n 57\\n","errorExample":""}]', + 'title' => 'DescribeLiveStreamTranscodeStreamNum', + 'description' => '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", + ], + 'DescribeLiveDomainPvUvData' => [ + 'summary' => 'Queries the data of page views (PVs) and unique visitors (UVs) of a 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + '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:ssZ* format. The time must be in UTC.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2018-03-17T16:00:00Z', + ], + ], + [ + '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:ssZ* format. The time must be in UTC.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2018-03-20T16:00:00Z', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The data of PVs and UVs of the domain name.'."\n", + 'type' => 'object', + 'properties' => [ + 'EndTime' => [ + 'description' => 'The end of the time range during which the data was queried. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ssZ* format. The time is displayed in UTC.'."\n", + 'type' => 'string', + 'example' => '2018-03-20T16:00:00Z', + ], + 'StartTime' => [ + 'description' => 'The beginning of the time range during which the data was queried. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ssZ* format. The time is displayed in UTC.'."\n", + 'type' => 'string', + 'example' => '2018-03-17T16:00:00Z', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'E9D3257A-1B7C-414C-90C1-8D07AC47BCAC', + ], + 'DomainName' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'DataInterval' => [ + 'description' => 'The time interval between the entries returned. Unit: seconds. Default value: 3600.'."\n", + 'type' => 'string', + 'example' => '3600', + ], + 'PvUvDataInfos' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'PvUvDataInfo' => [ + 'description' => 'The data of PVs and UVs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The data of PVs and UVs.'."\n", + 'type' => 'object', + 'properties' => [ + 'PV' => [ + 'description' => 'The number of PVs.'."\n", + 'type' => 'string', + 'example' => '3036', + ], + 'TimeStamp' => [ + 'description' => 'The timestamp of the data returned. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ssZ* format. The time is displayed in UTC.'."\n", + 'type' => 'string', + 'example' => '2018-03-19T16:00:00Z', + ], + 'UV' => [ + 'description' => 'The number of UVs.'."\n", + 'type' => 'string', + 'example' => '2', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified StartTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidStartTime.ValueNotSupported', + 'errorMessage' => 'The specified value of parameter StartTime is not supported.', + ], + [ + 'errorCode' => 'InvalidTime.ValueNotSupported', + 'errorMessage' => 'Specified Time is malformed.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2018-03-20T16:00:00Z\\",\\n \\"StartTime\\": \\"2018-03-17T16:00:00Z\\",\\n \\"RequestId\\": \\"E9D3257A-1B7C-414C-90C1-8D07AC47BCAC\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"3600\\",\\n \\"PvUvDataInfos\\": {\\n \\"PvUvDataInfo\\": [\\n {\\n \\"PV\\": \\"3036\\",\\n \\"TimeStamp\\": \\"2018-03-19T16:00:00Z\\",\\n \\"UV\\": \\"2\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n2018-03-20T16:00:00Z\\nE9D3257A-1B7C-414C-90C1-8D07AC47BCAC\\nexample.com\\n3600\\n2018-03-17T16:00:00Z\\n\\n \\n 2\\n 3036\\n 2018-03-19T16:00:00Z\\n \\n\\n","errorExample":""}]', + 'title' => 'DescribeLiveDomainPvUvData', + 'description' => '* You can call this operation to query the geographical distribution of viewers, the visitor ranking of a streaming domain, and the number of independent requests from IP addresses under a streaming domain within a specified time period.'."\n" + .'* If you do not specify the StartTime or EndTime parameter, the data of the last 24 hours is queried. You can specify both the StartTime and EndTime parameters to query the data of a specific time range.'."\n" + .'* You can specify only one streaming domain in each request.'."\n" + .'* You can query the data in the last 90 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.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + ], + 'DescribeLiveTopDomainsByFlow' => [ + 'summary' => 'Queries the top domain names ranked by traffic.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + '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, the data of the current month is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2018-03-17T16:00:00Z', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2018-03-20T16:00:00Z', + ], + ], + [ + 'name' => 'Limit', + 'in' => 'query', + 'schema' => [ + 'description' => 'The maximum number of domain names that you want to retrieve. Valid values: 1 to 100. Default value: 20.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '100', + 'minimum' => '1', + 'example' => '20', + 'default' => '20', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'DomainOnlineCount' => [ + 'description' => 'The total number of domain names that are in the Enabled state in your account.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'EndTime' => [ + 'description' => 'The end of the time range for which data was queried.'."\n", + 'type' => 'string', + 'example' => '2018-03-20T16:00:00Z', + ], + 'StartTime' => [ + 'description' => 'The beginning of the time range for which data was queried.'."\n", + 'type' => 'string', + 'example' => '2018-03-17T16:00:00Z', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '33834C3E-388E-5FFE-A8AE-63575035C064', + ], + 'DomainCount' => [ + 'description' => 'The total number of domain names in your account.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'TopDomains' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'TopDomain' => [ + 'description' => 'The top domain names ranked by traffic.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The top domain names ranked by traffic.'."\n", + 'type' => 'object', + 'properties' => [ + 'MaxBps' => [ + 'description' => 'The peak bandwidth of the domain name.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '22139626', + ], + 'Rank' => [ + 'description' => 'The ranking of the domain name.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'TotalAccess' => [ + 'description' => 'The number of visits to the domain name.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '107784230', + ], + 'TrafficPercent' => [ + 'description' => 'The traffic share of the domain name relative to the total traffic.'."\n", + 'type' => 'string', + 'example' => '30.64191989360235', + ], + 'DomainName' => [ + 'description' => 'The domain name.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'TotalTraffic' => [ + 'description' => 'The total traffic.'."\n", + 'type' => 'string', + 'example' => '2043859876683.9001', + ], + 'MaxBpsTime' => [ + 'description' => 'The time when the bandwidth reached the peak value.'."\n", + 'type' => 'string', + 'example' => '1457111400', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified StartTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidStartTime.ValueNotSupported', + 'errorMessage' => 'The specified value of parameter StartTime is not supported.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DomainOnlineCount\\": 1,\\n \\"EndTime\\": \\"2018-03-20T16:00:00Z\\",\\n \\"StartTime\\": \\"2018-03-17T16:00:00Z\\",\\n \\"RequestId\\": \\"33834C3E-388E-5FFE-A8AE-63575035C064\\",\\n \\"DomainCount\\": 1,\\n \\"TopDomains\\": {\\n \\"TopDomain\\": [\\n {\\n \\"MaxBps\\": 22139626,\\n \\"Rank\\": 1,\\n \\"TotalAccess\\": 107784230,\\n \\"TrafficPercent\\": \\"30.64191989360235\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"TotalTraffic\\": \\"2043859876683.9001\\",\\n \\"MaxBpsTime\\": \\"1457111400\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 1\\n 2018-03-20T16:00:00Z\\n 2018-03-17T16:00:00Z\\n 33834C3E-388E-5FFE-A8AE-63575035C064\\n 1\\n \\n 22139626\\n 1\\n 107784230\\n 30.64191989360235\\n example.com\\n 2043859876683.9001\\n 1457111400\\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveTopDomainsByFlow', + 'description' => '* If you do not specify the StartTime or EndTime parameter, data of the current month is queried by default. To query data within a specific time range, you must specify both the StartTime and EndTime parameters.'."\n" + .'* You can query data in the last 90 days.'."\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", + ], + 'DescribeLiveStreamsTotalCount' => [ + 'summary' => 'Queries the total number of live streams within a specified time range. Data is collected on a daily basis.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ingest domain or streaming domain. This parameter is required if you want to query data based on domain names. You can specify up to 10 domain names. Separate multiple domain names with commas (,).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'Typ', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of data that you want to query. If you leave this parameter empty, data is returned by domain name. If you want to query data by UID, specify the UID for this parameter.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'aliuid', + ], + ], + [ + '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.'."\n" + ."\n" + .'> You can query data in the last 18 months.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2023-07-24T16:00:00Z', + ], + ], + [ + '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.'."\n" + ."\n" + .'> The maximum time range for a query is 15 days. The end time must be earlier than the current time. Data of the current day can be queried on the next day.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2023-07-25T16:00:00Z', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The returned results.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'String FCFFE4A4-F34F-4EEF-B401-36A01689AFBC', + ], + 'StreamCountList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'StreamCountInfos' => [ + 'description' => 'The statistics about the live streams.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Count' => [ + 'description' => 'The total number of live streams.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '934', + ], + 'Timestamp' => [ + 'description' => 'The timestamp.'."\n", + 'type' => 'string', + 'example' => '2023-07-24T16:00:00Z', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified StartTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => 'Parameter invalid.', + ], + [ + 'errorCode' => 'Duration.Exceed', + 'errorMessage' => 'Duration between StartTime and EndTime is too long.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidDomain.NotFound', + 'errorMessage' => 'The domain provided does not belong to you.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"String\\\\tFCFFE4A4-F34F-4EEF-B401-36A01689AFBC\\",\\n \\"StreamCountList\\": {\\n \\"StreamCountInfos\\": [\\n {\\n \\"Count\\": 934,\\n \\"Timestamp\\": \\"2023-07-24T16:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n String\\tFCFFE4A4-F34F-4EEF-B401-36A01689AFBC\\n \\n 934\\n 2023-07-24T16:00:00Z\\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveStreamsTotalCount', + 'description' => '* The maximum time range for a query is 15 days.'."\n" + .'* You can query data in the last 18 months.'."\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", + ], + 'DescribeLiveStreamMetricDetailData' => [ + 'summary' => 'Queries the monitoring data of streams for a specified domain name. Up to 5,000 rows of data can be returned per call.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => '* The accelerated domain name. You can specify only one domain name. If you specify multiple domain names, an error occurs.'."\n" + .'* If you do not specify the AppName and StreamName parameters, monitoring data of all streams for the domain name is returned.'."\n" + .'* If you leave this parameter empty, monitoring data of streams under all domain names is returned.'."\n" + .'* If you specify the DomainName parameter and set both the AppName and StreamName parameters to all, monitoring data of all streams in all applications under the specified domain name is returned.'."\n" + .'* When you specify the DomainName parameter, make sure that the domain name is a domain name used for live streaming and that you have the permissions on the domain name.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'example.com', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2015-12-10T20:00:00Z', + ], + ], + [ + '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 maximum time range that can be specified is one day. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2015-12-10T21:00:00Z', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application for which you want to query the monitoring data of streams.'."\n" + ."\n" + .'> If you specify the StreamName parameter, you must also specify the AppName parameter.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the stream. The stream must belong to the application that is specified by the AppName parameter.'."\n" + ."\n" + .'> If you specify the StreamName parameter, you must also specify the AppName parameter.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveStream****', + ], + ], + [ + 'name' => 'Protocol', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming protocol. Valid values: **flv**, **hls**, **rtmp**, **rts**, and **p2p**.'."\n" + ."\n" + .'You can specify multiple protocols. Separate multiple protocols with commas (,). However, data over multiple protocols is not aggregated and is returned based on the stream.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'flv', + ], + ], + [ + 'name' => 'NextPageToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The token used to query data by page. Up to 5,000 rows of data can be returned per query. If the number of rows exceeds 5,000, a token that determines the start point of the next query is provided in the response. If you specify this parameter, data continues to be obtained from the end of the previous query.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'UjsM9x3aVcJi9a0-ArwJUTTC67CIBKLw*****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The returned data.'."\n", + 'type' => 'object', + 'properties' => [ + 'DomainName' => [ + 'description' => 'The accelerated domain name.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'EndTime' => [ + 'description' => 'The end of the time range during which data was queried.'."\n", + 'type' => 'string', + 'example' => '2015-12-10T21:00:00Z', + ], + 'NextPageToken' => [ + 'description' => 'The token that determines the start point of the next query. This parameter is returned if more data results are available.'."\n", + 'type' => 'string', + 'example' => 'UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0=', + ], + 'PageSize' => [ + 'description' => 'The number of rows returned.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '5000', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', + ], + 'StartTime' => [ + 'description' => 'The beginning of the time range during which data was queried.'."\n", + 'type' => 'string', + 'example' => '2015-12-10T20:00:00Z', + ], + 'StreamDetailData' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'StreamData' => [ + 'description' => 'The data array returned.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The data array returned.'."\n", + 'type' => 'object', + 'properties' => [ + 'AppName' => [ + 'description' => 'The name of the application.'."\n", + 'type' => 'string', + 'example' => 'app', + ], + 'Bps' => [ + 'description' => 'The total bandwidth consumed by the stream per minute. Unit: bit/s.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '423304182.66', + ], + 'Count' => [ + 'description' => 'The total number of online viewers for the stream per minute.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '423304182', + ], + 'FlvBps' => [ + 'description' => 'The bandwidth over the Flash Video (FLV) protocol. Unit: bit/s.'."\n" + ."\n" + .'> This parameter is not returned if no traffic is generated over the protocol.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '454', + ], + 'FlvCount' => [ + 'description' => 'The number of online viewers over the FLV protocol.'."\n" + ."\n" + .'> This parameter is not returned if no traffic is generated over the protocol.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '32', + ], + 'FlvTraffic' => [ + 'description' => 'The amount of traffic over the FLV protocol. Unit: bytes.'."\n" + ."\n" + .'> This parameter is not returned if no traffic is generated over the protocol.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1254', + ], + 'HlsBps' => [ + 'description' => 'The bandwidth over the HTTP Live Streaming (HLS) protocol. Unit: bit/s.'."\n" + ."\n" + .'> This parameter is not returned if no traffic is generated over the protocol.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '4456', + ], + 'HlsCount' => [ + 'description' => 'The number of online viewers over the HLS protocol.'."\n" + ."\n" + .'> Currently, this parameter is not supported.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '56', + ], + 'HlsTraffic' => [ + 'description' => 'The amount of traffic over the HLS protocol. Unit: bytes.'."\n" + ."\n" + .'> This parameter is not returned if no traffic is generated over the protocol.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '568', + ], + 'NewConns' => [ + 'description' => 'Number of new connections established per minute.', + 'type' => 'string', + 'example' => '450', + ], + 'P2pBps' => [ + 'description' => 'The bandwidth over the P2P protocol. Unit: bit/s.'."\n" + ."\n" + .'> This parameter is not returned if no traffic is generated over the protocol.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '6845', + ], + 'P2pCount' => [ + 'description' => 'The number of online viewers over the P2P protocol.'."\n" + ."\n" + .'> This parameter is not returned if no traffic is generated over the protocol.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '78', + ], + 'P2pTraffic' => [ + 'description' => 'The amount of traffic over the peer-to-peer (P2P) protocol. Unit: bytes.'."\n" + ."\n" + .'> This parameter is not returned if no traffic is generated over the protocol.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '4102', + ], + 'RtmpBps' => [ + 'description' => 'The bandwidth over the Real-Time Messaging Protocol (RTMP) protocol. Unit: bit/s.'."\n" + ."\n" + .'> This parameter is not returned if no traffic is generated over the protocol.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '3323', + ], + 'RtmpCount' => [ + 'description' => 'The number of online viewers over the RTMP protocol.'."\n" + ."\n" + .'> This parameter is not returned if no traffic is generated over the protocol.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '63', + ], + 'RtmpTraffic' => [ + 'description' => 'The amount of traffic over the RTMP protocol. Unit: bytes.'."\n" + ."\n" + .'> This parameter is not returned if no traffic is generated over the protocol.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '5568', + ], + 'RtsBps' => [ + 'description' => 'The bandwidth over the RTS protocol. Unit: bit/s.'."\n" + ."\n" + .'> This parameter is not returned if no traffic is generated over the protocol.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '2361', + ], + 'RtsCount' => [ + 'description' => 'The number of online viewers over the Real-Time Streaming (RTS) protocol.'."\n" + ."\n" + .'> This parameter is not returned if no traffic is generated over the protocol.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '89', + ], + 'RtsTraffic' => [ + 'description' => 'The amount of traffic over the RTS protocol. Unit: bytes.'."\n" + ."\n" + .'> This parameter is not returned if no traffic is generated over the protocol.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2322', + ], + 'StreamName' => [ + 'description' => 'The name of the stream.'."\n", + 'type' => 'string', + 'example' => 'test.flv', + ], + 'TimeStamp' => [ + 'description' => 'The timestamp of the returned data.'."\n", + 'type' => 'string', + 'example' => '2015-12-10T20:00:00Z', + ], + 'Traffic' => [ + 'description' => 'The total amount of traffic consumed by the stream per minute. Unit: bytes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '423304182', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified StartTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified end time does not math the specified start time.', + ], + [ + 'errorCode' => 'InvalidTimeSpan', + 'errorMessage' => 'The time span exceeds the limit.', + ], + [ + 'errorCode' => 'InvalidPageToken', + 'errorMessage' => 'The token of page is invalid.', + ], + [ + 'errorCode' => 'InvalidAppName.Mismatch', + 'errorMessage' => 'The AppName param must be passed.', + ], + [ + 'errorCode' => 'InvalidStreamProtocol.NotSupport', + 'errorMessage' => 'The specified stream protocol is not support.', + ], + [ + 'errorCode' => 'InvalidStreamName.LengthTooLong', + 'errorMessage' => 'The specified stream name is too long.', + ], + [ + 'errorCode' => 'InvalidAppName.LengthTooLong', + 'errorMessage' => 'The specified app name is too long.', + ], + [ + 'errorCode' => 'InvalidTime.ValueNotSupported', + 'errorMessage' => 'Specified Time is malformed.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DomainName\\": \\"example.com\\",\\n \\"EndTime\\": \\"2015-12-10T21:00:00Z\\",\\n \\"NextPageToken\\": \\"UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0=\\",\\n \\"PageSize\\": 5000,\\n \\"RequestId\\": \\"B955107D-E658-4E77-B913-E0AC3D31693E\\",\\n \\"StartTime\\": \\"2015-12-10T20:00:00Z\\",\\n \\"StreamDetailData\\": {\\n \\"StreamData\\": [\\n {\\n \\"AppName\\": \\"app\\",\\n \\"Bps\\": 423304182.66,\\n \\"Count\\": 423304182,\\n \\"FlvBps\\": 454,\\n \\"FlvCount\\": 32,\\n \\"FlvTraffic\\": 1254,\\n \\"HlsBps\\": 4456,\\n \\"HlsCount\\": 56,\\n \\"HlsTraffic\\": 568,\\n \\"NewConns\\": \\"450\\",\\n \\"P2pBps\\": 6845,\\n \\"P2pCount\\": 78,\\n \\"P2pTraffic\\": 4102,\\n \\"RtmpBps\\": 3323,\\n \\"RtmpCount\\": 63,\\n \\"RtmpTraffic\\": 5568,\\n \\"RtsBps\\": 2361,\\n \\"RtsCount\\": 89,\\n \\"RtsTraffic\\": 2322,\\n \\"StreamName\\": \\"test.flv\\",\\n \\"TimeStamp\\": \\"2015-12-10T20:00:00Z\\",\\n \\"Traffic\\": 423304182\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 2015-12-10T21:00:00Z\\n 2015-12-10T20:00:00Z\\n B955107D-E658-4E77-B913-E0AC3D31693E\\n UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0=\\n 5000\\n example.com\\n \\n 4102\\n 3323\\n 4456\\n 6845\\n test.flv\\n 78\\n 423304182\\n 63\\n 89\\n 2361\\n 423304192\\n 568\\n 454\\n 423304182\\n 2322\\n 5568\\n 56\\n app\\n 32\\n 1254\\n 2015-12-10T20:00:00Z\\n 450\\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveStreamMetricDetailData', + 'description' => 'If you call this operation to query the monitoring data of streams under a domain name for the first time, you must [submit a ticket](https://workorder-intl.console.aliyun.com/?spm=5176.12818093.nav-right.dticket.6cb216d07otFWR#/ticket/createIndex) for backend configuration. Provide the following information in the ticket:'."\n" + ."\n" + .'* The domain name that you want to query'."\n" + .'* The maximum number of concurrent streams under the domain name'."\n" + .'* The maximum number of concurrent online users in each stream'."\n" + .'* The protocols used for the client requests'."\n" + ."\n" + .'> The review is expected to be completed within one business day after you submit the ticket.'."\n" + ."\n" + .'## [](#)Usage limits'."\n" + ."\n" + .'* By default, statistics on the number of viewers who watch streams over the HTTP Live Streaming (HLS) protocol cannot be collected.'."\n" + .'* You can specify only one domain name in each call.'."\n" + .'* The maximum time range to query is 24 hours.'."\n" + .'* The minimum data granularity to query is 1 minute.'."\n" + .'* You can query data in the last 31 days.'."\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", + ], + 'DescribeLiveStreamDetailFrameRateAndBitRateData' => [ + 'summary' => 'Queries the audio and video frame rates and bitrates of a Real-Time Messaging Protocol (RTMP) stream.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ingest domain or streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'AppName', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'exampleStreamName', + ], + ], + [ + '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", + 'type' => 'string', + 'required' => false, + 'example' => '2017-12-21T08:00:00Z', + ], + ], + [ + '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" + .'> If the StartTime and EndTime parameters are invalid, or if the StartTime and EndTime parameters are not specified, data in the last hour is queried by default.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2017-12-22T08:00:00Z', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'FrameRateAndBitRateInfos' => [ + 'description' => 'The audio and video frame rates and bitrates at each time granularity.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'AudioBitRate' => [ + 'description' => 'The audio bitrate of the live stream. Unit: bit/s.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '200', + ], + 'AudioFrameRate' => [ + 'description' => 'The audio frame rate of the live stream. Unit: FPS.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '60', + ], + 'BitRate' => [ + 'description' => 'The bitrate of the live stream. Unit: bit/s.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '1420', + ], + 'StreamUrl' => [ + 'description' => 'The URL of the live stream.'."\n", + 'type' => 'string', + 'example' => 'rtmp://example.com/AppName/exampleStreamName', + ], + 'Time' => [ + 'description' => 'The time when the data was collected. 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' => '2016-09-13T16:04:00Z', + ], + 'VideoBitRate' => [ + 'description' => 'The video bitrate of the live stream. Unit: bit/s.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '1200', + ], + 'VideoFrameRate' => [ + 'description' => 'The video frame rate of the live stream. Unit: frames per second (FPS).'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '30', + ], + ], + ], + ], + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'BC858082-736F-4A25-867B-E5B67C85ACF7', + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"FrameRateAndBitRateInfos\\": [\\n {\\n \\"AudioBitRate\\": 200,\\n \\"AudioFrameRate\\": 60,\\n \\"BitRate\\": 1420,\\n \\"StreamUrl\\": \\"rtmp://example.com/AppName/exampleStreamName\\",\\n \\"Time\\": \\"2016-09-13T16:04:00Z\\",\\n \\"VideoBitRate\\": 1200,\\n \\"VideoFrameRate\\": 30\\n }\\n ],\\n \\"RequestId\\": \\"BC858082-736F-4A25-867B-E5B67C85ACF7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n \\n 200\\n 60\\n 1420\\n rtmp://example.com/AppName/exampleStreamName\\n \\n 1200\\n 30\\n \\n BC858082-736F-4A25-867B-E5B67C85ACF7\\n","errorExample":""}]', + 'title' => 'DescribeLiveStreamDetailFrameRateAndBitRateData', + 'description' => '* You can call this operation to query a set of audio and video frame rates and bitrates of an RTMP stream within a specified time range.'."\n" + .'* This operation is used to monitor data. The data returned by this operation cannot be used as a reference to calculate resource usage for billing.'."\n" + .'* You can query data in the last 90 days.'."\n" + .'* The data is delayed for 3 to 5 minutes.'."\n" + .'* The maximum time range that you can specify is 1 hour.'."\n", + 'requestParamsDescription' => 'If the StartTime and EndTime parameters are invalid, or if the StartTime and EndTime parameters are not specified, data in the last hour is queried by default.'."\n", + 'responseParamsDescription' => '> The total bitrate of the live stream is calculated differently from the audio and video bitrates. As a result, the sum of the audio and video bitrates may not be equal to the total bitrate. This operation is used to monitor data. The returned data cannot be used as a reference to calculate resource usage for billing.'."\n", + ], + 'DescribeLiveUserStreamMetricData' => [ + 'summary' => ' 查询指定域名流粒度批量数据', + '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' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'test.com', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => '2015-12-10T20:00:00Z', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => '2015-12-10T21:00:00Z', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'app', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'test.flv', + ], + ], + [ + 'name' => 'Protocol', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'flv', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '10', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'DomainName' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'test.com', + ], + 'EndTime' => [ + 'description' => 'YYYY-MM-DDThh:mm:ssZ'."\n", + 'type' => 'string', + 'example' => '2015-12-10T21:00:00Z', + ], + 'PageSize' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', + ], + 'StartTime' => [ + 'description' => '', + 'type' => 'string', + 'example' => '2015-12-10T20:00:00Z', + ], + 'StreamDetailData' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'AppName' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'app', + ], + 'Bps' => [ + 'description' => '', + 'type' => 'number', + 'format' => 'float', + 'example' => '423304182.66', + ], + 'Count' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '423304182', + ], + 'FlvBps' => [ + 'description' => '', + 'type' => 'number', + 'format' => 'float', + 'example' => '454', + ], + 'FlvCount' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '32', + ], + 'FlvTraffic' => [ + 'description' => '', + 'type' => 'number', + 'format' => 'double', + 'example' => '1254', + ], + 'HlsBps' => [ + 'description' => '', + 'type' => 'number', + 'format' => 'float', + 'example' => '4456', + ], + 'HlsCount' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '56', + ], + 'HlsTraffic' => [ + 'description' => '', + 'type' => 'number', + 'format' => 'double', + 'example' => '568', + ], + 'NewConns' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '450', + ], + 'P2pBps' => [ + 'description' => '', + 'type' => 'number', + 'format' => 'float', + 'example' => '6845', + ], + 'P2pCount' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '78', + ], + 'P2pTraffic' => [ + 'description' => '', + 'type' => 'number', + 'format' => 'double', + 'example' => '4102', + ], + 'RtmpBps' => [ + 'description' => '', + 'type' => 'number', + 'format' => 'float', + 'example' => '3323', + ], + 'RtmpCount' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '63', + ], + 'RtmpTraffic' => [ + 'description' => '', + 'type' => 'number', + 'format' => 'double', + 'example' => '5568', + ], + 'RtsBps' => [ + 'description' => '', + 'type' => 'number', + 'format' => 'double', + 'example' => '2361', + ], + 'RtsCount' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '89', + ], + 'RtsTraffic' => [ + 'description' => '', + 'type' => 'number', + 'format' => 'double', + 'example' => '2322', + ], + 'StreamName' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'test.flv', + ], + 'TimeStamp' => [ + 'description' => '', + 'type' => 'string', + 'example' => '2015-12-10T20:00:00Z', + ], + 'Traffic' => [ + 'description' => '', + 'type' => 'number', + 'format' => 'double', + 'example' => '423304182', + ], + ], + ], + ], + 'TotalCount' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '50', + ], + 'PageNumber' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Meter.ParamError', + 'errorMessage' => 'Param Error:%s,Please Check Again.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Meter.AuthError', + 'errorMessage' => 'Authentication Failed,Please Try Again.', + ], + ], + 500 => [ + [ + 'errorCode' => 'Meter.ServerInternalError', + 'errorMessage' => 'The Request Processing Has Failed Due To Some Unknown Error.', + ], + [ + 'errorCode' => 'Meter.DataSourceQueryError', + 'errorMessage' => 'Data Source Error:%s,Please Try Again.', + ], + ], + 502 => [ + [ + 'errorCode' => 'Meter.ReadyTsError', + 'errorMessage' => 'Get ReadyTs Failed,Please Try Again.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + '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"}]', + ], + 'DescribeLiveDomainRecordUsageData' => [ + 'summary' => 'Queries the numbers of live recording channels and container format conversions.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain to query.'."\n" + ."\n" + .'* You can query one or more domain names. If you specify multiple domain names, separate them with commas (,).'."\n" + .'* If you leave this parameter empty, the data of all domain names within your Alibaba Cloud account is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'example.com', + ], + ], + [ + '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" + .'* The minimum data granularity is 5 minutes.'."\n" + .'* If you do not specify this parameter, the data in the last 24 hours is returned.'."\n" + ."\n" + .'> The earliest start time that you can specify is 90 days back from the current time, accurate to seconds.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2021-05-10T20:00:00Z', + ], + ], + [ + '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. Value requirements:'."\n" + ."\n" + .'* The end time is later than the start time.'."\n" + .'* The time range between the start time and end time is up to 31 days. If the time range is more than 31 days, the request fails and an error is reported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2021-05-10T21:00:00Z', + ], + ], + [ + 'name' => 'Region', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region. Valid values:'."\n" + ."\n" + .'* **cn-beijing**: China (Beijing)'."\n" + .'* **cn-shanghai**: China (Shanghai)'."\n" + .'* **cn-shenzhen**: China (Shenzhen)'."\n" + .'* **cn-qingdao**: China (Qingdao)'."\n" + .'* **ap-southeast-1**: Singapore'."\n" + .'* **eu-central-1**: Germany (Frankfurt)'."\n" + .'* **ap-northeast-1**: Japan (Tokyo)'."\n" + .'* **ap-southeast-5**: Indonesia (Jakarta)'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-shanghai', + ], + ], + [ + 'name' => 'SplitBy', + 'in' => 'query', + 'schema' => [ + 'description' => 'The key that is used to group data. Valid values:'."\n" + ."\n" + .'* **domain**: groups results by domain name.'."\n" + .'* **record_fmt**: groups results by recording type.'."\n" + ."\n" + .'> You can select one option or both. If you want to select both options, separate them with a comma (,). The default value is `domain,record_fmt`. If you leave this parameter empty or set the value to `null`, this parameter is ignored.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'domain,record_fmt', + 'default' => 'record_fmt,domain', + ], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time granularity of the query. Unit: seconds. Valid values:'."\n" + ."\n" + .'* 60'."\n" + .'* 300'."\n" + .'* 3600'."\n" + .'* 86400'."\n" + ."\n" + .'> If you do not specify this parameter or specify an invalid value: The time granularity of the query for a time range that is less than or equal to 31 days is 300 seconds by default. The time granularity of the query for a time range that is more than 31 days is 86400 seconds by default.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '300', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'EndTime' => [ + 'description' => 'The end of the time range during which data was queried.'."\n", + 'type' => 'string', + 'example' => '2021-05-10T21:00:00Z', + ], + 'StartTime' => [ + 'description' => 'The beginning of the time range during which data was queried.'."\n", + 'type' => 'string', + 'example' => '2021-05-10T20:00:00Z', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '4B460F8B-993C-4F48-B98A-910811DEBFEB', + ], + 'RecordUsageData' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DataModule' => [ + 'description' => 'The recording data that was collected for each interval.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Type' => [ + 'description' => 'The recording file type. This parameter is returned if the value of the request parameter SplitBy contains `record_fmt`.'."\n", + 'type' => 'string', + 'example' => 'MP4', + ], + 'Domain' => [ + 'description' => 'The main streaming domain. This parameter is returned if the value of the request parameter SplitBy contains `domain`.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'Region' => [ + 'description' => 'The region ID.'."\n", + 'type' => 'string', + 'example' => 'cn-shanghai', + ], + 'TimeStamp' => [ + 'description' => 'The time when recording started.'."\n", + 'type' => 'string', + 'example' => '2021-05-10T20:00:00Z', + ], + 'Duration' => [ + 'description' => 'The recording length. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '3560', + ], + 'Count' => [ + 'description' => 'The number of peak channels.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified StartTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidTime.Malformed', + 'errorMessage' => 'Specified StartTime or EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified end time does not math the specified start time.', + ], + [ + 'errorCode' => 'InvalidTimeSpan', + 'errorMessage' => 'The time span exceeds the limit.', + ], + [ + 'errorCode' => 'InvalidRecordFmt.NotSupported', + 'errorMessage' => 'The RecordFmt parameter is not supported.', + ], + [ + 'errorCode' => 'InvalidStartTime.ValueNotSupported', + 'errorMessage' => 'The specified value of parameter StartTime is not supported.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2021-05-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2021-05-10T20:00:00Z\\",\\n \\"RequestId\\": \\"4B460F8B-993C-4F48-B98A-910811DEBFEB\\",\\n \\"RecordUsageData\\": {\\n \\"DataModule\\": [\\n {\\n \\"Type\\": \\"MP4\\",\\n \\"Domain\\": \\"example.com\\",\\n \\"Region\\": \\"cn-shanghai\\",\\n \\"TimeStamp\\": \\"2021-05-10T20:00:00Z\\",\\n \\"Duration\\": 3560,\\n \\"Count\\": 1\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 2021-05-10T20:00:00Z\\n 2021-05-10T21:00:00Z\\n 4B460F8B-993C-4F48-B98A-910811DEBFEB\\n \\n \\n MP4\\n 3560\\n 1\\n example.com\\n 2021-05-10T20:00:00Z\\n \\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveDomainRecordUsageData', + 'description' => '* You can call this operation to query the number of concurrent recording channels on each day and event tracking data at different time intervals. This way, you can measure the peak number of concurrent recording channels on each day or month.'."\n" + .'* The number of time shifting channels is not included in the number of recording channels.'."\n" + .'* You can query data by domain name or query data for multiple domain names at a time. If you specify multiple domain names, separate them with commas (,).'."\n" + .'* If you set the data granularity to 1 minute, the maximum time range to query is 24 hours. You can query data in the last 60 days.'."\n" + .'* If you set the data granularity to 1 hour, the maximum time range to query is 31 days. You can query data in the last 180 days.'."\n" + .'* If you set the data granularity to 1 day, the maximum time range to query is 90 days. You can query data in the last 366 days.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => '## Special error codes'."\n" + ."\n" + .'|Error code|Description|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.|', + ], + 'DescribeLiveDomainSnapshotData' => [ + 'summary' => 'Queries the number of snapshots for one or more streaming domains.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain to query.'."\n" + ."\n" + .'* You can query one or more domain names. If you specify multiple domain names, separate them with commas (,).'."\n" + .'* If you leave this parameter empty, the data of all domain names within your Alibaba Cloud account is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'example.com', + ], + ], + [ + '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 **90** days.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2018-01-01T00:00:00Z', + ], + ], + [ + '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", + 'type' => 'string', + 'required' => true, + 'example' => '2018-01-02T00:00:00Z', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693F', + ], + 'SnapshotDataInfos' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SnapshotDataInfo' => [ + 'description' => 'The daily statistics on the number of snapshots.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The details.'."\n", + 'type' => 'object', + 'properties' => [ + 'Date' => [ + 'description' => 'The date.'."\n", + 'type' => 'string', + 'example' => '20180209', + ], + 'Total' => [ + 'description' => 'The total number of snapshots that were captured on the day.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '110', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified StartTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'StartTime or EndTime is mismatch.', + ], + [ + 'errorCode' => 'InvalidParamter', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B955107D-E658-4E77-B913-E0AC3D*****\\",\\n \\"SnapshotDataInfos\\": {\\n \\"SnapshotDataInfo\\": [\\n {\\n \\"Date\\": \\"20180209\\",\\n \\"Total\\": 110\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n B955107D-E658-4E77-B913-E0AC3D31693F\\n \\n \\n 20180209\\n 110\\n \\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveDomainSnapshotData', + 'description' => '* You can call this operation to collect statistics on the total number of snapshots on a day.'."\n" + .'* You can query data in the last 90 days.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'This operation does not have a queries per second (QPS) limit on a single user. You can call this operation based on your business requirements.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLiveDetectPornData' => [ + 'summary' => 'Queries the usage data of content 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain to query.'."\n" + ."\n" + .'* You can query one or more domain names. If you specify multiple domain names, separate them with commas (,).'."\n" + .'* If you do not specify this parameter, the data of all domain names within your Alibaba Cloud account is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'example.com', + ], + ], + [ + '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" + .'> '."\n" + ."\n" + .'* You can query data in the last 90 days.'."\n" + ."\n" + .'* The minimum data granularity is 5 minutes. If you do not specify this parameter, data in the last 24 hours is queried.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2017-12-10T08:00:00Z', + ], + ], + [ + '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", + 'type' => 'string', + 'required' => false, + 'example' => '2017-12-10T09:00:00Z', + ], + ], + [ + 'name' => 'App', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'Stream', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveStream****', + ], + ], + [ + 'name' => 'Fee', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether a quota of free image scanning is available. Valid values:'."\n" + ."\n" + .'* **free**: specifies that a quota of free image scanning is available.'."\n" + .'* **charge**: specifies that a quota of free image scanning is not available and fees are charged.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'free', + ], + ], + [ + 'name' => 'Scene', + 'in' => 'query', + 'schema' => [ + 'description' => 'The moderation scenario. Valid values:'."\n" + ."\n" + .'* **porn**: pornography detection. This is the default value.'."\n" + .'* **terrorism**: terrorism detection'."\n" + .'* **ad**: ad violation detection'."\n" + .'* **live**: undesirable scene detection'."\n" + .'* **logo**: logo detection'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'porn', + ], + ], + [ + 'name' => 'Region', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the domain name resides.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-shanghai', + ], + ], + [ + 'name' => 'SplitBy', + 'in' => 'query', + 'schema' => [ + 'description' => 'The fields based on which data is grouped. Separate multiple fields with commas (,).'."\n" + ."\n" + .'> If you leave the **SplitBy** parameter empty, only the **TimeStamp** and **Count** parameters are returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveApp****,liveStream****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', + ], + 'DetectPornData' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DataModule' => [ + 'description' => 'The bandwidth data returned at each interval.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The bandwidth data returned at each interval.'."\n", + 'type' => 'object', + 'properties' => [ + 'Domain' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'Region' => [ + 'description' => 'The region in which the domain name resides.'."\n", + 'type' => 'string', + 'example' => 'cn-shanghai', + ], + 'App' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'example' => 'liveApp****', + ], + 'Stream' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'example' => 'liveStream****', + ], + 'TimeStamp' => [ + 'description' => 'The timestamp of the data returned. 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-10T15:00:05Z', + ], + 'Count' => [ + 'description' => 'The number of reviewed images.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2', + ], + 'Scene' => [ + 'description' => 'The moderation scenario. Valid values:'."\n" + ."\n" + .'* **porn** (default): pornography'."\n" + .'* **terrorism**: terrorism or politically sensitive content'."\n" + .'* **ad**: ad violation'."\n" + .'* **live**: undesirable scene'."\n" + .'* **logo**'."\n", + 'type' => 'string', + 'example' => 'porn', + ], + 'Fee' => [ + 'description' => 'Indicates whether a quota of free image scanning is available. Valid values:'."\n" + ."\n" + .'* **free**'."\n" + .'* **charge**'."\n", + 'type' => 'string', + 'example' => 'free', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified StartTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified end time does not math the specified start time.', + ], + [ + 'errorCode' => 'InvalidStartTime.ValueNotSupported', + 'errorMessage' => 'The specified value of parameter StartTime is not supported.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B955107D-E658-4E77-B913-E0AC3D31693E\\",\\n \\"DetectPornData\\": {\\n \\"DataModule\\": [\\n {\\n \\"Domain\\": \\"example.com\\",\\n \\"Region\\": \\"cn-shanghai\\",\\n \\"App\\": \\"liveApp****\\",\\n \\"Stream\\": \\"liveStream****\\",\\n \\"TimeStamp\\": \\"2017-12-10T15:00:05Z\\",\\n \\"Count\\": 2,\\n \\"Scene\\": \\"porn\\",\\n \\"Fee\\": \\"free\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n B955107D-E658-4E77-B913-E0AC3D31693E\\n \\n example.com\\n cn-shanghai\\n liveApp****\\n liveStream****\\n 2017-12-10T15:00:05Z\\n 2\\n porn\\n free\\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveDetectPornData', + 'description' => '* The minimum data granularity is 5 minutes. If you do not specify the `StartTime` parameter, data in the last 24 hours is queried.'."\n" + .'* You can query data in the last 90 days.'."\n" + .'* You can call this operation to query the bandwidth at each interval.'."\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", + '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.|', + ], + 'DescribeDomainUsageData' => [ + 'summary' => 'Queries the resource usage data of specific domain names in a specified billable region.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The domain name.'."\n" + ."\n" + .'* You can query one or more domain names. If you specify multiple domain names, separate them with commas (,).'."\n" + .'* If you leave this parameter empty, the data of all domain names within your Alibaba Cloud account is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'example.com', + ], + ], + [ + '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", + 'type' => 'string', + 'required' => true, + 'example' => '2015-12-10T20:00:00Z', + ], + ], + [ + '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 end time must be later than the start time. The maximum time range that you can specify is **31** days.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2015-12-10T21:00:00Z', + ], + ], + [ + 'name' => 'Type', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the resource usage data to query.'."\n" + ."\n" + .'Valid values if you set **Field** to **bps** or **traf**:'."\n" + ."\n" + .'* **rts**: bandwidth or traffic for Real-Time Streaming (RTS)'."\n" + .'* **quic**: bandwidth or traffic for QUIC'."\n" + .'* **all**: all bandwidth or traffic'."\n" + ."\n" + .'Valid values if you set **Field** to **req_traf** or **req_bps**:'."\n" + ."\n" + .'* **push**: stream ingest bandwidth or traffic'."\n" + .'* **push_proxy**: stream relay bandwidth or traffic'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'all', + 'default' => 'all', + 'enum' => [ + 'static', + 'dynamic', + 'quic', + 'rts', + 'push', + 'normal', + 'all', + 'push_proxy', + ], + ], + ], + [ + 'name' => 'Field', + 'in' => 'query', + 'schema' => [ + 'description' => 'The category of the resource usage data to query. Valid values:'."\n" + ."\n" + .'* **bps**: streaming bandwidth'."\n" + .'* **traf**: streaming traffic'."\n" + .'* **req_traf**: stream ingest traffic if you set Type to push, or stream relay traffic if you set Type to push_proxy'."\n" + .'* **req_bps**: stream ingest bandwidth if you set Type to push, or stream relay bandwidth if you set Type to push_proxy'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'traf', + ], + ], + [ + 'name' => 'Area', + 'in' => 'query', + 'schema' => [ + 'description' => 'The billable region. Valid values:'."\n" + ."\n" + .'* **CN**: Chinese mainland'."\n" + .'* **OverSeas**: outside the Chinese mainland'."\n" + .'* **AP1**: Asia Pacific 1'."\n" + .'* **AP2**: Asia Pacific 2'."\n" + .'* **AP3**: Asia Pacific 3'."\n" + .'* **NA**: North America'."\n" + .'* **SA**: South America'."\n" + .'* **EU**: Europe'."\n" + .'* **MEAA**: Middle East and Africa'."\n" + .'* **all**: all regions'."\n" + ."\n" + .'> If you do not specify this parameter, the default value CN is used. Alibaba Cloud supports the following countries and regions outside the Chinese mainland: - Asia Pacific 1: Hong Kong (China), Macao (China), Taiwan (China), Japan, and Southeast Asia excluding Vietnam and Indonesia. - Asia Pacific 2: Indonesia, South Korea, and Vietnam. - Asia Pacific 3: Australia and New Zealand. - North America: US and Canada. - South America: Brazil. Europe: Ukraine, UK, France, Netherlands, Spain, Italy, Sweden, and Germany. - Middle East and Africa: South Africa, Oman, UAE, and Kuwait.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'CN', + 'default' => 'CN', + ], + ], + [ + 'name' => 'DataProtocol', + 'in' => 'query', + 'schema' => [ + 'description' => 'The protocol of the data to query. Valid values:'."\n" + ."\n" + .'* **http**: HTTP'."\n" + .'* **https**: HTTPS'."\n" + .'* **quic**: QUIC'."\n" + .'* **all** (default): HTTP, HTTPS, and QUIC'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'all', + 'default' => 'all', + ], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time interval between the data entries to return. Unit: seconds. Valid values: **300** (5 minutes), **3600** (1 hour), and **86400** (1 day).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '300', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'EndTime' => [ + 'description' => 'The end of the time range for which the resource usage data was queried. 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' => '2015-12-10T21:00Z', + ], + 'Type' => [ + 'description' => 'The type of the resource usage data.'."\n", + 'type' => 'string', + 'example' => 'all', + ], + 'StartTime' => [ + 'description' => 'The beginning of the time range for which the resource usage data was queried. 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' => '2015-12-10T20:00Z', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', + ], + 'Area' => [ + 'description' => 'The billable region where the resource usage data was generated.'."\n", + 'type' => 'string', + 'example' => 'CN', + ], + 'DomainName' => [ + 'description' => 'The domain name.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'DataInterval' => [ + 'description' => 'The time interval between the returned entries. Unit: seconds.'."\n", + 'type' => 'string', + 'example' => '300', + ], + 'UsageDataPerInterval' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DataModule' => [ + 'description' => 'The resource usage data that was collected for each time interval.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Value' => [ + 'description' => 'The amount of resource usage.'."\n" + ."\n" + .'* If the value of the Field parameter is traf or req_traf, the returned data is measured in bytes.'."\n" + .'* If the value of the Field parameter is bps or req_bps, the returned data is measured in bit/s.'."\n" + .'* If the value of the Field parameter is acc, the returned data is measured by count.'."\n", + 'type' => 'string', + 'example' => '423304182', + ], + 'TimeStamp' => [ + 'description' => 'The timestamp of the returned data. 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' => '2015-12-10T20:00:00Z', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvaildParameter', + 'errorMessage' => 'Invalid Parameter', + ], + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified StartTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidStartTime.ValueNotSupported', + 'errorMessage' => 'The specified value of parameter StartTime is not supported.', + ], + [ + 'errorCode' => 'InvalidTime.Malformed', + 'errorMessage' => 'Specified Time is malformed.', + ], + [ + 'errorCode' => 'InvalidParameterField', + 'errorMessage' => 'The specified Field is invalid.', + ], + [ + 'errorCode' => 'InvalidParameterType', + 'errorMessage' => 'The specified Type is invalid.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified end time does not math the specified start time.', + ], + [ + 'errorCode' => 'InvalidTimeSpan', + 'errorMessage' => 'The time span exceeds the limit.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2015-12-10T21:00Z\\",\\n \\"Type\\": \\"all\\",\\n \\"StartTime\\": \\"2015-12-10T20:00Z\\",\\n \\"RequestId\\": \\"B955107D-E658-4E77-B913-E0AC3D31693E\\",\\n \\"Area\\": \\"CN\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"UsageDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"Value\\": \\"423304182\\",\\n \\"TimeStamp\\": \\"2015-12-10T20:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n example.com\\n 300\\n \\n \\n 2015-12-10T20:00:00Z\\n 423304182\\n \\n \\n 2015-12-10T20:05:00Z\\n 454680793\\n \\n \\n 2015-12-10T20:10:00Z\\n 501718342\\n \\n \\n 2015-12-10T20:15:00Z\\n 434816025\\n \\n \\n B955107D-E658-4E77-B913-E0AC3D31693E\\n 2015-12-10T20:00Z\\n 2015-12-10T21:00Z\\n CN\\n all\\n","errorExample":""}]', + 'title' => 'DescribeDomainUsageData', + 'description' => '* You can query the resource usage data of up to 100 domain names at a time. Separate multiple domain names with commas (,). If you do not specify the DomainName parameter, the resource usage data of all domain names within your Alibaba Cloud account is returned.'."\n" + ."\n" + .'* The resource usage data includes network traffic that is measured in bytes, bandwidth that is measured in bit/s, and the number of requests.'."\n" + ."\n" + .'* If you do not specify the Interval parameter, you can query the resource usage data in the last 12 months that spans a period of up to 31 days per call. If you specify a time range of 1 to 3 days in a call, the time interval between the entries that are returned is 1 hour. If you specify a time range of more than 3 days in a call, the time interval between the entries that are returned is 1 day.'."\n" + ."\n" + .'* The following table describes the maximum time range per query, the time period within which historical data is available, and the data delay if you specify the Interval parameter.'."\n" + ."\n" + .'|Time granularity|Maximum time range per query|Historical data available|Data delay|'."\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|04:00 on the next day|'."\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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.', + 'requestParamsDescription' => '> '."\n" + .'Stable resource usage data at a specific point in time (T) can be queried at and after the point in time of T+N. N is 2 hours.'."\n" + ."\n" + .'For example, at 15:00:00 on December 21, you can retrieve the stable resource usage data at and before 13:00:00 on December 21.', + 'responseParamsDescription' => '## 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 throttling. |'."\n" + .'| IllegalOperation | Illegal domain, operation is not permitted. | 403 | The error message returned because the domain name is invalid. |'."\n" + .'| OperationDenied | Your account does not open Live service yet. | 403 | The error message returned because ApsaraVideo Live is not activated. |'."\n" + .'| OperationDenied | Your Live service is suspended. | 403 | The error message returned because ApsaraVideo Live is suspended. |'."\n" + .'| InvalidDomain.NotFound | The domain provided does not belong to you. | 404 | The error message returned because the domain name does not exist or does not belong to your account. |'."\n" + .'| InvalidDomain.Offline | The domain provided is offline. | 404 | The error message returned because the domain name is disabled. |'."\n" + .'| ServiceBusy | The specified Domain is configuring, please retry later. | 403 | The error message returned because the domain name is being configured. Try again later. |'."\n" + .'| InvalidDomain.Configure_failed | Failed to configure the provided domain. | 500 | The error message returned because the domain name failed to be configured. |'."\n" + .'| InvalidParameter | Invalid Parameter. | 400 | The error message returned because one or more parameters are invalid. |'."\n" + .'| InvalidParameterProduct | Invalid Parameter Product. | 400 | The error message returned because the value of the Product parameter is invalid. |'."\n" + .'| InvalidParameterArea | Invalid Parameter Area. | 400 | The error message returned because the value of the Area parameter is invalid. |'."\n" + .'| InvalidParameterField | Invalid Parameter Field. | 400 | The error message returned because the value of the Field parameter is invalid. |'."\n" + .'| InvalidParameterStartTime | Invalid Parameter StartTime. | 400 | The error message returned because the value of the StartTime parameter is invalid. |'."\n" + .'| InvalidParameterEndTime | Invalid Parameter EndTime. | 400 | The error message returned because the value of the EndTime parameter is invalid. |'."\n" + .'| InvalidTimeRange | StartTime and EndTime range should less than 1 month. | 400 | The error message returned because the time range that is specified by the StartTime and EndTime parameters exceeds 31 days. |'."\n" + .'| InvalidParameterInterval | Invalid Parameter Interval. | 400 | The error message returned because the value of the Interval parameter is invalid. |', + ], + 'DescribeLivePushProxyUsageData' => [ + 'summary' => 'Queries the usage data of live center stream relay.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Region', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region. Separate multiple region IDs with commas (,). Valid values:'."\n" + ."\n" + .'* cn-beijing: China (Beijing)'."\n" + .'* cn-shanghai: China (Shanghai)'."\n" + .'* cn-shenzhen: China (Shenzhen)'."\n" + .'* cn-qingdao: China (Qingdao)'."\n" + .'* ap-southeast-1: Singapore'."\n" + .'* eu-central-1: Germany (Frankfurt)'."\n" + .'* ap-northeast-1: Japan (Tokyo)'."\n" + .'* ap-southeast-5: Indonesia (Jakarta)'."\n" + ."\n" + .'If you do not specify this parameter, data of all regions is aggregated and returned by default.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-beijing', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain to query.'."\n" + ."\n" + .'* You can query one or more domain names. If you specify multiple domain names, separate them with commas (,).'."\n" + .'* If you leave this parameter empty, the data of all domain names within your Alibaba Cloud account is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'example.com', + ], + ], + [ + '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 in the last seven days is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2022-10-10T20:00:00Z', + ], + ], + [ + '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. The end time must be later than the start time.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2022-10-10T21:00:00Z', + ], + ], + [ + 'name' => 'SplitBy', + 'in' => 'query', + 'schema' => [ + 'description' => 'The key that is used to group data. If you do not specify this parameter, the default value region is used. Data is aggregated and returned. Separate multiple keys with commas (,). Valid values:'."\n" + ."\n" + .'* domain: The value of DomainName in the response takes effect only if SplitBy is set to domain.'."\n" + .'* region: This is the default value. The value of Region in the response takes effect only if SplitBy is set to region.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'region', + 'default' => 'region', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'EndTime' => [ + 'description' => 'The end time.'."\n", + 'type' => 'string', + 'example' => '2022-10-10T21:00:00Z', + ], + 'PushProxyData' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'PushProxyDataItem' => [ + 'description' => 'The usage data of live center stream relay.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The usage data of live center stream relay.'."\n", + 'type' => 'object', + 'properties' => [ + 'DomainName' => [ + 'description' => 'The domain name. If the value of SplitBy includes domain, the returned data is grouped by domain name.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'Region' => [ + 'description' => 'The ID of the region. If the value of SplitBy includes region, the returned data is grouped by region.'."\n", + 'type' => 'string', + 'example' => 'cn-beijing', + ], + 'StreamCount' => [ + 'description' => 'The peak number of live center stream relay channels.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '8', + ], + 'TimeStamp' => [ + 'description' => 'The timestamp of the returned data.'."\n", + 'type' => 'string', + 'example' => '2022-10-10T20:00:00Z', + ], + ], + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '4B460F8B-993C-4F48-B98A-910811DEBFEB', + ], + 'StartTime' => [ + 'description' => 'The start time.'."\n", + 'type' => 'string', + 'example' => '2022-10-10T20:00:00Z', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified StartTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidTime.Malformed', + 'errorMessage' => 'Specified StartTime or EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified end time does not math the specified start time.', + ], + [ + 'errorCode' => 'InvalidTimeSpan', + 'errorMessage' => 'The time span exceeds the limit.', + ], + [ + 'errorCode' => 'InvalidTime.ValueNotSupported', + 'errorMessage' => 'Specified Time is malformed.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2022-10-10T21:00:00Z\\",\\n \\"PushProxyData\\": {\\n \\"PushProxyDataItem\\": [\\n {\\n \\"DomainName\\": \\"example.com\\",\\n \\"Region\\": \\"cn-beijing\\",\\n \\"StreamCount\\": 8,\\n \\"TimeStamp\\": \\"2022-10-10T20:00:00Z\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"4B460F8B-993C-4F48-B98A-910811DEBFEB\\",\\n \\"StartTime\\": \\"2022-10-10T20:00:00Z\\"\\n}","errorExample":""},{"type":"xml","example":"\\n C370DAF1-C838-4288-A1A0-9A87633D248E\\n 2018-09-30T16:00:00Z\\n 2018-10-31T15:59:59Z\\n \\n \\n example.com\\n 6777\\n 2018-09-30T00:00:00Z\\n \\n \\n example.com\\n 6777\\n 2018-09-30T00:00:00Z\\n \\n \\n example.com\\n 6777\\n 2018-10-01T00:00:00Z\\n \\n \\n example.com\\n 6777\\n 2018-10-01T00:00:00Z\\n \\n \\n","errorExample":""}]', + 'title' => 'DescribeLivePushProxyUsageData', + 'description' => '* You can call this operation to query the usage data of live center stream relay.'."\n" + .'* The maximum time range for a query is 31 days.'."\n" + .'* The minimum time granularity for a query is 1 day.'."\n" + .'* You can query the data in the last 90 days.'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + ], + 'DescribeLiveRealtimeDeliveryAcc' => [ + 'summary' => 'Queries the number of real-time log deliveries.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + '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", + 'type' => 'string', + 'required' => false, + 'example' => '2015-12-10T20:00:00Z', + ], + ], + [ + '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 end time must be later than the start time. The maximum time range that can be specified is one year.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2015-12-10T21:05:00Z', + ], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time granularity of the query. Unit: seconds. Valid values:'."\n" + ."\n" + .'* **300**'."\n" + .'* **3600**'."\n" + .'* **86400**'."\n" + ."\n" + .'If you specify an invalid value or do not specify this parameter, the default value is used. If the specified time range is no more than three days, the default value is 300. If the specified time range is more than three days and no more than 30 days, the default value is 3600. If the specified time range is more than 30 days, the default value is 86400.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '3600', + ], + ], + [ + 'name' => 'Project', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the Log Service project that is used for real-time log delivery. If you leave this parameter empty, the data of all Log Service projects is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'project_example', + ], + ], + [ + 'name' => 'LogStore', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the Logstore to which log entries are delivered. If you leave this parameter empty, the data of all Logstores is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'logstore_example', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain.'."\n" + ."\n" + .'* You can query one or more domain names. If you specify multiple domain names, separate them with commas (,).'."\n" + .'* If you leave this parameter empty, the data of all domain names within your Alibaba Cloud account is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'example.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '684306D2-2511-4977-991D-CE97E91FD7C0', + ], + 'RealTimeDeliveryAccData' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AccData' => [ + 'description' => 'The information about real-time log deliveries.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TimeStamp' => [ + 'description' => 'The timestamp of the data returned.'."\n", + 'type' => 'string', + 'example' => '2015-12-10T20:00:00Z', + ], + 'FailedNum' => [ + 'description' => 'The number of failed real-time log deliveries.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'SuccessNum' => [ + 'description' => 'The number of successful real-time log deliveries.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '321321', + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified StartTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidStartTime.ValueNotSupported', + 'errorMessage' => 'The specified value of parameter StartTime is not supported.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified end time does not math the specified start time.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"684306D2-2511-4977-991D-CE97E91FD7C0\\",\\n \\"RealTimeDeliveryAccData\\": {\\n \\"AccData\\": [\\n {\\n \\"TimeStamp\\": \\"2015-12-10T20:00:00Z\\",\\n \\"FailedNum\\": 0,\\n \\"SuccessNum\\": 321321\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 684306D2-2511-4977-991D-CE97E91FD7C0\\n \\n 2015-12-10T20:00:00Z\\n 0\\n 321321\\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveRealtimeDeliveryAcc', + 'description' => '* You can collect statistics on the number of real-time log deliveries. The number of failed real-time log deliveries and the number of successful real-time log deliveries are counted.'."\n" + .'* You can query the data by UID.'."\n" + .'* You are charged for both successful and failed real-time log deliveries.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => '### Special error codes'."\n" + ."\n" + .'|Error code|Error message|HTTP status code|Description|'."\n" + .'|---|---|---|---|'."\n" + .'|InvalidStartTime.ValueNotSupported|The specified value of parameter StartTime is not supported.|400|The error message returned because the time range that is specified by the EndTime and StartTime parameters exceeds 90 days.|'."\n" + .'|InvalidEndTime.Mismatch|Specified EndTime does not math the specified StartTime.|400|The error message returned because the end time is earlier than the start time.|', + ], + 'DescribeLiveDomainTimeShiftData' => [ + 'summary' => 'Queries the resource usage data of time shifting for one or more domain names.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain to query.'."\n" + ."\n" + .'* You can query one or more domain names. If you specify multiple domain names, separate them with commas (,).'."\n" + .'* If you leave this parameter empty, the data of all domain names within your Alibaba Cloud account is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'example.com', + ], + ], + [ + '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" + .'> '."\n" + ."\n" + .'* The minimum data granularity is 5 minutes.'."\n" + ."\n" + .'* If you leave this parameter empty, data in the last 24 hours is queried.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2021-03-03T00:00:00Z', + ], + ], + [ + '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", + 'type' => 'string', + 'required' => false, + 'example' => '2021-03-03T02:00:00Z', + ], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time granularity of the query. Unit: seconds. Valid values:'."\n" + ."\n" + .'* 300'."\n" + .'* 3600'."\n" + .'* 86400'."\n" + ."\n" + .'If you do not specify this parameter or specify an invalid value, the default value 300 is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '300', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '8AE1CB3A-6510-442E-A6B9-EF03D05B3E09', + ], + 'TimeShiftData' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DataModule' => [ + 'description' => 'The time shifting usage data that was collected for each time interval.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The time shifting usage data that was collected for each time interval.'."\n", + 'type' => 'object', + 'properties' => [ + 'Type' => [ + 'description' => 'The type of time shifting. Examples: HLS_D1 and HLS_D7.'."\n", + 'type' => 'string', + 'example' => 'HLS_D7', + ], + 'TimeStamp' => [ + 'description' => 'The timestamp of the data returned.'."\n", + 'type' => 'string', + 'example' => '2021-03-03T00:00:00Z', + ], + 'Size' => [ + 'description' => 'The storage used for time shifting. Unit: bytes.'."\n", + 'type' => 'string', + 'example' => '1664165660', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified StartTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified end time does not math the specified start time.', + ], + [ + 'errorCode' => 'InvalidStartTime.ValueNotSupported', + 'errorMessage' => 'The specified value of parameter StartTime is not supported.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"8AE1CB3A-6510-442E-A6B9-EF03D05B3E09\\",\\n \\"TimeShiftData\\": {\\n \\"DataModule\\": [\\n {\\n \\"Type\\": \\"HLS_D7\\",\\n \\"TimeStamp\\": \\"2021-03-03T00:00:00Z\\",\\n \\"Size\\": \\"1664165660\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\n \\n HLS_D7\\n 1664165660\\n 2021-03-03T00:00:00Z\\n \\n\\n8AE1CB3A-6510-442E-A6B9-EF03D05B3E09\\n","errorExample":""}]', + 'title' => 'DescribeLiveDomainTimeShiftData', + 'description' => '* You can call this operation to query the time shifting usage data at each time interval.'."\n" + .'* You can query data in the last 90 days.'."\n" + .'* The time interval is 1 hour.'."\n" + .'* The maximum time range for a query is 31 days.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + ], + 'DescribeLiveDomainStreamTranscodeData' => [ + 'summary' => 'Queries the transcoding length for one or more domain names.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain to query.'."\n" + ."\n" + .'* You can query one or more domain names. If you specify multiple domain names, separate them with commas (,).'."\n" + .'* If you leave this parameter empty, the data of all domain names within your Alibaba Cloud account is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'example.com', + ], + ], + [ + '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" + .'* The minimum query interval is 1 hour.'."\n" + .'* If you do not set this parameter, the transcoding length for the last 24 hours is returned.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2017-12-10T20:00:00Z', + ], + ], + [ + '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", + 'type' => 'string', + 'required' => true, + 'example' => '2017-12-10T22:00:00Z', + ], + ], + [ + 'name' => 'Precision', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time precision of the query. Valid values:'."\n" + ."\n" + .'* **min** (default): in minutes.'."\n" + .'* **sec**: in seconds.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'min', + 'default' => 'min', + 'enum' => [ + 'min', + 'sec', + ], + ], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time granularity of the query. Unit: seconds. Valid values:'."\n" + ."\n" + .'* **3600**: 1 hour'."\n" + .'* **86400**: 1 day'."\n" + ."\n" + .'> If you do not specify this parameter, the time granularity of 1 hour is used by default.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '3600', + 'enum' => [ + '3600', + '86400', + ], + ], + ], + [ + 'name' => 'Split', + 'in' => 'query', + 'schema' => [ + 'description' => 'The key that is used to group data. Valid values:'."\n" + ."\n" + .'* **domain**: The DomainName parameter is available in the response only if Split is set to domain.'."\n" + .'* **region**: The Region parameter is available in the response only if Split is set to region.'."\n" + .'* **transcode_type**: The TanscodeType parameter is available in the response only if Split is set to transcode_type.'."\n" + .'* **resolution**: The Resolution parameter is available in the response only if Split is set to resolution.'."\n" + .'* **fps**: The Fps parameter is available in the response only if Split is set to fps.'."\n" + ."\n" + .'You can specify one or more keys. If you specify multiple keys, separate them with commas (,).'."\n" + ."\n" + .'Default value: `domain,region,transcode_type,resolution,fps`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'domain', + 'default' => 'domain,region,transcode_type,resolution,fps', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F', + ], + 'TranscodeDataList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'TranscodeData' => [ + 'description' => 'The transcoding usage data returned at each interval.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TanscodeType' => [ + 'description' => 'The transcoding type. Valid values:'."\n" + ."\n" + .'> This parameter takes effect only if the request parameter Split is set to transcode_type.'."\n" + ."\n" + .'* **H264NBHD**: Narrowband HD™ transcoding based on H.264'."\n" + .'* **H265NBHD**: Narrowband HD™ transcoding based on H.265'."\n" + .'* **AUDIO**: audio transcoding'."\n", + 'type' => 'string', + 'example' => 'H264STD', + ], + 'Domain' => [ + 'description' => 'The main streaming domain. This parameter is returned only when you add the domain key to the value of the Split parameter.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'Region' => [ + 'description' => 'The region in which the domain name resides. Valid values:'."\n" + ."\n" + .'> This parameter takes effect only when you set Split to region.'."\n" + ."\n" + .'* **cn-beijing**: China (Beijing)'."\n" + .'* **cn-shanghai**: China (Shanghai)'."\n" + .'* **cn-qingdao**: China (Qingdao)'."\n" + .'* **cn-shenzhen**: China (Shenzhen)'."\n" + .'* **ap-northeast-1**: Japan (Tokyo)'."\n" + .'* **ap-southeast-1**: Singapore'."\n" + .'* **ap-southeast-5**: Indonesia (Jakarta)'."\n" + .'* **eu-central-1**: Germany (Frankfurt)'."\n", + 'type' => 'string', + 'example' => 'cn-beijing', + ], + 'Duration' => [ + 'description' => 'The transcoding length. Unit: minutes.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '2000', + ], + 'TimeStamp' => [ + 'description' => 'The timestamp of the data entry.'."\n", + 'type' => 'string', + 'example' => '2017-12-10T20:00:00Z', + ], + 'Fps' => [ + 'description' => 'The frame rate of the transcoded stream. This parameter is returned only when you add the fps key to the value of the Split parameter.'."\n", + 'type' => 'string', + 'example' => 'normal', + ], + 'Resolution' => [ + 'description' => 'The resolution of the transcoded stream. This parameter is returned only when you add the resolution key to the value of the Split parameter. Valid values:'."\n" + ."\n" + .'* **2K**'."\n" + .'* **4K**'."\n" + .'* **LD**: low definition'."\n" + .'* **SD**: standard definition'."\n" + .'* **HD**: high definition'."\n" + .'* **def**: audio'."\n", + 'type' => 'string', + 'example' => 'HD', + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified StartTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidParamPrecision', + 'errorMessage' => 'The parameter Precision is invalid, please check StartTime and EndTime or Precision.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified end time does not math the specified start time.', + ], + [ + 'errorCode' => 'InvalidTimeSpan', + 'errorMessage' => 'The time span exceeds the limit.', + ], + [ + 'errorCode' => 'InvalidStartTime.ValueNotSupported', + 'errorMessage' => 'The specified value of parameter StartTime is not supported.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"3C6CCEC4-6B88-4D4A-93E4-D47B******\\",\\n \\"TranscodeDataList\\": {\\n \\"TranscodeData\\": [\\n {\\n \\"TanscodeType\\": \\"H264STD\\",\\n \\"Domain\\": \\"example.com\\",\\n \\"Region\\": \\"cn-beijing\\",\\n \\"Duration\\": 2000,\\n \\"TimeStamp\\": \\"2017-12-10T20:00:00Z\\",\\n \\"Fps\\": \\"normal\\",\\n \\"Resolution\\": \\"HD\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F\\n\\n \\n normal\\n cn-beijing\\n 2000\\n H264STD\\n example.com\\n 2017-12-10T20:00:00Z\\n HD\\n \\n\\n","errorExample":""}]', + 'title' => 'DescribeLiveDomainStreamTranscodeData', + 'description' => '* You can call this operation to collect the transcoding usage data at each time interval.'."\n" + .'* You can specify multiple domain names by separating them with commas (,).'."\n" + .'* You can query data in the last 90 days.'."\n" + .'* The time granularity of data is 1 hour or 1 day.'."\n" + .'* For information about the billing of different transcoding types and transcoding resolutions, see the description about billing of different transcoding specifications in transcoding bills in the [Billing of live stream transcoding](~~90424~~) section of the ApsaraVideo Live pricing page.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 20 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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => '## 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 throttling. |'."\n" + .'| InvalidDomain.NotFound | The domain provided does not belong to you. | 404 | The error message returned because the domain name does not exist or does not belong to your Alibaba Cloud account. |', + ], + 'DescribeLiveProducerUsageData' => [ + 'summary' => 'Queries the production 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Region', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the domain name resides. If you leave this parameter empty, the data of all regions is returned. You can specify multiple regions by separating them with commas (,).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain of the production studio.'."\n" + ."\n" + .'* You can query one or more domain names. If you specify multiple domain names, separate them with commas (,).'."\n" + .'* If you leave this parameter empty, the data of all domain names within your Alibaba Cloud account is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'Instance', + 'in' => 'query', + 'schema' => [ + 'description' => 'The production studio instance that you want to query. You can specify one or more production studio instances. Separate multiple instances with commas (,).'."\n" + ."\n" + .'> If you do not set this parameter, the usage data of all production studio instances is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'a17d0184-462d-4630-b2a6-8c26dde2****', + ], + ], + [ + 'name' => 'Type', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the production studio. You can specify one or more production studio types. Separate multiple types with commas (,). Valid values:'."\n" + ."\n" + .'* **slidelive**: playlist-mode studio.'."\n" + .'* **universal**: general studio.'."\n" + ."\n" + .'> If you do not set this parameter, the usage data of all types of production studios is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'slidelive', + ], + ], + [ + 'name' => 'SplitBy', + 'in' => 'query', + 'schema' => [ + 'description' => 'The key that is used to group data. You can specify one or more keys. Separate multiple keys with commas (,). Valid values: domain, region, instance, and type. The data for a key that you specify by using the SplitBy parameter is returned by group.'."\n" + ."\n" + .'> If you do not set this parameter, the aggregated data is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'type', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2018-09-30T16:00:00Z', + ], + ], + [ + '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.'."\n" + ."\n" + .'> The end time must be later than the start time.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2018-10-31T15:59:59Z', + ], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time granularity for a query. Valid values: 3600 and 86400. Unit: seconds.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '3600', + ], + ], + [ + 'name' => 'app', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveApp****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'BillProducerData' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'BillProducerDataItem' => [ + 'description' => 'The production studio usage data.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'DomainName' => [ + 'description' => 'The domain name. If domain is specified by the SplitBy parameter, the usage data is returned based on different domain names.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'Instance' => [ + 'description' => 'The production studio instance. If instance is specified by the SplitBy parameter, the usage data is returned based on different production studio instances.'."\n", + 'type' => 'string', + 'example' => 'a17d0184-462d-4630-b2a6-8c26dde2****', + ], + 'OutputHdDuration' => [ + 'description' => 'The duration of high definition streaming. Unit: minutes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '6000', + ], + 'OutputLdDuration' => [ + 'description' => 'The duration of low definition streaming. Unit: minutes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1001', + ], + 'OutputSdDuration' => [ + 'description' => 'The duration of standard definition streaming. Unit: minutes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '500', + ], + 'Region' => [ + 'description' => 'The region. If region is specified by the SplitBy parameter, the usage data is returned based on different regions.'."\n", + 'type' => 'string', + 'example' => 'cn-shanghai', + ], + 'TimeStamp' => [ + 'description' => 'The timestamp of the returned data.'."\n", + 'type' => 'string', + 'example' => '2018-09-30T00:00:00Z', + ], + 'TranHdDuration' => [ + 'description' => 'The duration of high definition transcoding. Unit: minutes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '6777', + ], + 'TranLdDuration' => [ + 'description' => 'The duration of low definition transcoding. Unit: minutes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '111', + ], + 'TranSdDuration' => [ + 'description' => 'The duration of standard definition transcoding. Unit: minutes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '666', + ], + 'Type' => [ + 'description' => 'The type of the production studio. If type is specified by the SplitBy parameter, the usage data is returned based on different types of production studios.'."\n", + 'type' => 'string', + 'example' => 'slidelive', + ], + ], + ], + ], + ], + ], + 'EndTime' => [ + 'description' => 'The end of the time range during which data was queried.'."\n", + 'type' => 'string', + 'example' => '2018-09-30T16:00:00Z', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'C370DAF1-C838-4288-A1A0-9A87633D248E', + ], + 'StartTime' => [ + 'description' => 'The start of the time range for which the data was queried.'."\n", + 'type' => 'string', + 'example' => '2018-10-31T15:59:59Z', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified StartTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidTime.Malformed', + 'errorMessage' => 'Specified StartTime or EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified end time does not math the specified start time.', + ], + [ + 'errorCode' => 'InvalidTimeSpan', + 'errorMessage' => 'The time span exceeds the limit.', + ], + [ + 'errorCode' => 'InvalidTime.ValueNotSupported', + 'errorMessage' => 'Specified Time is malformed.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"BillProducerData\\": {\\n \\"BillProducerDataItem\\": [\\n {\\n \\"DomainName\\": \\"example.com\\",\\n \\"Instance\\": \\"a17d0184-462d-4630-b2a6-8c26dde2****\\",\\n \\"OutputHdDuration\\": 6000,\\n \\"OutputLdDuration\\": 1001,\\n \\"OutputSdDuration\\": 500,\\n \\"Region\\": \\"cn-shanghai\\",\\n \\"TimeStamp\\": \\"2018-09-30T00:00:00Z\\",\\n \\"TranHdDuration\\": 6777,\\n \\"TranLdDuration\\": 111,\\n \\"TranSdDuration\\": 666,\\n \\"Type\\": \\"slidelive\\"\\n }\\n ]\\n },\\n \\"EndTime\\": \\"2018-09-30T16:00:00Z\\",\\n \\"RequestId\\": \\"C370DAF1-C838-4288-A1A0-9A87633D248E\\",\\n \\"StartTime\\": \\"2018-10-31T15:59:59Z\\"\\n}","errorExample":""},{"type":"xml","example":"\\n C370DAF1-C838-4288-A1A0-9A87633D248E\\n 2018-09-30T16:00:00Z\\n 2018-10-31T15:59:59Z\\n \\n \\n 1001\\n 500\\n 6000\\n 111\\n 666\\n 6777\\n 2018-09-30T00:00:00Z\\n \\n \\n 1001\\n 500\\n 6000\\n 111\\n 666\\n 6777\\n 2018-10-01T00:00:00Z\\n \\n \\n 1001\\n 500\\n 6000\\n 111\\n 666\\n 6777\\n 2018-10-02T00:00:00Z\\n \\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveProducerUsageData', + 'description' => 'The minimum time granularity for a query is 1 hour. The maximum time range for a query is 31 days. You can query the production studio usage data in the last 90 days.'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + ], + 'DescribeLiveDomainMonitoringUsageData' => [ + 'summary' => 'Queries the live monitoring usage data for one or more domain names.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain to query.'."\n" + ."\n" + .'* You can query one or more domain names. If you specify multiple domain names, separate them with commas (,).'."\n" + .'* If you leave this parameter empty, the data of all domain names within your Alibaba Cloud account is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'example.com', + ], + ], + [ + '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.'."\n" + ."\n" + .'* The time must be in UTC.'."\n" + .'* The minimum data granularity is 1 hour.'."\n" + .'* If you leave this parameter empty, data in the previous 24 hours is queried.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2022-12-10T20:00:00Z', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2022-12-10T22:00:00Z', + ], + ], + [ + 'name' => 'Region', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region of the live center. If you leave this parameter empty, data of all regions is queried by default. Separate multiple regions with commas (,).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-shanghai', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the monitoring session. If you leave this parameter empty, data of all monitoring sessions is queried by default. Separate multiple session IDs with commas (,).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'e62af24d-a354-3b0c-9f1f-da592c4b****', + ], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time granularity. Valid values: **3600** and **86400**. 3600 specifies that data is queried by hour and 86400 specifies that data is queried by day.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '3600', + ], + ], + [ + 'name' => 'SplitBy', + 'in' => 'query', + 'schema' => [ + 'description' => 'The key that is used to group data. Valid values: **domain**, **region**, **instance**, and **resolution**. Default value: **resolution**. resolution specifies that data is grouped by resolution. Separate multiple values with commas (,).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'resolution', + 'default' => 'resolution', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'DomainName' => [ + 'description' => 'The domain name.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'EndTime' => [ + 'description' => 'The end of the time range.'."\n", + 'type' => 'string', + 'example' => '2022-12-10T22:00:00Z', + ], + 'InstanceId' => [ + 'description' => 'The ID of the monitoring session.'."\n", + 'type' => 'string', + 'example' => 'e62af24d-a354-3b0c-9f1f-da592c4b****', + ], + 'MonitoringData' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'MonitoringDataItem' => [ + 'description' => 'The live monitoring data.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'DomainName' => [ + 'description' => 'The domain name. This field is valid only when you specify domain for the **SplitBy** parameter.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'Duration' => [ + 'description' => 'The duration. Unit: minutes.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '2000', + ], + 'InstanceId' => [ + 'description' => 'The ID of the monitoring session. This field is valid only when you specify instance for the **SplitBy** parameter.'."\n", + 'type' => 'string', + 'example' => 'e62af24d-a354-3b0c-9f1f-da592c4b****', + ], + 'Region' => [ + 'description' => 'The region of the live center. This field is valid only when you specify Region for the **SplitBy** parameter.'."\n", + 'type' => 'string', + 'example' => 'cn-shanghai', + ], + 'Resolution' => [ + 'description' => 'The resolution. This field is valid only when you specify resolution for the **SplitBy** parameter.'."\n", + 'type' => 'string', + 'example' => '720P', + ], + 'TimeStamp' => [ + 'description' => 'The timestamp of the returned data.'."\n", + 'type' => 'string', + 'example' => '2022-12-10T20:00:00Z', + ], + ], + ], + ], + ], + ], + 'Region' => [ + 'description' => 'The region of the live center.'."\n", + 'type' => 'string', + 'example' => 'cn-shanghai', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F', + ], + 'StartTime' => [ + 'description' => 'The beginning of the time range.'."\n", + 'type' => 'string', + 'example' => '2022-12-10T20:00:00Z', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified StartTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified end time does not math the specified start time.', + ], + [ + 'errorCode' => 'InvalidTimeSpan', + 'errorMessage' => 'The time span exceeds the limit.', + ], + [ + 'errorCode' => 'InvalidStartTime.ValueNotSupported', + 'errorMessage' => 'The specified value of parameter StartTime is not supported.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DomainName\\": \\"example.com\\",\\n \\"EndTime\\": \\"2022-12-10T22:00:00Z\\",\\n \\"InstanceId\\": \\"e62af24d-a354-3b0c-9f1f-da592c4b****\\",\\n \\"MonitoringData\\": {\\n \\"MonitoringDataItem\\": [\\n {\\n \\"DomainName\\": \\"example.com\\",\\n \\"Duration\\": 2000,\\n \\"InstanceId\\": \\"e62af24d-a354-3b0c-9f1f-da592c4b****\\",\\n \\"Region\\": \\"cn-shanghai\\",\\n \\"Resolution\\": \\"720P\\",\\n \\"TimeStamp\\": \\"2022-12-10T20:00:00Z\\"\\n }\\n ]\\n },\\n \\"Region\\": \\"cn-shanghai\\",\\n \\"RequestId\\": \\"3C6CCEC4-6B88-4D4A-93E4-D47B3******\\",\\n \\"StartTime\\": \\"2022-12-10T20:00:00Z\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 2022-12-10T22:00:00Z\\n 2022-12-10T20:00:00Z\\n 3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F\\n cn-shanghai\\n e62af24d-a354-3b0c-9f1f-da592c4b****\\n example.com\\n \\n cn-shanghai\\n 2022-12-10T20:00:00Z\\n 2000\\n e62af24d-a354-3b0c-9f1f-da592c4b****\\n example.com\\n 720P\\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveDomainMonitoringUsageData', + 'description' => '* You can specify one or more domain names. Separate multiple domain names with commas (,).'."\n" + .'* You can query data in the last 90 days.'."\n" + .'* The data is queried by hour or day.'."\n" + .'* The maximum time range for a query is 31 days.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 20 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", + ], + 'DescribeLiveDelayedStreamingUsage' => [ + 'summary' => 'Queries the stream delay 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain to query.'."\n" + ."\n" + .'* You can query one or more domain names. If you specify multiple domain names, separate them with commas (,).'."\n" + .'* If you leave this parameter empty, the data of all domain names within your Alibaba Cloud account is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'example.com', + ], + ], + [ + '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 in the last seven days is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2022-10-10T20:00:00Z', + ], + ], + [ + '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. The end time must be later than the start time. We recommend that you specify a time range that is less than or equal to 10 hours.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2022-10-10T21:00:00Z', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the stream. Separate multiple stream names with commas (,). By default, data of all streams is aggregated and returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveStream****', + ], + ], + [ + 'name' => 'Region', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region. Separate multiple region IDs with commas (,). Valid values:'."\n" + ."\n" + .'* cn-beijing: China (Beijing)'."\n" + .'* cn-shanghai: China (Shanghai)'."\n" + .'* cn-shenzhen: China (Shenzhen)'."\n" + .'* cn-qingdao: China (Qingdao)'."\n" + .'* ap-southeast-1: Singapore'."\n" + .'* eu-central-1: Germany (Frankfurt)'."\n" + .'* ap-northeast-1: Japan (Tokyo)'."\n" + .'* ap-southeast-5: Indonesia (Jakarta)'."\n" + ."\n" + .'If you leave this parameter empty, data of all regions is aggregated and returned by default.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-shanghai', + ], + ], + [ + 'name' => 'SplitBy', + 'in' => 'query', + 'schema' => [ + 'description' => 'The key that is used to group data. If you leave this parameter empty, data is aggregated and returned. Valid values:'."\n" + ."\n" + .'* domain: The DomainName parameter in the response takes effect only if SplitBy is set to domain.'."\n" + .'* region: The Region parameter in the response takes effect only if SplitBy is set to region.'."\n" + .'* stream: The StreamName parameter in the response takes effect only if SplitBy is set to stream.'."\n" + ."\n" + .'> This parameter takes effect only if the parameter corresponding to the value of this parameter is not left empty. Otherwise, an error is returned. For example, you cannot set this parameter to domain if the DomainName parameter is left empty.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'domain', + ], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time granularity of the query. Unit: seconds. Valid values:'."\n" + ."\n" + .'* 300'."\n" + .'* 3600'."\n" + .'* 86400'."\n" + ."\n" + .'If you specify an invalid value or do not specify this parameter, the default value 3600 is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '3600', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The returned data.'."\n", + 'type' => 'object', + 'properties' => [ + 'DelayData' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DelayDataItem' => [ + 'description' => 'The details about the stream delay usage data.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The details about the stream delay usage data.'."\n", + 'type' => 'object', + 'properties' => [ + 'DomainName' => [ + 'description' => 'The domain name. If SplitBy is set to domain, the data returned is grouped by domain name.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'Duration' => [ + 'description' => 'The duration of stream delay.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '84', + ], + 'Region' => [ + 'description' => 'The ID of the region. If SplitBy is set to region, the data returned is grouped by region.'."\n", + 'type' => 'string', + 'example' => 'cn-shanghai', + ], + 'StreamName' => [ + 'description' => 'The name of the stream. If SplitBy is set to stream, the data returned is grouped by stream.'."\n", + 'type' => 'string', + 'example' => 'liveStream****', + ], + 'TimeStamp' => [ + 'description' => 'The timestamp of the data returned.'."\n", + 'type' => 'string', + 'example' => '2022-10-10T20:00:00Z', + ], + ], + ], + ], + ], + ], + 'EndTime' => [ + 'description' => 'The end of the time range during which the data was queried.'."\n", + 'type' => 'string', + 'example' => '2022-10-10T21:00:00Z', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '4B460F8B-993C-4F48-B98A-910811DEBFEB', + ], + 'StartTime' => [ + 'description' => 'The beginning of the time range during which the data was queried.'."\n", + 'type' => 'string', + 'example' => '2022-10-10T20:00:00Z', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'InvalidParameter.', + ], + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'The specified StartTime parameter is invalid.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'The specified EndTime is invalid.', + ], + [ + 'errorCode' => 'InvalidStartTime.ValueNotSupported', + 'errorMessage' => 'The StartTime cannot exceed 31 days before the current time.', + ], + [ + 'errorCode' => 'InvalidTime.Malformed', + 'errorMessage' => 'Specified Time is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified end time does not math the specified start time.', + ], + [ + 'errorCode' => 'InvalidTimeSpan', + 'errorMessage' => 'The time span exceeds the limit.', + ], + [ + 'errorCode' => 'LiveServiceNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DelayData\\": {\\n \\"DelayDataItem\\": [\\n {\\n \\"DomainName\\": \\"example.com\\",\\n \\"Duration\\": 84,\\n \\"Region\\": \\"cn-shanghai\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"TimeStamp\\": \\"2022-10-10T20:00:00Z\\"\\n }\\n ]\\n },\\n \\"EndTime\\": \\"2022-10-10T21:00:00Z\\",\\n \\"RequestId\\": \\"4B460F8B-993C-4F48-B98A-91081******\\",\\n \\"StartTime\\": \\"2022-10-10T20:00:00Z\\"\\n}","errorExample":""},{"type":"xml","example":"\\n b83f5c8c-b07b-4ac8-90c5-96c0f922d394\\n \\n \\n \\n \\n 2022-11-19T16:00:00Z\\n www.example.com\\n 60\\n \\n \\n 2022-11-19T17:00:00Z\\n www.example.com\\n 60\\n \\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveDelayedStreamingUsage', + 'description' => '* You can call this operation to query your stream delay usage data. The default time granularity is 1 hour.'."\n" + .'* The maximum time range for a query is 31 days.'."\n" + .'* The minimum time granularity for a query is 1 hour.'."\n" + .'* You can query the data in the last 31 days.'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + ], + 'DescribeLiveGrtnDuration' => [ + 'summary' => 'Queries the co-streaming 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2022-10-10T20:00:00Z', + ], + ], + [ + '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. The end time must be later than the start time. The time range that can be specified is greater than or equal to 5 minutes and less than or equal to 31 days.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2022-10-10T21:00:00Z', + ], + ], + [ + 'name' => 'AppId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the application. Separate multiple application IDs with commas (,). You can specify up to 30 application IDs. By default, the aggregated data of all applications is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '4346289a-a790-4869-9e23-22766d5e****', + ], + ], + [ + 'name' => 'Area', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the billable region. Valid values:'."\n" + ."\n" + .'* CN: Chinese mainland'."\n" + .'* OverSeas: countries and regions outside the Chinese mainland'."\n" + .'* AP1: Asia Pacific 1, including Hong Kong (China), Macao (China), Taiwan (China), Japan, and other Southeast Asia countries and regions 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 US and Canada'."\n" + .'* SA: South America, specifically meaning Brazil'."\n" + .'* EU: Europe, including Ukraine, UK, France, Netherlands, Spain, Italy, Sweden, and Germany'."\n" + .'* MEAA: Middle East and Africa, including South Africa, Oman, UAE, and Kuwait'."\n" + ."\n" + .'If you do not specify this parameter, data of all regions is aggregated and returned by default.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'CN', + ], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time granularity of the query. Unit: seconds. Valid values:'."\n" + ."\n" + .'* 300'."\n" + .'* 3600'."\n" + .'* 86400'."\n" + ."\n" + .'If you specify an invalid value or do not specify this parameter, the default value 3600 is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '3600', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '4B460F8B-993C-4F48-B98A-910811DEBFEB', + ], + 'StreamDetailData' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'StreamData' => [ + 'description' => 'The details of the co-streaming usage data.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The details of the co-streaming usage data.'."\n", + 'type' => 'object', + 'properties' => [ + 'AppId' => [ + 'description' => 'The ID of the application.'."\n", + 'type' => 'string', + 'example' => '4346289a-a790-4869-9e23-22766d5e****', + ], + 'Duration' => [ + 'description' => 'The co-streaming duration. Unit: minutes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '30', + ], + 'MediaProfile' => [ + 'description' => 'The media specification. Valid values:'."\n" + ."\n" + .'* 0: audio-only. This is a basic specification.'."\n" + .'* 480P: standard definition (SD). The video resolution is 640 × 480 or lower.'."\n" + .'* 720P: high definition (HD). The video resolution is 1280 × 720 or lower.'."\n" + .'* 1080P: full HD. The video resolution is 1920 × 1080 or lower.'."\n", + 'type' => 'string', + 'example' => '480P', + ], + 'MediaType' => [ + 'description' => 'The media type. Valid values:'."\n" + ."\n" + .'* audio'."\n" + .'* video'."\n", + 'type' => 'string', + 'example' => 'audio', + ], + 'TimeStamp' => [ + 'description' => 'The timestamp of the returned data.'."\n", + 'type' => 'string', + 'example' => '2022-12-10T20:00:00Z', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified StartTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidTime.Malformed', + 'errorMessage' => 'Specified StartTime or EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidAreaParameter', + 'errorMessage' => 'The specified Area parameter is invalid.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified end time does not math the specified start time.', + ], + [ + 'errorCode' => 'InvalidTimeSpan', + 'errorMessage' => 'The time span exceeds the limit.', + ], + [ + 'errorCode' => 'InvalidAppIdParameter', + 'errorMessage' => 'The specified AppId parameter is invalid.', + ], + [ + 'errorCode' => 'InvalidInstanceIdParameter', + 'errorMessage' => 'The specified InstanceId parameter is invalid.', + ], + [ + 'errorCode' => 'InvalidTime.ValueNotSupported', + 'errorMessage' => 'Specified Time is malformed.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4B460F8B-993C-4F48-B98A-910811DEBFEB\\",\\n \\"StreamDetailData\\": {\\n \\"StreamData\\": [\\n {\\n \\"AppId\\": \\"4346289a-a790-4869-9e23-22766d5e****\\",\\n \\"Duration\\": 30,\\n \\"MediaProfile\\": \\"480P\\",\\n \\"MediaType\\": \\"audio\\",\\n \\"TimeStamp\\": \\"2022-12-10T20:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n \\n \\n 2022-12-10T20:00:00Z\\n video\\n 720P\\n 423304182\\n \\n \\n 2022-12-10T21:00:00Z\\n video\\n 720P\\n 454680793\\n \\n \\n B955107D-E658-4E77-B913-E0AC3D31693E\\n","errorExample":""}]', + 'title' => 'DescribeLiveGrtnDuration', + 'description' => '* The maximum time range for a query is 31 days.'."\n" + .'* The minimum time granularity for a query is 5 minutes.'."\n" + .'* You can query the data in the last 90 days.'."\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", + 'extraInfo' => '### Special error codes'."\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 throttling. |'."\n" + .'|IllegalOperation|Illegal domain, operation is not permitted.|403|The error message returned because the specified domain name is invalid. '."\n" + .'|OperationDenied|Your account does not open LIVE service yet.|403|The error message returned because ApsaraVideo Live is not activated. |'."\n" + .'|OperationDenied|Your LIVE service is suspended.|403|The error message returned because ApsaraVideo Live is suspended. |'."\n" + .'|InvalidStartTime.Malformed|Specified StartTime is malformed.|400|The error message returned because one or more parameters are invalid. |'."\n" + .'|InvalidEndTime.Malformed|Specified EndTime is malformed.|400|The error message returned because the time format is invalid. |'."\n" + .'|InvalidTime.Malformed|Specified StartTime or EndTime is malformed.|400|The error message returned because the format of the start time or end time is invalid. |'."\n" + .'|InvalidEndTime.Mismatch|Specified end time does not math the specified start time.|400|The error message returned because the start time and end time do not match. |'."\n" + .'|InvalidTimeSpan|The time span exceeds the limit.|400|The error message returned because the specified time range to query is invalid.|'."\n" + .'|InvalidAppIdParameter|The specified AppId parameter is invalid.|400|The error message returned because the value of the AppID parameter is invalid. |'."\n" + .'|InvalidParameterInterval|Invalid Parameter Interval.|400|The error message returned because the value of the Interval parameter is invalid. |', + ], + '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 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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2022-10-10T20:00:00Z', + ], + ], + [ + '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. The end time must be later than the start time. The time range that can be specified is greater than or equal to 5 minutes and less than or equal to 31 days.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2022-10-10T21:00:00Z', + ], + ], + [ + 'name' => 'AppId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the application. You can view the application ID on the [Applications](~~2355593~~) page in the ApsaraVideo Real-time Communication (ARTC) section of the ApsaraVideo Live console.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '4346289a-a790-4869-9e23-22766d5e****', + ], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time granularity of the query. Unit: seconds. Valid values:'."\n" + ."\n" + .'* 300'."\n" + .'* 3600'."\n" + .'* 86400'."\n" + ."\n" + .'If you specify an invalid value or do not specify this parameter, the default value 3600 is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '86400', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'AudioSummaryDuration' => [ + 'description' => 'The total audio-only duration. Audio-only is a basic specification. Unit: minutes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '20', + ], + 'Data' => [ + 'description' => 'The usage statistics for each time granularity.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'AudioDuration' => [ + 'description' => 'The audio-only duration. Audio-only is a basic specification. Unit: minutes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '20', + ], + 'Single_Audio' => [ + 'description' => 'The single-stream relay duration for audio. Unit: minutes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '20', + ], + 'Single_Video' => [ + 'description' => 'The single-stream relay duration for video. Unit: minutes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '30', + ], + 'Timestamp' => [ + 'description' => 'The timestamp of the data returned.'."\n", + 'type' => 'string', + 'example' => '2022-10-10T20:00:00Z', + ], + 'TotalDuration' => [ + 'description' => 'The duration. Unit: minutes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '150', + ], + 'V480Duration' => [ + 'description' => 'The SD duration. The video resolution is 640 × 480 or lower. Unit: minutes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '30', + ], + 'V720Duration' => [ + 'description' => 'The HD duration. The video resolution is 1280 × 720 or lower. Unit: minutes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '40', + ], + 'V1080Duration' => [ + 'description' => 'The Full HD duration. The video resolution is 1920 × 1080 or lower. Unit: minutes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + ], + ], + ], + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '4B460F8B-993C-4F48-B98A-910811DEBFEB', + ], + 'SingleAudioSummaryDuration' => [ + 'description' => 'The total single-stream relay duration for audio. Unit: minutes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '20', + ], + 'SingleVideoSummaryDuration' => [ + 'description' => 'The total single-stream relay duration for video. Unit: minutes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '30', + ], + 'TotalSummaryDuration' => [ + 'description' => 'The total duration. Unit: minutes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '150', + ], + 'V480SummaryDuration' => [ + 'description' => 'The total standard definition (SD) duration. The video resolution is 640 × 480 or lower. Unit: minutes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '30', + ], + 'V720SummaryDuration' => [ + 'description' => 'The total high definition (HD) duration. The video resolution is 1280 × 720 or lower. Unit: minutes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '40', + ], + 'V1080SummaryDuration' => [ + 'description' => 'The total Full HD duration. The video resolution is 1920 × 1080 or lower. Unit: minutes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Meter.ParamError', + 'errorMessage' => 'Param Error:%s,Please Check Again.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Meter.AuthError', + 'errorMessage' => 'Authentication Failed,Please Try Again.', + ], + ], + 500 => [ + [ + 'errorCode' => 'Meter.ServerInternalError', + 'errorMessage' => 'The Request Processing Has Failed Due To Some Unknown Error.', + ], + [ + 'errorCode' => 'Meter.DataSourceQueryError', + 'errorMessage' => 'Data Source Error:%s,Please Try Again.', + ], + ], + 502 => [ + [ + 'errorCode' => 'Meter.ReadyTsError', + 'errorMessage' => 'Get ReadyTs Failed,Please Try Again.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"AudioSummaryDuration\\": 20,\\n \\"Data\\": [\\n {\\n \\"AudioDuration\\": 20,\\n \\"Single_Audio\\": 20,\\n \\"Single_Video\\": 30,\\n \\"Timestamp\\": \\"2022-10-10T20:00:00Z\\",\\n \\"TotalDuration\\": 150,\\n \\"V480Duration\\": 30,\\n \\"V720Duration\\": 40,\\n \\"V1080Duration\\": 10\\n }\\n ],\\n \\"RequestId\\": \\"4B460F8B-993C-4F48-B98A-910811DEBFEB\\",\\n \\"SingleAudioSummaryDuration\\": 20,\\n \\"SingleVideoSummaryDuration\\": 30,\\n \\"TotalSummaryDuration\\": 150,\\n \\"V480SummaryDuration\\": 30,\\n \\"V720SummaryDuration\\": 40,\\n \\"V1080SummaryDuration\\": 10\\n}","errorExample":""},{"type":"xml","example":"\\n 93FAB4C8-42AD-5BB9-BE9B-0AA8C6C0CC2F\\n 30\\n 10\\n 40\\n 150\\n 20\\n \\n 20\\n 40\\n 10\\n 30\\n 2022-10-10T20:00:00Z\\n 150\\n 30\\n 20\\n \\n 20\\n 30\\n","errorExample":""}]', + 'title' => 'DescribeMeterLiveBypassDuration', + 'description' => '## [](#)Usage notes'."\n" + ."\n" + .'* The maximum time range for a query is 31 days.'."\n" + .'* The minimum time granularity for a query is 5 minutes.'."\n" + .'* You can query the data in the last 90 days.'."\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. For more information, see [QPS limits](~~343507~~).'."\n", + ], + 'DescribeLiveDrmUsageData' => [ + 'summary' => '获取直播DRM用量数据', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The domain name.'."\n" + ."\n" + .'* You can query one or more domain names. If you specify multiple domain names, separate them with commas (,).'."\n" + .'* If you leave this parameter empty, the data of all domain names within your Alibaba Cloud account is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'example.com', + ], + ], + [ + '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 time granularity is 5 minutes.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2021-05-01T16:00:00Z', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2021-05-02T16:00:00Z', + ], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time granularity of the query. Unit: seconds. Valid values:'."\n" + ."\n" + .'* 300'."\n" + .'* 3600'."\n" + .'* 86400'."\n" + ."\n" + .'Default value: 3600.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '3600', + 'default' => '3600', + 'enum' => [ + '300', + '3600', + '86400', + ], + ], + ], + [ + 'name' => 'SplitBy', + 'in' => 'query', + 'schema' => [ + 'description' => 'The key that is used to group data. The following keys are supported: domain, region, and drm_type. If you want to specify multiple keys, separate them with commas (,). Default value: domain,region,drm_type. If you leave this parameter empty or set it to null, the returned data is not grouped.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'domain,region,drm_type', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'DrmUsageData' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DataModule' => [ + 'description' => 'The usage of the DRM encryption service at each time interval.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The usage of the DRM encryption service at each time interval.'."\n", + 'type' => 'object', + 'properties' => [ + 'Count' => [ + 'description' => 'The number of times DRM-encrypted live streams are requested.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'Domain' => [ + 'description' => 'The domain name. If the value of SplitBy includes domain, the returned data is grouped by domain name.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'DrmType' => [ + 'description' => 'The DRM type. If the value of SplitBy includes drm_type, the returned data is grouped by DRM type.'."\n", + 'type' => 'string', + 'example' => 'Widevine', + ], + 'Region' => [ + 'description' => 'The ID of the region. If the value of SplitBy includes region, the returned data is grouped by region.'."\n", + 'type' => 'string', + 'example' => 'cn-beijing', + ], + 'TimeStamp' => [ + 'description' => 'The timestamp of the returned data.'."\n", + 'type' => 'string', + 'example' => '2021-05-01T16:00:00Z', + ], + ], + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '91FC2D9D-B042-4634-8A5C-7B8E7482C22D', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified StartTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified end time does not math the specified start time.', + ], + [ + 'errorCode' => 'InvalidStartTime.ValueNotSupported', + 'errorMessage' => 'The specified value of parameter StartTime is not supported.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DrmUsageData\\": {\\n \\"DataModule\\": [\\n {\\n \\"Count\\": 1,\\n \\"Domain\\": \\"example.com\\",\\n \\"DrmType\\": \\"Widevine\\",\\n \\"Region\\": \\"cn-beijing\\",\\n \\"TimeStamp\\": \\"2021-05-01T16:00:00Z\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"91FC2D9D-B042-4634-8A5C-7B8E7482C22D\\"\\n}","errorExample":""},{"type":"xml","example":"\\n \\n 1\\n example.com\\n Widevine\\n cn-beijing\\n 2021-05-01T16:00:00Z\\n \\n 91FC2D9D-B042-4634-8A5C-7B8E7482C22D\\n","errorExample":""}]', + 'title' => 'DescribeLiveDrmUsageData', + 'description' => '### [](#)Usage notes'."\n" + ."\n" + .'* You can query data in the previous 90 days.'."\n" + .'* The maximum time range to query is 31 days.'."\n" + ."\n" + .'### [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 20 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. For more information, see [QPS limits](~~343507~~).'."\n", + ], + 'DescribeLiveRtcRecordUsageData' => [ + 'summary' => '云端录制用量', + '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' => '', + 'type' => 'string', + 'required' => true, + 'example' => '2017-12-21T08:00:00Z', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => '2022-10-10T21:00:00Z', + ], + ], + [ + 'name' => 'AppId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'intl7f92-a5a8*************7ce4eb44a6', + ], + ], + [ + 'name' => 'RecordMode', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => '0', + ], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '3600', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'Id of the request', + 'type' => 'string', + 'example' => '16A96B9A-F2*************B92E68F4CD8', + ], + 'RecordMode' => [ + 'description' => '', + 'type' => 'string', + 'example' => '0', + ], + 'AppId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '7fd341b3-c6fa-43e1-96b8-7295a1dd****', + ], + 'TotalSummaryDuration' => [ + 'description' => '', + 'type' => 'number', + 'format' => 'double', + 'example' => '150', + ], + 'AudioSummaryDuration' => [ + 'description' => '', + 'type' => 'number', + 'format' => 'double', + 'example' => '20', + ], + 'V480SummaryDuration' => [ + 'description' => '', + 'type' => 'number', + 'format' => 'double', + 'example' => '30', + ], + 'V720SummaryDuration' => [ + 'description' => '', + 'type' => 'number', + 'format' => 'double', + 'example' => '40', + ], + 'V1080SummaryDuration' => [ + 'description' => '', + 'type' => 'number', + 'format' => 'double', + 'example' => '10', + ], + 'Data' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Timestamp' => [ + 'description' => '', + 'type' => 'string', + 'example' => '2022-10-10T20:00:00Z', + ], + 'TotalDuration' => [ + 'description' => '', + 'type' => 'number', + 'format' => 'double', + 'example' => '150', + ], + 'AudioDuration' => [ + 'description' => '', + 'type' => 'number', + 'format' => 'double', + 'example' => '20', + ], + 'V480Duration' => [ + 'description' => '', + 'type' => 'number', + 'format' => 'double', + 'example' => '30', + ], + 'V720Duration' => [ + 'description' => '', + 'type' => 'number', + 'format' => 'double', + 'example' => '40', + ], + 'V1080Duration' => [ + 'description' => '', + 'type' => 'number', + 'format' => 'double', + 'example' => '10', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.ValueNotSupported', + 'errorMessage' => 'The specified value of parameter StartTime is not supported.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified end time does not math the specified start time.', + ], + [ + 'errorCode' => 'InvalidRecordModeParameter', + 'errorMessage' => 'RecordMode parameter error.', + ], + [ + 'errorCode' => 'InvalidAppIdParameter', + 'errorMessage' => 'AppId parameter error.', + ], + [ + 'errorCode' => 'InvalidTimeSpan', + 'errorMessage' => 'The time span exceeds the limit.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F2*************B92E68F4CD8\\",\\n \\"RecordMode\\": \\"0\\",\\n \\"AppId\\": \\"7fd341b3-c6fa-43e1-96b8-7295a1dd****\\",\\n \\"TotalSummaryDuration\\": 150,\\n \\"AudioSummaryDuration\\": 20,\\n \\"V480SummaryDuration\\": 30,\\n \\"V720SummaryDuration\\": 40,\\n \\"V1080SummaryDuration\\": 10,\\n \\"Data\\": [\\n {\\n \\"Timestamp\\": \\"2022-10-10T20:00:00Z\\",\\n \\"TotalDuration\\": 150,\\n \\"AudioDuration\\": 20,\\n \\"V480Duration\\": 30,\\n \\"V720Duration\\": 40,\\n \\"V1080Duration\\": 10\\n }\\n ]\\n}","type":"json"}]', + ], + 'CreateCaster' => [ + 'summary' => 'Creates a production studio.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'CasterName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the production studio.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveCaster****', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can specify a custom value for this parameter, but you must make sure that the value is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '53200b81-b761-4c10-842a-a0726d97****', + 'maxLength' => 64, + 'minLength' => 0, + ], + ], + [ + 'name' => 'NormType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the production studio. Valid values:'."\n" + ."\n" + .'* **1**: general mode'."\n" + .'* **6**: playlist mode (for carousel playback)'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'ChargeType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The billing method. Only the pay-as-you-go billing method is supported.**** Valid values:'."\n" + ."\n" + .'* **PrePaid**: subscription. This billing method is not yet supported.'."\n" + .'* **PostPaid**: pay-as-you-go'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'PostPaid', + ], + ], + [ + 'name' => 'PurchaseTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time when the production studio was purchased. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'> This parameter is valid only if you set the **ChargeType** parameter to **PrePaid**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2017-08-20T12:10:10Z', + ], + ], + [ + 'name' => 'ExpireTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The expiration time of the production studio. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'> This parameter is valid only if you set the **ChargeType** parameter to **PrePaid**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2017-08-22T12:10:10Z', + ], + ], + [ + 'name' => 'CasterTemplate', + 'in' => 'query', + 'schema' => [ + 'description' => 'The preset resolution of the production studio. If the subscription billing method is used, this parameter supports the following valid values:'."\n" + ."\n" + .'* **lp_ld**: low definition'."\n" + .'* **lp_sd**: standard definition'."\n" + .'* **lp_hd**: high definition'."\n" + .'* **lp_ud**: ultra high definition'."\n" + .'* **lp_ld_v**: low definition (portrait mode)'."\n" + .'* **lp_sd_v**: standard definition (portrait mode)'."\n" + .'* **lp_hd_v**: high definition (portrait mode)'."\n" + .'* **lp_ud_v**: ultra high definition (portrait mode)'."\n" + ."\n" + .'> If the pay-as-you-go billing method is used, you must call the [SetCasterConfig](~~60271~~) operation to specify the resolution.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'lp_sd', + ], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group. For more information about resource groups, see [Resource groups](~~2381067~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-aekzw******', + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tag.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The key of the tag.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestKey', + ], + 'Value' => [ + 'description' => 'The value of the tag.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestValue', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 100, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'CasterId' => [ + 'description' => 'The ID of the production studio. You can specify the ID in a request to query the streaming URLs of the production studio, start the production studio, add a video resource, a layout, a component, or a playlist to the production studio, or query layouts of the production studio.'."\n", + 'type' => 'string', + 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter.PurchaseTime', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidParameter.ExpireTime', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidChargeType.Malformed', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidChargeType.PostSupport', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidCasterTemplate.Malformed', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidParameter.ChargeType', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidPeriod.Malformed', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidClientToken.Malformed', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'IncorrectCasterStatus', + 'errorMessage' => '%s', + ], + ], + [ + [ + 'errorCode' => 'CasterNumberExceed', + 'errorMessage' => '%s', + ], + ], + 403 => [ + [ + 'errorCode' => 'PermissionDenied', + 'errorMessage' => '%s', + ], + ], + [ + [ + 'errorCode' => 'InvalidParameter.NormType', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidConfiguration.NotFound', + 'errorMessage' => '%s', + ], + ], + 408 => [ + [ + 'errorCode' => 'CreateCaster.Timeout', + 'errorMessage' => '%s', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\na2b8e671-2fe5-4642-a2ec-bf93880e1****\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e1a49\\"\\n}\\n"}]', + 'title' => 'CreateCaster', + 'description' => 'You must enable the production studio feature before you can call this operation to create a production studio. For more information, see [Enable the production studio feature](~~60361~~).'."\n" + ."\n" + .'You can call this operation to create production studios in general mode or playlist mode. Production studios in playlist mode can be used for carousel playback.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'SetCasterConfig' => [ + 'summary' => 'Configures a production studio. For example, you can specify the name of the production studio, configure the transcoding settings, and configure the recording settings.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + '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' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + ], + [ + 'name' => 'CasterName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the production studio.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveCaster****', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n" + ."\n" + .'Complete the configuration of the domain name before the production studio is started. If you do not specify this parameter, the domain configuration for the production studio is cleared.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'TranscodeConfig', + 'in' => 'query', + 'schema' => [ + 'description' => 'The transcoding configuration.'."\n" + ."\n" + .'The value is a JSON string. Use upper camel case for fields of the string. If you do not specify this parameter, the transcoding configuration is cleared. If no transcoding template is available, an error occurs when the production studio is started.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{"casterTemplate": "lp_ld"}', + ], + ], + [ + 'name' => 'RecordConfig', + 'in' => 'query', + 'schema' => [ + 'description' => 'The recording configuration. The value is a JSON string. You can configure the following fields:'."\n" + ."\n" + .'* **endpoint**: the API server address of an Alibaba Cloud service.'."\n" + .'* **ossBucket**: the name of the Object Storage Service (OSS) bucket.'."\n" + .'* **videoFormat**: the format in which the video file 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" + .'* **interval**: the interval between recordings. Unit: milliseconds.'."\n" + ."\n" + .'> If you do not specify this parameter, the recording feature is disabled and the recording configuration for the production studio is cleared.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{ "endpoint": "http://oss-cn-********.aliyuncs.com/api", "ossBucket****": "liveBucket****", "VideoFormat":[{\\"OssObjectPrefix\\":\\"record/{AppName}/{StreamName}/{StartTime}_{EndTime}\\",\\"Format\\":\\"m3u8\\",\\"CycleDuration\\":21600,\\"SliceOssObjectPrefix\\":\\"record/{AppName}/{StreamName}/{UnixTimestamp}\\"},{\\"OssObjectPrefix\\":\\"record/{AppName}/{StreamName}/{StartTime}_{EndTime}\\",\\"Format\\":\\"flv\\",\\"CycleDuration\\":21600}] "interval": 5 }', + ], + ], + [ + 'name' => 'Delay', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable stream delay. Unit: seconds. Valid values:'."\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" + .' **'."\n" + ."\n" + .' **Note **The maximum value can be 300 seconds.'."\n", + 'type' => 'number', + 'format' => 'float', + 'required' => false, + 'example' => '0', + ], + ], + [ + 'name' => 'UrgentMaterialId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the standby video from the media library. If you do not specify this parameter, the standby video configuration for the production studio is cleared.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'a2b8e671', + ], + ], + [ + 'name' => 'UrgentLiveStreamUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The URL of the standby live stream.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rtmp://demo.aliyundoc.com', + ], + ], + [ + 'name' => 'SideOutputUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The custom stream redirect URL.'."\n" + ."\n" + .'If you do not specify this parameter, the production studio uses the redirect URL generated by the system.'."\n" + ."\n" + .'> Redirect URLs support only the Real-Time Messaging Protocol (RTMP) protocol.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rtmp://****/aliyundoc.com:8000/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-53f0758162964516ac850f2ddc3f****', + ], + ], + [ + 'name' => 'SideOutputUrlList', + 'in' => 'query', + 'schema' => [ + 'description' => 'The stream relay URLs. A relay URL can be an Alibaba Cloud URL or a URL from a third-party CDN provider. You can specify up to 20 relay URLs over the RTMP protocol.'."\n" + ."\n" + .'> Use the following format to specify multiple relay URLs: "rtmp://domain/app1/stream1","rtmp://domain/app2/stream2".', + 'type' => 'string', + 'required' => false, + 'example' => 'rtmp://domain/app/stream?***', + ], + ], + [ + 'name' => 'CallbackUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The callback URL. Enter a valid HTTP address for receiving callback notifications. If you do not specify this parameter, the production studio does not send callback notifications.'."\n" + ."\n" + .'> For more information about production studio callbacks, see [Production studio callbacks](~~213633~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'http://****/aliyundoc.com:8000/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-53f0758162964516ac850f2ddc3f****', + ], + ], + [ + 'name' => 'ProgramEffect', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable the carousel playback feature. Valid values:'."\n" + ."\n" + .'* **0**: disables carousel playback.'."\n" + .'* **1**: enables carousel playback.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'ProgramName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the playlist for carousel playback. You can specify this parameter if you enable the carousel playback feature.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'program_name', + ], + ], + [ + 'name' => 'ChannelEnable', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable channels. Valid values:'."\n" + ."\n" + .'* **0** (default): disables channels.'."\n" + .'* **1**: enables channels.'."\n" + ."\n" + .'> You cannot disable channels after you enable them. If you set this parameter to 0, the production studio references video resources in a layout without using channels. If you enable channels for the first time, make sure that the production studio is in the idle state. After you enable channels, a new layout that references video resources by using channels is generated to replace the original one. Therefore, you must specify video resources for channels. You can use the channels to change the playback progress or status. If the video resource, preview, and program modules of the production studio use the same video source, the three modules display the same content.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'SyncGroupsConfig', + 'in' => 'query', + 'schema' => [ + 'description' => 'The multi-view synchronization configuration. You can specify this parameter to synchronize multiple video sources.'."\n" + ."\n" + .'There are two modes of multi-view synchronization.'."\n" + ."\n" + .'* A value of 0 for the mode field specifies the streamer mode. In this mode, multiple video sources are synchronized based on the settings by the streamer.'."\n" + .'* A value of 1 for the mode field specifies the conference mode. In this mode, all video sources are synchronized.'."\n" + ."\n" + .'In the streamer mode, the hostResourceId field specifies the video source on the streamer side.'."\n" + ."\n" + .'In the conference mode, the hostResourceId field is not available. You need to provide only resource IDs that are required.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '"[{\\"mode\\":0,\\"resourceIds\\":[\\"5a6c1c33-8424-46f6-813c-c152220a****\\",\\"4e6521dc-a40a-4077-b6bf-1fb12a76****\\"],\\"hostResourceId\\":\\"3aa2b39a-fd0e-4b8c-be73-b7af31c4****\\"}]"', + ], + ], + [ + 'name' => 'UrgentImageId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the standby image from the media library.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'a089175eb5f4427684fc0715159a****', + ], + ], + [ + 'name' => 'UrgentImageUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The URL of the standby image.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'http://learn.aliyundoc.com/AppName/image.jpg', + ], + ], + [ + 'name' => 'AutoSwitchUrgentOn', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => [ + 'description' => 'Specifies whether the production studio automatically switches to the standby resource in case of a stream interruption.'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + [ + 'name' => 'AutoSwitchUrgentConfig', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => [ + 'description' => 'The configuration for automatic switchover to the standby resource.'."\n" + ."\n" + .'The `eofThres` field specifies the duration after which the production studio automatically switches to the standby resource if a stream interruption occurs. Unit: seconds.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{"eofThres":3}', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'CasterId' => [ + 'description' => 'The ID of the production studio. You can specify the ID in a request to query the streaming URLs of the production studio, start the production studio, add a video resource, a layout, a component, or a playlist to the production studio, or query layouts of the production studio.'."\n", + 'type' => 'string', + 'example' => 'b4810848-bcf9-4aef-bd4a-e6bba2d9****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'IncorrectCasterStatus.Inuse', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidCaster.ChannelDisableUnsupported', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'IncorrectCasterStatus.EnableChannel', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s', + ], + ], + 403 => [ + [ + 'errorCode' => 'PermissionDenied', + 'errorMessage' => '%s', + ], + ], + [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidDomainName.NotFound', + 'errorMessage' => '%s', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"b4810848-bcf9-4aef-bd4a-e6bba2d9****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\tb4810848-bcf9-4aef-bd4a-e6bba2d9****\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"casterId\\": \\"b4810848-bcf9-4aef-bd4a-e6bba2d966c8\\"\\n}"}]', + 'title' => 'SetCasterConfig', + 'description' => 'You can call the [CreateCaster](~~2848009~~) operation to create a production studio and then call this operation to configure the production studio. This operation completely replaces existing configurations. If you leave a parameter empty, the corresponding configuration is cleared for the production studio.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeCasterConfig' => [ + 'summary' => 'Queries the configurations 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + '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****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The configuration information about the production studio.'."\n", + 'type' => 'object', + 'properties' => [ + 'AutoSwitchUrgentConfig' => [ + 'description' => 'The configuration for automatic switchover to the standby resource. The `eofThres` field specifies the duration after which the production studio automatically switches to the standby resource if a stream interruption occurs. Unit: seconds.'."\n", + 'type' => 'string', + 'example' => '{"eofThres":3}', + ], + 'AutoSwitchUrgentOn' => [ + 'description' => 'Indicates whether the production studio automatically switches to the standby resource in case of a stream interruption.'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'string', + 'example' => 'true', + ], + 'CallbackUrl' => [ + 'description' => 'The callback URL.'."\n", + 'type' => 'string', + 'example' => 'http://learn.aliyundoc.com/callBackLive', + ], + 'CasterId' => [ + 'description' => 'The ID of the production studio.'."\n", + 'type' => 'string', + 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', + ], + 'CasterName' => [ + 'description' => 'The name of the production studio.'."\n", + 'type' => 'string', + 'example' => 'coco-caster10', + ], + 'ChannelEnable' => [ + 'description' => 'Indicates whether channels are enabled for the production studio. Valid values:'."\n" + ."\n" + .'* **0**: Channels are disabled.'."\n" + .'* **1**: Channels are enabled.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'Delay' => [ + 'description' => 'Indicates whether stream delay is enabled. Unit: seconds.'."\n" + ."\n" + .'* **0**: Stream delay is disabled.'."\n" + .'* **A value greater than 0**: Stream delay is enabled.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '0', + ], + 'DomainName' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'ProgramEffect' => [ + 'description' => 'Indicates whether the carousel playback feature is enabled. Valid values:'."\n" + ."\n" + .'* **0**: The carousel playback feature is disabled.'."\n" + .'* **1**: The carousel playback feature is enabled.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'ProgramName' => [ + 'description' => 'The name of the playlist for carousel playback.'."\n", + 'type' => 'string', + 'example' => 'program_name', + ], + 'RecordConfig' => [ + 'description' => 'The recording configuration. If this parameter is empty, the recording feature is disabled.'."\n", + 'type' => 'object', + 'properties' => [ + 'OnDemand' => [ + 'description' => 'On-demand recording. Values:'."\n" + .'- 0: Off. '."\n" + .'- 1: Via HTTP callback. '."\n" + .'- 2: Parse streaming parameters for on-demand recording. '."\n" + .'- 7: Default to not record. ', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'OssBucket' => [ + 'description' => 'The OSS bucket for storage.'."\n", + 'type' => 'string', + 'example' => 'liveBucket****', + ], + 'OssEndpoint' => [ + 'description' => 'The Object Storage Service (OSS) endpoint.'."\n", + 'type' => 'string', + 'example' => 'oss-cn-shanghai.aliyundoc.com', + ], + 'RecordFormat' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RecordFormat' => [ + 'description' => 'The recording configuration.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The recording details.'."\n", + 'type' => 'object', + 'properties' => [ + 'CycleDuration' => [ + 'description' => 'The length of the recording.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '3600', + ], + 'Format' => [ + 'description' => 'The format of the recording.'."\n", + 'type' => 'string', + 'example' => 'M3U8', + ], + 'OssObjectPrefix' => [ + 'description' => 'The name of the recording.'."\n", + 'type' => 'string', + 'example' => 'record/{liveApp****}/{liveStream****}', + ], + 'SliceOssObjectPrefix' => [ + 'description' => 'The name of the segment.'."\n", + 'type' => 'string', + 'example' => 'record/{liveApp****}/{liveStream****}/{UnixTimestamp****}', + ], + ], + ], + ], + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '97df6b7f-3490-47d2-ac50-8833e1b64597', + ], + 'SideOutputUrl' => [ + 'description' => 'The custom stream redirect URL.'."\n", + 'type' => 'string', + 'example' => 'rtmp://sophon-developer.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-ac8c628078541d7055a170ec59a5****', + ], + 'SideOutputUrlList' => [ + 'description' => 'The list of custom stream redirect URLs.'."\n", + 'type' => 'string', + 'example' => 'rtmp://sophon-developer.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-ac8c628078541d7055a170ec59a5****', + ], + 'SyncGroupsConfig' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SyncGroup' => [ + 'description' => 'The storage configuration.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The storage configuration.', + 'type' => 'object', + 'properties' => [ + 'HostResourceId' => [ + 'description' => 'The ID of the resource in the production studio.'."\n", + 'type' => 'string', + 'example' => '28768383240243****', + ], + 'Mode' => [ + 'description' => 'The cache mode of the Static Page Caching policy. Valid values:'."\n" + ."\n" + .'* 0: standard mode'."\n" + .'* 1: force mode'."\n" + .'* 2: no cache'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'ResourceIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'ResourceId' => [ + 'description' => 'The IDs of the resources for which you want to modify the resource group. The number of resource IDs is 1 to 50.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the resource for which you want to modify the resource group. The number of resource IDs is 1 to 50.'."\n", + 'type' => 'string', + 'example' => '1', + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'TranscodeConfig' => [ + 'description' => 'The transcoding configuration.'."\n", + 'type' => 'object', + 'properties' => [ + 'CasterTemplate' => [ + 'description' => 'The transcoding template of the production studio. Valid values:'."\n" + ."\n" + .'* **lp_ld**: low definition'."\n" + .'* **lp_sd**: standard definition'."\n" + .'* **lp_hd**: high definition'."\n" + .'* **lp_ud**: ultra high definition'."\n" + .'* **lp_ld_v**: low definition (portrait mode)'."\n" + .'* **lp_sd_v**: standard definition (portrait mode)'."\n" + .'* **lp_hd_v**: high definition (portrait mode)'."\n" + .'* **lp_ud_v**: ultra high definition (portrait mode)'."\n", + 'type' => 'string', + 'example' => 'lp_hd', + ], + 'LiveTemplateIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LocationId' => [ + 'description' => 'The transcoding setting for live streams.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'Live streaming transcoding configuration. Values:'."\n" + .'- **lsd**: Standard Definition (SD). '."\n" + .'- **lld**: Smooth. '."\n" + .'- **lud**: Ultra High Definition (UHD). '."\n" + .'- **lhd**: High Definition (HD) adaptive transcoding template. '."\n" + .'- **daobo-lsd**: Standard Definition (SD). '."\n" + .'- **daobo-lld**: Smooth. '."\n" + .'- **daobo-lud**: Ultra High Definition (UHD). '."\n" + .'- **daobo-lhd**: High Definition (HD).', + 'type' => 'string', + 'example' => 'lld', + ], + ], + ], + ], + 'CustomParams' => [ + 'description' => 'The custom settings.'."\n", + 'type' => 'object', + 'properties' => [ + 'video' => [ + 'description' => 'The video parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'fps' => [ + 'description' => 'The video frame rate.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '300', + ], + 'bitrate' => [ + 'description' => 'The video bitrate.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '300', + ], + 'width' => [ + 'description' => 'The video width. Unit: pixels.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1080', + ], + 'height' => [ + 'description' => 'The video height. Unit: pixels.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '720', + ], + ], + ], + ], + ], + ], + ], + 'UrgentImageId' => [ + 'description' => 'Prepared broadcast image media asset ID.', + 'type' => 'string', + 'example' => 'a089175eb5f4427684fc0715159a****', + ], + 'UrgentImageUrl' => [ + 'description' => 'URL of the standby image material.', + 'type' => 'string', + 'example' => 'http://learn.aliyundoc.com/AppName/image.jpg', + ], + 'UrgentLiveStreamUrl' => [ + 'description' => 'The URL of the standby live stream.'."\n", + 'type' => 'string', + 'example' => 'rtmp://demo.aliyundoc.com', + ], + 'UrgentMaterialId' => [ + 'description' => 'The ID of the material that is used as the standby video from the media library.'."\n", + 'type' => 'string', + 'example' => '98646538-bcf9-4aef-bd4a-e6bb76588****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"AutoSwitchUrgentConfig\\": \\"{\\\\\\"eofThres\\\\\\":3}\\",\\n \\"AutoSwitchUrgentOn\\": \\"true\\",\\n \\"CallbackUrl\\": \\"http://learn.aliyundoc.com/callBackLive\\",\\n \\"CasterId\\": \\"LIVEPRODUCER_POST-cn-0pp1czt****\\",\\n \\"CasterName\\": \\"coco-caster10\\",\\n \\"ChannelEnable\\": 1,\\n \\"Delay\\": 0,\\n \\"DomainName\\": \\"example.com\\",\\n \\"ProgramEffect\\": 0,\\n \\"ProgramName\\": \\"program_name\\",\\n \\"RecordConfig\\": {\\n \\"OnDemand\\": 0,\\n \\"OssBucket\\": \\"liveBucket****\\",\\n \\"OssEndpoint\\": \\"oss-cn-shanghai.aliyundoc.com\\",\\n \\"RecordFormat\\": {\\n \\"RecordFormat\\": [\\n {\\n \\"CycleDuration\\": 3600,\\n \\"Format\\": \\"M3U8\\",\\n \\"OssObjectPrefix\\": \\"record/{liveApp****}/{liveStream****}\\",\\n \\"SliceOssObjectPrefix\\": \\"record/{liveApp****}/{liveStream****}/{UnixTimestamp****}\\"\\n }\\n ]\\n }\\n },\\n \\"RequestId\\": \\"97df6b7f-3490-47d2-ac50-8833e1b64597\\",\\n \\"SideOutputUrl\\": \\"rtmp://sophon-developer.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-ac8c628078541d7055a170ec59a5****\\",\\n \\"SideOutputUrlList\\": \\"[\\\\\\"rtmp://domain/app1/stream1\\\\\\",\\\\\\"rtmp://domain/app2/stream2\\\\\\"]\\",\\n \\"SyncGroupsConfig\\": {\\n \\"SyncGroup\\": [\\n {\\n \\"HostResourceId\\": \\"28768383240243****\\",\\n \\"Mode\\": 0,\\n \\"ResourceIds\\": {\\n \\"ResourceId\\": [\\n \\"1\\"\\n ]\\n }\\n }\\n ]\\n },\\n \\"TranscodeConfig\\": {\\n \\"CasterTemplate\\": \\"lp_hd\\",\\n \\"LiveTemplateIds\\": {\\n \\"LocationId\\": [\\n \\"lld\\"\\n ]\\n },\\n \\"CustomParams\\": {\\n \\"video\\": {\\n \\"fps\\": 300,\\n \\"bitrate\\": 300,\\n \\"width\\": 1080,\\n \\"height\\": 720\\n }\\n }\\n },\\n \\"UrgentImageId\\": \\"a089175eb5f4427684fc0715159a****\\",\\n \\"UrgentImageUrl\\": \\"http://learn.aliyundoc.com/AppName/image.jpg\\",\\n \\"UrgentLiveStreamUrl\\": \\"rtmp://demo.aliyundoc.com\\",\\n \\"UrgentMaterialId\\": \\"98646538-bcf9-4aef-bd4a-e6bb76588****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0\\n rtmp://demo.aliyundoc.com\\n 98646538-bcf9-4aef-bd4a-e6bb76588****\\n a089175eb5f4427684fc0715159a****\\n http://learn.aliyundoc.com/AppName/image.jpg\\n http://learn.aliyundoc.com/callBackLive\\n program_name\\n coco-caster10\\n LIVEPRODUCER_POST-cn-0pp1czt****\\n 0\\n 1\\n example.com\\n 97df6b7f-3490-47d2-ac50-8833e1b64597\\n [\\"rtmp://domain/app1/stream1\\",\\"rtmp://domain/app2/stream2\\"]\\n rtmp://sophon-developer.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-ac8c628078541d7055a170ec59a5****\\n true\\n {\\"eofThres\\":3}\\n \\n lp_hd\\n lld\\n \\n \\n oss-cn-shanghai.aliyundoc.com\\n liveBucket****\\n 0\\n \\n 3600\\n record/{liveApp****}/{liveStream****}/{UnixTimestamp****}\\n record/{liveApp****}/{liveStream****}\\n M3U8\\n \\n \\n \\n 28768383240243****\\n 0\\n 1\\n \\n","errorExample":""}]', + 'title' => 'DescribeCasterConfig', + 'description' => 'You can call the [CreateCaster](~~2848009~~) operation to create a production studio and then call this operation to query the configurations of the production studio.'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'translator' => 'machine', + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'CasterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the production studio.'."\n" + ."\n" + .'* If the production studio was created by calling the [CreateCaster](~~2848012~~) 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" + .'> '."\n" + ."\n" + .'* You can find the ID of the production studio in the Instance ID/Name column.'."\n" + ."\n" + .'* If you leave this parameter empty, the data of all production studios is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', + ], + ], + [ + 'name' => 'CasterName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the production studio.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveCaster****', + ], + ], + [ + '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. The time must be in UTC.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2016-06-29T09:00:00Z', + ], + ], + [ + '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. The time must be in UTC.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2016-06-29T11:00:00Z', + ], + ], + [ + 'name' => 'PageNum', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of the page to return.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of templates to return on each page. If you leave this parameter empty, the default value is used. Default value: 100.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '100', + ], + ], + [ + 'name' => 'Status', + 'in' => 'query', + 'schema' => [ + 'description' => 'The status of the production studio. Valid values:'."\n" + ."\n" + .'* 0: idle'."\n" + .'* 1: streaming'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '0', + ], + ], + [ + 'name' => 'ChargeType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The billing method. Valid values:'."\n" + ."\n" + .'* 0: the subscription billing method'."\n" + .'* 1: the pay-as-you-go billing method'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '0', + ], + ], + [ + 'name' => 'OrderByModifyAsc', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to sort the production studios in ascending order based on the modification time.'."\n" + ."\n" + .'> If you leave this parameter empty, the default value is used. Default value: false.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'false', + ], + ], + [ + 'name' => 'NormType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the production studio. Valid values:'."\n" + ."\n" + .'* 1: general mode'."\n" + .'* 3: lightweight carousel playback mode'."\n" + .'* 4: virtual studio'."\n" + .'* 6: playlist mode'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The resource group ID. For more information about resource groups, see [Resource groups](~~2381067~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-aekzw******', + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tag.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The key of the tag.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestKey'."\n", + ], + 'Value' => [ + 'description' => 'The value of the tag.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestValue'."\n", + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 100, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The number of production studios.'."\n", + 'type' => 'object', + 'properties' => [ + 'CasterList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Caster' => [ + 'description' => 'The production studios.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the production studio.'."\n", + 'type' => 'object', + 'properties' => [ + 'CasterId' => [ + 'description' => 'The ID of the production studio. You can specify the ID in a request to query the streaming URLs of the production studio, start the production studio, add a video resource, a layout, a component, or a playlist to the production studio, or query layouts of the production studio.'."\n", + 'type' => 'string', + 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', + ], + 'CasterName' => [ + 'description' => 'The name of the production studio.'."\n", + 'type' => 'string', + 'example' => 'liveCaster****', + ], + 'CasterTemplate' => [ + 'description' => 'The resolution in which the production studio plays videos. This parameter is returned if the subscription billing method is used. Valid values:'."\n" + ."\n" + .'* lp_ld: low definition'."\n" + .'* lp_sd: standard definition'."\n" + .'* lp_hd: high definition'."\n" + .'* lp_ud: ultra high definition.'."\n" + .'* lp_ld_v: low definition (portrait mode)'."\n" + .'* lp_sd_v: standard definition (portrait mode)'."\n" + .'* lp_hd_v: high definition (portrait mode)'."\n" + .'* lp_ud_v: ultra high definition (portrait mode)'."\n", + 'type' => 'string', + 'example' => 'lp_ld', + ], + 'ChannelEnable' => [ + 'description' => 'Indicates whether the channel is enabled for the production studio.'."\n" + ."\n" + .'* 0: The channel is disabled.'."\n" + .'* 1: The channel is enabled.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'ChargeType' => [ + 'description' => 'The billing method. Valid values:'."\n" + ."\n" + .'* PrePaid: the subscription billing method'."\n" + .'* PostPaid: the pay-as-you-go billing method'."\n", + 'type' => 'string', + 'example' => 'PrePaid', + ], + 'CreateTime' => [ + 'description' => 'The time when the production studio was created.'."\n", + 'type' => 'string', + 'example' => '2017-08-30 12:02:57.0', + ], + 'Duration' => [ + 'description' => 'The streaming duration. Format: hh:mm:ss.'."\n", + 'type' => 'string', + 'example' => '1:02:33', + ], + 'ExpireTime' => [ + 'description' => 'The time when the production studio expires.'."\n", + 'type' => 'string', + 'example' => '2018-08-30 12:02:57.0', + ], + 'LastModified' => [ + 'description' => 'The time when the production studio was last modified. For example, the time when the production studio was last started, stopped, or modified is returned.'."\n", + 'type' => 'string', + 'example' => '2021-12-01T05:08:45Z', + ], + 'NormType' => [ + 'description' => 'The type of the production studio. Valid values:'."\n" + ."\n" + .'* 0: playlist mode'."\n" + .'* 1: general mode'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'PurchaseTime' => [ + 'description' => 'The time when the production studio was purchased.'."\n", + 'type' => 'string', + 'example' => '2017-08-30 12:02:57.0', + ], + 'StartTime' => [ + 'description' => 'The time when the production studio was started. This parameter is returned if the production studio is in the streaming status.'."\n", + 'type' => 'string', + 'example' => '2017-08-30 18:02:57.0', + ], + 'Status' => [ + 'description' => 'The status of the production studio. Valid values:'."\n" + ."\n" + .'* 0: idle'."\n" + .'* 1: streaming'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'ClientTokenId' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n", + 'type' => 'string', + 'example' => '53200b81-b761-4c10-842a-a0726d97****'."\n", + ], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'tag' => [ + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tag.'."\n", + 'type' => 'object', + 'properties' => [ + 'TagKey' => [ + 'description' => 'The key of the tag.'."\n", + 'type' => 'string', + 'example' => 'TestKey', + ], + 'TagValue' => [ + 'description' => 'The value of the tag.'."\n", + 'type' => 'string', + 'example' => 'TestValue', + ], + ], + ], + ], + ], + ], + 'ResourceGroupId' => [ + 'description' => 'The resource group ID. For more information about resource groups, see [Resource groups](~~2381067~~).'."\n", + 'type' => 'string', + 'format' => 'int32', + 'example' => 'rg-aekzw******', + ], + ], + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5c6a2a0df228-4a64- af62-20e91b9676b3', + ], + 'Total' => [ + 'description' => 'The number of production studios.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidParameter.PageSize', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidParameter.PageNum', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidParameter.Status', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidParameter.StartTime', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidParameter.EndTime', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'LiveServiceNotFound', + 'errorMessage' => '%s', + ], + ], + 403 => [ + [ + 'errorCode' => 'PermissionDenied', + 'errorMessage' => '%s', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterList\\": {\\n \\"Caster\\": [\\n {\\n \\"CasterId\\": \\"LIVEPRODUCER_POST-cn-0pp1czt****\\",\\n \\"CasterName\\": \\"liveCaster****\\",\\n \\"CasterTemplate\\": \\"lp_ld\\",\\n \\"ChannelEnable\\": 1,\\n \\"ChargeType\\": \\"PrePaid\\",\\n \\"CreateTime\\": \\"2017-08-30 12:02:57.0\\",\\n \\"Duration\\": \\"1:02:33\\",\\n \\"ExpireTime\\": \\"2018-08-30 12:02:57.0\\",\\n \\"LastModified\\": \\"2021-12-01T05:08:45Z\\",\\n \\"NormType\\": 1,\\n \\"PurchaseTime\\": \\"2017-08-30 12:02:57.0\\",\\n \\"StartTime\\": \\"2017-08-30 18:02:57.0\\",\\n \\"Status\\": 1,\\n \\"ClientTokenId\\": \\"53200b81-b761-4c10-842a-a0726d97****\\\\n\\",\\n \\"Tags\\": {\\n \\"tag\\": [\\n {\\n \\"TagKey\\": \\"TestKey\\",\\n \\"TagValue\\": \\"TestValue\\"\\n }\\n ]\\n },\\n \\"ResourceGroupId\\": \\"rg-acfmz******\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"5c6a2a0df228-4a64- af62-20e91b******\\",\\n \\"Total\\": 1\\n}","errorExample":""},{"type":"xml","example":"\\n 1\\n 5c6a2a0df228-4a64- af62-20e91b9676b3\\n \\n 1\\n 2017-08-30 12:02:57.0\\n 2018-08-30 12:02:57.0\\n 2017-08-30 12:02:57.0\\n liveCaster****\\n PrePaid\\n lp_ld\\n LIVEPRODUCER_POST-cn-0pp1czt****\\n 1\\n 2021-12-01T05:08:45Z\\n 2017-08-30 18:02:57.0\\n 1\\n 1:02:33\\n \\n","errorExample":""}]', + 'title' => 'DescribeCasters', + 'description' => 'You can call the [CreateCaster](~~2848012~~) operation to create a production studio and then call this operation to query the production studio list. The status of a production studio can be idle or streaming.'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeCasterStreamUrl' => [ + 'summary' => 'Queries the streaming URLs 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'CasterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the production studio.'."\n" + ."\n" + .'If you create a production studio through the [CreateCaster](~~69338#doc-api-live-CreateCaster~~) interface, check the value of the CasterId parameter in the response.'."\n" + ."\n" + .'If you create a production studio through the ApsaraVideo Live Console, log in to the console, then check the ID of the production studio through the following path:'."\n" + ."\n" + .'Production Studios > Production Studio Management'."\n" + ."\n" + .'> The CasterId is reflected in the Name column on the Production Studio Management page.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'CasterId' => [ + 'description' => 'The ID of the production studio.'."\n", + 'type' => 'string', + 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + 'CasterStreams' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'CasterStream' => [ + 'description' => 'The information about the streams of the production studio.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'OutputType' => [ + 'description' => 'Indicates whether the output stream is in preview mode or program mode.'."\n" + ."\n" + .'* **0**: indicates that the output videos of the scene are in preview mode.'."\n" + .'* **1**: indicates that the output videos of the scene are in program mode.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'RtmpUrl' => [ + 'description' => 'The Real Time Messaging Protocol (RTMP) URL.', + 'type' => 'string', + 'example' => 'rtmp://live/caster/example.edu', + ], + 'SceneId' => [ + 'description' => 'The ID of the scene.'."\n", + 'type' => 'string', + 'example' => '23ca74e0-aca3-4e7a-8561-9d96f525****', + ], + 'StreamInfos' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'StreamInfo' => [ + 'description' => 'The information about the stream.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'OutputStreamUrl' => [ + 'description' => 'The streaming URL.'."\n", + 'type' => 'string', + 'example' => 'http://out/caster/example.net', + ], + 'TranscodeConfig' => [ + 'description' => 'The resolution to which the scene transcodes the stream for playback. Valid values:'."\n" + ."\n" + .'* **lsd**: standard definition.'."\n" + .'* **lld**: low definition.'."\n" + .'* **lud**: ultra high definition.'."\n" + .'* **lhd**: high definition.'."\n", + 'type' => 'string', + 'example' => 'lld', + ], + 'VideoFormat' => [ + 'description' => 'The format to which the scene transcodes the stream for playback. Valid values:'."\n" + ."\n" + .'* **flv**.'."\n" + .'* **rtmp**.'."\n" + .'* **m3u8**.'."\n", + 'type' => 'string', + 'example' => 'flv', + ], + ], + ], + ], + ], + ], + 'StreamUrl' => [ + 'description' => 'The streaming URL.'."\n", + 'type' => 'string', + 'example' => 'http://live/caster/example.org', + ], + ], + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + 'Total' => [ + 'description' => 'The number of streams that were returned.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidScene.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidDomainName.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"CasterStreams\\": {\\n \\"CasterStream\\": [\\n {\\n \\"OutputType\\": 1,\\n \\"RtmpUrl\\": \\"rtmp://live/caster/example.edu\\",\\n \\"SceneId\\": \\"23ca74e0-aca3-4e7a-8561-9d96f525****\\",\\n \\"StreamInfos\\": {\\n \\"StreamInfo\\": [\\n {\\n \\"OutputStreamUrl\\": \\"http://out/caster/example.net\\",\\n \\"TranscodeConfig\\": \\"lld\\",\\n \\"VideoFormat\\": \\"flv\\"\\n }\\n ]\\n },\\n \\"StreamUrl\\": \\"http://live/caster/example.org\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E6******\\",\\n \\"Total\\": 1\\n}","errorExample":""},{"type":"xml","example":"\\n a2b8e671-2fe5-4642-a2ec-bf93880e****\\n \\n 1\\n rtmp://live/caster/example.edu\\n 23ca74e0-aca3-4e7a-8561-9d96f525****\\n \\n http://out/caster/example.net\\n lld\\n flv\\n \\n http://live/caster/example.org\\n \\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n 1\\n","errorExample":""}]', + 'title' => 'DescribeCasterStreamUrl', + 'description' => 'You must create a production studio before calling this operation to query the information.'."\n" + ."\n" + .'## QPS limit'."\n" + ."\n" + .'A single user can perform a maximum of 15 queries per second (QPS). Throttling is triggered when the number of calls per second exceeds the QPS limit. The throttling may affect your business. Thus, we recommend that you observe the QPS limit on this operation. For more information about what a single user means and the QPS details, 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#topic-2136805).', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'CopyCaster' => [ + 'summary' => 'Duplicates 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'CasterName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the new production studio.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'caster001', + ], + ], + [ + 'name' => 'SrcCasterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the original 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' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The user-generated request token. This token is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must ensure that it is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '53200b81-b761-4c10-842a-a0726d97****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'CasterId' => [ + 'description' => 'The ID of the new production studio.'."\n", + 'type' => 'string', + 'example' => '1909f043-e3d3-49e9-82d6-4329ec4a****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidClientToken.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'CasterNumberExceed', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"1909f043-e3d3-49e9-82d6-4329ec4a****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t1909f043-e3d3-49e9-82d6-4329ec4a****\\n\\t","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"CasterId\\": \\"1909f043-e3d3-49e9-82d6-4329ec4a0293\\"\\n}"}]', + 'title' => 'CopyCaster', + 'description' => 'You can call this operation to duplicate a production studio. This way, a new, identical production studio is created.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'StartCaster' => [ + 'summary' => 'Starts a production studio. If the production studio does not have a PVW scene or a PGM scene, this operation creates and starts such scenes and starts audio and video processing tasks.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + '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' => '80787064-1c94-4dc1-85ce-9409960a****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The information about the production studio.'."\n", + 'type' => 'object', + 'properties' => [ + 'PgmSceneInfos' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SceneInfo' => [ + 'description' => 'The PGM scenes.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the PGM scene.'."\n", + 'type' => 'object', + 'properties' => [ + 'SceneId' => [ + 'description' => 'The ID of the scene.'."\n", + 'type' => 'string', + 'example' => 'b5f8c837-ceeb-424f-b30b-68e94e86****', + ], + 'StreamInfos' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'StreamInfo' => [ + 'description' => 'The stream relay URLs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The detailed information.'."\n", + 'type' => 'object', + 'properties' => [ + 'OutputStreamUrl' => [ + 'description' => 'The URL.'."\n", + 'type' => 'string', + 'example' => 'rtmp://abclive/caster/example.net', + ], + 'TranscodeConfig' => [ + 'description' => 'The transcoding configuration. Valid values:'."\n" + ."\n" + .'* **lsd**: standard definition'."\n" + .'* **lld**: low definition'."\n" + .'* **lud**: ultra-high definition'."\n" + .'* **lhd**: high definition'."\n", + 'type' => 'string', + 'example' => 'lld', + ], + 'VideoFormat' => [ + 'description' => 'The format. Valid values:'."\n" + ."\n" + .'* **flv**'."\n" + .'* **rtmp**'."\n" + .'* **m3u8**'."\n", + 'type' => 'string', + 'example' => 'flv', + ], + ], + ], + ], + ], + ], + 'StreamUrl' => [ + 'description' => 'The streaming URL of the PGM scene in the production studio. The value is not a stream relay URL.'."\n", + 'type' => 'string', + 'example' => 'rtmp://abclive/caster/example.edu', + ], + ], + ], + ], + ], + ], + 'PvwSceneInfos' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SceneInfo' => [ + 'description' => 'The PVW scenes.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the PVW scene.'."\n", + 'type' => 'object', + 'properties' => [ + 'SceneId' => [ + 'description' => 'The ID of the scene.'."\n", + 'type' => 'string', + 'example' => 'b5f8c837-ceeb-424f-b30b-68e94e86****', + ], + 'StreamUrl' => [ + 'description' => 'The streaming URL of the PVW scene in the production studio. The value is not a stream relay URL.'."\n", + 'type' => 'string', + 'example' => 'rtmp://abclive/caster/example.net', + ], + ], + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '6EBD1AC4-C34D-4AE1-963E-B688A228BE31', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidShowList.EmptyList', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'IncorrectSceneStatus', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'IncorrectCasterStatus.Cease', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'IncorrectCasterStatus.Expire', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'IncorrectCasterStatus.Inuse', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'IncorrectSceneStatus.Inuse', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'IncorrectChannel.Disable', + 'errorMessage' => '%s', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s', + ], + ], + 403 => [ + [ + 'errorCode' => 'UserQuotaExceed', + 'errorMessage' => '%s', + ], + ], + [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidDomainName.NotFound', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidTranscode.NotFound', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidDelay.NotFound', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidCasterTemplate.NotFound', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidConfiguration.NotFound', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidResource.NotFound', + 'errorMessage' => '%s', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PgmSceneInfos\\": {\\n \\"SceneInfo\\": [\\n {\\n \\"SceneId\\": \\"b5f8c837-ceeb-424f-b30b-68e94e86****\\",\\n \\"StreamInfos\\": {\\n \\"StreamInfo\\": [\\n {\\n \\"OutputStreamUrl\\": \\"rtmp://abclive/caster/example.net\\",\\n \\"TranscodeConfig\\": \\"lld\\",\\n \\"VideoFormat\\": \\"flv\\"\\n }\\n ]\\n },\\n \\"StreamUrl\\": \\"rtmp://abclive/caster/example.edu\\"\\n }\\n ]\\n },\\n \\"PvwSceneInfos\\": {\\n \\"SceneInfo\\": [\\n {\\n \\"SceneId\\": \\"b5f8c837-ceeb-424f-b30b-68e94e86****\\",\\n \\"StreamUrl\\": \\"rtmp://abclive/caster/example.net\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\n\\n \\n b5f8c837-ceeb-424f-b30b-68e94e86****\\n \\n rtmp://abclive/caster/example.net\\n \\n\\n\\n \\n b5f8c837-ceeb-424f-b30b-68e94e86****\\n rtmp://abclive/caster/example.edu\\n \\n \\n rtmp://abclive/caster/example.net\\n flv\\n lld\\n \\n \\n \\n\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"PvwSceneInfos\\": [\\n {\\n \\"SceneId\\":\\"b5f8c837-ceeb-424f-b30b-68e94e864995\\",\\n \\"StreamUrl\\":\\"rtmp://XXXXXX/caster/1975ee99db904ebb83908d43bc878188?auth_key=1506396160-0-0-063397072a9980fd418d43eb00e02e09\\"\\n }\\n ],\\n \\"PgmSceneInfos\\": [\\n {\\n \\"SceneId\\":\\"b5f8c837-ceeb-424f-b30b-68e94e864996\\",\\n \\"StreamUrl\\":\\"rtmp://XXXXXX/caster/1975ee99db904ebb83908d43bc878188?auth_key=1506396160-0-0-063397072a9980fd418d43eb00e02e10\\",\\n \\"StreamInfos\\": [\\n {\\n \\"VideoFormat\\": \\"flv\\",\\n \\"OutputStreamUrl\\": \\"http://XXXXXX/caster/fb628e2469f94f2aa2c0c219af8b2527_lld.flv?auth_key=1506396160-0-0-7de771a77102680861853af862d5eaf0\\",\\n \\"TranscodeConfig\\": \\"lld\\"\\n },\\n {\\n \\"VideoFormat\\": \\"rtmp\\",\\n \\"OutputStreamUrl\\": \\"rtmp://XXXXXX/caster/fb628e2469f94f2aa2c0c219af8b2527_lld?auth_key=1506396160-0-0-77ed32cd82ed32ccd51a832b5765814c\\",\\n \\"TranscodeConfig\\": \\"lld\\"\\n },\\n {\\n \\"VideoFormat\\": \\"m3u8\\",\\n \\"OutputStreamUrl\\": \\"http://XXXXXX/caster/fb628e2469f94f2aa2c0c219af8b2527.m3u8?auth_key=1506396160-0-0-d51f0512dcf76aa749f79f53ae6421d2\\",\\n \\"TranscodeConfig\\": \\"lld\\"\\n }\\n ]\\n }\\n ]\\n}"}]', + 'title' => 'StartCaster', + 'description' => 'You can call the [CreateCaster](~~2848009~~) operation to create a production studio and then call this operation to start the production studio. If the production studio does not have a PVW scene or a PGM scene, this operation creates and starts such scenes and starts audio and video processing tasks.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'StopCaster' => [ + 'summary' => 'Stops a production studio. This stops the PVW and PGM scenes of the production studio.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + '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' => '80787064-1c94-4dc1-85ce-9409960a****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IncorrectSceneStatus', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidScene.NotFound', + 'errorMessage' => '%s', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', + 'title' => 'StopCaster', + 'description' => 'You can call the [CreateCaster](~~2848009~~) operation to create a production studio and call this operation to stop the production studio. When a production studio is stopped, its PVW and PGM scenes are stopped.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteCaster' => [ + 'summary' => 'Deletes a production studio.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + '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' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'CasterId' => [ + 'description' => 'The ID of the production studio. You can use the ID as a request parameter in the API operation that is used to add input sources, layouts, components, or an episode list to the production studio or query the layouts of the production studio.'."\n", + 'type' => 'string', + 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvaildCaster.Delete', + 'errorMessage' => 'Caster can not be deleted when ChargeType is Prepaid', + ], + [ + 'errorCode' => 'IncorrectCasterStatus.Inuse', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s', + ], + ], + 403 => [ + [ + 'errorCode' => 'PermissionDenied', + 'errorMessage' => '%s', + ], + ], + [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\na2b8e671-2fe5-4642-a2ec-bf93880e****\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e1a49\\"\\n}"}]', + 'title' => 'DeleteCaster', + 'description' => '* You can delete only production studios that are closed.'."\n" + .'* When a production studio is deleted, the scenes, components, and layouts of the production studio are also deleted.'."\n" + .'* You cannot recover a deleted production studio.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + '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' => '80787064-1c94-4dc1-85ce-9409960a****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '6EBD1AC4-C34D-4AE1-963E-B688A228BE31', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IncorrectSceneStatus', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectCasterStatus.Idle', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidNormType.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectCasterStatus', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidScene.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\n","errorExample":""}]', + 'title' => 'RestartCaster', + 'description' => '* Only product studios in playlist mode and general mode are supported. Virtual studios are not supported.'."\n" + .'* After you restart a production studio, the current settings such as the resolution and screen orientation are reloaded to restore the previous playback status.'."\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", + ], + 'UpdateCasterResourceGroup' => [ + 'summary' => 'Changes the resource group to which a production studio belongs.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'NewResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the destination resource group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'rg-aekz7***34cn5ty', + ], + ], + [ + 'name' => 'CasterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the production studio.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'a41300c9-23d3-470e-b9bd-****663e0700', + ], + ], + ], + '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' => '0D776BD1-****-59D0-9A1B-272832D999F6', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter.PurchaseTime', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidParameter.ExpireTime', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidChargeType.Malformed', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidChargeType.PostSupport', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidCasterTemplate.Malformed', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidParameter.ChargeType', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidPeriod.Malformed', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidClientToken.Malformed', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'IncorrectCasterStatus', + 'errorMessage' => '%s', + ], + ], + [ + [ + 'errorCode' => 'CasterNumberExceed', + 'errorMessage' => '%s', + ], + ], + 403 => [ + [ + 'errorCode' => 'PermissionDenied', + 'errorMessage' => '%s', + ], + ], + [ + [ + 'errorCode' => 'InvalidParameter.NormType', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidConfiguration.NotFound', + 'errorMessage' => '%s', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0D776BD1-****-59D0-9A1B-272832D999F6\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0D776BD1-****-59D0-9A1B-272832D999F6\\n","errorExample":""}]', + 'title' => 'UpdateCasterResourceGroup', + 'description' => '## [](#)Usage notes'."\n" + ."\n" + .'To call this operation to change the resource group to which a production studio belongs, you must have access permissions on the original resource group and the destination resource group.'."\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. For more information, see [QPS limits](~~343507~~).'."\n", + ], + 'AddCasterVideoResource' => [ + 'summary' => 'Adds an input source to a production studio. The number of input sources is limited by the number of input channels of the production studio.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'CasterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the production studio.'."\n" + ."\n" + .'* If the production studio was created by calling the [CreateCaster](~~69338~~) 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 Name column.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', + ], + ], + [ + 'name' => 'ResourceName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the video source.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'test001', + ], + ], + [ + 'name' => 'LocationId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID that is used to identify the position of the video source.'."\n" + ."\n" + .'Define the reference numbers in the layout. Each reference number is associated with only one resource. The value of this parameter must be in the RV\\[Number] format, where Number is `01 to 99`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'RV01', + ], + ], + [ + 'name' => 'LiveStreamUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming URL.'."\n" + ."\n" + .'**'."\n" + ."\n" + .'**Important** This parameter is required if the video source is a live stream.'."\n" + ."\n" + .'> Do not specify this parameter in the request if the video source is not a live stream.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rtmp://guide.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-ac8c628078541d7055a170ec59a5****', + ], + ], + [ + 'name' => 'MaterialId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the material from the media library.'."\n" + ."\n" + .'**'."\n" + ."\n" + .'**Important** This parameter takes effect and is required only if the video source is a material.'."\n" + ."\n" + .'If you query the configurations of the production studio by calling the [DescribeCasterConfig](~~60259~~) operation, obtain the value of the response parameter UrgentMaterialId.'."\n" + ."\n" + .'> The value of the UrgentMaterialId parameter is the ID of the material from the media library.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'f080575eb5f4427684fc0715159a****', + ], + ], + [ + 'name' => 'VodUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The URL of the VOD file.'."\n" + ."\n" + .'**'."\n" + ."\n" + .'**Important** This parameter takes effect only if the video source is a file that is not from the media library.'."\n" + ."\n" + .'> The VOD file must be in the MP4, FLV, or TS format.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'http://learn.aliyundoc.com/AppName/StreamName.flv', + ], + ], + [ + 'name' => 'BeginOffset', + 'in' => 'query', + 'schema' => [ + 'description' => 'The offset of the position where the system starts to read the video source. Unit: milliseconds.'."\n" + ."\n" + .'**'."\n" + ."\n" + .'**Important** This parameter takes effect only if the video source is a file.'."\n" + ."\n" + .'> A value greater than **0** specifies an offset from the first frame.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1000', + ], + ], + [ + 'name' => 'EndOffset', + 'in' => 'query', + 'schema' => [ + 'description' => 'The offset of the position where the system stops reading the video source. Unit: milliseconds.'."\n" + ."\n" + .'**'."\n" + ."\n" + .'**Important** This parameter takes effect only if the video source is a file.'."\n" + ."\n" + .'* A value greater than **0** specifies an offset from the first frame.'."\n" + .'* A value less than **0** specifies an offset from the last frame.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10000', + ], + ], + [ + 'name' => 'RepeatNum', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of playbacks after the first playback is complete. Valid values:'."\n" + ."\n" + .'**'."\n" + ."\n" + .'**Important** This parameter takes effect only if the video source is a file.'."\n" + ."\n" + .'* **0**: specifies that the video source is played only once. This is the default value.'."\n" + .'* **-1**: specifies that the video source is played in loop mode.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '60', + 'minimum' => '-1', + 'example' => '0', + ], + ], + [ + 'name' => 'PtsCallbackInterval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The interval between presentation timestamp (PTS) callbacks. Unit: milliseconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'minimum' => '0', + 'example' => '2000', + ], + ], + [ + 'name' => 'FixedDelayDuration', + 'in' => 'query', + 'schema' => [ + 'description' => 'The fixed delay of the video layer. This parameter is used to synchronize the video with subtitles. Unit: milliseconds. Default value: 0. Valid values: `0 to 5000`.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '0', + ], + ], + [ + 'name' => 'ImageId', + 'in' => 'query', + 'schema' => [ + 'description' => 'ID of the media library image material. '."\n" + .'>This parameter is only available and must be provided when the video source type is an image.', + 'type' => 'string', + 'required' => false, + 'example' => 'a089175eb5f4427684fc0715159a****', + ], + ], + [ + 'name' => 'ImageUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'Image material URL. '."\n" + .'>This parameter is available only when the video source type is an image and the image file has not been imported into the material library. Supports uploading images in jpg, png formats, with a maximum file size of 10MB.', + 'type' => 'string', + 'required' => false, + 'example' => 'http://learn.aliyundoc.com/AppName/image.jpg', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7', + ], + 'ResourceId' => [ + 'description' => 'The ID of the resource. This parameter can be used as a request parameter in the API operation that you can call to delete the video source in the production studio or modify the video source in the production studio.'."\n", + 'type' => 'string', + 'example' => 'e5542d98-b08c-46bf-83e9-5b09d08c****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidLiveStreamUrl.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidMaterialId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidVodUrl.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'ResourceNumberExceed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'DuplicateLocationID', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'UnexpectedLocationID', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\",\\n \\"ResourceId\\": \\"e5542d98-b08c-46bf-83e9-5b09d08c****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\tCF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n\\te5542d98-b08c-46bf-83e9-5b09d08c****\\n\\t","errorExample":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\",\\n \\"ResourceId\\": \\"e5542d98-b08c-46bf-83e9-5b09d08c692f\\"\\n}"}]', + 'title' => 'AddCasterVideoResource', + 'description' => '##'."\n" + ."\n" + .'Create a production studio, and then call this operation to add a video source to the production studio. The number of video sources is limited by the number of input channels of the production studio. For information about how to create a production studio by calling an API operation, see [CreateCaster](~~69338~~).'."\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 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](~~343507~~).'."\n", + 'requestParamsDescription' => '> The type of the video source can be indicated by the URL.'."\n", + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'translator' => 'machine', + ], + 'DeleteCasterVideoResource' => [ + 'summary' => 'Removes an input source 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'CasterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the production studio.'."\n" + ."\n" + .'* If the production studio was created by calling the [CreateCaster](~~69338~~) 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' => '80787064-1c94-4dc1-85ce-9409960a****', + ], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The resource ID. If the input source was added by calling the AddCasterVideoResource operation, check the value of the response parameter ResourceId to obtain the ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '05ab713c-676e-49c0-96ce-cc408da1****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'CF60DB6A-7FD6-426E-9288-122C*******', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidResource.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122C*******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\tCF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n\\t","errorExample":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\"\\n}"}]', + 'title' => 'DeleteCasterVideoResource', + 'description' => 'Before you call this operation to remove an input source from a production studio, make sure that you have called the [CreateCaster](~~69338~~) operation to create the production studio.'."\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. For more information, see [QPS limits](~~343507~~).'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ModifyCasterVideoResource' => [ + 'summary' => 'Changes the video source 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'CasterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the production studio.'."\n" + ."\n" + .'If you create a production studio through the [CreateCaster](~~69338#doc-api-live-CreateCaster~~ "Creates a production studio.") interface, check the value of the CasterId parameter in the response.'."\n" + ."\n" + .'If you create a production studio through the ApsaraVideo Live Console, log in to the console, then check the ID of the production studio through the following path:'."\n" + ."\n" + .'Production Studios > Production Studio Management'."\n" + ."\n" + .'> The CasterId is reflected in the Name column on the Production Studio Management page.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', + ], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the video resource. It is reflected in the ResourceId parameter when you call the [AddCasterVideoResource](~~60250#doc-api-live-AddCasterVideoResource~~ "Adds a video resource to a production studio.") operation.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '05ab713c-676e-49c0-96ce-cc408da1****', + ], + ], + [ + 'name' => 'ResourceName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the video resource.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test001', + ], + ], + [ + 'name' => 'LiveStreamUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The URL of the live stream.'."\n" + ."\n" + .'This parameter takes effect and is required only when the video resource is a live stream.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rtmp://guide.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-ac8c628078541d7055a170ec59a5****', + ], + ], + [ + 'name' => 'MaterialId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the material.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'f080575eb5f4427684fc0715159a****', + ], + ], + [ + 'name' => 'VodUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The URL of the video-on-demand (VOD) file. This parameter takes effect only when the video resource is a video file that is not from the media library.'."\n" + ."\n" + .'> The VOD file must be in the MP4, FLV, or TS format.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'http://developer.aliyundoc.com/AppName/StreamName.flv', + ], + ], + [ + 'name' => 'BeginOffset', + 'in' => 'query', + 'schema' => [ + 'description' => 'The offset of the position where the system starts to read the video resource.'."\n" + ."\n" + .'This parameter takes effect only when the video resource is a video file. Unit: milliseconds.'."\n" + ."\n" + .'> A value greater than 0 indicates an offset from the first frame.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '0', + ], + ], + [ + 'name' => 'EndOffset', + 'in' => 'query', + 'schema' => [ + 'description' => 'This parameter takes effect only when the video resource is a video file. Unit: milliseconds.'."\n" + ."\n" + .'* A value greater than **0** indicates an offset from the first frame.'."\n" + .'* A value smaller than **0** indicates an offset from the last frame.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10000', + ], + ], + [ + 'name' => 'RepeatNum', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of playback times after the first playback is complete. This parameter takes effect only when the video resource is a file. Valid values:'."\n" + ."\n" + .'* **0**: indicates that the video is played only once. This is the default value.'."\n" + .'* **-1**: indicates that the video is played in loop mode.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '60', + 'minimum' => '-1', + 'example' => '0', + ], + ], + [ + 'name' => 'PtsCallbackInterval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The interval between presentation timestamp (PTS) callbacks. Unit: milliseconds. This parameter takes effect only when the video resource is a VOD file.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'minimum' => '0', + 'example' => '2000', + ], + ], + [ + 'name' => 'ImageId', + 'in' => 'query', + 'schema' => [ + 'description' => 'ID of the media library image material.'."\n" + .'> This parameter is only available and must be provided when the video source type is an image.', + 'type' => 'string', + 'required' => false, + 'example' => 'a089175eb5f4427684fc0715159a****', + ], + ], + [ + 'name' => 'ImageUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'Image material URL. '."\n" + .'>This parameter is only available when the video source type is an image and the image file has not been imported into the material library. Supports uploading images in jpg, png formats, with a maximum file size of 10MB.', + 'type' => 'string', + 'required' => false, + 'example' => 'http://learn.aliyundoc.com/AppName/image.jpg', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'CasterId' => [ + 'description' => 'The ID of the production studio. This parameter is used in the requests of the following operations: DescribeCasterVideoResources, AddCasterLayout, and DescribeCasterLayouts.'."\n", + 'type' => 'string', + 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7', + ], + 'ResourceId' => [ + 'description' => 'The ID of the resource.'."\n", + 'type' => 'string', + 'example' => '98461064-1c94-4dc1-85ce-94098764****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'InvalidResourceId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidLiveStreamUrl.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidMaterialId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidVodUrl.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidResource.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"LIVEPRODUCER_POST-cn-0pp1czt****\\",\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\",\\n \\"ResourceId\\": \\"98461064-1c94-4dc1-85ce-94098764****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\tCF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n LIVEPRODUCER_POST-cn-0pp1czt****\\n 98461064-1c94-4dc1-85ce-94098764****\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\"\\n}"}]', + 'title' => 'ModifyCasterVideoResource', + 'description' => '## Usage notes'."\n" + ."\n" + .'You must call the [CreateCaster](~~69338~~) operation to create a production studio before you call this operation to modify input sources of the production studio.'."\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 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](~~343507~~).'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'translator' => 'machine', + ], + 'DescribeCasterVideoResources' => [ + 'summary' => 'Queries the input 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + '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****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7', + ], + 'Total' => [ + 'description' => 'The total number of returned entries.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '2', + ], + 'VideoResources' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'VideoResource' => [ + 'description' => 'The input sources.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the input source.'."\n", + 'type' => 'object', + 'properties' => [ + 'BeginOffset' => [ + 'description' => 'The offset of the position where the system starts to read the video resource. This parameter takes effect only if the input source is a video file. Unit: milliseconds.'."\n" + ."\n" + .'A value **greater than 0** indicates an offset from the first frame.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1000', + ], + 'EndOffset' => [ + 'description' => 'The offset of the position where the system stops reading the video file. This parameter takes effect only if the input source is a video file. Unit: milliseconds.'."\n" + ."\n" + .'* A value greater than **0** indicates an offset from the first frame.'."\n" + .'* A value smaller than **0** indicates an offset from the last frame.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10000', + ], + 'FlvUrl' => [ + 'description' => 'The source URL.'."\n", + 'type' => 'string', + 'example' => 'http://guide.aliyundoc.com/example.org', + ], + 'ImageId' => [ + 'description' => 'The image ID.'."\n", + 'type' => 'string', + 'example' => 'a089175eb5f4427684fc0715159a****', + ], + 'ImageUrl' => [ + 'description' => 'The image URL.'."\n", + 'type' => 'string', + 'example' => 'http://learn.aliyundoc.com/AppName/image.jpg', + ], + 'LiveStreamUrl' => [ + 'description' => 'The URL of the live stream.'."\n", + 'type' => 'string', + 'example' => 'rtmp://abcLive/appName/b5447c21fcfe444c9e9b6f7ba208****', + ], + 'LocationId' => [ + 'description' => 'The position of the video resource.'."\n", + 'type' => 'string', + 'example' => 'RV01', + ], + 'MaterialId' => [ + 'description' => 'The material ID.'."\n", + 'type' => 'string', + 'example' => 'd2c429cd907742ee8f6e76465ad3****', + ], + 'PtsCallbackInterval' => [ + 'description' => 'The interval between presentation timestamp (PTS) callbacks. If you set the value to 0, the PTS callback is disabled. This parameter is returned only when the video resource is a video-on-demand (VOD) file.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'RepeatNum' => [ + 'description' => 'The number of playback times after the first playback is complete. This parameter takes effect only when the input source is a video file. Valid values:'."\n" + ."\n" + .'* **0** (default): The video file is played only once.'."\n" + .'* **-1**: The video file is played in loop mode.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'ResourceId' => [ + 'description' => 'The resource ID.'."\n", + 'type' => 'string', + 'example' => 'b5f8c837-ceeb-424f-b30b-68e94e86****', + ], + 'ResourceName' => [ + 'description' => 'The resource name.'."\n", + 'type' => 'string', + 'example' => 'resource-Name1', + ], + 'VodUrl' => [ + 'description' => 'The URL of the VOD file.'."\n" + ."\n" + .'This parameter is returned only when the video resource is an MP4, FLV, or TS file that is not from the media library.'."\n", + 'type' => 'string', + 'example' => 'http://developer.aliyundoc.com/caster1.flv', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\",\\n \\"Total\\": 2,\\n \\"VideoResources\\": {\\n \\"VideoResource\\": [\\n {\\n \\"BeginOffset\\": 1000,\\n \\"EndOffset\\": 10000,\\n \\"FlvUrl\\": \\"http://guide.aliyundoc.com/example.org\\",\\n \\"ImageId\\": \\"a089175eb5f4427684fc0715159a****\\",\\n \\"ImageUrl\\": \\"http://learn.aliyundoc.com/AppName/image.jpg\\",\\n \\"LiveStreamUrl\\": \\"rtmp://abcLive/appName/b5447c21fcfe444c9e9b6f7ba208****\\",\\n \\"LocationId\\": \\"RV01\\",\\n \\"MaterialId\\": \\"d2c429cd907742ee8f6e76465ad3****\\",\\n \\"PtsCallbackInterval\\": 0,\\n \\"RepeatNum\\": 0,\\n \\"ResourceId\\": \\"b5f8c837-ceeb-424f-b30b-68e94e86****\\",\\n \\"ResourceName\\": \\"resource-Name1\\",\\n \\"VodUrl\\": \\"http://developer.aliyundoc.com/caster1.flv\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\nCF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n2\\n\\n \\n 10000\\n 1000\\n d2c429cd907742ee8f6e76465ad3****\\n http://guide.aliyundoc.com/example.org\\n b5f8c837-ceeb-424f-b30b-68e94e86****\\n resource-Name1\\n RV01\\n 0\\n rtmp://abcLive/appName/b5447c21fcfe444c9e9b6f7ba208****\\n 0\\n http://developer.aliyundoc.com/caster1.flv\\n \\n\\n","errorExample":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\",\\n \\"SceneList\\": [{\\n \\"ResourceId\\": \\"b5f8c837-ceeb-424f-b30b-68e94e864995\\",\\n \\"ResourceName\\": \\"resource-Name1\\",\\n \\"LocationId\\": \\"RV01\\",\\n \\"LiveStreamUrl\\": \\"rtmp://XXXXXX/appName/b5447c21fcfe444c9e9b6f7ba208f141\\",\\n },\\n {\\n \\"ResourceId\\": \\"b5f8c837-ceeb-424f-b30b-68e94e864995\\",\\n \\"MaterialId\\": \\"d2c429cd907742ee8f6e76465ad3c784\\",\\n \\"ResourceName\\": \\"resource-Name3\\",\\n \\"LocationId\\": \\"RV02\\",\\n \\"repeatNum\\": 2\\n }\\n ]\\n}"}]', + 'title' => 'DescribeCasterVideoResources', + 'description' => 'You can call the [CreateCaster](~~2848009~~) operation to create a production studio and then call this operation to query the input sources of the production studio.'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'AddCasterLayout' => [ + 'summary' => 'Adds a layout for 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'VideoLayer', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'Video layout.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'FillMode' => [ + 'description' => 'The scaling mode of video layer N. Valid values:'."\n" + ."\n" + .'* **none**: The image is not scaled to fill in the specified layout section. Set video layer N based on the image size of the video resource. This is the default value.'."\n" + .'* **fit**: The image is scaled with the original aspect ratio to fill in the specified layout section. Set video layer N based on the section size. The image is centered in the layout section with the long side of the image equaling that of the section. If the aspect ratio of the image is inconsistent with that of the section, the short side of the image may be shorter than that of the section. The area outside the image displays the next video layer or the background if no next video layer exists. By default, the background color is black.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'fit', + ], + 'FixedDelayDuration' => [ + 'description' => 'The fixed delay of video layer N. You can use this parameter to synchronize the video with subtitles. Unit: milliseconds. Valid values: **0 to 5000**. Default value: **0**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '5000', + ], + 'HeightNormalized' => [ + 'description' => 'The normalized value of the height of the image of video layer N.'."\n" + ."\n" + .'* If the FillMode parameter of video layer N is set to none, the width of the video image is scaled based on this parameter. The default value is **0**, which indicates that the video image is displayed in the original size.'."\n" + .'* If the FillMode parameter of video layer N is set to fit, you must set this parameter to a value greater than **0**. In this case, the video image is scaled with the original aspect ratio to fill in the specified layout section based on this parameter.'."\n", + 'type' => 'number', + 'format' => 'float', + 'required' => false, + 'example' => '1', + ], + 'PositionNormalized' => [ + 'description' => 'The normalized value of the `[x,y]` coordinates of video layer N in the production studio. The default coordinates are `[0,0]`.'."\n" + ."\n" + .'> The coordinates indicate the location of video layer N in the production studio. Set this parameter to the normalized value of the coordinates.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'number', + 'format' => 'float', + 'required' => false, + 'description' => 'value.', + 'example' => '0', + ], + 'required' => false, + 'example' => '0.3', + 'maxItems' => 2, + ], + 'PositionRefer' => [ + 'description' => 'The reference coordinates of video layer N in the production studio. Valid values:'."\n" + ."\n" + .'* **topLeft**: the upper-left corner. This is the default value.'."\n" + .'* **topRight**: the upper-right corner.'."\n" + .'* **bottomLeft**: the lower-left corner.'."\n" + .'* **bottomRight**: the lower-right corner.'."\n" + .'* **center**: the center position.'."\n" + .'* **topCenter**: the upper center position.'."\n" + .'* **bottomCenter**: the lower center position.'."\n" + .'* **leftCenter**: the left center position.'."\n" + .'* **rightCenter**: the right center position.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'topLeft', + ], + 'WidthNormalized' => [ + 'description' => 'The normalized value of the width of the image of video layer N.'."\n" + ."\n" + .'* If the FillMode parameter of video layer N is set to none, the height of the video image is scaled based on this parameter. The default value is **0**, which indicates that the video image is displayed in the original size.'."\n" + .'* If the FillMode parameter of video layer N is set to fit, you must set this parameter to a value greater than **0**. In this case, the video image is scaled with the original aspect ratio to fill in the specified layout section based on this parameter.'."\n", + 'type' => 'number', + 'format' => 'float', + 'required' => false, + 'example' => '1', + ], + ], + 'required' => false, + 'description' => 'Video layout.', + ], + 'required' => true, + 'maxItems' => 12, + ], + ], + [ + 'name' => 'AudioLayer', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'Audio layout.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'FixedDelayDuration' => [ + 'description' => 'The fixed delay of audio layer N. You can use this parameter to synchronize the audio with subtitles. Unit: milliseconds. Valid values: **0 to 5000**. Default value: **0**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '5000', + ], + 'ValidChannel' => [ + 'description' => 'The valid voice channels of audio layer N. Valid values:'."\n" + ."\n" + .'* **leftChannel**: the left channel.'."\n" + .'* **rightChannel**: the right channel.'."\n" + .'* **all**: both the left and right channels. This is the default value.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'all', + ], + 'VolumeRate' => [ + 'description' => 'The multiples of the original volume at which audio layer N plays audio streams. Valid values: **0 to 10.0**.'."\n" + ."\n" + .'* The default value **1.0** indicates that audio layer N plays audio streams at the original volume.'."\n" + .'* A value smaller than **1.0** indicates that audio layer N plays audio streams at a lower volume than the original one.'."\n" + .'* A value greater than **1.0** indicates that audio layer N plays audio streams at a higher volume than the original one.'."\n", + 'type' => 'number', + 'format' => 'float', + 'required' => false, + 'example' => '1.0', + ], + ], + 'required' => false, + 'description' => 'Audio layout.', + ], + 'required' => true, + 'maxItems' => 12, + ], + ], + [ + 'name' => 'BlendList', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The element represents the location ID of the video resource, i.e., LocationId. Refer to [Adding Video Source](~~60250~~) for LocationId, which corresponds in order with the VideoLayers elements.', + 'type' => 'array', + 'items' => [ + 'type' => 'string', + 'required' => false, + 'description' => 'LocationId.'."\n", + 'example' => 'RV01', + ], + 'required' => true, + 'example' => 'RV01', + 'maxItems' => 12, + ], + ], + [ + 'name' => 'MixList', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The element represents the location ID of the audio resource, i.e., LocationId.'."\n" + .'LocationId is referred to in [Adding Video Source](~~60250~~), and corresponds in order with the AudioLayers elements.', + 'type' => 'array', + 'items' => [ + 'type' => 'string', + 'required' => false, + 'description' => 'LocationId.', + 'example' => 'RV01', + ], + 'required' => true, + 'example' => 'RV01', + 'maxItems' => 12, + ], + ], + [ + 'name' => 'CasterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the production studio.'."\n" + ."\n" + .'If you create a production studio through the [CreateCaster](~~69338#doc-api-live-CreateCaster~~ "Creates a production studio.") interface, check the value of the CasterId parameter in the response.'."\n" + ."\n" + .'If you create a production studio through the ApsaraVideo Live Console, log in to the console, then check the ID of the production studio through the following path:'."\n" + ."\n" + .'Production Studios > Production Studio Management'."\n" + ."\n" + .'> The CasterId is reflected in the Name column on the Production Studio Management page.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'LayoutId' => [ + 'description' => 'The ID of the layout.'."\n" + ."\n" + .'Record the ID as it can be used to manage the layout being created.'."\n", + 'type' => 'string', + 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidVideoLayersAndBlendListSize.Mismatch', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidAudioLayersAndMixListSize.Mismatch', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidBlendList.ExceedNorm', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidPositionNormalized.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidHeightOrWidthNormalized', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidMixList.ExceedNorm', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"LayoutId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t21926b36-7dd2-4fde-ae25-51b5bc8e****\\n\\t","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"LayoutId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e52d8\\"\\n}"}]', + 'title' => 'AddCasterLayout', + 'description' => "\n" + .'First, create a director desk and add video resources to the director desk, then call this interface to add the director desk layout. To create a director desk using the API, refer to [Create Director Desk](~~69338~~).'."\n" + .'## QPS Limitation '."\n" + .'The per-user QPS limit for this interface is 10 times/second. Exceeding this limit will result in API calls being throttled, which may impact your business operations. Please use the API reasonably. For more information, see [QPS Limitation](~~343507~~).', + 'requestParamsDescription' => '> The variable N in request parameter names indicates the sequence number of the video or audio layer. For example, the VideoLayer.N.FillMode parameter specifies the scaling mode of video layer N. The VideoLayer.1.FillMode parameter specifies the scaling mode of the first video layer. The VideoLayer.2.FillMode parameter specifies the scaling mode of the second video layer.'."\n", + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteCasterLayout' => [ + 'summary' => 'Deletes a layout in 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'CasterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the production studio.'."\n" + ."\n" + .'* If the production studio was created by calling the [CreateCaster](~~69338~~) 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' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + ], + [ + 'name' => 'LayoutId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the layout. If the layout was added by calling the [AddCasterLayout](~~60249~~) operation, check the value of the response parameter LayoutId to obtain the ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'CasterId' => [ + 'description' => 'The ID of the production studio. You can use the ID as a request parameter in the API operation that is used to modify a layout in the production studio, query layouts in the production studio, add a component in the production studio, or query components in the production studio.'."\n", + 'type' => 'string', + 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + 'LayoutId' => [ + 'description' => 'The ID of the layout. You can use the ID as a request parameter in the API operation that is used to query layouts in the production studio.'."\n", + 'type' => 'string', + 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidLayoutId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidLayout.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"LayoutId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n a2b8e671-2fe5-4642-a2ec-bf93880e****\\n 21926b36-7dd2-4fde-ae25-51b5bc8e****\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + 'title' => 'DeleteCasterLayout', + 'description' => 'You can call the [CreateCaster](~~69338~~) operation to create a production studio and then call this operation to delete a layout in the production studio.'."\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. For more information, see [QPS limits](~~343507~~).'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ModifyCasterLayout' => [ + 'summary' => 'Modifies the layout configurations pf a production studio. You need to pass only parameters that you want to modify.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'VideoLayer', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The video layers.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the video layer.'."\n", + 'type' => 'object', + 'properties' => [ + 'FillMode' => [ + 'description' => 'The scaling mode of the video layer. Valid values:'."\n" + ."\n" + .'* **none** (default): indicates that the video layer is not scaled. The video layer is displayed based on its original size.'."\n" + .'* **fit**: indicates that the video layer is adapted to the fill area. In this case, the video layer is scaled proportionally, with its original aspect ratio retained. The video layer is placed in the center, with its longer sides aligned with the fill area. If the aspect ratio of the video layer is different from that of the fill area, the content of the lower layer is displayed alongside the shorter sides. If there is no lower layer, black bars are displayed instead.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'fit', + ], + 'FixedDelayDuration' => [ + 'description' => 'The fixed delay of the video layer. This parameter is used to synchronize the video with subtitles. Unit: milliseconds. Default value: **0**. Valid values: **0 to 5000**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '5000', + ], + 'HeightNormalized' => [ + 'description' => 'The normalized value of the height of the video layer.'."\n" + ."\n" + .'* If the FillMode parameter of the video layer is set to none, the width of the video layer is proportionally scaled based on this parameter. The default value is **0**, which indicates that the video layer is not scaled.'."\n" + .'* If the FillMode parameter of the video layer is set to fit, the value of this parameter is greater than **0**.'."\n", + 'type' => 'number', + 'format' => 'float', + 'required' => false, + 'example' => '1', + ], + 'PositionNormalized' => [ + 'description' => 'The normalized value of the position of the video layer, in the format of `[x,y]`. Default value: `[0,0]`.'."\n" + ."\n" + .'> The values of x and y are normalized.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The normalized value of the position of the video layer, in the format of `[x,y]`. Default value: `[0,0]`.'."\n" + ."\n" + .'> The values of x and y are normalized.'."\n", + 'type' => 'number', + 'format' => 'float', + 'required' => false, + 'example' => '[0,3]', + ], + 'required' => false, + 'example' => '0.3', + 'maxItems' => 2, + ], + 'PositionRefer' => [ + 'description' => 'The reference coordinates of the video layer. Valid values:'."\n" + ."\n" + .'* **topLeft** (default): the upper-left corner'."\n" + .'* **topRight**: the upper-right corner'."\n" + .'* **bottomLeft**: the lower-left corner'."\n" + .'* **bottomRight**: the lower-right corner'."\n" + .'* **center**: the center'."\n" + .'* **topCenter**: the upper center'."\n" + .'* **bottomCenter**: the lower center'."\n" + .'* **leftCenter**: the left center'."\n" + .'* **rightCenter**: the right center'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'topLeft', + ], + 'WidthNormalized' => [ + 'description' => 'The normalized value of the width of the video layer.'."\n" + ."\n" + .'* If the FillMode parameter of the video layer is set to none, the height of the video layer is proportionally scaled based on this parameter. The default value is **0**, which indicates that the video layer is not scaled.'."\n" + .'* If the FillMode parameter of the video layer is set to fit, the value of this parameter is greater than **0**.'."\n", + 'type' => 'number', + 'format' => 'float', + 'required' => false, + 'example' => '1', + ], + ], + 'required' => false, + ], + 'required' => true, + 'maxItems' => 12, + ], + ], + [ + 'name' => 'AudioLayer', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The audio layers.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the audio layer.'."\n", + 'type' => 'object', + 'properties' => [ + 'FixedDelayDuration' => [ + 'description' => 'The fixed delay of the audio layer. This parameter is used to synchronize the audio with subtitles. Unit: milliseconds. Default value: **0**. Valid values: **0 to 5000**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '5000', + ], + 'ValidChannel' => [ + 'description' => 'The sound channels that are used for volume input in the audio layer. Valid values:'."\n" + ."\n" + .'* **leftChannel**: the left channel'."\n" + .'* **rightChannel**: the right channel'."\n" + .'* **all** (default): both the left and right channels'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'all', + ], + 'VolumeRate' => [ + 'description' => 'The normalized value of the height of the audio layer. The width of the audio layer is proportionally scaled based on this parameter.'."\n" + ."\n" + .'The default value is **0**, which indicates that the audio layer is not scaled.'."\n", + 'type' => 'number', + 'format' => 'float', + 'required' => false, + 'example' => '1', + ], + ], + 'required' => false, + ], + 'required' => true, + 'maxItems' => 12, + ], + ], + [ + 'name' => 'BlendList', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The location IDs of the video layers, which are in the same order as the video layers.'."\n" + ."\n" + .'For more information, see [AddCasterVideoResource](~~2848020~~).'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The location ID.'."\n" + ."\n" + .'For more information, see [AddCasterVideoResource](~~2848020~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'RV02', + ], + 'required' => true, + 'example' => 'RV02', + 'maxItems' => 12, + ], + ], + [ + 'name' => 'MixList', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The location IDs of the audio layers, which are in the same order as the audio layers.'."\n" + ."\n" + .'For more information, see [AddCasterVideoResource](~~2848020~~).'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The location ID.'."\n" + ."\n" + .'For more information, see [AddCasterVideoResource](~~2848020~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'RV02', + ], + 'required' => true, + 'example' => 'RV02', + 'maxItems' => 12, + ], + ], + [ + '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****', + ], + ], + [ + 'name' => 'LayoutId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the layout. If the layout was added by calling the [AddCasterLayout](~~2848025~~) operation, check the value of the response parameter LayoutId to obtain the ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'LayoutId' => [ + 'description' => 'The ID of the layout. You can use this ID to query information about the layout.'."\n", + 'type' => 'string', + 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidLayoutId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'InvalidVideoLayersAndBlendListSize.Mismatch', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidAudioLayersAndMixListSize.Mismatch', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidPositionNormalized.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidBlendList.ExceedNorm', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidMixList.ExceedNorm', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidHeightOrWidthNormalized', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidVideoLayersConfig', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidAudioLayersConfig', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidLayout.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"LayoutId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t21926b36-7dd2-4fde-ae25-51b5bc8e52d8\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"LayoutId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e52d8\\"\\n}"}]', + 'title' => 'ModifyCasterLayout', + 'description' => 'You can call the [CreateCaster](~~2848009~~) operation to create a production studio and then call this operation to modify a layout of the production studio. This operation supports the default and adaptive scaling modes.'."\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", + 'requestParamsDescription' => '> N in the preceding request parameters specifies the sequence number. VideoLayer.N.FillMode specifies the scaling mode of video layer N. For example, VideoLayer.1.FillMode specifies the scaling mode of the first video layer, and VideoLayer.2.FillMode specifies the scaling mode of the second video layer.'."\n", + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeCasterLayouts' => [ + 'summary' => 'Queries a specified layout or all 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + '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****', + ], + ], + [ + 'name' => 'LayoutId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the layout.'."\n" + ."\n" + .'If you do not specify a layout ID, all layouts of the production studio are queried.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '72d2ec7a-4cd7-4a01-974b-7cd53947****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Layouts' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Layout' => [ + 'description' => 'The layouts.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the layout.'."\n", + 'type' => 'object', + 'properties' => [ + 'AudioLayers' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AudioLayer' => [ + 'description' => 'The configurations of the audio layers.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The configuration of the audio layer.'."\n", + 'type' => 'object', + 'properties' => [ + 'FixedDelayDuration' => [ + 'description' => 'The fixed delay of the audio layer. This parameter is used to synchronize the audio with subtitles.'."\n" + ."\n" + .'Unit: milliseconds. Default value: **0**. Valid values: **0 to 5000**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '20', + ], + 'ValidChannel' => [ + 'description' => 'The sound channels that are used for volume input in the audio layer. Valid values:'."\n" + ."\n" + .'* **leftChannel**: the left channel'."\n" + .'* **rightChannel**: the right channel'."\n" + .'* **all** (default): both the left and right channels'."\n", + 'type' => 'string', + 'example' => 'all', + ], + 'VolumeRate' => [ + 'description' => 'The normalized value of the height of the audio layer. The width of the audio layer is proportionally scaled based on this parameter.'."\n" + ."\n" + .'> The default value is **0**, which indicates that the audio layer is not scaled.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '1', + ], + ], + ], + ], + ], + ], + 'BlendList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LocationId' => [ + 'description' => 'The location IDs of the video layers, which are in the same order as the video layers.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The location ID.'."\n", + 'type' => 'string', + 'example' => 'List of location associations, maintaining the same order as VideoLayers.', + ], + ], + ], + ], + 'LayoutId' => [ + 'description' => 'The ID of the layout.'."\n", + 'type' => 'string', + 'example' => '72d2ec7a-4cd7-4a01-974b-7cd53947****', + ], + 'MixList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LocationId' => [ + 'description' => 'The location IDs of the audio layers, which are in the same order as the audio layers.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The location ID.'."\n", + 'type' => 'string', + 'example' => 'RV01', + ], + ], + ], + ], + 'VideoLayers' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'VideoLayer' => [ + 'description' => 'The configurations of the video layers, which are in the default array sequence.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The configuration of the video layer.'."\n", + 'type' => 'object', + 'properties' => [ + 'FillMode' => [ + 'description' => 'The scaling mode of the video layer. Valid values:'."\n" + ."\n" + .'* **none** (default): specifies that the video layer is not scaled. The video layer is displayed based on its original size.'."\n" + .'* **fit**: specifies that the video layer is adapted to the fill area. The video layer is displayed based on the fill area. In this case, the video layer is scaled proportionally, with its original aspect ratio retained. The video layer is placed in the center, with its longer sides aligned with the fill area. If the aspect ratio of the video layer is different from that of the fill area, the content of the lower layer is displayed alongside the shorter sides. If there is no lower layer, black bars are displayed instead.'."\n", + 'type' => 'string', + 'example' => 'fit', + ], + 'FixedDelayDuration' => [ + 'description' => 'The fixed delay of the video layer. This parameter is used to synchronize the video with subtitles.'."\n" + ."\n" + .'Unit: milliseconds. Default value: **0**. Valid values: **0 to 5000**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '20', + ], + 'HeightNormalized' => [ + 'description' => 'The normalized value of the height of the video layer.'."\n" + ."\n" + .'* If the FillMode parameter of the video layer is set to none, the width of the video layer is proportionally scaled based on this parameter. The default value is **0**, which indicates that the video layer is not scaled.'."\n" + .'* If the FillMode parameter of the video layer is set to fit, the value of this parameter is greater than **0**.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '0.5', + ], + 'PositionNormalizeds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Position' => [ + 'description' => 'The normalized value of the position of the video layer, in the format of `[x,y]`. Default value: `[0,0]`.'."\n" + ."\n" + .'> The values of x and y are normalized.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The value.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => 'The normalized value of the `[x,y]` coordinates of the video layer in the production studio. The default coordinates are `[0,0]`.'."\n" + ."\n" + .'> The coordinates indicate the location of the video layer in the production studio. The value of the parameter is normalized.'."\n", + ], + ], + ], + ], + 'PositionRefer' => [ + 'description' => 'The reference coordinates of the video layer. Valid values:'."\n" + ."\n" + .'* **topLeft** (default): the upper-left corner'."\n" + .'* **topRight**: the upper-right corner'."\n" + .'* **bottomLeft**: the lower-left corner'."\n" + .'* **bottomRight**: the lower-right corner'."\n" + .'* **center**: the center'."\n" + .'* **topCenter**: the upper center'."\n" + .'* **bottomCenter**: the lower center'."\n" + .'* **leftCenter**: the left center'."\n" + .'* **rightCenter**: the right center'."\n", + 'type' => 'string', + 'example' => 'topLeft', + ], + 'WidthNormalized' => [ + 'description' => 'The normalized value of the width of the video layer.'."\n" + ."\n" + .'* If the FillMode parameter of the video layer is set to none, the height of the video layer is scaled based on this parameter. The default value is **0**, which indicates that the video layer is not scaled.'."\n" + .'* If the FillMode parameter of the video layer is set to fit, the value of this parameter is greater than **0**.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '0.5', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'The normalized value of the width of the video layer image.'."\n" + ."\n" + .'* If the FillMode parameter of the video layer is set to none, the height of the video image is scaled based on this parameter. The default value is **0**, which indicates that the video image is displayed in the original size.'."\n" + .'* If the FillMode parameter of the video layer is set to fit, the value of the parameter is greater than **0**.'."\n", + ], + 'Total' => [ + 'description' => 'The total number of entries.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '3', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Layouts\\": {\\n \\"Layout\\": [\\n {\\n \\"AudioLayers\\": {\\n \\"AudioLayer\\": [\\n {\\n \\"FixedDelayDuration\\": 20,\\n \\"ValidChannel\\": \\"all\\",\\n \\"VolumeRate\\": 1\\n }\\n ]\\n },\\n \\"BlendList\\": {\\n \\"LocationId\\": [\\n \\"RV01\\"\\n ]\\n },\\n \\"LayoutId\\": \\"72d2ec7a-4cd7-4a01-974b-7cd53947****\\",\\n \\"MixList\\": {\\n \\"LocationId\\": [\\n \\"RV01\\"\\n ]\\n },\\n \\"VideoLayers\\": {\\n \\"VideoLayer\\": [\\n {\\n \\"FillMode\\": \\"fit\\",\\n \\"FixedDelayDuration\\": 20,\\n \\"HeightNormalized\\": 0.5,\\n \\"PositionNormalizeds\\": {\\n \\"Position\\": [\\n 0\\n ]\\n },\\n \\"PositionRefer\\": \\"topLeft\\",\\n \\"WidthNormalized\\": 0.5\\n }\\n ]\\n }\\n }\\n ]\\n },\\n \\"RequestId\\": \\"3be7ade8-d907-483c-b24a-0dad45****\\",\\n \\"Total\\": 3\\n}","errorExample":""},{"type":"xml","example":"\\n3be7ade8-d907-483c-b24a-0dad4595beaf\\n\\n \\n 72d2ec7a-4cd7-4a01-974b-7cd53947****\\n \\n \\n all\\n 1\\n 20\\n \\n \\n \\n \\n fit\\n 0.5\\n topLeft\\n 20\\n 0.5\\n \\n [0,3]\\n \\n \\n \\n \\n \\"RV01\\", \\"RV02\\"\\n \\n \\n RV01\\n \\n \\n\\n3\\n","errorExample":"{\\n \\"RequestId\\": \\"3be7ade8-d907-483c-b24a-0dad4595beaf\\",\\n \\"Layouts\\": [\\n {\\n \\"MixList\\": [\\n \\"RV01\\"\\n ],\\n \\"AudioLayers\\": [\\n {\\n \\"ValidChannel\\": \\"all\\",\\n \\"VolumeRate\\": 1\\n }\\n ],\\n \\"VideoLayers\\": [\\n {\\n \\"HeightNormalized\\": 0.5,\\n \\"PositionRefer\\": \\"topLeft\\",\\n \\"WidthNormalized\\": 0.5,\\n \\"PositionNormalized\\": [\\n 0,\\n 0.3\\n ]\\n },\\n {\\n \\"HeightNormalized\\": 0.5,\\n \\"PositionRefer\\": \\"topLeft\\",\\n \\"WidthNormalized\\": 0.5,\\n \\"PositionNormalized\\": [\\n 0.5,\\n 0.3\\n ]\\n }\\n ],\\n \\"LayoutId\\": \\"72d2ec7a-4cd7-4a01-974b-7cd53947f053\\",\\n \\"BlendList\\": [\\n \\"RV01\\",\\n \\"RV02\\"\\n ]\\n },\\n {\\n \\"MixList\\": [\\n \\"RV01\\"\\n ],\\n \\"AudioLayers\\": [\\n {\\n \\"ValidChannel\\": \\"all\\",\\n \\"VolumeRate\\": 0.5\\n }\\n ],\\n \\"VideoLayers\\": [\\n {\\n \\"HeightNormalized\\": 1,\\n \\"PositionRefer\\": \\"topLeft\\",\\n \\"WidthNormalized\\": 1,\\n \\"PositionNormalized\\": [\\n 0,\\n 0\\n ]\\n },\\n {\\n \\"HeightNormalized\\": 0.4,\\n \\"PositionRefer\\": \\"topLeft\\",\\n \\"WidthNormalized\\": 0.4,\\n \\"PositionNormalized\\": [\\n 0.1,\\n 0.1\\n ]\\n }\\n ],\\n \\"LayoutId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e52d8\\",\\n \\"BlendList\\": [\\n \\"RV01\\",\\n \\"RV02\\"\\n ]\\n }\\n ]\\n}"}]', + 'title' => 'DescribeCasterLayouts', + 'description' => 'You can call this operation to query layouts of a production studio. If no layout ID is specified, the operation returns all layouts of the production studio.'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'AddCasterComponent' => [ + 'summary' => 'Adds a component 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + '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****', + ], + ], + [ + 'name' => 'ComponentName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The component name. By default, the component name is the component ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'text01', + ], + ], + [ + 'name' => 'LocationId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The location ID of the component. Each location ID can be assigned to only one component and must be in the RC\\[Number] format. The values specified by this parameter must be in ascending order, such as RC01 to RC99.'."\n" + ."\n" + .'> If the ComponentType parameter is set to caption, the LocationId parameter specifies the location ID of the video source referenced by the component.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'RC01', + ], + ], + [ + 'name' => 'ComponentType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The component type. Valid values:'."\n" + ."\n" + .'* **text**: a text component. If you set ComponentType to text, you must also specify TextLayerContent.'."\n" + .'* **image**: an image component. If you set ComponentType to image, you must also specify ImageLayerContent.'."\n" + .'* **caption**: a caption component. If you set ComponentType to caption, you must also specify CaptionLayerContent.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'text', + ], + ], + [ + 'name' => 'Effect', + 'in' => 'query', + 'schema' => [ + 'description' => 'The effect of the component. Valid values:'."\n" + ."\n" + .'* **none (default)**'."\n" + .'* **animateH**: horizontal scrolling'."\n" + .'* **animateV**: vertical scrolling'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'animateH', + ], + ], + [ + 'name' => 'ComponentLayer', + 'in' => 'query', + 'schema' => [ + 'description' => 'The information about the component layer, such as the size and layout. This parameter contains the following fields:'."\n" + ."\n" + .'* **HeightNormalized**: the normalized value of heights for the elements in the component layer'."\n" + .'* **WidthNormalized**: the normalized value of widths for the elements in the component layer'."\n" + .'* **PositionNormalized**: the normalized value of the coordinates of the component layer'."\n" + .'* **PositionRefer**: the reference coordinates of the component layer.'."\n" + ."\n" + .'The value is a JSON string. Use upper camel case for field names.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '{"HeightNormalized":"1","PositionRefer":"topRight","WidthNormalized":"0","PositionNormalized":["0.1","0.2"]}', + ], + ], + [ + 'name' => 'LayerOrder', + 'in' => 'query', + 'schema' => [ + 'description' => 'The layer stacking order of the component. Valid values:'."\n" + ."\n" + .'* cover'."\n" + .'* background'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cover', + ], + ], + [ + 'name' => 'TextLayerContent', + 'in' => 'query', + 'schema' => [ + 'description' => 'The information about the text layer. This parameter contains the following fields:'."\n" + ."\n" + .'> This parameter is available and required only when the ComponentType parameter is set to text.'."\n" + ."\n" + .'* **SizeNormalized**: the normalized font size. The font size is set to font_size/output_height. The value range is `[0,1]`. If the font size calculated by the system based on the normalization method is greater than 1024, 1024 is used.'."\n" + .'* **BorderWidthNormalized**: the normalized value of the text border width. The normalized value is calculated based on the size of the text, that is, "BorderWidth/FontSize". The value range is `[0,1]`. If the value calculated based on the normalization method exceeds 16, 16 is used. The default value is 0.'."\n" + .'* **FontName**: the font name. For more information about the value, see **Font description**. The default value is KaiTi.'."\n" + .'* **BorderColor**: the color of the text border. Valid values: 0x000000 to 0xffffff. By default, this parameter is not set. In this case, the color of the text border is transparent.'."\n" + .'* **Text**: the content of the text. By default, this parameter is not set. In this case, the text contains no content.'."\n" + .'* **Color**: the color of the text. The default value is 0xff0000, which indicates that the text is in red.'."\n" + ."\n" + .'The value is a JSON string. Use upper camel case for field names.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{"BorderWidthNormalized":"1","SizeNormalized":"0.2","Color":"0x000000","FontName":"KaiTi","BorderColor":"0x000000","Text":"hello world!"}', + ], + ], + [ + 'name' => 'ImageLayerContent', + 'in' => 'query', + 'schema' => [ + 'description' => 'The information about the image layer. This parameter contains the following fields:'."\n" + ."\n" + .'> This parameter is required when the ComponentType parameter is set to image.'."\n" + ."\n" + .'MaterialId: the ID of the asset from the media asset library. The name that you set when you upload an asset is the ID of the asset.'."\n" + ."\n" + .'The value is a JSON string. Use upper camel case for field names.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{"MaterialId":"6cf724c6ebfd4a59b5b3cec6f10d****"}', + ], + ], + [ + 'name' => 'CaptionLayerContent', + 'in' => 'query', + 'schema' => [ + 'description' => 'The information about the caption layer. This parameter contains the following fields:'."\n" + ."\n" + .'> This parameter is required when the ComponentType parameter is set to caption.'."\n" + ."\n" + .'* **SizeNormalized**: the normalized font size. The font size is set to font_size/output_height. The value range is `[0,1]` and accurate to two decimal places. If the font size calculated by the system based on the normalization method is greater than **1024**, **1024** is used.'."\n" + .'* **BorderWidthNormalized**: the normalized value of the text border width, which is calculated based on the size of the text, namely "BorderWidth/FontSize". The value range is `[0,1]` and accurate to two decimal places. If the value calculated according to the normalization method exceeds **16**, **16** is used. The default value is **0**.'."\n" + .'* **FontName**: the font name. For more information about the value, see **Font description**. The default font name is KaiTi.'."\n" + .'* **BorderColor**: the color of the text border. Valid values: 0x000000 to 0xffffff. By default, this parameter is not set. In this case, the color of the text border is transparent.'."\n" + .'* **LocationId**: the channel ID of the source subtitle.'."\n" + .'* **SourceLan**: the source language of the audio in the source video. Valid values: en, cn, es, and ru, which indicate English, Chinese, Spanish, and Russian respectively. Default value: cn.'."\n" + .'* **TargetLan**: the target audio language in the source video. If you do not specify this field, speech recognition is used. If you specify this field, translation is used. Valid values: en, cn, es, and ru, which indicate English, Chinese, Spanish, and Russian respectively. Default value: cn.'."\n" + .'* **ShowSourceLan**: specifies whether to display the source language. Valid values: true: displays the source language. false: hides the source language. Default value: false.'."\n" + .'* **Truncation**: specifies whether to allow caption truncation. Valid values: true: specifies that the caption can be truncated. false: specifies that the caption cannot be truncated. Default value: false.'."\n" + .'* **SourceLanPerLineWordCount**: the number of words displayed in each line when the subtitle is in the source language. Default value: 20.'."\n" + .'* **TargetLanPerLineWordCount**: the number of words displayed in each line when the subtitle is in the destination language. Default value: 20.'."\n" + .'* **SourceLanReservePages**: the number of lines reserved when the subtitle is in the source language. This field takes effect only when the Truncation field is set to true. Default value: 2.'."\n" + .'* **TargetLanReservePages**: the number of lines reserved when the subtitle is in the destination language. This field takes effect only when the Truncation field is set to true. Default value: 2.'."\n" + ."\n" + .'The value is a JSON string. Use upper camel case for field names.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{"BorderWidthNormalized":0.01,"SizeNormalized":0.05,"Color":"0x000000","LocationId":"RV01","SourceLan":"cn","FontName":"KaiTi","BorderColor":"0xffffff"}', + ], + ], + [ + 'name' => 'HtmlLayerContent', + 'in' => 'query', + 'schema' => [ + 'description' => 'The information about the HTML5 layer.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{"htmlUrl":http://caster.example.com}', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'ComponentId' => [ + 'description' => 'The component ID. The value can be used as the value of a request parameter to query, modify, or delete a production studio.'."\n", + 'type' => 'string', + 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'InvalidPositionNormalized.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'DuplicateLocationID', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'CanvasNotExist', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"ComponentId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t21926b36-7dd2-4fde-ae25-51b5bc8e****\\n\\t","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"ComponentId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e52d8\\"\\n}"}]', + 'title' => 'AddCasterComponent', + 'description' => 'Before you call this operation to add a component to a production studio, you must first create the production studio and learn about the production studio layouts. You can call this operation to add three types of components: image, text, and subtitle. For information about how to create a production studio, see [CreateCaster](~~2848009~~).'."\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", + 'requestParamsDescription' => '## Font description'."\n" + ."\n" + .'|Font|Values 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' => ' ', + ], + 'DeleteCasterComponent' => [ + 'summary' => 'Deletes a component in 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + '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' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + ], + [ + 'name' => 'ComponentId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The component ID. If the component was added by calling the [AddCasterComponent](~~2848030~~) operation, check the value of the response parameter ComponentId to obtain the ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'CasterId' => [ + 'description' => 'The ID of the production studio. You can use the ID as a request parameter in the API operation that is called to query the components in the production studio, add an episode list to the production studio, or modify a component in the production studio.'."\n", + 'type' => 'string', + 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880****', + ], + 'ComponentId' => [ + 'description' => 'The component ID. You can use the ID as a request parameter in the API operation that is called to query the component in the production studio or modify the component in the production studio.'."\n", + 'type' => 'string', + 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidComponent.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880****\\",\\n \\"ComponentId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n a2b8e671-2fe5-4642-a2ec-bf93880****\\n 21926b36-7dd2-4fde-ae25-51b5bc8e****\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + 'title' => 'DeleteCasterComponent', + 'description' => 'You can call the [CreateCaster](~~2848009~~) operation to create a production studio and then call this operation to delete a component in the production studio.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + '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****', + ], + ], + [ + 'name' => 'ComponentId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the component. If the component was added by calling the [AddCasterComponent](~~2848030~~) operation, check the value of the response parameter ComponentId to obtain the ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '05ab713c-676e-49c0-96ce-cc408da1****', + ], + ], + [ + 'name' => 'ComponentName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the component. By default, the name is the ID of the component.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'text01', + ], + ], + [ + 'name' => 'ComponentType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the component. Valid values:'."\n" + ."\n" + .'* **text**: text component. The TextLayerContent parameter is required if you set ComponentType to text.'."\n" + .'* **image**: image component. The ImageLayerContent parameter is required if you set ComponentType to image.'."\n" + .'* **caption**: subtitle component. The CaptionLayerContent parameter is required if you set ComponentType to caption.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'text', + ], + ], + [ + 'name' => 'Effect', + 'in' => 'query', + 'schema' => [ + 'description' => 'The display effect for the component. Valid values:'."\n" + ."\n" + .'* **none** (default)'."\n" + .'* **animateH**: horizontal scrolling'."\n" + .'* **animateV**: vertical scrolling'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'animateV', + ], + ], + [ + 'name' => 'ComponentLayer', + 'in' => 'query', + 'schema' => [ + 'description' => 'The information about the component layer, such as the size and layout, The value must be a JSON string. This parameter contains the following fields:'."\n" + ."\n" + .'* **HeightNormalized**: the normalized value of the height of the component layer.'."\n" + .'* **WidthNormalized**: the normalized value of the width of the component layer.'."\n" + .'* **PositionNormalized**: the normalized value of the position of the component layer.'."\n" + .'* **PositionRefer**: the reference coordinates of the component layer.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{"HeightNormalized":"1","PositionRefer":"topRight","WidthNormalized":"0","PositionNormalized":["0.1","0.2"]}', + ], + ], + [ + 'name' => 'TextLayerContent', + 'in' => 'query', + 'schema' => [ + 'description' => 'The information about the text component. The value must be a JSON string. This parameter contains the following fields:'."\n" + ."\n" + .'> This parameter is required if you set ComponentType to text.'."\n" + ."\n" + .'* **SizeNormalized**: the normalized value of the font size. The value of this field equals the font size divided by the output height. Valid values: `0 to 1`. The maximum font size is 1,024, even if the font size calculated based on this field is greater than 1,024.'."\n" + .'* **BorderWidthNormalized**: the normalized value of the border width. The value of this field equals the border width divided by the font size. Valid values: `0 to 1`. Default value: 0. The maximum border width is 16, even if the border width calculated based on this field is greater than 16.'."\n" + .'* **FontName**: the font name. Default value: KaiTi. For more information about the valid values, see **Fonts used in a production studio**.'."\n" + .'* **BorderColor**: the color of the text border. Valid values: 0x000000 to 0xffffff. By default, this parameter is left empty. In this case, the color of the text border is transparent.'."\n" + .'* **Text**: the content of the text. By default, this parameter is left empty. In this case, the text contains no content.'."\n" + .'* **Color**: the color of the text. The default value is 0xff0000, which indicates that the text is in red.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{"BorderWidthNormalized":"1","SizeNormalized":"0.2","Color":"0x000000","FontName":"KaiTi","BorderColor":"0x000000","Text":"hello world!"}', + ], + ], + [ + 'name' => 'ImageLayerContent', + 'in' => 'query', + 'schema' => [ + 'description' => 'The information about the image component. The value must be a JSON string.'."\n" + ."\n" + .'> This parameter is required if you set ComponentType to image.'."\n" + ."\n" + .'The MaterialId field specifies the ID of the material from the media asset library.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{"MaterialId":"6cf724c6ebfd4a59b5b3cec6f10d5ecf"}', + ], + ], + [ + 'name' => 'CaptionLayerContent', + 'in' => 'query', + 'schema' => [ + 'description' => 'The information about the subtitle component. The value must be a JSON string. This parameter contains the following fields:'."\n" + ."\n" + .'> This parameter is required if you set ComponentType to caption.'."\n" + ."\n" + .'* **SizeNormalized**: the normalized value of the font size. The value of this field equals the font size divided by the output height. Valid values: `0 to 1`. The maximum font size is 1,024, even if the font size calculated based on this field is greater than 1,024.'."\n" + .'* **BorderWidthNormalized**: the normalized value of the border width. The value of this field equals the border width divided by the font size. Valid values: `0 to 1`. Default value: 0. The maximum border width is 16, even if the border width calculated based on this field is greater than 16.'."\n" + .'* **FontName**: the font name. Default value: KaiTi. For more information about the valid values, see **Fonts used in a production studio**.'."\n" + .'* **BorderColor**: the color of the text border. Valid values: 0x000000 to 0xffffff. By default, this parameter is left empty. In this case, the color of the text border is transparent.'."\n" + .'* **LocationId**: the channel ID of the source subtitles.'."\n" + .'* **SourceLan**: the source language of the subtitles in the video. Valid values: en (English), cn (Chinese), es (Spanish), and ru (Russian). Default value: cn.'."\n" + .'* **TargetLan**: the target language of the subtitles in the video. If you do not specify this field, speech recognition is used. If you specify this field, translation is used. Valid values: en (English), cn (Chinese), es (Spanish), and ru (Russian).'."\n" + .'* **ShowSourceLan**: specifies whether to display the source language. A value of true specifies that the source language is displayed. A value of false specifies that the source language is not displayed. Default value: false.'."\n" + .'* **Truncation**: specifies whether to allow subtitle truncation. A value of true specifies that the subtitles can be truncated. A value of false specifies that the subtitles cannot be truncated. Default value: false.'."\n" + .'* **SourceLanPerLineWordCount**: the number of words displayed in each line of the source language. This field takes effect only if you set Truncation to true. Default value: 20.'."\n" + .'* **TargetLanPerLineWordCount**: the number of words displayed in each line of the target language. This field takes effect only if you set Truncation to true. Default value: 20.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{"BorderWidthNormalized":0.01,"SizeNormalized":0.05,"Color":"0x000000","LocationId":"RV01","SourceLan":"cn","FontName":"KaiTi","BorderColor":"0xffffff"}', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'ComponentId' => [ + 'description' => 'The ID of the component. You can use the ID as a request parameter in the API operation that is called to query components in a production studio.'."\n", + 'type' => 'string', + 'example' => '05ab713c-676e-49c0-96ce-cc408da1****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'InvalidPositionNormalized.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidComponent.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'CanvasNotExist', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"ComponentId\\": \\"05ab713c-676e-49c0-96ce-cc408da1****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 05ab713c-676e-49c0-96ce-cc408da1****\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + 'title' => 'ModifyCasterComponent', + 'description' => 'You can call this operation to modify a text, image, or subtitle component.'."\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", + 'requestParamsDescription' => '## Fonts used in a production studio'."\n" + ."\n" + .'|Font|Values 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' => ' ', + ], + 'DescribeCasterComponents' => [ + 'summary' => 'Queries the components 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + '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****', + ], + ], + [ + 'name' => 'ComponentId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The component ID. If the component was added by calling the [AddCasterComponent](~~2848030~~) operation, check the value of the response parameter ComponentId to obtain the ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Components' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Component' => [ + 'description' => 'The components.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'CaptionLayerContent' => [ + 'description' => 'The information about the subtitle component.'."\n", + 'type' => 'object', + 'properties' => [ + 'BorderColor' => [ + 'description' => 'The color of the text border.'."\n" + ."\n" + .'Valid values: **0x000000 to 0xffffff**. If the value of this parameter is "", this parameter does not take effect.'."\n", + 'type' => 'string', + 'example' => '0x000000', + ], + 'BorderWidthNormalized' => [ + 'description' => 'The normalized value of the width of the text border. The value of this parameter equals the border width divided by the font size.'."\n" + ."\n" + .'The maximum width of the text border is **16**, even if the border width calculated based on this parameter is greater than **16**.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '0', + ], + 'Color' => [ + 'description' => 'The color of the text. Valid values: **0x000000 to 0xffffff**.'."\n", + 'type' => 'string', + 'example' => '0x000000', + ], + 'FontName' => [ + 'description' => 'The font of the text, which is specified by the system. Valid values:'."\n" + ."\n" + .'* **KaiTi**'."\n" + .'* **AlibabaPuHuiTi-Regular**'."\n" + .'* **AlibabaPuHuiTi-Bold**'."\n" + .'* **NAlibabaPuHuiTi-Light**'."\n" + .'* **NotoSansHans-Regular**'."\n" + .'* **NotoSansHans-Bold**'."\n" + .'* **NotoSansHans-Light**'."\n" + ."\n" + .'****'."\n", + 'type' => 'string', + 'example' => 'KaiTi', + ], + 'LineSpaceNormalized' => [ + 'description' => 'The line spacing, which indicates the interval between every two lines.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '0', + ], + 'LocationId' => [ + 'description' => 'The location ID of the component. If the value of the ComponentType parameter is caption, the LocationId parameter indicates the channel ID of the video source that is referenced by the component.'."\n", + 'type' => 'string', + 'example' => 'RV01', + ], + 'PtsOffset' => [ + 'description' => 'The offset between the presentation timestamps (PTS) of the subtitles and the audio.'."\n" + ."\n" + .'Valid values: **-10000 to 10000**. Default value: **0**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'ShowSourceLan' => [ + 'description' => 'Indicates whether the source language of the subtitles is displayed. Valid values:'."\n" + ."\n" + .'* **true**: The source language is displayed.'."\n" + .'* **false**: The source language is not displayed.'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + 'SizeNormalized' => [ + 'description' => 'The normalized value of the font size of the subtitles. The value of this parameter equals the font size divided by the output height.``'."\n" + ."\n" + .'The maximum font size of the subtitles is **1,024**, even if the font size calculated based on this parameter is greater than **1,024**. If the value of this parameter is **-1**, this parameter does not take effect.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '0.1', + ], + 'SourceLan' => [ + 'description' => 'The source language of the audio in the video source. Valid values:'."\n" + ."\n" + .'* **en**: English'."\n" + .'* **cn**: Chinese'."\n" + .'* **es**: Spanish'."\n" + .'* **ru**: Russian'."\n", + 'type' => 'string', + 'example' => 'cn', + ], + 'TargetLan' => [ + 'description' => 'The target language of the audio in the video source. Valid values:'."\n" + ."\n" + .'* **en**: English'."\n" + .'* **cn**: Chinese'."\n" + .'* **es**: Spanish'."\n" + .'* **ru**: Russian'."\n", + 'type' => 'string', + 'example' => 'cn', + ], + 'WordCountPerLine' => [ + 'description' => 'The maximum number of words displayed in each line.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '15', + ], + 'WordSpaceNormalized' => [ + 'description' => 'The word spacing, which indicates the interval between every two words.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '0', + ], + 'WordsCount' => [ + 'description' => 'The number of words displayed on the component. The value of this parameter can be specified based on the font size.'."\n" + ."\n" + .'Valid values: **10 to 50**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '35', + ], + ], + ], + 'ComponentId' => [ + 'description' => 'The component ID.'."\n", + 'type' => 'string', + 'example' => '72d2ec7a-4cd7-4a01-974b-7cd53947****', + ], + 'ComponentLayer' => [ + 'description' => 'The information about the component layer, such as the size and layout.'."\n", + 'type' => 'object', + 'properties' => [ + 'HeightNormalized' => [ + 'description' => 'The normalized value for heights of the elements in the layer. The widths of the elements are proportionally scaled based on this parameter.'."\n" + ."\n" + .'If the value of this parameter is **0**, the elements in the layer are not scaled.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '0.5', + ], + 'PositionNormalizeds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Position' => [ + 'description' => 'The normalized value of the position of the layer, in the format of `[x,y]`. Example: `[0,0]`.'."\n" + ."\n" + .'> The values of x and y need to be normalized.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The value.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '0.3', + ], + ], + ], + ], + 'PositionRefer' => [ + 'description' => 'The reference coordinates of the layer. Valid values:'."\n" + ."\n" + .'* **topLeft**: the upper-left corner'."\n" + .'* **topRight**: the upper-right corner'."\n" + .'* **bottomLeft**: the lower-left corner'."\n" + .'* **bottomRight**: the lower-right corner'."\n", + 'type' => 'string', + 'example' => 'topLeft', + ], + 'Transparency' => [ + 'description' => 'The transparency of the layer. Valid values: 0 to 255.'."\n" + ."\n" + .'A value of **0** indicates that the layer is completely transparent. A value of **255** indicates that the layer is completely opaque.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '200', + ], + 'WidthNormalized' => [ + 'description' => 'The normalized value for widths of the elements in the layer. The heights of the elements are proportionally scaled based on this parameter. If the value of this parameter is **0**, the elements in the layer are not scaled.'."\n" + ."\n" + .'> This parameter conflicts with the HeightNormalized parameter. If both of them are specified, only the HeightNormalized parameter takes effect. If only one of them is specified, the latest specified value is used.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '0.5', + ], + ], + ], + 'ComponentName' => [ + 'description' => 'The name of the component. By default, the name is the ID of the component.'."\n", + 'type' => 'string', + 'example' => 'component_name', + ], + 'ComponentType' => [ + 'description' => 'The type of the component. Valid values:'."\n" + ."\n" + .'* **text**: a text component'."\n" + .'* **image**: an image component'."\n" + .'* **caption**: a caption component'."\n", + 'type' => 'string', + 'example' => 'text', + ], + 'Effect' => [ + 'description' => 'The display effect for the component. Valid values:'."\n" + ."\n" + .'* **none**'."\n" + .'* **animateH**: horizontal scrolling'."\n" + .'* **animateV**: vertical scrolling'."\n", + 'type' => 'string', + 'example' => 'animateV', + ], + 'ImageLayerContent' => [ + 'description' => 'The information about the image component. This parameter is returned only for image components.'."\n", + 'type' => 'object', + 'properties' => [ + 'MaterialId' => [ + 'description' => 'The ID of the material from the media library.'."\n", + 'type' => 'string', + 'example' => '6cf724c6ebfd4a59b5b3cec6f10d****', + ], + ], + ], + 'LocationId' => [ + 'description' => 'The location ID of the component.'."\n" + ."\n" + .'Each location ID can be assigned to only one component and must be in the RC\\[Number] format. The values of this parameter are in ascending order, for example, from RC01 to RC12.'."\n", + 'type' => 'string', + 'example' => 'RC01', + ], + 'TextLayerContent' => [ + 'description' => 'The information about the text component. This parameter is returned only for text components.'."\n", + 'type' => 'object', + 'properties' => [ + 'BorderColor' => [ + 'description' => 'The color of the text border. Valid values: **0x000000 to 0xffffff**. If the value of this parameter is **""**, this parameter does not take effect.'."\n", + 'type' => 'string', + 'example' => '0x000000', + ], + 'BorderWidthNormalized' => [ + 'description' => 'The normalized value of the width of the text border. The value of this parameter equals the border width divided by the font size.****'."\n" + ."\n" + .'The maximum width of the text border is **16**, even if the border width calculated based on this parameter is greater than **16**.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '0', + ], + 'Color' => [ + 'description' => 'The color of the text. Valid values: **0x000000 to 0xffffff**.'."\n", + 'type' => 'string', + 'example' => '0xff0000', + ], + 'FontName' => [ + 'description' => 'The font of the text, which is specified by the system. Valid values:'."\n" + ."\n" + .'* **KaiTi**'."\n" + .'* **AlibabaPuHuiTi-Regular**'."\n" + .'* **AlibabaPuHuiTi-Bold**'."\n" + .'* **NAlibabaPuHuiTi-Light**'."\n" + .'* **NotoSansHans-Regular**'."\n" + .'* **NotoSansHans-Bold**'."\n" + .'* **NotoSansHans-Light**'."\n" + ."\n" + .'****'."\n", + 'type' => 'string', + 'example' => 'KaiTi', + ], + 'SizeNormalized' => [ + 'description' => 'The normalized value of the font size of the text.'."\n" + ."\n" + .'The value of this parameter equals the font size divided by the output height.**** The maximum font size of the text is **1,024**, even if the font size calculated based on this parameter is greater than **1,024**. If the value of this parameter is **-1**, this parameter does not take effect.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '16', + ], + 'Text' => [ + 'description' => 'The content of the text.'."\n", + 'type' => 'string', + 'example' => 'hello world', + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '3be7ade8-d907-483c-b24a-0dad45******', + ], + 'Total' => [ + 'description' => 'The total number of entries.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '3', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Components\\": {\\n \\"Component\\": [\\n {\\n \\"CaptionLayerContent\\": {\\n \\"BorderColor\\": \\"0x000000\\",\\n \\"BorderWidthNormalized\\": 0,\\n \\"Color\\": \\"0x000000\\",\\n \\"FontName\\": \\"KaiTi\\",\\n \\"LineSpaceNormalized\\": 0,\\n \\"LocationId\\": \\"RV01\\",\\n \\"PtsOffset\\": 0,\\n \\"ShowSourceLan\\": false,\\n \\"SizeNormalized\\": 0.1,\\n \\"SourceLan\\": \\"cn\\",\\n \\"TargetLan\\": \\"cn\\",\\n \\"WordCountPerLine\\": 15,\\n \\"WordSpaceNormalized\\": 0,\\n \\"WordsCount\\": 35\\n },\\n \\"ComponentId\\": \\"72d2ec7a-4cd7-4a01-974b-7cd53947****\\",\\n \\"ComponentLayer\\": {\\n \\"HeightNormalized\\": 0.5,\\n \\"PositionNormalizeds\\": {\\n \\"Position\\": [\\n 0.3\\n ]\\n },\\n \\"PositionRefer\\": \\"topLeft\\",\\n \\"Transparency\\": 200,\\n \\"WidthNormalized\\": 0.5\\n },\\n \\"ComponentName\\": \\"component_name\\",\\n \\"ComponentType\\": \\"text\\",\\n \\"Effect\\": \\"animateV\\",\\n \\"ImageLayerContent\\": {\\n \\"MaterialId\\": \\"6cf724c6ebfd4a59b5b3cec6f10d****\\"\\n },\\n \\"LocationId\\": \\"RC01\\",\\n \\"TextLayerContent\\": {\\n \\"BorderColor\\": \\"0x000000\\",\\n \\"BorderWidthNormalized\\": 0,\\n \\"Color\\": \\"0xff0000\\",\\n \\"FontName\\": \\"KaiTi\\",\\n \\"SizeNormalized\\": 16,\\n \\"Text\\": \\"hello world\\"\\n }\\n }\\n ]\\n },\\n \\"RequestId\\": \\"3be7ade8-d907-483c-b24a-0dad45******\\",\\n \\"Total\\": 3\\n}","errorExample":""},{"type":"xml","example":"\\n \\n \\n 0x000000\\n 0\\n 0x000000\\n KaiTi\\n 0\\n RV01\\n 0\\n false\\n 0.1\\n cn\\n cn\\n 15\\n 0\\n 35\\n \\n 72d2ec7a-4cd7-4a01-974b-7cd53947****\\n \\n 0.5\\n 0.3\\n topLeft\\n 200\\n 0.5\\n \\n component_name\\n text\\n animateV\\n \\n 6cf724c6ebfd4a59b5b3cec6f10d****\\n \\n RC01\\n \\n 0x000000\\n 0\\n 0xff0000\\n KaiTi\\n 16\\n hello world\\n \\n \\n 3be7ade8-d907-483c-b24a-0dad4595beaf\\n 3\\n","errorExample":""}]', + 'title' => 'DescribeCasterComponents', + 'description' => 'You can call the [AddCasterComponent](~~2848030~~) operation to add components to a production studio and then call this operation to query the components of the production studio.'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'CopyCasterSceneConfig' => [ + 'summary' => 'Applies the configuration of a PVW scene to a PGM scene.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + '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****', + ], + ], + [ + 'name' => 'FromSceneId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the source scene, which must be a PVW scene.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'f1a361f4-bee3-436d-ae6e-d38e6943****', + ], + ], + [ + 'name' => 'ToSceneId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the destination scene, which must be a PGM scene.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '05ab713c-676e-49c0-96ce-cc408da1****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A5****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidSceneId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectSceneStatus', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectSceneStatus.Idle', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectSceneStatus.ConfigError', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'ResourceInChannel.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidScene.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 412 => [ + [ + 'errorCode' => 'ResourceInChannel.PreConditionFailed', + 'errorMessage' => '%s, please try again later.', + ], + [ + 'errorCode' => 'ResourceInChannel.Invalid', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A5****\\"\\n}","type":"json"}]', + 'title' => 'CopyCasterSceneConfig', + 'description' => '* Streaming fees and transcoding fees are calculated based on the corresponding output resolutions and durations. For more information, see [Billing of production studios](~~64531~~).'."\n" + .'* You can call this operation to apply the configuration of a source scene to a destination scene. This operation takes effect only if the source scene is a PVW scene and the destination scene is a PGM scene. A PVW scene is a preview scene, and a PGM scene is a program scene.'."\n" + .'* The PVW scene and PGM scene must be in the same production studio.'."\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", + ], + 'DeleteCasterSceneConfig' => [ + 'summary' => 'Deletes the settings of a scene.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'CasterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the production studio.'."\n" + ."\n" + .'* If the production studio was created by calling the [CreateCaster](~~69338~~) 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' => 'b4810848-bcf9-4aef-bd4a-e6bba2d9****', + ], + ], + [ + 'name' => 'SceneId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the scene.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'b5f8c837-ceeb-424f-b30b-68e94e86****', + ], + ], + [ + 'name' => 'Type', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the setting that you want to delete. Valid values:'."\n" + ."\n" + .'* **Component**: component setting'."\n" + .'* **Layout**: layout setting'."\n" + .'* **All**: component and layout settings'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'Component', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB9*********', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IncorrectSceneStatus.Inuse', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidSceneId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectSceneStatus.ConfigError', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectSceneStatus.Idle', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidScene.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidResource.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidVideo.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidLayout.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidComponent.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB9*********\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + 'title' => 'DeleteCasterSceneConfig', + 'description' => 'You can call this operation to delete the settings of a scene, such as the component setting, layout setting, or both of them.'."\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. For more information, see [QPS limits](~~343507~~).'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'ComponentId', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The IDs of the components. Components in the scene are listed from the bottom to the top in an array.'."\n" + ."\n" + .'> N indicates a sequence number. Examples:\\'."\n" + .'ComponentId.1 indicates the ID of the first component.\\'."\n" + .'ComponentId.2 indicates the ID of the second component.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of component N. Components in the scene are listed from the bottom to the top in an array.'."\n" + ."\n" + .'> N indicates a sequence number. Examples:\\'."\n" + .'ComponentId.1 indicates the ID of the first component.\\'."\n" + .'ComponentId.2 indicates the ID of the second component.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '["98778372-c30f-4442-85ba-2e3e4e3d****"]', + ], + 'required' => false, + 'example' => '["98778372-c30f-4442-85ba-2e3e4e3d****"]', + 'maxItems' => 10, + ], + ], + [ + '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' => '80787064-1c94-4dc1-85ce-9409960a****', + ], + ], + [ + 'name' => 'SceneId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the scene.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '242b4e2c-c30f-4442-85ba-2e3e4e3d****', + ], + ], + [ + 'name' => 'LayoutId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the layout. If you call the [DescribeCasterLayouts](~~2848028~~) operation to query the layouts of the production studio, check the value of the response parameter LayoutId to obtain the ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'eeab74fb-379d-4599-a93d-86d16a05****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'IncorrectSceneStatus.ConfigError', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'ComponentNumberExceed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'SceneNumberExceed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectSceneStatus.Waiting', + 'errorMessage' => '%s, please try again later.', + ], + [ + 'errorCode' => 'IncorrectSceneStatus.Idle', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidCaptionResource', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectSceneStatus', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidScene.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidLayout.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidComponent.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidVideo.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'ResourceInChannel.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 412 => [ + [ + 'errorCode' => 'ResourceInChannel.PreConditionFailed', + 'errorMessage' => '%s, please try again later.', + ], + [ + 'errorCode' => 'ResourceInChannel.Invalid', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\tCF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\"\\n}"}]', + 'title' => 'UpdateCasterSceneConfig', + 'description' => 'You can call this operation to modify a scene, including the layout, without invalidating the previous configurations. This operation is more efficient than the SetCasterSceneConfig 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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'SetCasterSceneConfig' => [ + 'summary' => 'Configures all settings of a scene. This is done by clearing all previous settings of the scene and applying 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'ComponentId', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The IDs of the components. Components in the scene are listed from the bottom to the top in an array.'."\n" + ."\n" + .'> N indicates a sequence number. Examples:\\'."\n" + .'ComponentId.1 indicates the ID of the first component.\\'."\n" + .'ComponentId.2 indicates the ID of the second component.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of component N. Components in the scene are listed from the bottom to the top in an array.'."\n" + ."\n" + .'> N indicates a sequence number. Examples:\\'."\n" + .'ComponentId.1 indicates the ID of the first component.\\'."\n" + .'ComponentId.2 indicates the ID of the second component.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '[ "a2b8e671-2fe5-4642-a2ec-bf931826****", "a2b8e671-2fe5-4642-a2ec-28374657****"]', + ], + 'required' => false, + 'example' => '[ "a2b8e671-2fe5-4642-a2ec-bf931826****", "a2b8e671-2fe5-4642-a2ec-28374657****"]', + 'maxItems' => 10, + ], + ], + [ + 'name' => 'CasterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the production studio.'."\n" + ."\n" + .'* If the production studio was created by calling the [CreateCaster](~~69338~~) 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' => '80787064-1c94-4dc1-85ce-9409960a****', + ], + ], + [ + 'name' => 'SceneId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the scene.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '242b4e2c-c30f-4442-85ba-2e3e4e3d****', + ], + ], + [ + 'name' => 'LayoutId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the layout. If you call the [DescribeCasterLayouts](~~60260~~) operation to query the layouts of the production studio, check the value of the response parameter LayoutId to obtain the ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '0c6da077-f037-49e8-8440-3be13393****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidSceneId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidCaptionResource', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectSceneStatus', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'ComponentNumberExceed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectSceneStatus.Idle', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectSceneStatus.ConfigError', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidScene.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidLayout.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidComponent.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'ResourceInChannel.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 412 => [ + [ + 'errorCode' => 'ResourceInChannel.PreConditionFailed', + 'errorMessage' => '%s, please try again later.', + ], + [ + 'errorCode' => 'ResourceInChannel.Invalid', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\tCF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\"\\n}"}]', + 'title' => 'SetCasterSceneConfig', + 'description' => '## [](#)Usage notes'."\n" + ."\n" + .'This operation configures a scene by clearing all previous settings of the scene and applying new settings, including the layout setting, to the scene.'."\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. For more information, see [QPS limits](~~343507~~).'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeCasterScenes' => [ + 'summary' => 'Queries the scenes 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'CasterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the production studio.'."\n" + ."\n" + .'* If the production studio was created by calling the [CreateCaster](~~69338~~) 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' => '80787064-1c94-4dc1-85ce-9409960a****', + ], + ], + [ + 'name' => 'SceneId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the scene.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'b5f8c837-ceeb-424f-b30b-68e94e86****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'The ID of the scene.'."\n", + ], + 'SceneList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Scene' => [ + 'description' => 'The scenes.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the scene.'."\n", + 'type' => 'object', + 'properties' => [ + 'ComponentIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'componentId' => [ + 'description' => 'The components.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the component.'."\n", + 'type' => 'string', + 'example' => '["1506396160-0-0-7de771a77102680861853af862d5****"]', + ], + ], + ], + ], + 'LayoutId' => [ + 'description' => 'The ID of the layout.'."\n", + 'type' => 'string', + 'example' => '37cb2f8b-f152-4338-b928-6704f71d****', + ], + 'OutputType' => [ + 'description' => 'Indicates whether the output video is in PVW mode or PGM mode. Valid values:'."\n" + ."\n" + .'* **0**: in PVW mode.'."\n" + .'* **1**: in PGM mode.'."\n", + 'type' => 'string', + 'example' => '0', + ], + 'SceneId' => [ + 'description' => 'The ID of the scene. You can use the ID as a request parameter in the API operation that is used to modify the audio configurations of the scene, query the audio configurations of the scene, start the scene, or stop the scene.'."\n", + 'type' => 'string', + 'example' => 'b5f8c837-ceeb-424f-b30b-68e94e86****', + ], + 'SceneName' => [ + 'description' => 'The name of the scene.'."\n", + 'type' => 'string', + 'example' => 'scene1', + ], + 'Status' => [ + 'description' => 'The status of the scene. Valid values:'."\n" + ."\n" + .'* **0**: disabled'."\n" + .'* **1**: enabled'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'StreamInfos' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'StreamInfo' => [ + 'description' => 'The information about the stream.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the stream.'."\n", + 'type' => 'object', + 'properties' => [ + 'OutputStreamUrl' => [ + 'description' => 'The streaming URL.'."\n", + 'type' => 'string', + 'example' => 'http://live/caster/example.net', + ], + 'TranscodeConfig' => [ + 'description' => 'The transcoding configuration. Valid values:'."\n" + ."\n" + .'* **sd**: standard definition'."\n" + .'* **lld**: low definition'."\n" + .'* **lud**: ultra-high definition'."\n" + .'* **lhd**: high definition'."\n", + 'type' => 'string', + 'example' => 'lld', + ], + 'VideoFormat' => [ + 'description' => 'The format. Valid values:'."\n" + ."\n" + .'* **flv**'."\n" + .'* **mp4**'."\n" + .'* **m3u8**'."\n", + 'type' => 'string', + 'example' => 'flv', + ], + ], + ], + ], + ], + ], + 'StreamUrl' => [ + 'description' => 'The URL of the output stream.'."\n", + 'type' => 'string', + 'example' => 'rtmp://developer.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-ac8c628078541d7055a170ec59a5****', + ], + ], + ], + ], + ], + ], + 'Total' => [ + 'description' => 'The total number of entries.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '2', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidSceneId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidDomainName.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1*****\\",\\n \\"SceneList\\": {\\n \\"Scene\\": [\\n {\\n \\"ComponentIds\\": {\\n \\"componentId\\": [\\n \\"[\\\\\\"1506396160-0-0-7de771a77102680861853af862d5****\\\\\\"]\\"\\n ]\\n },\\n \\"LayoutId\\": \\"37cb2f8b-f152-4338-b928-6704f71d****\\",\\n \\"OutputType\\": \\"0\\",\\n \\"SceneId\\": \\"b5f8c837-ceeb-424f-b30b-68e94e86****\\",\\n \\"SceneName\\": \\"scene1\\",\\n \\"Status\\": 0,\\n \\"StreamInfos\\": {\\n \\"StreamInfo\\": [\\n {\\n \\"OutputStreamUrl\\": \\"http://live/caster/example.net\\",\\n \\"TranscodeConfig\\": \\"lld\\",\\n \\"VideoFormat\\": \\"flv\\"\\n }\\n ]\\n },\\n \\"StreamUrl\\": \\"rtmp://developer.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-ac8c628078541d7055a170ec59a5****\\"\\n }\\n ]\\n },\\n \\"Total\\": 2\\n}","errorExample":""},{"type":"xml","example":"\\n CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n \\n [\\"1506396160-0-0-7de771a77102680861853af862d5****\\"]\\n 37cb2f8b-f152-4338-b928-6704f71d****\\n 0\\n b5f8c837-ceeb-424f-b30b-68e94e86****\\n scene1\\n 0\\n \\n http://live/caster/example.net\\n lld\\n flv\\n \\n rtmp://developer.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-ac8c628078541d7055a170ec59a5****\\n \\n 2\\n","errorExample":""}]', + 'title' => 'DescribeCasterScenes', + 'description' => 'You can call the [CreateCaster](~~69338~~) operation to create a production studio and then call this operation to query the scenes of the production studio.'."\n" + ."\n" + .'## [](#qps-)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 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' => ' ', + ], + 'UpdateCasterSceneAudio' => [ + 'summary' => 'Modifies the audio configurations of a scene. This operation also allows you to 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'AudioLayer', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The audio configurations.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The audio configuration.'."\n", + 'type' => 'object', + 'properties' => [ + 'Filter' => [ + 'description' => 'Specifies whether to enable the features provided by the audio 3A algorithms. This parameter consists of the following fields:'."\n" + ."\n" + .'* **enableAgc**: specifies whether to enable automatic gain control (AGC). This field is optional. Valid values: 0 and 1. **0** is the default value, which specifies that AGC is disabled. **1** specifies that AGC is enabled.'."\n" + .'* **enableAns**: specifies whether to enable active noise suppression (ANS). This field is optional. Valid values: 0 and 1. **0** is the default value, which specifies that ANS is disabled. **1** specifies that ANS is enabled.'."\n" + .'* **ansMode**: specifies the mode for ANS. This field is optional and takes effect only if you set **enableAns** to **1**. Valid values: 0 and 1. **0** is the default value, which specifies the speech noise reduction mode. **1** specifies the music noise reduction mode.'."\n" + ."\n" + .'> To ensure a better noise reduction effect, we recommend that you set ansMode to 1.'."\n" + ."\n" + .'* **enableBeautify**: specifies whether to enable voice change. This field is optional. Valid values: 0 and 1. **0** is the default value, which specifies that voice change is disabled. **1** specifies that voice change is enabled.'."\n" + .'* **voiceBeautifyMode**: specifies the mode for voice change. This field is optional and takes effect only if you set **enableBeautify** to **1**. Valid values: 0 and 1. **0** is the default value, which specifies the magnetic male voice mode. **1** specifies the fresh female voice mode.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{ "enableAgc":0, "enableAns":1 }', + ], + 'FixedDelayDuration' => [ + 'description' => 'The fixed delay of the audio layer. This parameter is used to synchronize the audio with subtitles.'."\n" + ."\n" + .'Unit: milliseconds. Valid values: **0 to 5000**. Default value: **0**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '0', + ], + 'ValidChannel' => [ + 'description' => 'The sound channels that are used for volume input in the audio layer. Valid values:'."\n" + ."\n" + .'* **leftChannel**: the left channel'."\n" + .'* **rightChannel**: the right channel'."\n" + .'* **all** (default): both the left and right channels'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'all', + ], + 'VolumeRate' => [ + 'description' => 'The multiple of the original volume at which the audio layer plays audio. Valid values: **0 to 10.0**. Default value: **1.0**.'."\n" + ."\n" + .'* **1.0**: specifies that the audio layer plays audio at the original volume.'."\n" + .'* A value smaller than **1**: specifies that the audio layer plays audio at a volume that is less than the original volume.'."\n" + .'* A value greater than **1**: specifies that the audio layer plays audio at a volume that is more than the original volume.'."\n", + 'type' => 'number', + 'format' => 'float', + 'required' => false, + 'example' => '1', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 12, + ], + ], + [ + 'name' => 'MixList', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The location IDs of the audio layers, which are in the same order as the audio layers.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The location ID of the audio layer N in the production studio.'."\n" + ."\n" + .'Make sure that the value is consistent with the specified order of the audio layer. If channels are enabled, set this parameter to the location ID of the channel. If channels are disabled, set this parameter to the location ID of the input source.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'RV01', + ], + 'required' => false, + 'example' => 'RV01', + 'maxItems' => 12, + ], + ], + [ + '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****', + ], + ], + [ + 'name' => 'SceneId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the scene. If you call the [DescribeCasterScenes](~~2848039~~) operation to query scenes of the production studio, check the value of the response parameter ComponentId to obtain the ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e1****', + ], + ], + [ + 'name' => 'FollowEnable', + 'in' => 'query', + 'schema' => [ + 'description' => 'The audio mode. By default, the AFV mode is used. If you do not specify this parameter, the scene retains the last configuration. Valid values:'."\n" + ."\n" + .'* **0**: the audio mixing mode.'."\n" + .'* **1**: the AFV mode.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'InvalidAudioLayersAndMixListSize.Mismatch', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectSceneStatus', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectSceneStatus.ConfigError', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidMixList.ExceedNorm', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidScene.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'ResourceInChannel.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 412 => [ + [ + 'errorCode' => 'ResourceInChannel.PreConditionFailed', + 'errorMessage' => '%s, please try again later.', + ], + [ + 'errorCode' => 'ResourceInChannel.Invalid', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n}"}]', + 'title' => 'UpdateCasterSceneAudio', + 'description' => 'You can call the [CreateCaster](~~2848009~~) operation to create a production studio and then call this operation to modify the audio configurations of a scene in the production studio. This operation supports the audio mixing mode and the audio follows video (AFV) mode.'."\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", + 'requestParamsDescription' => 'N in the preceding request parameters indicates the sequence number. Examples:'."\n" + ."\n" + .'* The AudioLayer.N.VolumeRate parameter specifies the multiple of the original volume at which the audio layer N plays audio.'."\n" + .'* The AudioLayer.1.VolumeRate parameter specifies the multiple of the original volume at which the first audio layer plays audio.'."\n" + .'* The AudioLayer.2.VolumeRate parameter specifies the multiple of the original volume at which the second audio layer plays audio.'."\n", + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeCasterSceneAudio' => [ + 'summary' => 'Queries the audio configurations of a scene.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'CasterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the production studio.'."\n" + ."\n" + .'* If the production studio was created by calling the [CreateCaster](~~69338~~) 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 Name column.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '97df6b7f-3490-47d2-ac50-88338765****', + ], + ], + [ + 'name' => 'SceneId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the scene.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '97df6b7f-3490-47d2-ac50-88339087****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'AudioLayers' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AudioLayer' => [ + 'description' => 'The configurations of the audio layers.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'FixedDelayDuration' => [ + 'description' => 'The fixed delay of the audio layer. Unit: milliseconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '2000', + ], + 'ValidChannel' => [ + 'description' => 'The sound channel type of the audio layer. Valid values:'."\n" + ."\n" + .'* **left**: the left channel'."\n" + .'* **right**: the right channel'."\n" + .'* **all** (default): both the left and right channels'."\n", + 'type' => 'string', + 'example' => 'all', + ], + 'VolumeRate' => [ + 'description' => 'The volume of the audio layer.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '1', + ], + ], + ], + ], + ], + ], + 'CasterId' => [ + 'description' => 'The ID of the production studio. You can specify the ID in a request to start a scene in the production studio.'."\n", + 'type' => 'string', + 'example' => '97df6b7f-3490-47d2-ac50-88338765****', + ], + 'FollowEnable' => [ + 'description' => 'The audio mode. By default, the audio follows video (AFV) mode is used. Valid values:'."\n" + ."\n" + .'* **0**: the audio mixing mode'."\n" + .'* **1**: the AFV mode'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'MixList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LocationId' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => 'The location IDs of the audio layers, which are listed in the same order as their corresponding audio layers.'."\n", + 'type' => 'string', + 'example' => 'RV01', + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '98745637-3490-47d2-ac50-883387567098', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidScene.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"AudioLayers\\": {\\n \\"AudioLayer\\": [\\n {\\n \\"FixedDelayDuration\\": 2000,\\n \\"ValidChannel\\": \\"all\\",\\n \\"VolumeRate\\": 1\\n }\\n ]\\n },\\n \\"CasterId\\": \\"97df6b7f-3490-47d2-ac50-88338765****\\",\\n \\"FollowEnable\\": 1,\\n \\"MixList\\": {\\n \\"LocationId\\": [\\n \\"RV01\\"\\n ]\\n },\\n \\"RequestId\\": \\"98745637-3490-47d2-ac50-883387567098\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t97df6b7f-3490-47d2-ac50-8833e1b64597\\n\\tRV01\\n 1\\n 97df6b7f-3490-47d2-ac50-88338765****\\n\\t\\n\\t\\tall\\n 1\\n 2000\\n\\t\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"97df6b7f-3490-47d2-ac50-8833e1b64597\\",\\n \\"Content\\": {\\n \\"MixList\\": [\\n \\"1\\"\\n ],\\n \\"AudioLayers\\": [\\n {\\n \\"ValidChannel\\": \\"all\\",\\n \\"VolumeRate\\": 1\\n }\\n ],\\n \\"FollowEnable\\": 1\\n }\\n}"}]', + 'title' => 'DescribeCasterSceneAudio', + 'description' => '## [](#)Usage notes'."\n" + ."\n" + .'You can call the [CreateCaster](~~69338~~) operation to create a production studio and then call this operation to query the audio configurations of a scene in the production studio.'."\n" + ."\n" + .'## [](#qps-)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 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' => ' ', + ], + 'StartCasterScene' => [ + 'summary' => 'Starts 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + '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' => '80787064-1c94-4dc1-85ce-9409960a****', + ], + ], + [ + 'name' => 'SceneId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the scene.'."\n" + ."\n" + .'This parameter takes effect only if the scene is a PVW scene.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '242b4e2c-c30f-4442-85ba-2e3e4e3d****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7', + ], + 'StreamUrl' => [ + 'description' => 'The streaming URL of the scene. It is used for playback, but not for stream relay.'."\n", + 'type' => 'string', + 'example' => 'http://live/caster/example.org', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IncorrectSceneStatus', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectSceneStatus.Inuse', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidSceneId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectCasterStatus.Idle', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 403 => [ + [ + 'errorCode' => 'UserQuotaExceed', + 'errorMessage' => 'Quota exceeded: %s.', + ], + ], + [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidScene.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidLayout.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidConfiguration.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidCasterTemplate.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\",\\n \\"StreamUrl\\": \\"http://live/caster/example.org\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n http://live/caster/example.org\\n","errorExample":""}]', + 'title' => 'StartCasterScene', + 'description' => 'You can call this operation to start a specified PVW scene.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + '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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-shanghai', + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'CasterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the production studio.'."\n" + ."\n" + .'If you create a production studio through the [CreateCaster](~~69338#doc-api-live-CreateCaster~~ "Creates a production studio.") interface, check the value of the CasterId parameter in the response.'."\n" + ."\n" + .'If you create a production studio through the ApsaraVideo Live Console, log in to the console, then check the ID of the production studio through the following path:'."\n" + ."\n" + .'Production Studios > Production Studio Management'."\n" + ."\n" + .'> The CasterId is reflected in the Name column on the Production Studio Management page.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '80787064-1c94-4dc1-85ce-9409960a****', + ], + ], + [ + 'name' => 'SceneId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the scene.'."\n" + ."\n" + .'This operation is available only when the scene is a preview scene. For more information about the scene types, see [Query the scenes of production studios](~~60262~~).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '242b4e2c-c30f-4442-85ba-2e3e4e3d****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidSceneId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectSceneStatus', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectSceneStatus.Idle', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidScene.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\tCF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\"\\n}"}]', + 'title' => 'StopCasterScene', + 'description' => '## Usage note'."\n" + ."\n" + .'This operation is only applicable to the PVW scenes.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'SetCasterChannel' => [ + 'summary' => 'Configures a channel 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + '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' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + ], + [ + 'name' => 'ChannelId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the channel.'."\n" + ."\n" + .'When channels are enabled, the layout references the channel IDs. You can specify up to one resource for a channel. The number of resources is limited by the number of the channels of the production studio. The value must be in the RV\\[Number] format, such as RV01 and RV12.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'RV01', + ], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the video source.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', + ], + ], + [ + 'name' => 'SeekOffset', + 'in' => 'query', + 'schema' => [ + 'description' => 'The offset of the position where the production studio starts reading the video source. The value must be greater than or equal to 0, indicating an offset from the first frame. This parameter take effects for video files, but not for live streams. Unit: milliseconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1000', + ], + ], + [ + 'name' => 'PlayStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'The playback status. This parameter take effects for video files, but not for live streams. Valid values:'."\n" + ."\n" + .'* **1**: specifies that the video source is playing. This is the default value.'."\n" + .'* **0**: specifies that the playback of the video source is paused.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'FaceBeauty', + 'in' => 'query', + 'schema' => [ + 'description' => 'The face retouching effect. Valid values: 0 (all effects), 1 (skin smoothing), 2 (skin whitening), 3 (dark circles removal), and 4 (nasolabial folds removal).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '0', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'DuplicateLocationID', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.PlayStatus', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidChannelId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.SeekOffset', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectChannel.Disable', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'ResourceOfChannelExist', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidResource.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n}"}]', + 'title' => 'SetCasterChannel', + 'description' => 'You can call the [CreateCaster](~~2848009~~) operation to create a production studio and then call this operation to configure a channel for the production studio.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeCasterChannels' => [ + 'summary' => '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + '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' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Channels' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Channel' => [ + 'description' => 'The channels.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the channel.'."\n", + 'type' => 'object', + 'properties' => [ + 'ChannelId' => [ + 'description' => 'The ID of the channel.'."\n" + ."\n" + .'The layout references the channel ID when the channel is enabled. You can specify up to one video resource for the channel. The value of this parameter must be in the RV\\[Number] format, such as RV01 and RV12.'."\n", + 'type' => 'string', + 'example' => 'RV01', + ], + 'FaceBeauty' => [ + 'description' => 'The face retouching effect. Valid values: 0 (all effects), 1 (skin smoothing), 2 (skin whitening), 3 (dark circles removal), and 4 (nasolabial folds removal).'."\n", + 'type' => 'string', + 'example' => '0', + ], + 'ResourceId' => [ + 'description' => 'The ID of the video resource.'."\n", + 'type' => 'string', + 'example' => '87642866-281E-4AEA-9582-B124879****', + ], + 'RtmpUrl' => [ + 'description' => 'The URL in the Real-Time Messaging Protocol (RTMP) format.'."\n", + 'type' => 'string', + 'example' => 'rtmp://demo.aliyundoc.com/caster/rtmperf?auth_key=****', + ], + 'StreamUrl' => [ + 'description' => 'The URL of the output content in the channel.'."\n", + 'type' => 'string', + 'example' => 'http://demo.aliyundoc.com/caster/streamwsx.flv?auth_key=YYYYY', + ], + ], + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '83C52866-281E-4AEA-9582-B124********', + ], + 'Total' => [ + 'description' => 'The total number of channels.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidDomainName.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Channels\\": {\\n \\"Channel\\": [\\n {\\n \\"ChannelId\\": \\"RV01\\",\\n \\"FaceBeauty\\": \\"0\\",\\n \\"ResourceId\\": \\"87642866-281E-4AEA-9582-B124879****\\",\\n \\"RtmpUrl\\": \\"rtmp://demo.aliyundoc.com/caster/rtmperf?auth_key=****\\",\\n \\"StreamUrl\\": \\"http://demo.aliyundoc.com/caster/streamwsx.flv?auth_key=YYYYY\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"83C52866-281E-4AEA-9582-B124********\\",\\n \\"Total\\": 1\\n}","errorExample":""},{"type":"xml","example":"\\n \\n RV01\\n 0\\n 87642866-281E-4AEA-9582-B124879****\\n rtmp://demo.aliyundoc.com/caster/rtmperf?auth_key=****\\n http://demo.aliyundoc.com/caster/streamwsx.flv?auth_key=YYYYY\\n \\n 83C52866-281E-4AEA-9582-B1245406349D\\n 1\\n","errorExample":""}]', + 'title' => 'DescribeCasterChannels', + 'description' => 'You can call the [CreateCaster](~~2848009~~) operation to create a production studio and then call this operation to query the channels of the production studio.'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'EffectCasterUrgent' => [ + 'summary' => 'Switches a scene to the standby resource in 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + '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' => '80787064-1c94-4dc1-85ce-9409960a****', + ], + ], + [ + 'name' => 'SceneId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the scene. This parameter takes effect only if the scene is a PGM scene.'."\n" + ."\n" + .'You can call the [DescribeCasterScenes](~~2848039~~) operation to query the scene ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '242b4e2c-c30f-4442-85ba-2e3e4e3d****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidSceneId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectSceneStatus', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectSceneStatus.Idle', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectChannel.Disable', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidUrgentMaterial.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidScene.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidResource.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n","errorExample":""}]', + 'title' => 'EffectCasterUrgent', + 'description' => 'You can call this operation to switch a specified scene to the standby resource. Only a PGM scene is supported.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'EffectCasterVideoResource' => [ + 'summary' => 'Updates the standby resource in a specified scene.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + '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' => '80787064-1c94-4dc1-85ce-9409960a****', + ], + ], + [ + 'name' => 'SceneId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the scene. You can call the [DescribeCasterScenes](~~60262#doc-api-live-DescribeCasterScenes~~ "Queries information about the scenes of a production studio.") operation to get the ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '05ab713c-676e-49c0-96ce-cc408da1****', + ], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The resource ID. If you call the [DescribeCasterChannels](~~2848046~~) operation to query the channels of the production studio, you can obtain the ID of the resource in a specific channel from the ResourceId parameter in the response.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'f096e8d6-0319-4c96-82bc-ecbc79cf****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IncorrectSceneStatus.Idle', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectSceneStatus.ConfigError', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidResourceId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidSceneId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidResource.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidScene.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidLayout.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n","errorExample":""}]', + 'title' => 'EffectCasterVideoResource', + 'description' => 'Make sure that the resource is referenced by the scene.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'AddShowIntoShowList' => [ + 'summary' => 'Adds an episode to an episode list.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'showList', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The episodes that you want to add to the episode list. Each episode has a unique name and resource URL.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the episode.'."\n", + 'type' => 'object', + 'properties' => [ + 'duration' => [ + 'description' => 'The duration of the episode. Unit: seconds.'."\n" + ."\n" + .'> You can specify only one of the **RepeatTimes** and **Duration** parameters.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '20', + ], + 'liveInputType' => [ + 'description' => 'The custom type label.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + 'repeatTimes' => [ + 'description' => 'The number of times the episode repeats after the first playback is complete. Default value: 0.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* You can specify only one of the **RepeatTimes** and **Duration** parameters.'."\n" + ."\n" + .'* The RepeatTimes parameter specifies the number of repetitions. For example, if you set the value to 0, the episode is to be played once. If you set the value to 1, the episode is to be played twice.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '0', + ], + 'resourceId' => [ + 'description' => 'The ID of the resource.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + 'resourceType' => [ + 'description' => 'The resource type. Valid values:'."\n" + ."\n" + .'* live: live stream'."\n" + .'* vod: on-demand video'."\n" + .'* pic: image'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* When you select media resources from ApsaraVideo VOD, we recommend that you select resources that are stored in hosted OSS buckets. Resources stored in non-hosted OSS buckets have a validity period. Pay attention to the validity if you select resources that are stored in non-hosted OSS buckets.'."\n" + ."\n" + .'* You can add a live stream from ApsaraVideo Live or by using a third-party URL.'."\n" + .'* You can add an on-demand video from ApsaraVideo VOD or by using a third-party URL, or add an on-demand image.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'vod', + ], + 'resourceUrl' => [ + 'description' => 'The URL of the resource.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'http://****/atestObject****.m3u8', + ], + 'showName' => [ + 'description' => 'The name of the episode.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveShow****', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 10, + ], + ], + [ + '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****', + ], + ], + [ + 'name' => 'ShowName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the episode.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveShow****', + ], + ], + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The resource type. Valid values:'."\n" + ."\n" + .'* live: live stream'."\n" + .'* vod: on-demand video'."\n" + .'* pic: image'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* When you select media resources from ApsaraVideo VOD, we recommend that you select resources that are stored in hosted OSS buckets. Resources stored in non-hosted OSS buckets have a validity period. Pay attention to the validity if you select resources that are stored in non-hosted OSS buckets. - You can add a live stream from ApsaraVideo Live or by using a third-party URL. - You can add an on-demand video from ApsaraVideo VOD or by using a third-party URL, or add an on-demand image.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'vod', + ], + ], + [ + 'name' => 'ResourceUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The URL of the resource.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'http://****/atestObject****.m3u8', + ], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + ], + [ + 'name' => 'Duration', + 'in' => 'query', + 'schema' => [ + 'description' => 'The duration of the episode. Unit: seconds.'."\n" + ."\n" + .'> You can specify only one of the **RepeatTimes** and **Duration** parameters.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '20', + ], + ], + [ + 'name' => 'RepeatTimes', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of times the episode repeats after the first playback is complete. The default value is 0.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* You can specify only one of the **RepeatTimes** and **Duration** parameters. - The RepeatTimes parameter specifies the number of repetitions. For example, if you set the value to -1, the episode is to be played for infinite times. If you set the value to 0, the episode is to be played once. If you set the value to 1, the episode is to be played twice.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '0', + ], + ], + [ + 'name' => 'Spot', + 'in' => 'query', + 'schema' => [ + 'description' => 'The position of the episode in the episode list. Position indexes start from 0. By default, the episode is added to the end of the episode list.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'LiveInputType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The custom type label.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'isBatchMode', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to add multiple episodes to the episode list at a time. Valid values:'."\n" + ."\n" + .'* true: adds multiple episodes to the episode list at a time.'."\n" + .'* false: adds a single episode to the episode list.'."\n" + ."\n" + .'> If you do not specify this parameter or this parameter is left empty, a single episode is to be added to the episode list.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '987DA143-A39C-5B5D-AF5B-3B07944A0036', + ], + 'ShowId' => [ + 'description' => 'The ID of the episode.'."\n", + 'type' => 'string', + 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + 'failedList' => [ + 'description' => 'The list of resources that failed to be added and the reason for failure.'."\n", + 'type' => 'string', + 'example' => 'failedList[Show1, Show2...]', + ], + 'successfulShowIds' => [ + 'description' => 'The IDs of the episodes that were added.'."\n", + 'type' => 'string', + 'example' => 'f1933f16-5467-4308-b3a9-e8d451a90999,547436b8-c839-4469-a2c0-704c1ce5ce00', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidVodUrl.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidShowList.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"987DA143-A39C-5B5D-AF5B-3B07944A0036\\",\\n \\"ShowId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"failedList\\": \\"failedList[Show1, Show2...]\\",\\n \\"successfulShowIds\\": \\"f1933f16-5467-4308-b3a9-e8d451a90999,547436b8-c839-4469-a2c0-704c1ce5ce00\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 987DA143-A39C-5B5D-AF5B-3B07944A0036\\n \\n \\n test\\n vod\\n \\n ResourceUrl is invalid, probe failed\\n \\n \\n \\n http://error.test.case\\n vod\\n \\n ResourceUrl is invalid, probe failed\\n \\n f1933f16-5467-4308-b3a9-e8d451a90999, 547436b8-c839-4469-a2c0-704c1ce5ce00\\n","errorExample":""}]', + 'title' => 'AddShowIntoShowList', + 'description' => 'You must create a production studio in the new playlist mode and add media resources to the production studio before you can call this operation. For information about how to create a production studio, see [CreateCaster](~~2848009~~).'."\n" + ."\n" + .'You can add up to 1,000 episodes to an episode list.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* When you select media resources from ApsaraVideo VOD, we recommend that you select resources that are stored in hosted OSS buckets. Resources stored in non-hosted OSS buckets have a validity period. Pay attention to the validity if you select resources that are stored in non-hosted OSS buckets.'."\n" + ."\n" + .'* When you add media resources to a production studio, we recommend that you select resources from ApsaraVideo Live and ApsaraVideo VOD. If you add a third-party stream by specifying a streaming URL, there is a possibility that the stream fails to be played. You must pay attention to the quality and validity of the third-party stream.'."\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", + '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", + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'showIdList', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The IDs of episodes that you want to remove.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the episode that you want to remove.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + 'required' => false, + 'maxItems' => 80, + ], + ], + [ + 'name' => 'CasterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the production studio.'."\n" + ."\n" + .'* If the production studio was created by calling the [CreateCaster](~~69338~~) 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****', + ], + ], + [ + 'name' => 'ShowId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the episode.'."\n" + ."\n" + .'> You can obtain the ID by checking the value of the response parameter ShowId of the [AddShowIntoShowList](~~370861~~) operation.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + ], + [ + 'name' => 'isBatchMode', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to remove multiple episodes at a time. Valid values:'."\n" + ."\n" + .'* true: removes multiple episodes at a time.'."\n" + .'* false: removes a single episode.'."\n" + ."\n" + .'> If you do not configure this parameter or this parameter is left empty, a single episode is to be removed.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + 'ShowId' => [ + 'description' => 'The ID of the episode.'."\n", + 'type' => 'string', + 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + 'failedList' => [ + 'description' => 'The IDs of episodes that failed to be removed and the relevant failure information.'."\n", + 'type' => 'string', + 'example' => 'failedList[Show1, Show2...]', + ], + 'successfulShowIds' => [ + 'description' => 'The IDs of episodes that were removed.'."\n", + 'type' => 'string', + 'example' => 'f1933f16-5467-4308-b3a9-e8d451a90999', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidShowList.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidShow.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"ShowId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"failedList\\": \\"failedList[Show1, Show2...]\\",\\n \\"successfulShowIds\\": \\"f1933f16-5467-4308-b3a9-e8d451a90999\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 001A01C4-3023-57C1-9A82-1BF3DC690C0A\\n \\n 347436b8-c839-4469-a2c0-704c1ce5ce00\\n the showId does not exist in our showOrderList\\n \\n f1933f16-5467-4308-b3a9-e8d451a90999\\n 547436b8-c839-4469-a2c0-704c1ce5ce00\\n","errorExample":""}]', + 'title' => 'RemoveShowFromShowList', + 'description' => '## [](#)Usage notes'."\n" + ."\n" + .'You cannot use this operation on empty episode lists. For information about how to add episodes to an episode list, see [AddShowIntoShowList](~~370861~~).'."\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. For more information, see [QPS limits](~~343507~~).'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + '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****', + ], + ], + [ + 'name' => 'ShowId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the episode for which you want to change the position in the playlist.'."\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' => false, + 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + ], + [ + 'name' => 'RepeatTimes', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of additional times the episode list is played.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* The RepeatTimes parameter specifies the number of repetitions. For example, if you set the value to **0**, the episode list is played **once**. If you set the value to **1**, the episode list is played **twice**.********'."\n" + ."\n" + .'* If you set the value to -1, the episode list is repeated indefinitely.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '5', + ], + ], + [ + 'name' => 'Spot', + 'in' => 'query', + 'schema' => [ + 'description' => 'The position of the episode in the episode list. If you want to change the position of an episode in a playlist, place the ID of the episode in **Spot**.'."\n" + ."\n" + .'> The value must be greater than or equal to 0 and less than or equal to the total number of episodes in the playlist.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'HighPriorityShowId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The episode of the highest priority.'."\n" + ."\n" + .'> You can configure this parameter only before the playback of the episode list starts.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + ], + [ + 'name' => 'HighPriorityShowStartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time at which the episode of the highest priority is played. Format: yyyy-MM-dd\'T\'HH:mm:ss.'."\n" + ."\n" + .'> You can configure this parameter only before the episode list starts playing.\\'."\n" + .'After you configure this parameter, when the specified point in time is reached, any episode that is playing stops and the episode of the highest priority in the episode list starts to play.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2021-11-23T12:30:00', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidVodUrl.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'IncorrectCasterStatus', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidShowList.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":" \\r\\n16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\r\\n ","errorExample":""}]', + 'title' => 'ModifyShowList', + 'description' => 'This operation allows you to change the position of an episode in an episode list, how many times an episode list is played, and the specific point in time at which the episode of the highest priority in an episode list is played.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + ], + 'DescribeShowList' => [ + 'summary' => 'Queries the details of the episode list.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + '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****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + 'ShowList' => [ + 'description' => '****Details of the episode list.'."\n" + ."\n" + .'Show indicates the information about a specific episode. For more information, see the **Show** parameter.'."\n", + 'type' => 'string', + 'example' => 'ShowList[Show1, Show2, Show3...]', + ], + 'ShowListInfo' => [ + 'description' => 'The information about the episode list.'."\n", + 'type' => 'object', + 'properties' => [ + 'CurrentShowId' => [ + 'description' => 'The ID of the episode that is playing.'."\n", + 'type' => 'string', + 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + 'Background' => [ + 'description' => 'The background of the episode list.'."\n", + 'type' => 'string', + 'example' => '{\\"MaterialId\\":\\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\"resourceType\\":\\"VOD\\"}', + ], + 'HighPriorityShowId' => [ + 'description' => 'The episode of the highest priority.'."\n" + ."\n" + .'> You can configure this parameter only before the episode list starts playing.'."\n", + 'type' => 'string', + 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + 'HighPriorityShowStartTime' => [ + 'description' => 'The time at which the episode of the highest priority is played. Format: yyyy-MM-dd\'T\'HH:mm:ss.'."\n" + ."\n" + .'> You can configure this parameter only before the episode list starts playing. After you configure this parameter, when the specified point in time is reached, any episode that is playing stops and the episode of the highest priority in the episode list starts to play.'."\n", + 'type' => 'string', + 'example' => '2021-11-23T12:30:00', + ], + 'ShowList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Show' => [ + 'description' => 'The episodes in the episode list.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Duration' => [ + 'description' => 'The duration of the episode. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '20', + ], + 'RepeatTimes' => [ + 'description' => 'The number of times the episode repeats after the first playback is complete.'."\n" + ."\n" + .'For example, if you set the value to 0, the episode is to be played once. If you set the value to 1, the episode is to be played twice.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '5', + ], + 'ResourceInfo' => [ + 'description' => 'The resource information.'."\n", + 'type' => 'object', + 'properties' => [ + 'LiveInputType' => [ + 'description' => 'The custom type label.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'ResourceId' => [ + 'description' => 'The ID of the video-on-demand (VOD) file.'."\n", + 'type' => 'string', + 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + 'ResourceType' => [ + 'description' => 'The type of the resource.'."\n", + 'type' => 'string', + 'example' => 'vod', + ], + 'ResourceUrl' => [ + 'description' => 'The URL of the resource.'."\n", + 'type' => 'string', + 'example' => 'http://**/atestObject**.m3u8', + ], + ], + ], + 'ShowId' => [ + 'description' => 'The ID of the episode.'."\n", + 'type' => 'string', + 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + 'ShowName' => [ + 'description' => 'The name of the episode.'."\n", + 'type' => 'string', + 'example' => 'liveShow****', + ], + ], + ], + ], + ], + ], + 'ShowListRepeatTimes' => [ + 'description' => 'The number of additional times the episode list is played by default. The value is 0.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'TotalShowListRepeatTimes' => [ + 'description' => 'The number of additional times the episode list is played.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidShowList.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidShow.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"ShowList\\": \\"ShowList[Show1, Show2, Show3...]\\",\\n \\"ShowListInfo\\": {\\n \\"CurrentShowId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"Background\\": \\"{\\\\\\\\\\\\\\"MaterialId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"resourceType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"VOD\\\\\\\\\\\\\\"}\\",\\n \\"HighPriorityShowId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"HighPriorityShowStartTime\\": \\"2021-11-23T12:30:00\\",\\n \\"ShowList\\": {\\n \\"Show\\": [\\n {\\n \\"Duration\\": 20,\\n \\"RepeatTimes\\": 5,\\n \\"ResourceInfo\\": {\\n \\"LiveInputType\\": 1,\\n \\"ResourceId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"ResourceType\\": \\"vod\\",\\n \\"ResourceUrl\\": \\"http://**/atestObject**.m3u8\\"\\n },\\n \\"ShowId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"ShowName\\": \\"liveShow****\\"\\n }\\n ]\\n },\\n \\"ShowListRepeatTimes\\": 0,\\n \\"TotalShowListRepeatTimes\\": 1\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n ShowList[Show1, Show2, Show3...]\\n \\n a2b8e671-2fe5-4642-a2ec-bf93880e****\\n {\\\\\\"MaterialId\\\\\\":\\\\\\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\\\\\",\\\\\\"resourceType\\\\\\":\\\\\\"VOD\\\\\\"}\\n a2b8e671-2fe5-4642-a2ec-bf93880e****\\n 2021-11-23T12:30:00\\n \\n 20\\n 5\\n \\n 1\\n a2b8e671-2fe5-4642-a2ec-bf93880e****\\n vod\\n http://**/atestObject**.m3u8\\n \\n a2b8e671-2fe5-4642-a2ec-bf93880e****\\n liveShow****\\n \\n 0\\n 1\\n \\n","errorExample":""}]', + 'title' => 'DescribeShowList', + 'description' => 'You cannot call this operation if the episode list is empty. For information about how to add episodes to the episode list, see [AddShowIntoShowList](~~2848051~~).'."\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", + 'requestParamsDescription' => ' ', + ], + '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, + 'example' => 'cn-shanghai', + 'default' => 'cn-shanghai', + ], + ], + [ + '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****', + ], + ], + [ + '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****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + 'ShowId' => [ + 'description' => 'The ID of the episode.'."\n", + 'type' => 'string', + 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectCasterStatus', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidShowList.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidShow.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"ShowId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\"\\n}","errorExample":""},{"type":"xml","example":" \\n16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\na2b8e671-2fe5-4642-a2ec-bf93880e****\\n ","errorExample":""}]', + 'title' => 'PlayChoosenShow', + 'description' => 'After you add episodes to an episode list and start live streaming, you can call this operation to switch among episodes. For information about how to add episodes to an episode list, see [AddShowIntoShowList](~~2848051~~).'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + ], + 'InitializeAutoShowListTask' => [ + 'summary' => 'Creates a scheduled task to start and stop the playback of a playlist at specified points in time.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'ResourceIds', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IDs of on-demand media asset files in the playlist. Only on-demand video files are supported. You can specify up to three video files in the playlist. The video files in the playlist are automatically played in sequence. The playback stops at the point in time specified by the EndTime parameter.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* You can obtain the ID of a video file in the ApsaraVideo Live console or by calling an API operation. For more information, see [Media asset management](~~86057~~) or [CreateUploadVideo](~~55407~~). - If the video files are all played before the time specified by EndTime, the final frame of the final video file is played until the time specified by EndTime arrives.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '["89e02xxxxfb349axxxxa0c350d**** ","6ae0xxxxxb349axxxxa0c350a****"]', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The start timestamp. Unit: milliseconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1645688994000', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end timestamp. Unit: milliseconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1645688994000', + ], + ], + [ + 'name' => 'CasterConfig', + 'in' => 'query', + 'schema' => [ + 'description' => 'The configurations of the production studio. The following configurations are involved:'."\n" + ."\n" + .'* CasterTemplate: required. The output resolution.'."\n" + .'* LiveTemplate: optional. The templates to be used for transcoding.'."\n" + ."\n" + .'> Set the value to a JSON string. Use upper camel case for fields of the string.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '{"CasterTemplate": "lp_ld","LiveTemplates":["lhd", "lsd","lud"]}', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The output streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.aliyundoc.com', + ], + ], + [ + 'name' => 'CallBackUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The callback URL.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'http://***.com/callback', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'CasterId' => [ + 'description' => 'The ID of the production studio.'."\n" + ."\n" + .'> The value of this parameter can be used as the value of a request parameter to query the streaming URL of the production studio, start the production studio, add video resources to the production studio, add a production studio layout, query production studio layouts, add a production studio component, and add a production studio playlist.'."\n", + 'type' => 'string', + 'example' => 'b4810848-bcf9-4aef-bd4a-e6bba2d9****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + 'StreamList' => [ + 'description' => 'The list of output video streams.'."\n" + ."\n" + .'* videoFormat: the format of the streaming URL.'."\n" + .'* outputStreamUrl: the source URL.'."\n" + .'* transcodeConfig: the output resolution specified for video transcoding of the source URL.'."\n", + 'type' => 'string', + 'example' => '[{"videoFormat":"flv","outputStreamUrl":"http://example.aliyundoc.com","transcodeConfig":"original"}]', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter.PurchaseTime', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.ExpireTime', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidChargeType.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidChargeType.PostSupport', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidCasterTemplate.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'InvalidParameter.ChargeType', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidPeriod.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidClientToken.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectCasterStatus', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidParameter.StartTime', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'CasterNumberExceed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'IncorrectCasterStatus.EnableChannel', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.NormType', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidConfiguration.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidDomainName.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 408 => [ + [ + 'errorCode' => 'CreateCaster.Timeout', + 'errorMessage' => '%s, please try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"b4810848-bcf9-4aef-bd4a-e6bba2d9****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"StreamList\\": \\"[{\\\\\\"videoFormat\\\\\\":\\\\\\"flv\\\\\\",\\\\\\"outputStreamUrl\\\\\\":\\\\\\"http://example.aliyundoc.com\\\\\\",\\\\\\"transcodeConfig\\\\\\":\\\\\\"original\\\\\\"}]\\"\\n}","errorExample":""},{"type":"xml","example":"\\n9F6448C9-6F92-1BAC-AFDD-C308782A6573\\n\\n flv\\n http://example.aliyundoc.com/caster/2967b3b2b52242019c277de2a11a****.flv\\n original\\n\\n6277b6a3-1a40-4063-85f7-145666e3****\\n","errorExample":""}]', + 'title' => 'InitializeAutoShowListTask', + 'description' => 'You can call this operation to create a scheduled task to start and stop the playback of an episode list at specified points in time. Make sure that the parameter settings meet the requirements.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + ], + 'DescribeAutoShowListTasks' => [ + 'summary' => 'Queries scheduled tasks that are used to start and stop playing an episode list at specified points in time.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'CasterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the production studio for which you want to query scheduled tasks.'."\n" + ."\n" + .'> If the scheduled tasks were created by calling the [InitializeAutoShowListTask](~~2848056~~) operation, check the value of the response parameter CasterId to obtain the ID. If you do not specify this parameter, the system queries all the scheduled tasks that belong to the user specified by the OwnerId parameter.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '53200b81-b761-4c10-842a-a0726d97****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'AutoShowListTasks' => [ + 'description' => 'The information about the scheduled tasks. The following fields are included:'."\n" + ."\n" + .'* Status: the status of the scheduled task. Valid values: 0 and 1. A value of 0 indicates that the scheduled task is paused. A value of 1 indicates that the scheduled task is started.'."\n" + .'* LiveTemplate: the transcoding templates.'."\n" + .'* TranscodeConfig: the transcoding configuration for the source URL.'."\n" + .'* CasterId: the ID of the production studio.'."\n", + 'type' => 'string', + 'example' => '{"Status":0,"TranscodeConfig":{"CasterTemplate":"lp_hd", "LiveTemplate":["lhd","lsd"]}, "CasterId":"cce04ef3-2226-4865-8704-f84b8375****"}', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidVodUrl.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidShowList.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"AutoShowListTasks\\": \\"{\\\\\\"Status\\\\\\":0,\\\\\\"TranscodeConfig\\\\\\":{\\\\\\"CasterTemplate\\\\\\":\\\\\\"lp_hd\\\\\\", \\\\\\"LiveTemplate\\\\\\":[\\\\\\"lhd\\\\\\",\\\\\\"lsd\\\\\\"]}, \\\\\\"CasterId\\\\\\":\\\\\\"cce04ef3-2226-4865-8704-f84b8375****\\\\\\"}\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n04F5D5E0-9FAA-13CB-96A9-850FB06E9A82\\n\\n 0\\n 1645594715228\\n [\\"6ae09369cab349a78dab7a0c350dfb9d\\"]\\n 1645594115228\\n \\n lp_hd\\n lhd\\n lsd\\n \\n e18b0c36-c0b5-47c1-81fd-7d783b5c7802\\n\\n","errorExample":""}]', + 'title' => 'DescribeAutoShowListTasks', + 'description' => 'You can call this operation to query scheduled tasks that are used to start and stop playing an episode list at specified points in time. Make sure that the parameter settings meet the requirements.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + ], + 'EditShowAndReplace' => [ + 'summary' => 'Creates an editing task.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + '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' => '53200b81-b761-4c10-842a-a0726d97****', + ], + ], + [ + 'name' => 'ShowId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the episode to be edited.'."\n" + ."\n" + .'> You can obtain the ID from the response parameter ShowId of the [AddShowIntoShowList](~~2848051~~) operation.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '42200b81-b761-4c10-842a-a0726d97****', + ], + ], + [ + 'name' => 'UserData', + 'in' => 'query', + 'schema' => [ + 'description' => 'The user information.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '900a2b2r8-13c2-****-88f2-75e4a07c1ed9', + ], + ], + [ + 'name' => 'StorageInfo', + 'in' => 'query', + 'schema' => [ + 'description' => 'The storage information of the episode. The following fields are included:'."\n" + ."\n" + .'* **StorageLocation**: the storage location of ApsaraVideo VOD.'."\n" + .'* **FileName**: the custom file name.'."\n" + ."\n" + .'> Editing outputs must be stored in the VOD bucket within the same account that is used to access both ApsaraVideo VOD and ApsaraVideo Live. For more information about how to obtain the storage location, see [Manage VOD resources](~~86097~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{ "StorageLocation":"***bucket***", "FileName":"EditFile****.mp4" }', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The start time of the editing task. Unit: seconds.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* The valid values range from 0 to the value indicated by the total length of the episode. By default, the editing task starts from the beginning of the episode. Default value: 0.0.'."\n" + ."\n" + .'* If you want to edit a VOD file from the 2nd second to the 5th second, set the StartTime parameter to 2.0 and the EndTime parameter to 5.0.'."\n", + 'type' => 'number', + 'format' => 'float', + 'required' => false, + 'example' => '2.0', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end time of the editing task. Unit: seconds.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* The valid values range from 0 to the value indicated by the total length of the episode.'."\n" + ."\n" + .'* By default, this parameter is set to the value that indicates the total length of the episode. The editing period cannot exceed the total length of the episode.'."\n" + ."\n" + .'* If you want to edit a VOD file from the 2nd second to the 5th second, set the StartTime parameter to 2.0 and the EndTime parameter to 5.0.'."\n", + 'type' => 'number', + 'format' => 'float', + 'required' => false, + 'example' => '5.0', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'JobInfo' => [ + 'description' => 'The information about the editing task. The following fields are included:'."\n" + ."\n" + .'* **vodId**: the ID of the VOD file.'."\n" + .'* **mediaid**: the ID of the media file.'."\n" + .'* **jobId**: the ID of the editing task.'."\n", + 'type' => 'string', + 'example' => '{ "vodId": "3e34733b40b9a96ccf5c1ff6f69****", "mediaid": "eb1861d2c9a842340e989dd56****", "jobId": "7d2fbc380b0e08e55fe98733764****" }', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidVodUrl.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 403 => [ + [ + 'errorCode' => 'RequestForbiddenForIce', + 'errorMessage' => '%s, please try again later.', + ], + ], + [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidShowList.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobInfo\\": \\"{ \\\\\\"vodId\\\\\\": \\\\\\"3e34733b40b9a96ccf5c1ff6f69****\\\\\\", \\\\\\"mediaid\\\\\\": \\\\\\"eb1861d2c9a842340e989dd56****\\\\\\", \\\\\\"jobId\\\\\\": \\\\\\"7d2fbc380b0e08e55fe98733764****\\\\\\" }\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":" \\n16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\n 3e34733b40b9a96ccf5c1ff6f69****\\n eb1861d2c9a842340e989dd56****\\n 7d2fbc380b0e08e55fe98733764****\\n\\n","errorExample":""}]', + 'title' => 'EditShowAndReplace', + 'description' => 'You can call this operation to create an editing task by specifying the production studio ID and the episode ID. You will not receive a notification after the editing task is created. You can call the [GetEditingJobInfo](~~2848059~~) operation to query the status of the editing task.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'GetEditingJobInfo' => [ + 'summary' => 'Queries the information about editing tasks.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + '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' => '53200b81-b761-4c10-842a-a0726d97****', + ], + ], + [ + 'name' => 'ShowId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the episode for which you want to query editing tasks.'."\n" + ."\n" + .'> You can obtain the ID from the response parameter ShowId of the [AddShowIntoShowList](~~370861~~) operation.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '72200b81-b761-4c10-842a-a0726d97****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'CasterId' => [ + 'description' => 'The ID of the production studio.'."\n", + 'type' => 'string', + 'example' => '53200b81-b761-4c10-842a-a0726d97****', + ], + 'EditingTasksInfo' => [ + 'description' => 'The information about editing tasks. The following fields are returned for each editing task:'."\n" + ."\n" + .'* **OutputVodId**: the ID of the output video-on-demand (VOD) file.'."\n" + .'* **TaskStatus**: the status of the editing task. Valid values: -1, 0, 1, 2, and 3. A value of -1 indicates that the editing task fails. A value of 0 indicates that the editing task is being initialized. A value of 1 indicates that editing is in progress. A value of 2 indicates that the output VOD file is being uploaded. A value of 3 indicates that the editing task is successful.'."\n" + .'* **StorageLocation**: the storage location in ApsaraVideo VOD.'."\n" + .'* **FileName**: the name of the file that is edited.'."\n" + .'* **ShowId**: the ID of the episode.'."\n", + 'type' => 'string', + 'example' => '"EditingTasksInfo": { "OutputVodId": "3e34733b40b9a96ccf5c1ff6f69****", "TaskStatus": 1, "StorageInfo": { "StorageLocation": "***bucket***", "FileName": "EditFile****" }, "ShowId": "42200b81-b761-4c10-842a-a0726d97****" },', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidVodUrl.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidShowList.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"CasterId\\": \\"53200b81-b761-4c10-842a-a0726d97****\\",\\n \\"EditingTasksInfo\\": \\"\\\\\\"EditingTasksInfo\\\\\\": { \\\\\\"OutputVodId\\\\\\": \\\\\\"3e34733b40b9a96ccf5c1ff6f69****\\\\\\", \\\\\\"TaskStatus\\\\\\": 1, \\\\\\"StorageInfo\\\\\\": { \\\\\\"StorageLocation\\\\\\": \\\\\\"***bucket***\\\\\\", \\\\\\"FileName\\\\\\": \\\\\\"EditFile****\\\\\\" }, \\\\\\"ShowId\\\\\\": \\\\\\"42200b81-b761-4c10-842a-a0726d97****\\\\\\" },\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]', + 'title' => 'GetEditingJobInfo', + 'description' => '* When you call this operation, you can specify the CasterId and ShowId parameters to query the information about specific editing tasks. Make sure that the parameter settings meet the requirements.'."\n" + .'* If you specify the ShowId parameter in the request, the information about the editing tasks for the specified episode is returned.'."\n" + .'* If you do not specify the ShowId parameter in the request, the information about the editing tasks for the entire episode list is returned.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + ], + 'SetShowListBackground' => [ + 'summary' => 'Configures the background of the episode list.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'CasterId', + 'in' => 'query', + 'allowEmptyValue' => false, + '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****', + ], + ], + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The resource type. Valid values:'."\n" + ."\n" + .'* LIVE: live stream. You can add a live stream from ApsaraVideo Live or by using a third-party URL.'."\n" + .'* VOD: on-demand video. You can add an on-demand video from ApsaraVideo VOD or by using a third-party URL.'."\n" + .'* PIC: image. You can add an image from ApsaraVideo VOD or by using a third-party URL.'."\n" + ."\n" + .'> Set this parameter to one of the preceding values, or leave this parameter empty.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'VOD', + 'enum' => [ + 'VOD', + 'PIC', + 'LIVE', + ], + ], + ], + [ + 'name' => 'MaterialId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the material in ApsaraVideo VOD.'."\n" + ."\n" + .'> Specify either this parameter or the ResourceUrl parameter.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + ], + [ + 'name' => 'ResourceUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The URL of the third-party material.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'http://****/atestObject****.m3u8', + ], + ], + ], + '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' => '987DA143-A39C-5B5D-AF5B-3B07944A0036', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'InvalidParameter.Status', + 'errorMessage' => '%s, please check and try again.', + ], + [ + 'errorCode' => 'InvalidParameter.StartTime', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.EndTime', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'LiveServiceNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => 'The caster does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"987DA143-A39C-5B5D-AF5B-3B07944A0036\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 987DA143-A39C-5B5D-AF5B-3B07944A0036\\n","errorExample":""}]', + 'title' => 'SetShowListBackground', + 'description' => '* Create a production studio in playlist mode, and then call this operation to add the background material. For information about how to create a production studio, see [CreateCaster](~~2848009~~).'."\n" + .'* You can call this operation to create, update, or delete the background of the episode list. To delete the background, leave the ResourceType, ResourceUrl, and MaterialId parameters empty.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* When you select media resources from ApsaraVideo VOD, we recommend that you select resources that are stored in hosted OSS buckets. Resources stored in non-hosted OSS buckets have a validity period. Pay attention to the validity if you select resources that are stored in non-hosted OSS buckets.'."\n" + ."\n" + .'* When you add media resources to a production studio, we recommend that you select resources from ApsaraVideo Live and ApsaraVideo VOD. If you add a third-party stream by specifying a streaming URL, there is a possibility that the stream fails to be played. You must pay attention to the quality and validity of the third-party stream.'."\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", + ], + 'AddStudioLayout' => [ + 'summary' => 'Configures a layout for a virtual 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'CasterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the production studio.'."\n" + ."\n" + .'> The production studio must be a virtual studio that you create in advance. You can use the ApsaraVideo Live console or call the CreateCaster operation to create a virtual 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' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + ], + [ + 'name' => 'LayoutName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the layout.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'Test layout'."\n", + ], + ], + [ + 'name' => 'LayoutType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the layout. Valid values:'."\n" + ."\n" + .'* **common**: If you set this parameter to common, you must specify the CommonConfig parameter.'."\n" + .'* **studio**: If you set this parameter to studio, you must specify the BgImageConfig and ScreenInputConfigList parameters. The MediaInputConfigList parameter is optional.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'studio', + ], + ], + [ + 'name' => 'CommonConfig', + 'in' => 'query', + 'schema' => [ + 'description' => 'The common layout configurations. The value is a JSON string. For more information, see **CommonConfig**.'."\n" + ."\n" + .'> This parameter is required only if you set LayoutType to common.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{"ChannelId":"RV01" }', + ], + ], + [ + 'name' => 'BgImageConfig', + 'in' => 'query', + 'schema' => [ + 'description' => 'The background material configurations. The value is a JSON string. For more information, see **BgImageConfig**.'."\n" + ."\n" + .'> This parameter is required only if you set LayoutType to studio.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{ "Id":"k12kj31****", "MaterialId":"f080575eb5f4427684fc0715159a****" }', + ], + ], + [ + 'name' => 'ScreenInputConfigList', + 'in' => 'query', + 'schema' => [ + 'description' => 'The input configurations for chroma key. The value is a JSON string. For more information, see **ScreenInputConfig**.'."\n" + ."\n" + .'> This parameter is required only if you set LayoutType to studio.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '[ { "Index":"1", "ChannelId":"RV01", "Color":"green", "PositionX":"0.1", "PositionY":"0.2", "HeightNormalized":"0.4" } ]', + ], + ], + [ + 'name' => 'MediaInputConfigList', + 'in' => 'query', + 'schema' => [ + 'description' => 'The multimedia input configurations. The value is a JSON string. For more information, see **MediaInputConfig**.'."\n" + ."\n" + .'> This parameter is optional and is valid only if you set LayoutType to studio.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '[ { "Id":"k12kj31****", "Index":"1", "ChannelId":"RV01", "FillMode":"none", "PositionRefer":"topLeft", "WidthNormalized":"0.4", "HeightNormalized":"0.4", "PositionNormalized":"[0.1, 0.2]" }, { "Id":"k12kj31****", "Index":"2", "ImageMaterialId":"lkajsdfsa8fd89asd8****", "FillMode":"none", "PositionRefer":"topLeft", "WidthNormalized":"0.6", "HeightNormalized":"0.4", "PositionNormalized":"[0.1, 0.2]" } ]', + ], + ], + [ + 'name' => 'LayerOrderConfigList', + 'in' => 'query', + 'schema' => [ + 'description' => 'The layer sorting configurations. The value is a JSON string. For more information, see **layerOrderConfig**. You can sort layers of background and multimedia materials. The chroma key layer cannot be sorted. A layer that is in the front of the code is placed behind other layers in the layout.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '[ { "Type":"media", "Id":"k12kj31****" }, { "Type":"media", "Id":"k12kj31****" } ]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'LayoutId' => [ + 'description' => 'The ID of the layout. You can use the ID as a request parameter in the following operations: DeleteStudioLayout, ModifyStudioLayout, and DescribeStudioLayouts.'."\n", + 'type' => 'string', + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidPositionNormalized.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidHeightOrWidthNormalized', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"LayoutId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 445409ec-7eaa-461d-8f29-4bec2eb9****\\n 5c6a2a0d-f228-4a64-af62-20e91b9676b3\\n","errorExample":""}]', + 'title' => 'AddStudioLayout', + 'description' => 'You can call this operation to configure a common layout or a studio layout for a virtual studio.'."\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", + 'requestParamsDescription' => '## CommonConfig'."\n" + ."\n" + .'|Field|Type|Example|Description|'."\n" + .'|---|---|---|---|'."\n" + .'|ChannelId|String|RV01|The ID of the channel that you want to bind to the video resource.|'."\n" + ."\n" + .'## BgImageConfig'."\n" + ."\n" + .'**Note** You can specify either ImageUrl or MaterialId.'."\n" + ."\n" + .'|Field|Type|Example|Description|'."\n" + .'|---|---|---|---|'."\n" + .'|Id|String|k12kj31\\*\\*\\*\\*|The unique ID of the material.|'."\n" + .'|ImageUrl|String|http://aliyundoc.com|The URL of the material.|'."\n" + .'|MaterialId|String|f080575eb5f4427684fc0715159a\\*\\*\\*\\*|The ID of the material in ApsaraVideo VOD.|'."\n" + ."\n" + .'## ScreenInputConfig'."\n" + ."\n" + .'|Field|Type|Example|Description|'."\n" + .'|---|---|---|---|'."\n" + .'|Index|Integer|1|The sequence number of the chroma key source. This parameter is displayed on the frontend but not used in the operation logic. The value must be a positive integer.|'."\n" + .'|ChannelId|String|RV01|The ID of the channel that you want to bind to the video resource.|'."\n" + .'|Color|String|green|The color gamut for chroma key. Valid values:**blue** **green** **auto**: automatic recognition **complex**: background replacement|'."\n" + .'|PositionX|Float|0.1|The x-coordinate of the material. Valid values: 0 to 1.The upper-left corner is used as the coordinate origin for the material.|'."\n" + .'|PositionY|Float|0.2|The y-coordinate of the material. Valid values: 0 to 1.The upper-left corner is used as the coordinate origin for the material.|'."\n" + .'|HeightNormalized|Float|0.4|The normalized value of the height. The value indicates the ratio of the height of the keyed portrait to the height of the background. Valid values: 0 to 1.|'."\n" + ."\n" + .'## MediaInputConfig'."\n" + ."\n" + .'* If the multimedia material is a video, specify ChannelId.'."\n" + .'* If the multimedia material is an image, specify ImageMeterialId.'."\n" + .'* ChannelId and ImageMeterialId are mutually exclusive. You can specify only one of them.'."\n" + ."\n" + .'|Field|Type|Example|Description|'."\n" + .'|---|---|---|---|'."\n" + .'|Id|String|k12kj31\\*\\*\\*\\*|The unique ID of the multimedia material.|'."\n" + .'|Index|Integer|1|The sequence number of the multimedia material. This parameter is displayed on the frontend but not used in the operation logic. The value must be a positive integer.|'."\n" + .'|ChannelId|String|RV01|The ID of the channel that you want to bind to the video resource.|'."\n" + .'|ImageMaterialId|String|lkajsdfsa8fd89asd8\\*\\*\\*\\*|The ID of the image in ApsaraVideo VOD.|'."\n" + .'|FillMode|String|none|The fill type. Set this parameter to **none**.|'."\n" + .'|PositionRefer|String|topLeft|The coordinate origin for the material. Set this parameter to **topLeft** to specify the upper-left corner as the coordinate origin.|'."\n" + .'|WidthNormalized|Float|0.4|The normalized value of the material width. The value indicates the ratio of the material width to the width of the background. Valid values: 0 to 1.|'."\n" + .'|HeightNormalized|Float|0.4|The normalized value of the material height. The value indicates the ratio of the material height to the height of the background. Valid values: 0 to 1.|'."\n" + .'|PositionNormalized|Float|\\[0.1, 0.2\\]|The normalized value of the position of the material, in the format of \\[x,y\\]. Valid values of x and y: 0 to 1.For example, \\[0.1,0.2\\] indicates that the material is horizontally offset by 10% and vertically offset by 20% towards the upper-left corner.|'."\n" + ."\n" + .'## LayerOrderConfig'."\n" + ."\n" + .'|Field|Type|Example|Description|'."\n" + .'|---|---|---|---|'."\n" + .'|Type|String|media|The type of the resource. Valid values:background: the background materialmedia: the multimedia material|'."\n" + .'|Id|String|k12kj31\\*\\*\\*\\*|The unique ID of the resource.|', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + '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' => '5c6a2a0d-f228-4a64-af62-20e91b96****', + ], + ], + [ + 'name' => 'LayoutId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the layout. If the layout was added by calling the [AddStudioLayout](~~2848062~~) operation, check the value of the response parameter LayoutId to obtain the ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5c6a2a0d-f228-4a64-af62-20e9*****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidLayoutId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidLayout.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e9*****\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n 5c6a2a0d-f228-4a64-af62-20e91b9676b3\\r\\n","errorExample":""}]', + 'title' => 'DeleteStudioLayout', + 'description' => 'You can call this operation to delete a layout in a virtual studio. You can delete only one layout in a call.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ModifyStudioLayout' => [ + 'summary' => 'Modifies a layout of a virtual 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'CasterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the production studio.'."\n" + ."\n" + .'> The production studio must be a virtual studio that you create in advance.'."\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' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + ], + [ + 'name' => 'LayoutId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the layout. If the layout was added by calling the [AddStudioLayout](~~2848062~~) operation, check the value of the response parameter LayoutId to obtain the ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + ], + [ + 'name' => 'LayoutName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the layout.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'The name of the layout. ', + ], + ], + [ + 'name' => 'CommonConfig', + 'in' => 'query', + 'schema' => [ + 'description' => 'The common layout configurations. The value is a JSON string. For more information, see **CommonConfig**.'."\n" + ."\n" + .'> This parameter is required only if you set LayoutType to common.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{ "ChannelId":"RV01" }', + ], + ], + [ + 'name' => 'BgImageConfig', + 'in' => 'query', + 'schema' => [ + 'description' => 'The background material configurations. The value is a JSON string. For more information, see **BgImageConfig**.'."\n" + ."\n" + .'> This parameter is required only if you set LayoutType to studio.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{ "Id":"k12kj31****", "MaterialId":"f080575eb5f4427684fc0715159a****" }', + ], + ], + [ + 'name' => 'ScreenInputConfigList', + 'in' => 'query', + 'schema' => [ + 'description' => 'The input configurations for chroma key. The value is a JSON string. For more information, see **ScreenInputConfig**.'."\n" + ."\n" + .'> This parameter is required only if you set LayoutType to studio.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '[ { "Index":"1", "ChannelId":"RV01", "Color":"green", "PositionX":"0.1", "PositionY":"0.2", "HeightNormalized":"0.4" } ]', + ], + ], + [ + 'name' => 'MediaInputConfigList', + 'in' => 'query', + 'schema' => [ + 'description' => 'The multimedia input configurations. The value is a JSON string. For more information, see **MediaInputConfig**.'."\n" + ."\n" + .'> This parameter is optional and takes effect only if you set LayoutType to studio.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '[ { "Id":"k12kj31****", "Index":"1", "ChannelId":"RV01", "FillMode":"none", "PositionRefer":"topLeft", "WidthNormalized":"0.4", "HeightNormalized":"0.4", "PositionNormalized":"[0.1, 0.2]" }, { "Id":"k12kj31****", "Index":"2", "ImageMaterialId":"lkajsdfsa8fd89asd8****", "FillMode":"none", "PositionRefer":"topLeft", "WidthNormalized":"0.6", "HeightNormalized":"0.4", "PositionNormalized":"[0.1, 0.2]" } ]', + ], + ], + [ + 'name' => 'LayerOrderConfigList', + 'in' => 'query', + 'schema' => [ + 'description' => 'The layer sorting configurations. The value is a JSON string. For more information, see **layerOrderConfig**. You can sort layers of background and multimedia materials. The chroma key layer cannot be sorted. A layer that is in the front of the code is placed behind other layers in the layout.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '[ { "Type":"media", "Id":"k12kj31****" }, { "Type":"media", "Id":"k12kj31****" } ]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5c6a2a0d-f228-4a64-af62-20e91b9676b3', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidPositionNormalized.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidHeightOrWidthNormalized', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidLayout.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b9676b3\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n 5c6a2a0d-f228-4a64-af62-20e91b9676b3\\r\\n","errorExample":""}]', + 'title' => 'ModifyStudioLayout', + 'description' => 'You can call this operation to modify a layout of a virtual studio. When you call this operation, specify only the parameters that you want to modify.'."\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", + 'requestParamsDescription' => '## CommonConfig'."\n" + ."\n" + .'|Field|Type|Example|Description|'."\n" + .'|---|---|---|---|'."\n" + .'|ChannelId|String|RV01|The ID of the channel that you want to bind to the video resource.|'."\n" + ."\n" + .'## BgImageConfig'."\n" + ."\n" + .'**Note** You can specify either ImageUrl or MaterialId. | Field | Type | Example | Description | | --------------- | ------ | --------------------- | -------------------------- | | Id | String | k12kj31\\*\\*\\*\\* | The unique ID of the material. | | ImageUrl | String | http://aliyundoc.com | The URL of the material. | | MaterialId | String | f080575eb5f4427684fc0715159a\\*\\*\\*\\* | The ID of the material in ApsaraVideo VOD. |'."\n" + ."\n" + .'## ScreenInputConfig'."\n" + ."\n" + .'|Field|Type|Example|Description|'."\n" + .'|---|---|---|---|'."\n" + .'|Index|Integer|1|The sequence number of the chroma key source. This parameter is displayed on the frontend but not used in the operation logic. The value must be a positive integer.|'."\n" + .'|ChannelId|String|RV01|The ID of the channel that you want to bind to the video resource.|'."\n" + .'|Color|String|green|The color gamut for chroma key. Valid values:**blue** **green** **auto**: automatic recognition**complex**: background replacement|'."\n" + .'|PositionX|Float|0.1|The x-coordinate of the material. Valid values: 0 to 1.The upper-left corner is used as the coordinate origin for the material.|'."\n" + .'|PositionY|Float|0.2|The y-coordinate of the material. Valid values: 0 to 1.The upper-left corner is used as the coordinate origin for the material.|'."\n" + .'|HeightNormalized|Float|0.4|The normalized value of the height. The value specifies the ratio of the height of the keyed portrait to the height of the background. Valid values: 0 to 1.|'."\n" + ."\n" + .'## MediaInputConfig'."\n" + ."\n" + .'* If the multimedia material is a video, specify ChannelId.'."\n" + .'* If the multimedia material is an image, specify ImageMeterialId.'."\n" + .'* ChannelId and ImageMeterialId are mutually exclusive. You can specify only one of them.'."\n" + ."\n" + .'|Field|Type|Example|Description|'."\n" + .'|---|---|---|---|'."\n" + .'|Id|String|k12kj31\\*\\*\\*\\*|The unique ID of the multimedia material.|'."\n" + .'|Index|Integer|1|The sequence number of the multimedia material. This parameter is displayed on the frontend but not used in the operation logic. The value must be a positive integer.|'."\n" + .'|ChannelId|String|RV01|The ID of the channel that you want to bind to the video resource.|'."\n" + .'|ImageMaterialId|String|lkajsdfsa8fd89asd8\\*\\*\\*\\*|The ID of the image in ApsaraVideo VOD.|'."\n" + .'|FillMode|String|none|The fill type. Set this parameter to **none**.|'."\n" + .'|PositionRefer|String|topLeft|The coordinate origin for the material. Set this parameter to **topLeft** to specify the upper-left corner as the coordinate origin.|'."\n" + .'|WidthNormalized|Float|0.4|The normalized value of the material width. The value specifies the ratio of the material width to the width of the background. Valid values: 0 to 1.|'."\n" + .'|HeightNormalized|Float|0.4|The normalized value of the material height. The value specifies the ratio of the material height to the height of the background. Valid values: 0 to 1.|'."\n" + .'|PositionNormalized|Float|\\[0.1, 0.2\\]|The normalized value of the position of the material, in the format of \\[x,y\\]. Valid values of x and y: 0 to 1.For example, \\[0.1,0.2\\] indicates that the material is horizontally offset by 10% and vertically offset by 20% towards the upper-left corner.|'."\n" + ."\n" + .'## layerOrderConfig'."\n" + ."\n" + .'|Field|Type|Example|Description|'."\n" + .'|---|---|---|---|'."\n" + .'|Id|String|k12kj31\\*\\*\\*\\*|The unique ID of the resource.|'."\n" + .'|Type|String|media|The type of the resource. Valid values:background: the background materialmedia: the multimedia material|', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'CasterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the production studio instance.'."\n" + ."\n" + .'* If you call the [CreateCaster](~~69338~~) operation to create a production studio instance, you can obtain the instance ID from the CasterId parameter in the response.'."\n" + .'* If you create a production studio instance in the ApsaraVideo Live console, perform the following operations to obtain the instance ID: Log on to the **ApsaraVideo Live console** and click **Production Studios** in the left-side navigation pane. Then, view the instance ID on the **Production Studio Management** page.'."\n" + ."\n" + .'> The value displayed in the Name column for an instance on the Production Studio Management page is the ID of the instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****', + ], + ], + [ + 'name' => 'LayoutId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the layout.'."\n" + ."\n" + .'You can specify multiple layout IDs and separate them with commas (,). If you leave this parameter empty, all layouts of the production studio are returned.'."\n" + ."\n" + .'If you call the [AddStudioLayout](~~215388~~) operation to configure a layout for a virtual studio, you can obtain the ID of the layout from the LayoutId parameter in the response.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The details.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '5c6a2a0d-f228-4a64-af62-20e91b9676b3', + ], + 'StudioLayouts' => [ + 'description' => 'The layout information.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'BgImageConfig' => [ + 'description' => 'The background material configurations.'."\n", + 'type' => 'object', + 'properties' => [ + 'Id' => [ + 'description' => 'The unique ID of the material.'."\n", + 'type' => 'string', + 'example' => 'k12kj31****', + ], + 'ImageUrl' => [ + 'description' => 'The URL of the material.'."\n", + 'type' => 'string', + 'example' => ' http://example.org', + ], + 'LocationId' => [ + 'description' => 'The position ID.'."\n", + 'type' => 'string', + 'example' => 'RV01', + ], + 'MaterialId' => [ + 'description' => 'The ID of the material in ApsaraVideo VOD.'."\n", + 'type' => 'string', + 'example' => 'asdfas9df89asd8f9****', + ], + ], + ], + 'CommonConfig' => [ + 'description' => 'The common layout configurations. This parameter is returned only for a common layout.'."\n", + 'type' => 'object', + 'properties' => [ + 'ChannelId' => [ + 'description' => 'The ID of the channel that is bound to the video resource.'."\n", + 'type' => 'string', + 'example' => 'RV01', + ], + 'VideoResourceId' => [ + 'description' => 'The ID of the video resource.'."\n", + 'type' => 'string', + 'example' => 'asdfasdfasdfasdfa****', + ], + ], + ], + 'LayerOrderConfigList' => [ + 'description' => 'The layer sorting configurations.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Id' => [ + 'description' => 'The unique ID of the resource.'."\n", + 'type' => 'string', + 'example' => 'k12kj31****', + ], + 'Type' => [ + 'description' => 'The type of the resource. Valid values:'."\n" + ."\n" + .'* **background**: background material'."\n" + .'* **media**: multimedia material'."\n", + 'type' => 'string', + 'example' => 'media', + ], + ], + ], + ], + 'LayoutId' => [ + 'description' => 'The ID of the layout.'."\n", + 'type' => 'string', + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + 'LayoutName' => [ + 'description' => 'The name of the layout.'."\n", + 'type' => 'string', + 'example' => '测试布局', + ], + 'LayoutType' => [ + 'description' => 'The type of the layout. Valid values:'."\n" + ."\n" + .'* **common**'."\n" + .'* **studio**'."\n", + 'type' => 'string', + 'example' => 'studio', + ], + 'MediaInputConfigList' => [ + 'description' => 'The multimedia input configurations.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'ChannelId' => [ + 'description' => 'The ID of the channel that is bound to the video resource.'."\n", + 'type' => 'string', + 'example' => 'RV01', + ], + 'FillMode' => [ + 'description' => 'The fill type. Default value: none.'."\n", + 'type' => 'string', + 'example' => 'none', + ], + 'HeightNormalized' => [ + 'description' => 'The normalized value of the material height. The value indicates the ratio of the material height to the height of the background. Valid values: **0 to 1**.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '0.4', + ], + 'Id' => [ + 'description' => 'The unique ID of the multimedia material.'."\n", + 'type' => 'string', + 'example' => 'k12kj31****', + ], + 'ImageMaterialId' => [ + 'description' => 'The ID of the image in ApsaraVideo VOD.'."\n", + 'type' => 'string', + 'example' => 'lkajsdfsa8fd89asd8****', + ], + 'Index' => [ + 'description' => 'The sequence number of the multimedia material. This parameter is displayed on the frontend but not used in the operation logic.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'PositionNormalized' => [ + 'description' => 'The normalized value of the position of the material, in the format of \\[unk]\\[x,y]\\[unk]. Valid values of x and y: **0 to 1**. For example, \\[unk]\\[0.1,0.2]\\[unk] indicates that the material is horizontally offset by 10% and vertically offset by 20% towards the upper-left corner.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The normalized value of the position of the material, in the format of `[x,y]`. Valid values of x and y: **0 to 1**. For example, `[0.1,0.2]` indicates that the material is horizontally offset by 10% and vertically offset by 20% towards the upper-left corner.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '0.1', + ], + ], + 'PositionRefer' => [ + 'description' => 'The coordinate origin for the material. Default value: topLeft. topLeft indicates that the upper-left corner is used as the coordinate origin.'."\n", + 'type' => 'string', + 'example' => 'topLeft', + ], + 'VideoResourceId' => [ + 'description' => 'The ID of the video resource.'."\n", + 'type' => 'string', + 'example' => 'asdfasdfasdfasdfa****', + ], + 'WidthNormalized' => [ + 'description' => 'The normalized value of the material width. The value indicates the ratio of the material width to the width of the background. Valid values: **0 to 1**.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '0.4', + ], + ], + ], + ], + 'ScreenInputConfigList' => [ + 'description' => 'The input configurations for chroma key.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'AudioConfig' => [ + 'description' => 'The audio configurations.'."\n", + 'type' => 'object', + 'properties' => [ + 'ValidChannel' => [ + 'description' => 'The corresponding channel.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'VolumeRate' => [ + 'description' => 'The volume.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '1.0', + ], + ], + ], + 'ChannelId' => [ + 'description' => 'The ID of the channel that is bound to the video resource.'."\n", + 'type' => 'string', + 'example' => 'RV01', + ], + 'Color' => [ + 'description' => 'The color gamut for chroma key. Valid values:'."\n" + ."\n" + .'* **blue**'."\n" + .'* **green**'."\n" + .'* **auto**: automatic recognition'."\n" + .'* **complex**: background replacement'."\n", + 'type' => 'string', + 'example' => 'green', + ], + 'HeightNormalized' => [ + 'description' => 'The normalized value of the height. The value indicates the ratio of the height of the keyed portrait to the height of the background. Valid values: **0 to 1**.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '0.4', + ], + 'Id' => [ + 'description' => 'The unique ID of the chroma key source.'."\n", + 'type' => 'string', + 'example' => 'k12kj31****', + ], + 'Index' => [ + 'description' => 'The sequence number of the chroma key source. This parameter is displayed on the frontend but not used in the operation logic.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'OnlyAudio' => [ + 'description' => 'Indicates whether only audio exists.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'PortraitType' => [ + 'description' => 'The portrait type. Valid values:'."\n" + ."\n" + .'* **0**: half body'."\n" + .'* **1**: full body'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'PositionX' => [ + 'description' => 'The x-coordinate of the material. Valid values: **0 to 1**. The upper-left corner is used as the coordinate origin for the material.'."\n", + 'type' => 'string', + 'example' => '0.1', + ], + 'PositionY' => [ + 'description' => 'The y-coordinate of the material. Valid values: **0 to 1**. The upper-left corner is used as the coordinate origin for the material.'."\n", + 'type' => 'string', + 'example' => '0.2', + ], + 'VideoResourceId' => [ + 'description' => 'The ID of the video resource.'."\n", + 'type' => 'string', + 'example' => 'asdfasdfasdfasdfa****', + ], + ], + ], + ], + ], + ], + ], + 'Total' => [ + 'description' => 'The total number of layouts.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b9676b3\\",\\n \\"StudioLayouts\\": [\\n {\\n \\"BgImageConfig\\": {\\n \\"Id\\": \\"k12kj31****\\",\\n \\"ImageUrl\\": \\" http://example.org\\",\\n \\"LocationId\\": \\"RV01\\",\\n \\"MaterialId\\": \\"asdfas9df89asd8f9****\\"\\n },\\n \\"CommonConfig\\": {\\n \\"ChannelId\\": \\"RV01\\",\\n \\"VideoResourceId\\": \\"asdfasdfasdfasdfa****\\"\\n },\\n \\"LayerOrderConfigList\\": [\\n {\\n \\"Id\\": \\"k12kj31****\\",\\n \\"Type\\": \\"media\\"\\n }\\n ],\\n \\"LayoutId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"LayoutName\\": \\"测试布局\\",\\n \\"LayoutType\\": \\"studio\\",\\n \\"MediaInputConfigList\\": [\\n {\\n \\"ChannelId\\": \\"RV01\\",\\n \\"FillMode\\": \\"none\\",\\n \\"HeightNormalized\\": 0.4,\\n \\"Id\\": \\"k12kj31****\\",\\n \\"ImageMaterialId\\": \\"lkajsdfsa8fd89asd8****\\",\\n \\"Index\\": 1,\\n \\"PositionNormalized\\": [\\n 0.1\\n ],\\n \\"PositionRefer\\": \\"topLeft\\",\\n \\"VideoResourceId\\": \\"asdfasdfasdfasdfa****\\",\\n \\"WidthNormalized\\": 0.4\\n }\\n ],\\n \\"ScreenInputConfigList\\": [\\n {\\n \\"AudioConfig\\": {\\n \\"ValidChannel\\": \\"1\\",\\n \\"VolumeRate\\": 1\\n },\\n \\"ChannelId\\": \\"RV01\\",\\n \\"Color\\": \\"green\\",\\n \\"HeightNormalized\\": 0.4,\\n \\"Id\\": \\"k12kj31****\\",\\n \\"Index\\": 1,\\n \\"OnlyAudio\\": true,\\n \\"PortraitType\\": 0,\\n \\"PositionX\\": \\"0.1\\",\\n \\"PositionY\\": \\"0.2\\",\\n \\"VideoResourceId\\": \\"asdfasdfasdfasdfa****\\"\\n }\\n ]\\n }\\n ],\\n \\"Total\\": 1\\n}","errorExample":""},{"type":"xml","example":"\\n 5c6a2a0d-f228-4a64-af62-20e91b9676b3\\n \\n \\n k12kj31****\\n http://example.org\\n RV01\\n asdfas9df89asd8f9****\\n \\n \\n RV01\\n asdfasdfasdfasdfa****\\n \\n \\n k12kj31****\\n media\\n \\n 445409ec-7eaa-461d-8f29-4bec2eb9****\\n 测试布局\\n studio\\n \\n RV01\\n none\\n 0.4\\n k12kj31****\\n lkajsdfsa8fd89asd8****\\n 1\\n 0.1\\n topLeft\\n asdfasdfasdfasdfa****\\n 0.4\\n \\n \\n \\n 1\\n 1\\n \\n RV01\\n green\\n 0.4\\n k12kj31****\\n 1\\n true\\n 0\\n 0.1\\n 0.2\\n asdfasdfasdfasdfa****\\n \\n \\n 1\\n","errorExample":""}]', + 'title' => 'DescribeStudioLayouts', + 'description' => 'You must call the [AddStudioLayout](~~215388~~) operation to configure layouts for a virtual studio before you call this operation to query layouts.'."\n" + ."\n" + .'## QPS limits'."\n" + ."\n" + .'You can call this operation up to 15 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' => ' ', + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'ComponentId', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The components. Components in the production studio are listed from the bottom to the top in an array.'."\n" + ."\n" + .'If a component was added by calling the [AddCasterComponent](~~2848030~~) operation, check the value of the response parameter ComponentId to obtain the component ID.'."\n" + ."\n" + .'* This parameter takes effect and is required when the EpisodeType parameter is set to **Component**.'."\n" + .'* This parameter is optional when the EpisodeType parameter is set to **Resource**. In this case, if this parameter is specified, the components are bound to and switched together with video resources.'."\n" + ."\n" + .'> The variable N specifies the sequence number of the component. For example, **ComponentId.1** specifies the ID of the first component and **ComponentId.2** specifies the ID of the second component.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the component.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', + ], + 'required' => false, + 'example' => '["a2b8e671-2fe5-4642-a2ec-bf93880e****"]', + 'maxItems' => 10, + ], + ], + [ + '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****', + ], + ], + [ + 'name' => 'EpisodeType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the episode. Valid values:'."\n" + ."\n" + .'* **Resource**: a video resource.'."\n" + .'* **Component**: a component.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'Resource', + ], + ], + [ + 'name' => 'EpisodeName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the episode.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'episode_1', + ], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the video resource.'."\n" + ."\n" + .'> This parameter takes effect and is required when the EpisodeType parameter is set to Resource.'."\n" + ."\n" + .'\\'."\n" + .'If the video resource was added by calling the [AddCasterVideoResource](~~2848020~~) operation, check the value of the response parameter ResourceId to obtain the ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time when the episode 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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2016-06-29T08:00:00Z', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time when the episode ends. 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", + 'type' => 'string', + 'required' => true, + 'example' => '2016-06-29T09:10:00Z', + ], + ], + [ + 'name' => 'SwitchType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The policy for switching episodes. Valid values:'."\n" + ."\n" + .'* **TimeFirst**: The episode starts when the preceding episode ends and ends when the next episode starts. If no next episode exists, the episode keeps repeating until a new episode is added or the production studio stops.'."\n" + .'* **ContentFirst**: The episode starts and ends as scheduled.'."\n" + ."\n" + .'This parameter takes effect only when the EpisodeType parameter is set to Resource.'."\n" + ."\n" + .'> This parameter must be set to TimeFirst when the video resource is a live stream.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'TimeFirst', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'EpisodeId' => [ + 'description' => 'The ID of the episode. You can use the ID as a request parameter in the API operation that is used to query the information about the episode list, modify the configurations of the episode, and delete the episode.'."\n", + 'type' => 'string', + 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'SwitchTypeInvalid.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectStartTime', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectEndTime', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'EpisodeConflict.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidResource.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidComponent.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EpisodeId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t21926b36-7dd2-4fde-ae25-51b5bc8e****\\n\\t","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"EpisodeId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e52d8\\"\\n}"}]', + 'title' => 'AddCasterEpisode', + 'description' => 'To call this operation, you must obtain the production studio ID in advance. The production studio ID is generated after the production studio is created.'."\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" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 4 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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteCasterEpisode' => [ + 'summary' => 'Deletes an episode in 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + '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' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + ], + [ + 'name' => 'EpisodeId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the episode. If the episode was added by calling the [AddCasterEpisode](~~2848068~~) operation, check the value of the response parameter EpisodeId to obtain the ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'a2b8e671-2fe5-4642-a2ec-bf932738****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'CasterId' => [ + 'description' => 'The ID of the production studio. You can specify the ID as a parameter in the request to modify the episode in the production studio.'."\n", + 'type' => 'string', + 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + 'EpisodeId' => [ + 'description' => 'The ID of the episode. You can specify the ID as a parameter in the request to modify the episode in the production studio.'."\n", + 'type' => 'string', + 'example' => 'a2b8e671-2fe5-4642-a2ec-bf932738****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectStartTime', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectEpisodeStatus', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidEpisode.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"EpisodeId\\": \\"a2b8e671-2fe5-4642-a2ec-bf932738****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n a2b8e671-2fe5-4642-a2ec-bf93880e****\\n a2b8e671-2fe5-4642-a2ec-bf932738****\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + 'title' => 'DeleteCasterEpisode', + 'description' => 'Before you call this operation to delete an episode in a production studio, you must obtain the ID of the production studio and the ID of the episode.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 4 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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ModifyCasterEpisode' => [ + 'summary' => 'Modifies the configurations of an episode in a production studio. You cannot change the episode type.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'ComponentId', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The components. Components in the production studio are listed from the bottom to the top in an array. When the production studio switches to another video resource, the components are also switched.'."\n" + ."\n" + .'* This parameter takes effect and is required only when the EpisodeType parameter is set to **Component**.'."\n" + .'* This parameter is optional when the EpisodeType parameter is set to **Resource**. In this case, if this parameter is specified, the components are bound to and switched together with video resources.'."\n" + ."\n" + .'> The variable N specifies the sequence number of the component. For example, ComponentId.1 specifies the ID of the first component and ComponentId.2 specifies the ID of the second component.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the component.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '["16A96B9A-F203-4EC5-8E43-CB92E68F****"]', + ], + 'required' => false, + 'example' => '["16A96B9A-F203-4EC5-8E43-CB92E68F****"]', + 'maxItems' => 10, + ], + ], + [ + 'name' => 'CasterId', + 'in' => 'query', + 'schema' => [ + 'description' => '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****', + ], + ], + [ + 'name' => 'EpisodeId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the episode. It is included in the response when you call the [AddCasterEpisode](~~94745#doc-api-live-AddCasterEpisode~~ "Adds an episode to a production studio.") operation.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'a2b8e671-2fe5-4642-a2ec-bf938623****', + ], + ], + [ + 'name' => 'EpisodeName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the episode.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'episode_name_1', + ], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the video resource. It is included in the response when you call the [AddCasterVideoResource](~~60250#doc-api-live-AddCasterVideoResource~~ "Adds a video resource to a production studio.") operation.'."\n" + ."\n" + .'* This parameter takes effect and is required only when the EpisodeType is set to **Resource**.'."\n" + .'* If the EpisodeType parameter is set to **Component**, this parameter is invalid.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E683****', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time when the episode 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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2016-06-29T09:00:00Z', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time when the episode ends. 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", + 'type' => 'string', + 'required' => false, + 'example' => '2016-06-29T10:20:00Z', + ], + ], + [ + 'name' => 'SwitchType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The policy for switching episodes. This parameter takes effect only when the EpisodeType parameter is set to **Resource**. Valid values:'."\n" + ."\n" + .'* **TimeFirst**: The episode starts when the preceding episode ends and ends when the next episode starts. If no next episode exists, the episode keeps repeating until a new episode is added or the production studio stops. This parameter must be set to TimeFirst when the video resource is a live stream.'."\n" + .'* **ContentFirst**: The episode starts and ends as scheduled.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TimeFirst', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'CasterId' => [ + 'description' => 'The ID of the production studio. You can use the ID as a request parameter in the API operation that is used to copy the configurations of a scene, update the configurations of a scene, query the scenes of a production studio, query the audio configurations of a scene, start a scene in the production studio, or stop a scene in the production studio.'."\n", + 'type' => 'string', + 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', + ], + 'EpisodeId' => [ + 'description' => 'The ID of the episode. You can use the ID as a request parameter in the API operation that is used to delete an episode list from a production studio, add episodes to an episode list, remove episodes from an episode list, query the information about episodes in an episode list, update episodes in an episode list, delete an episode list, query the information about an episode list, start an episode list, or stop an episode list.'."\n", + 'type' => 'string', + 'example' => 'a2b8e671-2fe5-4642-a2ec-bf938623****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'SwitchTypeInvalid.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectStartTime', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectEndTime', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectEpisodeStatus', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'EpisodeConflict.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidResource.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidEpisode.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidComponent.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"LIVEPRODUCER_POST-cn-0pp1czt****\\",\\n \\"EpisodeId\\": \\"a2b8e671-2fe5-4642-a2ec-bf938623****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n a2b8e671-2fe5-4642-a2ec-bf938623****\\n LIVEPRODUCER_POST-cn-0pp1czt****\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n}"}]', + 'title' => 'ModifyCasterEpisode', + 'description' => 'You can call this operation to modify the configurations of an episode in a production studio. You cannot change the episode type.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 4 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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'AddCasterEpisodeGroup' => [ + 'summary' => 'Adds an episode 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Item', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The list of episodes.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the episode.'."\n", + 'type' => 'object', + 'properties' => [ + 'ItemName' => [ + 'description' => 'The name of the episode.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'episode1', + ], + 'VodUrl' => [ + 'description' => 'The URL of the VOD file.'."\n" + ."\n" + .'If you query the input sources of the production studio by calling the [DescribeCasterVideoResources](~~2848023~~) operation, check the value of the response parameter VodUrl to obtain the URL.'."\n" + ."\n" + .'> This parameter takes effect only when the input source is a video file that is not from the media library.\\'."\n" + .'The video file can be in the MP4, FLV, or TS format.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'http://learn.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****.flv?auth_key=1608953344-0-0-53f0758162964516ac850f2ddc3f****', + ], + ], + 'required' => false, + ], + 'required' => true, + 'maxItems' => 150, + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate a token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '8751ad99-2ddb-4aac-ad44-84b21102****', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time when the episode list starts to play. 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", + 'type' => 'string', + 'required' => true, + 'example' => '2018-03-06T19:00:00Z', + ], + ], + [ + 'name' => 'RepeatNum', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of times the episode list repeats after the first playback is complete. Valid values:'."\n" + ."\n" + .'* **0**: indicates that the episode list is played only once.'."\n" + .'* **-1**: indicates that the episode list is played in loop mode.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '0', + ], + ], + [ + 'name' => 'SideOutputUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The custom standby URL.'."\n" + ."\n" + .'If this parameter is empty, the ingest address corresponding to the output address automatically generated by Alibaba Cloud will be used by default.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'rtmp://guide.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-53f0758162964516ac850f2ddc3f****', + ], + ], + [ + 'name' => 'CallbackUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The callback URL.'."\n" + ."\n" + .'If you query the configurations of the production studio by calling the [DescribeCasterConfig](~~2848011~~) operation, check the value of the response parameter CallbackUrl to obtain the URL.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'http://developer.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-53f0758162964516ac850f2ddc3f****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'ItemIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'ItemId' => [ + 'description' => 'The IDs of the episodes.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the episode.'."\n", + 'type' => 'string', + 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', + ], + ], + ], + ], + 'ProgramId' => [ + 'description' => 'The ID of the episode list that was added. Record the ID as it can be used to manage the program being added.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68X****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'IncorrectStartTime', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"ItemIds\\": {\\n \\"ItemId\\": [\\n \\"21926b36-7dd2-4fde-ae25-51b5bc98****\\"\\n ]\\n },\\n \\"ProgramId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68X****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68X****\\n\\t21926b36-7dd2-4fde-ae25-51b5bc8e****\\n\\t21926b36-7dd2-4fde-ae25-51b5bc98****\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"ProgramId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68XX876\\",\\n \\"ItemIds\\": [\\n \\"21926b36-7dd2-4fde-ae25-51b5bc8e52d8\\",\\n \\"21926b36-7dd2-4fde-ae25-51b5bc98765t\\"\\n ]\\n}"}]', + 'title' => 'AddCasterEpisodeGroup', + 'description' => 'You need to create a production studio and obtain the production studio configurations before you call this operation to create an episode list in the production studio. For information about how to create a production studio, see [CreateCaster](~~2848009~~).'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 4 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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteCasterEpisodeGroup' => [ + 'summary' => 'Deletes an episode list in 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'ProgramId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the episode list. If the episode list was added by calling the [AddCasterEpisodeGroup](~~2848071~~) operation, check the value of the response parameter ProgramId to obtain the ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'a2b8e671-2fe5-4642-a2ec-bf932738****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', + 'title' => 'DeleteCasterEpisodeGroup', + 'description' => 'Before you call this operation to delete an episode list in a production studio, make sure that you have called the [AddCasterEpisodeGroup](~~2848071~~) operation to add the episode list in the production studio.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 4 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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'AddCasterEpisodeGroupContent' => [ + 'summary' => 'Adds information about an episode list in 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate a token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '8751ad99-2ddb-4aac-ad44-84b21102****', + ], + ], + [ + 'name' => 'Content', + 'in' => 'query', + 'schema' => [ + 'description' => 'The information about the episode list. The value is a JSON string. Use upper camel case for fields of the string. This parameter contains the following fields:'."\n" + ."\n" + .'* **CallbackUrl**: the callback URL.'."\n" + ."\n" + .'* **SideOutputUrl**: the custom standby URL.'."\n" + ."\n" + .'* **RepeatNum**: the number of times the episode list repeats after the first playback is complete. A value of 0 indicates that the episode list is played only once. A value of -1 indicates that the episode list is played in loop mode.'."\n" + ."\n" + .'* **DomainName**: the domain name.'."\n" + ."\n" + .'* **StartTime**: the time when the episode list starts to play. 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" + .'* **Items**: the information about the episode list. It is an array of ItemName and VodUrl.'."\n" + ."\n" + .' * **ItemName**: the name of the episode.'."\n" + .' * **VodUrl**: the URL of the VOD file. This field takes effect only when the video resource is a video file that is not from the media library. The video file must be in the MP4, FLV, or TS format.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'CallbackUrl', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'ItemIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'ItemId' => [ + 'description' => 'The IDs of the episodes.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the episode.'."\n", + 'type' => 'string', + 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', + ], + ], + ], + ], + 'ProgramId' => [ + 'description' => 'The ID of the episode list. You can use the ID as a request parameter in the API operation that is used to create or add episodes, remove episodes, query episodes, edit an episode list, delete an episode list, query the information about an episode list, start playing an episode list, or stop playing an episode list.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68X****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'IncorrectStartTime', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidClientToken.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"ItemIds\\": {\\n \\"ItemId\\": [\\n \\"21926b36-7dd2-4fde-ae25-51b5bc8e****\\"\\n ]\\n },\\n \\"ProgramId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68X****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"ProgramId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68XX876\\",\\n \\"ItemIds\\": [\\n \\"21926b36-7dd2-4fde-ae25-51b5bc8e52d8\\",\\n \\"21926b36-7dd2-4fde-ae25-51b5bc98765t\\"\\n ]\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68X****\\n\\t21926b36-7dd2-4fde-ae25-51b5bc8e****\\n\\t21926b36-7dd2-4fde-ae25-51b5bc98****\\n\\t\\n","errorExample":"Content 参数格式示例\\n {\\n \\"StartTime\\": \\"2018-04-02T19:00:00Z\\",\\n \\"DomainName\\": \\"XXX.XXX.XXX\\",\\n \\"RepeatNum\\":3,\\n \\"SideOutputUrl\\":\\"rtmp://XXXX/XXXX/XXXX\\",\\n \\"CallbackUrl\\":\\"http://XXXXXX/XXXXXXX\\",\\n \\"Items\\": [\\n {\\n \\"ItemName\\": \\"节目1\\",\\n \\"VodUrl\\": \\"http://XXXX/XXXXXX1.flv\\"\\n },\\n {\\n \\"ItemName\\": \\"节目2\\",\\n \\"VodUrl\\": \\"http://XXXX/XXXXXX2.mp4\\"\\n }\\n ]\\n }"}]', + 'title' => 'AddCasterEpisodeGroupContent', + 'description' => 'You need to create a production studio and add an episode list to the production studio before you call this operation to add information about the episode list in the production studio. For information about how to create a production studio, see [CreateCaster](~~2848009~~).'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 4 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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'AddCasterProgram' => [ + 'summary' => 'Adds the episode list for carousel playback in 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Episode', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The information about episodes in the episode list.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the episode.'."\n", + 'type' => 'object', + 'properties' => [ + 'ComponentId' => [ + 'description' => 'The components. Components in the production studio are listed from the bottom to the top in an array.'."\n" + ."\n" + .'> This parameter is required and takes effect when the Episode.N.EpisodeType parameter is set to Component.'."\n" + ."\n" + .'This parameter is optional when the Episode.N.EpisodeType parameter is set to **Resource**. In this case, if this parameter is specified, the components are bound to and switched together with video resources.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the component.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'a2b8e671-2fe5-4642-a2ec-bf931826****', + ], + 'required' => false, + 'example' => '[ "a2b8e671-2fe5-4642-a2ec-bf931826****", "a2b8e671-2fe5-4642-a2ec-28374657****"]', + 'maxItems' => 10, + ], + 'EndTime' => [ + 'description' => 'The end time of the episode. 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", + 'type' => 'string', + 'required' => false, + 'example' => '2016-06-29T10:02:00Z', + ], + 'EpisodeName' => [ + 'description' => 'The name of the episode.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'program_name_1', + ], + 'EpisodeType' => [ + 'description' => 'The type of the episode.'."\n" + ."\n" + .'* **Resource**: a video resource If you set this parameter to Resource, you must specify the Episode.N.ResourceId and Episode.N.SwitchType parameters.'."\n" + .'* **Component**: a component If you set this parameter to Component, you must specify the Episode.N.ComponentId.N parameter.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Resource', + ], + 'ResourceId' => [ + 'description' => 'The ID of the video resource.'."\n" + ."\n" + .'> This parameter takes effect and is required when the Episode.N.EpisodeType parameter is set to Resource.'."\n" + ."\n" + .'\\'."\n" + .'This parameter is invalid if you set the Episode.N.EpisodeType parameter to **Component**.'."\n" + ."\n" + .'If the video resource was added by calling the [AddCasterVideoResource](~~60250~~) operation, check the value of the response parameter ResourceId to obtain the ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + 'StartTime' => [ + 'description' => 'The start time of the episode. 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", + 'type' => 'string', + 'required' => false, + 'example' => '2016-06-29T09:00:00Z', + ], + 'SwitchType' => [ + 'description' => 'The policy for switching episodes. Valid values:'."\n" + ."\n" + .'> This parameter takes effect only when the Episode.N.EpisodeType parameter is set to Resource.'."\n" + ."\n" + .'* **TimeFirst**: The episode starts when the previous episode ends and ends when the next episode starts. If no next episode exists, the episode keeps repeating until a new episode is added or the production studio stops. This value is required for live video resources.'."\n" + .'* **ContentFirst**: The episode starts and ends as scheduled.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TimeFirst', + ], + ], + 'required' => false, + ], + 'required' => true, + 'maxItems' => 100, + ], + ], + [ + '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****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'EpisodeIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'EpisodeId' => [ + 'description' => 'The IDs of the episodes. The episode IDs are listed in the same order as specified by the variable N.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'EpisodeId' => [ + 'description' => 'The ID of the episode. You can use the ID as a request parameter in the API operation that is used to modify the episode list, query the information about the episode list, delete the episode, or modify the configurations of the episode.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', + ], + ], + 'description' => '', + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'SwitchTypeInvalid.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectStartTime', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectEndTime', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'EpisodeConflict.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.EndTime', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidResource.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidComponent.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EpisodeIds\\": {\\n \\"EpisodeId\\": [\\n {\\n \\"EpisodeId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n \\n [ \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\", \\"16A96B9A-F203-4EC5-8E43-CB92E688****\\" ]\\n \\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + 'title' => 'AddCasterProgram', + 'description' => 'Create a production studio, add input sources to the production studio, and then call this operation to add the episode list for carousel playback in the production studio. This operation supports videos and components as episodes. For information about how to create a production studio, see [CreateCaster](~~2848009~~).'."\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", + 'requestParamsDescription' => '> N in the preceding request parameters indicates the sequence number. For example,'."\n" + .'Episode.N.EpisodeName specifies the name of episode N. For example, Episode.1.EpisodeName specifies the name of the first episode, and Episode.2.EpisodeName specifies the name of the second episode.'."\n" + ."\n\n", + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeCasterProgram' => [ + 'summary' => 'Queries the information about the episode list for carousel playback in 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + '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****', + ], + ], + [ + 'name' => 'EpisodeId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the episode.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1872639A-F203-4EC5-8E43-CB92E68F****', + ], + ], + [ + 'name' => 'EpisodeType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the episode. Valid values:'."\n" + ."\n" + .'* **Resource**: a video resource'."\n" + .'* **Component**: a component'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Resource', + ], + ], + [ + '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", + 'type' => 'string', + 'required' => false, + 'example' => '2016-06-29T09:00:00Z', + ], + ], + [ + '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", + 'type' => 'string', + 'required' => false, + 'example' => '2016-06-29T10:00:00Z', + ], + ], + [ + 'name' => 'PageNum', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '5', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + ], + ], + [ + 'name' => 'Status', + 'in' => 'query', + 'schema' => [ + 'description' => 'The status of the episode. Valid values:'."\n" + ."\n" + .'* **0**: The episode is not played.'."\n" + .'* **1**: The episode is being played.'."\n" + .'* **2**: The playback of the episode is complete.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '0', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'CasterId' => [ + 'description' => 'The ID of the production studio.'."\n", + 'type' => 'string', + 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', + ], + 'Episodes' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Episode' => [ + 'description' => 'The list of the episodes.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the episode.'."\n", + 'type' => 'object', + 'properties' => [ + 'ComponentIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'ComponentId' => [ + 'description' => 'The components.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the component.'."\n", + 'type' => 'string', + 'example' => '["1872639A-F203-4EC5-8E43-CB929282****" ]', + ], + ], + ], + ], + 'EndTime' => [ + 'description' => 'The end of the time range during which data was queried. 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' => '2016-06-29T10:02:00Z', + ], + 'EpisodeId' => [ + 'description' => 'The ID of the episode.'."\n", + 'type' => 'string', + 'example' => '1872639A-F203-4EC5-8E43-CB92E68F****', + ], + 'EpisodeName' => [ + 'description' => 'The name of the episode.'."\n", + 'type' => 'string', + 'example' => 'program_name_1', + ], + 'EpisodeType' => [ + 'description' => 'The type of the episode. Valid values:'."\n" + ."\n" + .'* **Resource**: a video resource'."\n" + .'* **Component**: a component'."\n", + 'type' => 'string', + 'example' => 'Resource', + ], + 'ResourceId' => [ + 'description' => 'The ID of the video resource.'."\n", + 'type' => 'string', + 'example' => '1872639A-F203-4EC5-8E43-CB92E837****', + ], + 'StartTime' => [ + 'description' => 'The beginning of the time range during which data was queried. 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' => '2016-06-29T09:00:00Z', + ], + 'Status' => [ + 'description' => 'The status of the episode.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'SwitchType' => [ + 'description' => 'The policy for switching episodes. Valid values:'."\n" + ."\n" + .'* **TimeFirst**: The episode starts when the previous episode ends and ends when the next episode starts. If no next episode exists, the episode keeps repeating until a new episode is added or the production studio stops. This value is required for live video resources.'."\n" + .'* **ContentFirst**: The episode starts and ends as scheduled.'."\n", + 'type' => 'string', + 'example' => 'TimeFirst', + ], + ], + ], + ], + ], + ], + 'ProgramEffect' => [ + 'description' => 'Indicates whether carousel playback is enabled.'."\n" + ."\n" + .'* **0**: Carousel playback is disabled.'."\n" + .'* **1**: Carousel playback is enabled.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'ProgramName' => [ + 'description' => 'The name of the episode list.'."\n", + 'type' => 'string', + 'example' => 'programs_name', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + 'Total' => [ + 'description' => 'The total number of entries.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidPageSize.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidPageNum.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.Status', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"LIVEPRODUCER_POST-cn-0pp1czt****\\",\\n \\"Episodes\\": {\\n \\"Episode\\": [\\n {\\n \\"ComponentIds\\": {\\n \\"ComponentId\\": [\\n \\"[\\\\\\"1872639A-F203-4EC5-8E43-CB929282****\\\\\\" ]\\"\\n ]\\n },\\n \\"EndTime\\": \\"2016-06-29T10:02:00Z\\",\\n \\"EpisodeId\\": \\"1872639A-F203-4EC5-8E43-CB92E68F****\\",\\n \\"EpisodeName\\": \\"program_name_1\\",\\n \\"EpisodeType\\": \\"Resource\\",\\n \\"ResourceId\\": \\"1872639A-F203-4EC5-8E43-CB92E837****\\",\\n \\"StartTime\\": \\"2016-06-29T09:00:00Z\\",\\n \\"Status\\": 0,\\n \\"SwitchType\\": \\"TimeFirst\\"\\n }\\n ]\\n },\\n \\"ProgramEffect\\": 1,\\n \\"ProgramName\\": \\"programs_name\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"Total\\": 1\\n}","errorExample":""},{"type":"xml","example":"\\n\\n16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n1872639A-F203-4EC5-8E43-CB92E68F****\\nprograms_name\\n1\\n\\n 1872639A-F203-4EC5-8E43-CB92E68F****\\n Resource\\n program_name_1\\n 1872639A-F203-4EC5-8E43-CB92E837****\\n 1872639A-F203-4EC5-8E43-CB929282****\\n 2016-06-29T09:00:00Z\\n 2016-06-29T10:02:00Z\\n 120\\n TimeFirst\\n\\n\\n 1872639A-F203-4EC5-8E43-CB92E687****\\n Component\\n 1872639A-F203-4EC5-8E43-CB625364****\\n 2016-06-29T19:02:00Z\\n 2016-06-29T19:04:00Z\\n\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"ProgramId\\":\\"1872639A-F203-4EC5-8E43-CB92E68F8378\\",\\n \\"ProgramName\\": \\"programs_name\\",\\n \\"Episodes\\": [\\n {\\n \\"EpisodeId\\":\\"1872639A-F203-4EC5-8E43-CB92E68F8732\\",\\n \\"EpisodeType\\":\\"Resource\\",\\n \\"EpisodeName\\": \\"program_name_1\\",\\n \\"ResourceId\\":\\"1872639A-F203-4EC5-8E43-CB92E8374827\\",\\n \\"ComponentIds\\":[\\n \\"1872639A-F203-4EC5-8E43-CB9292827362\\"\\n ],\\n \\"StartTime\\": \\"2016-06-29T19:00:00Z\\",\\n \\"EndTime\\": \\"2016-06-29T19:02:00Z\\",\\n \\"Duration\\": 120.0,\\n \\"SwitchType\\": \\"TimeFirst\\"\\n },\\n {\\n \\"EpisodeId\\":\\"1872639A-F203-4EC5-8E43-CB92E6873726\\",\\n \\"EpisodeType\\":\\"Component\\",\\n \\"ComponentIds\\":[\\n \\"1872639A-F203-4EC5-8E43-CB6253647382\\"\\n ],\\n \\"StartTime\\": \\"2016-06-29T19:02:00Z\\",\\n \\"EndTime\\": \\"2016-06-29T19:04:00Z\\",\\n }\\n ]\\n}"}]', + 'title' => 'DescribeCasterProgram', + 'description' => 'You can call this operation to query episodes in the episode list for carousel playback. The supported types of episodes include video resource and component.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 4 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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ModifyCasterProgram' => [ + 'summary' => 'Modifies the episode list for carousel playback in 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Episode', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The episodes.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the episode.'."\n", + 'type' => 'object', + 'properties' => [ + 'ComponentId' => [ + 'description' => 'The components. Components in the production studio are listed from the bottom to the top in an array. When the production studio switches to another video resource, the components are also switched.'."\n" + ."\n" + .'* This parameter is required and available only when EpisodeType is set to **Component**.'."\n" + .'* This parameter is optional when EpisodeType is set to **Resource**. This indicates that the components are bound to and switched together with video resources.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the component. Components in the production studio are listed from the bottom to the top in an array. When the production studio switches to another video resource, the components are also switched.'."\n" + ."\n" + .'* This parameter is required and available only when EpisodeType is set to **Component**.'."\n" + .'* This parameter is optional when EpisodeType is set to **Resource**. This indicates that the components are bound to and switched together with video resources.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '["a2b8e671-2fe5-4642-a2ec-bf93888****" ]', + ], + 'required' => false, + 'example' => '["a2b8e671-2fe5-4642-a2ec-bf93888****" ]', + 'maxItems' => 10, + ], + 'EndTime' => [ + 'description' => 'The end time of the episode. 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", + 'type' => 'string', + 'required' => false, + 'example' => '2016-06-29T10:04:00Z', + ], + 'EpisodeId' => [ + 'description' => 'The ID of the episode. If the episode was added by calling the [AddCasterEpisode](~~2848068~~) operation, check the value of the response parameter EpisodeId to obtain the ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'a2b8e671-2fe5-4642-a2ec-bf938887****', + ], + 'EpisodeName' => [ + 'description' => 'The name of the episode.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'program_name_2', + ], + 'EpisodeType' => [ + 'description' => 'The type of the episode. Valid values:'."\n" + ."\n" + .'* **Resource**: a video resource'."\n" + .'* **Component**: a component'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Resource', + ], + 'ResourceId' => [ + 'description' => 'The ID of the video resource. If the video resource was added by calling the [AddCasterVideoResource](~~2848020~~) operation, check the value of the response parameter ResourceId to obtain the ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'a2b8e671-2fe5-4642-a2ec-bf938887****', + ], + 'StartTime' => [ + 'description' => 'The start time of the episode. 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", + 'type' => 'string', + 'required' => false, + 'example' => '2016-06-29T09:02:00Z', + ], + 'SwitchType' => [ + 'description' => 'The policy for switching episodes. This parameter takes effect only when EpisodeType is set to **Resource**. Valid values:'."\n" + ."\n" + .'* **TimeFirst**: The episode starts when the previous episode ends and ends when the next episode starts. If no next episode exists, the episode keeps repeating until a new episode is added or the production studio stops. This value is required for live video resources.'."\n" + .'* **ContentFirst**: The episode starts and ends as scheduled.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TimeFirst', + ], + ], + 'required' => false, + ], + 'required' => true, + 'maxItems' => 100, + ], + ], + [ + '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' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'CasterId' => [ + 'description' => 'The ID of the production studio.'."\n", + 'type' => 'string', + 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'SwitchTypeInvalid.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectStartTime', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectEndTime', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectEpisodeStatus', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'EpisodeConflict.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidResource.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidEpisode.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidComponent.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n a2b8e671-2fe5-4642-a2ec-bf93880e****\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + 'title' => 'ModifyCasterProgram', + 'description' => 'You can call the [AddCasterProgram](~~2848074~~) operation to add the episode list for carousel playback in a production studio and then call this operation to modify the episode list. The supported types of episodes include video resource and component.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 4 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", + 'requestParamsDescription' => 'To modify an episode, you must specify at least one episode-related parameter.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'N in request parameters indicates the sequence number. Example:'."\n" + ."\n" + .'The Episode.N.EpisodeName parameter specifies the name of episode N. The Episode.1.EpisodeName parameter specifies the name of the first episode. The Episode.2.EpisodeName parameter specifies the name of the second episode.'."\n", + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteCasterProgram' => [ + 'summary' => 'Deletes the episode list for carousel playback in 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + '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' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'CasterId' => [ + 'description' => 'The ID of the production studio. You can specify the ID as a request parameter in the API operation that is used to add, delete, or modify episodes in the production studio.'."\n", + 'type' => 'string', + 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n a2b8e671-2fe5-4642-a2ec-bf93880e****\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + 'title' => 'DeleteCasterProgram', + 'description' => 'You can call the [CreateCaster](~~2848009~~) operation to create a production studio and then call this operation to delete the episode list for carousel playback in the production studio.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 4 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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'AddPlaylistItems' => [ + 'summary' => 'Adds episodes to an episode list.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + '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" + ."\n" + .'The production studio must use the following configurations:'."\n" + ."\n" + .'* **NormType**: 3****. You need to call the **CreateCaster** operation to create a production studio for lightweight carousel playback in advance.'."\n" + .'* **CasterTemplate**: lp_noTranscode.'."\n" + .'* **channelEnable**: 0.'."\n" + .'* **programEffect**: 1.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '0e94d1f4-1a65-445c-9dcf-de8b3b8d****', + ], + ], + [ + 'name' => 'ProgramItems', + 'in' => 'query', + 'schema' => [ + 'description' => 'The episodes that you want to add to the production studio. The value is a JSON string. For more information, see the **InputProgramItem** section of this topic.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '[{"ItemName":"item1","ResourceType":"vod","ResourceValue":"5f8809f2-3352-4d1f-a8f7-86f9429f****"}, {"ItemName": "item2","ResourceType": "vod","ResourceValue": "e7411c0b-dd98-4c61-a545-f8bfba6c****"}]', + ], + ], + [ + 'name' => 'ProgramId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the episode list. If you do not specify this parameter, an episode list is created by default.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + ], + [ + 'name' => 'ProgramConfig', + 'in' => 'query', + 'schema' => [ + 'description' => 'The configurations of the episode list. If the episode list is added to the production studio for the first time, specify this parameter to pass in the initial configurations. For more information, see the **ProgramConfig** section of this topic.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '[{"RepeatNumber":"0","ProgramName":"my program"}]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Items' => [ + 'description' => 'The information about the episodes.'."\n", + 'type' => 'object', + 'properties' => [ + 'FailedItems' => [ + 'description' => 'The episodes that failed to be added.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ItemId' => [ + 'description' => 'The ID of the episode.'."\n", + 'type' => 'string', + 'example' => 'c09f3d63-eacf-4fbf-bd48-a07a6ba7****', + ], + 'ItemName' => [ + 'description' => 'The name of the episode.'."\n", + 'type' => 'string', + 'example' => 'item1', + ], + ], + 'description' => '', + ], + ], + 'SuccessItems' => [ + 'description' => 'The episodes that were added.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ItemId' => [ + 'description' => 'The ID of the episode.'."\n", + 'type' => 'string', + 'example' => 'c09f3d63-eacf-4fbf-bd48-a07a6ba7****', + ], + 'ItemName' => [ + 'description' => 'The name of the episode.'."\n", + 'type' => 'string', + 'example' => 'item2', + ], + ], + 'description' => '', + ], + ], + ], + ], + 'ProgramId' => [ + 'description' => 'The ID of the episode list. You can use the ID as a request parameter in the API operation that is used to remove episodes, query episodes, edit an episode list, delete an episode list, query the information about an episode list, start playing an episode list, or stop playing an episode list.'."\n", + 'type' => 'string', + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'PlayListIsEmpty', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissInputParams', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidProgramId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'UserQuotaExceed', + 'errorMessage' => 'Quota exceeded: %s.', + ], + ], + [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidDomainName.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Items\\": {\\n \\"FailedItems\\": [\\n {\\n \\"ItemId\\": \\"c09f3d63-eacf-4fbf-bd48-a07a6ba7****\\",\\n \\"ItemName\\": \\"item1\\"\\n }\\n ],\\n \\"SuccessItems\\": [\\n {\\n \\"ItemId\\": \\"c09f3d63-eacf-4fbf-bd48-a07a6ba7****\\",\\n \\"ItemName\\": \\"item2\\"\\n }\\n ]\\n },\\n \\"ProgramId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 5c6a2a0d-f228-4a64-af62-20e91b96****\\n \\n \\n item2\\n c09f3d63-eacf-4fbf-bd48-a07a6ba7****\\n \\n \\n item2\\n c09f3d63-eacf-4fbf-bd48-a07a6ba7****\\n \\n \\n 445409ec-7eaa-461d-8f29-4bec2eb9****\\n","errorExample":""}]', + 'title' => 'AddPlaylistItems', + 'description' => 'Create a production studio, add a layout and components to the production studio, and then call this operation to add episodes. If no episode list exists in the production studio, this operation creates an episode list for the production studio. For more information about how to create a production studio, see [CreateCaster](~~2848009~~).'."\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", + 'requestParamsDescription' => '### InputProgramItem'."\n" + ."\n" + .'|Field|Example|Type|Description|'."\n" + .'|---|---|---|---|'."\n" + .'|ItemName|item1|String|The name of the episode.|'."\n" + .'|ResourceType|vod|String|The resource type. Valid values:**vod**: an ApsaraVideo VOD resource **url**: a video resource from a third party|'."\n" + .'|ResourceValue|5f8809f2-3352-4d1f-a8f7-86f9429f\\*\\*\\*\\*|String|If ResourceType is set to vod, the value of ResourceValue is the ID of the media asset.If ResourceType is set to url, the value of ResourceValue is the URL of the third-party video.|'."\n" + ."\n" + .'### ProgramConfig'."\n" + ."\n" + .'|Field|Example|Type|Description|'."\n" + .'|---|---|---|---|'."\n" + .'|RepeatNumber|0|Integer|The number of playbacks after the first playback is complete. Valid values:**0** (default): specifies that the episode list is played only once.**\\-1**: specifies that the episode list is played in loop mode.Positive integer: specifies the number of times the episode list repeats after the first playback is complete.|'."\n" + .'|ProgramName|myprogram|String|The name of the episode list.|', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeletePlaylistItems' => [ + 'summary' => 'Removes episodes 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'ProgramId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the episode list. If the episode list was created by calling the [AddPlaylistItems](~~2848078~~) operation, check the value of the response parameter ProgramId to obtain the ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + ], + [ + 'name' => 'ProgramItemIds', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IDs of the episodes that you want to remove.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '["c09f3d63-eacf-4fbf-bd48-a07a6ba7****","c10f3d63-eacf-4fbf-bd48-a07a6ba7****"]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'ProgramId' => [ + 'description' => 'The ID of the episode list. You can use the ID as a request parameter in the API operation that is used to query the episodes in the episode list, edit the episode list, delete the episode list, query the information about the episode list, or stop the episode list.'."\n", + 'type' => 'string', + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidProgramId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectPlaylistStatus.Inuse', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'PlayListIsEmpty', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + ], + 404 => [ + [ + 'errorCode' => 'PlayListNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"ProgramId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n 5c6a2a0d-f228-4a64-af62-20e91b96****\\n 445409ec-7eaa-461d-8f29-4bec2eb9****\\n","errorExample":""}]', + 'title' => 'DeletePlaylistItems', + 'description' => 'Before you call this operation to remove an episode, make sure that you have called the [AddPlaylistItems](~~2848078~~) operation to add the episode.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ListPlaylistItems' => [ + 'summary' => 'Queries the information about episodes in an episode list.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'ProgramId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the episode list. If the episode list was created by calling the [AddPlaylistItems](~~2848078~~) operation, check the value of the response parameter ProgramId to obtain the ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + ], + [ + 'name' => 'ProgramItemIds', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IDs of the episodes that you want to query. Separate episode IDs with commas (,). If you set this parameter, only the information about the specified episodes is returned. If you do not set this parameter, the information about all episodes in the episode list is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'c10f3d63-eacf-4fbf-bd48-a07a6ba7****,c09f3d63-eacf-4fbf-bd48-a07a6ba7****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Total' => [ + 'description' => 'The total number of episodes.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5c6a2a0d-f228-4a64-af62-20e91b9****', + ], + 'ProgramItems' => [ + 'description' => 'The episodes.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Index' => [ + 'description' => 'The sequence number of the episode in the query result.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'ResourceType' => [ + 'description' => 'The resource type.'."\n", + 'type' => 'string', + 'example' => 'vod', + ], + 'ProgramItemId' => [ + 'description' => 'The ID of the episode.'."\n", + 'type' => 'string', + 'example' => 'c10f3d63-eacf-4fbf-bd48-a07a6ba7****', + ], + 'ProgramId' => [ + 'description' => 'The ID of the episode list. You can use the ID as a request parameter in the API operation that is used to edit the episode list, delete the episode list, query the information about the episode list, start the episode list, or stop the episode list.'."\n", + 'type' => 'string', + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + 'ProgramItemName' => [ + 'description' => 'The name of the episode.'."\n", + 'type' => 'string', + 'example' => 'playlistItem1', + ], + 'ResourceValue' => [ + 'description' => 'The resource ID.'."\n", + 'type' => 'string', + 'example' => 'asdfasdf8as9df8sa9df89****', + ], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidProgramId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + ], + 404 => [ + [ + 'errorCode' => 'PlayListNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Total\\": 1,\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b9****\\",\\n \\"ProgramItems\\": [\\n {\\n \\"Index\\": 1,\\n \\"ResourceType\\": \\"vod\\",\\n \\"ProgramItemId\\": \\"c10f3d63-eacf-4fbf-bd48-a07a6ba7****\\",\\n \\"ProgramId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"ProgramItemName\\": \\"playlistItem1\\",\\n \\"ResourceValue\\": \\"asdfasdf8as9df8sa9df89****\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n\\n 5c6a2a0d-f228-4a64-af62-20e91b9****\\n \\n playlistItem1\\n asdfasdf8as9df8sa9df89****\\n c10f3d63-eacf-4fbf-bd48-a07a6ba7****\\n 1\\n vod\\n 445409ec-7eaa-461d-8f29-4bec2eb9****\\n \\n 1\\n","errorExample":""}]', + 'title' => 'ListPlaylistItems', + 'description' => 'You can call the [AddPlaylistItems](~~2848078~~) operation to add episodes to an episode list and then call this operation to query the episodes in the episode list'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'EditPlaylist' => [ + 'summary' => 'Edits 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'ProgramId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the episode list. If the episode list was created by calling the [AddPlaylistItems](~~2848078~~) operation, check the value of the response parameter ProgramId to obtain the ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + ], + [ + 'name' => 'ProgramItems', + 'in' => 'query', + 'schema' => [ + 'description' => 'The episodes that you want to add to the production studio. The value is a JSON string. For more information, see the **InputProgramItem** section of this topic.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '[{"ItemName":"item1","ResourceType":"vod","ResourceValue":"5f8809f2-3352-4d1f-a8f7-86f9429f****"}, {"ItemName": "item2","ResourceType": "vod","ResourceValue": "e7411c0b-dd98-4c61-a545-f8bfba6c****"}]', + ], + ], + [ + 'name' => 'ProgramConfig', + 'in' => 'query', + 'schema' => [ + 'description' => 'The configurations of the episode list. For more information, see the **ProgramConfig** section of this topic.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '[{"RepeatNumber":"0","ProgramName":"my program"}]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'CasterId' => [ + 'description' => 'The ID of the production studio. You can use the ID as a request parameter in the API operation that is used to configure callbacks or add a virtual studio layout.'."\n", + 'type' => 'string', + 'example' => '0e94d1f4-1a65-445c-9dcf-de8b3b8d****', + ], + 'Items' => [ + 'description' => 'The information about the episodes.'."\n", + 'type' => 'object', + 'properties' => [ + 'FailedItems' => [ + 'description' => 'The episodes that failed to be added.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the episode that failed to be added.'."\n", + 'type' => 'object', + 'properties' => [ + 'ItemId' => [ + 'description' => 'The ID of the episode.'."\n", + 'type' => 'string', + 'example' => 'c09f3d63-eacf-4fbf-bd48-a07a6ba7****', + ], + 'ItemName' => [ + 'description' => 'The name of the episode.'."\n", + 'type' => 'string', + 'example' => 'item2', + ], + ], + ], + ], + 'SuccessItems' => [ + 'description' => 'The episodes that were added.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the episode that was added.'."\n", + 'type' => 'object', + 'properties' => [ + 'ItemId' => [ + 'description' => 'The ID of the episode.'."\n", + 'type' => 'string', + 'example' => 'c09f3d63-eacf-4fbf-bd48-a07a6ba7****', + ], + 'ItemName' => [ + 'description' => 'The name of the episode.'."\n", + 'type' => 'string', + 'example' => 'item1', + ], + ], + ], + ], + ], + ], + 'ProgramId' => [ + 'description' => 'The ID of the episode list. You can use the ID as a request parameter in the API operation that is used to delete the episode list, query the information about the episode list, start the episode list, or stop the episode list.'."\n", + 'type' => 'string', + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidProgramId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'PlayListIsEmpty', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissInputParams', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidCasterId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectPlaylistStatus.Inuse', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + ], + 404 => [ + [ + 'errorCode' => 'PlayListNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"0e94d1f4-1a65-445c-9dcf-de8b3b8d****\\",\\n \\"Items\\": {\\n \\"FailedItems\\": [\\n {\\n \\"ItemId\\": \\"c09f3d63-eacf-4fbf-bd48-a07a6ba7****\\",\\n \\"ItemName\\": \\"item2\\"\\n }\\n ],\\n \\"SuccessItems\\": [\\n {\\n \\"ItemId\\": \\"c09f3d63-eacf-4fbf-bd48-a07a6ba7****\\",\\n \\"ItemName\\": \\"item1\\"\\n }\\n ]\\n },\\n \\"ProgramId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n 5c6a2a0d-f228-4a64-af62-20e91b96****\\n \\n \\n item2\\n c09f3d63-eacf-4fbf-bd48-a07a6ba7****\\n \\n \\n item1\\n c09f3d63-eacf-4fbf-bd48-a07a6ba7****\\n \\n \\n 445409ec-7eaa-461d-8f29-4bec2eb9****\\n 0e94d1f4-1a65-445c-9dcf-de8b3b8d****\\n","errorExample":""}]', + 'title' => 'EditPlaylist', + 'description' => 'You can call this operation to update all configurations of episodes in an episode list or replace the episodes.'."\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", + 'requestParamsDescription' => '### InputProgramItem'."\n" + ."\n" + .'|Field|Example|Type|Description|'."\n" + .'|---|---|---|---|'."\n" + .'|ItemName|item1|String|The name of the episode.|'."\n" + .'|ResourceType|vod|String|The resource type. Set the value to **vod**. Only video-on-demand (VOD) resources are supported.|'."\n" + .'|ResourceValue|5f8809f2-3352-4d1f-a8f7-86f9429f\\*\\*\\*\\*|String|The resource ID.|'."\n" + ."\n" + .'### ProgramConfig'."\n" + ."\n" + .'|Field|Example|Type|Description|'."\n" + .'|---|---|---|---|'."\n" + .'|RepeatNumber|0|Integer|The number of playbacks after the first playback is complete. Valid values:**0** (default): specifies that the episode list is played only once.**\\-1**: specifies that the episode list is played in loop mode.Positive integer: specifies the number of times the episode list repeats after the first playback is complete.|'."\n" + .'|ProgramName|myprogram|String|The name of the episode list.|', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeletePlaylist' => [ + 'summary' => 'Deletes an episode list.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'ProgramId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the episode list. If the episode list was created by calling the [AddPlaylistItems](~~2848078~~) operation, check the value of the response parameter ProgramId to obtain the ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'ProgramId' => [ + 'description' => 'The ID of the episode list. You can use the ID as a request parameter in the API operation that is used to query the information about the episode list, start the episode list, or stop the episode list.'."\n", + 'type' => 'string', + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IncorrectPlaylistStatus.Inuse', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidProgramId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + ], + 404 => [ + [ + 'errorCode' => 'PlayListNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"ProgramId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n 5c6a2a0d-f228-4a64-af62-20e91b96****\\n 445409ec-7eaa-461d-8f29-4bec2eb9****\\n","errorExample":""}]', + 'title' => 'DeletePlaylist', + 'description' => 'Before you call this operation to delete an episode list, make sure that you have called the [AddPlaylistItems](~~2848078~~) operation to create the episode list.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ListPlaylist' => [ + 'summary' => 'Queries the information about one or more episode lists.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'ProgramId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the episode list. If you set this parameter, only the information about the specified episode lists is returned. If you do not set this parameter, the information about all episode lists that belong to the account is returned. If the episode list was created by calling the [AddPlaylistItems](~~2848078~~) operation, check the value of the response parameter ProgramId to obtain the ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'c09f3d63-eacf-4fbf-bd48-a07a6ba7****', + ], + ], + [ + 'name' => 'Page', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '20', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'ProgramList' => [ + 'description' => 'The episode lists.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'CasterId' => [ + 'description' => 'The ID of the production studio to which the episode list belongs. You can use the ID as a request parameter in the API operation that is used to add a layout to the virtual studio, delete a layout in the virtual studio, modify a layout of the virtual studio, or query layouts of the virtual studio.'."\n", + 'type' => 'string', + 'example' => 'casdfasdfasfdasdflkasjdflaj****', + ], + 'DomainName' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'ProgramId' => [ + 'description' => 'The ID of the episode list.'."\n", + 'type' => 'string', + 'example' => 'c09f3d63-eacf-4fbf-bd48-a07a6ba7****', + ], + 'ProgramName' => [ + 'description' => 'The name of the episode list.'."\n", + 'type' => 'string', + 'example' => 'playlist1', + ], + 'RepeatNumber' => [ + 'description' => 'The number of playbacks after the first playback is complete. Valid values:'."\n" + ."\n" + .'* **0** (default): specifies that the episode list is played only once.'."\n" + .'* **-1**: specifies that the episode list is played in loop mode.'."\n" + .'* Positive integer: specifies the number of times the episode list repeats after the first playback is complete.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'Status' => [ + 'description' => 'The status of the episode list. Valid values:'."\n" + ."\n" + .'* **0**: stopped'."\n" + .'* **1**: running'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + ], + 'description' => '', + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****', + ], + 'Total' => [ + 'description' => 'The total number of episode lists returned.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidPageSize.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidPageNum.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + ], + 404 => [ + [ + 'errorCode' => 'PlayListNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"ProgramList\\": [\\n {\\n \\"CasterId\\": \\"casdfasdfasfdasdflkasjdflaj****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"ProgramId\\": \\"c09f3d63-eacf-4fbf-bd48-a07a6ba7****\\",\\n \\"ProgramName\\": \\"playlist1\\",\\n \\"RepeatNumber\\": 1,\\n \\"Status\\": 1\\n }\\n ],\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b96****\\",\\n \\"Total\\": 1\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\n 1\\n 1\\n example.com\\n c09f3d63-eacf-4fbf-bd48-a07a6ba7****\\n casdfasdfasfdasdflkasjdflaj****\\n playlist1\\n\\n5c6a2a0d-f228-4a64-af62-20e91b96****\\n1\\n","errorExample":""}]', + 'title' => 'ListPlaylist', + 'description' => 'You can call the [AddPlaylistItems](~~2848078~~) operation to add episode lists and then call this operation to query the episode lists.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'StartPlaylist' => [ + 'summary' => 'Starts playing an episode list.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'ProgramId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the episode list. If the episode list was created by calling the [AddPlaylistItems](~~2848078~~) operation, check the value of the response parameter ProgramId to obtain the ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + ], + [ + 'name' => 'ResumeMode', + 'in' => 'query', + 'schema' => [ + 'description' => 'The method to resume the playback of the episode list. Valid values:'."\n" + ."\n" + .'* **Restart**: resumes the playback from the beginning.'."\n" + .'* **Continue**: resumes the playback from the position where the previous playback stops. The **StartItemId** parameter is required only if you set **ResumeMode** to **Custom**.'."\n" + .'* **Custom**: resumes the playback from a custom position.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Custom', + ], + ], + [ + 'name' => 'StartItemId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the first episode to play. This episode is the first to play in carousel playback.'."\n" + ."\n" + .'> This parameter is required only if you set ResumeMode to Custom.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'asdfasdfasdf****', + ], + ], + [ + 'name' => 'Offset', + 'in' => 'query', + 'schema' => [ + 'description' => 'The offset of the position where the system starts the playback. This parameter takes effect only if the input source is a video file. Unit: milliseconds.'."\n" + ."\n" + .'A value greater than 0 indicates an offset from the first frame.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10000', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'ProgramId' => [ + 'description' => 'The ID of the episode list. You can use the ID as a request parameter in the API operation that is used to stop playing the episode list.'."\n", + 'type' => 'string', + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****', + ], + 'StreamInfo' => [ + 'description' => 'The information about the live stream.'."\n", + 'type' => 'object', + 'properties' => [ + 'AppName' => [ + 'description' => 'The name of the application.'."\n", + 'type' => 'string', + 'example' => 'liveApp****', + ], + 'DomainName' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'StreamName' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'example' => 'liveStream****', + ], + 'Streams' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Stream' => [ + 'description' => 'The streaming URLs.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'PullFlvUrl' => [ + 'description' => 'The streaming URL in the Flash Video (FLV) format.'."\n", + 'type' => 'string', + 'example' => 'http://aliyundoc.com/caster/liveStream****.flv?auth_key=1612772224-0-0-3632be7cd9907169e8b09e91099c****', + ], + 'PullM3U8Url' => [ + 'description' => 'The streaming URL in the Real-Time Messaging Protocol (RTMP) format.'."\n", + 'type' => 'string', + 'example' => 'rtmp:///aliyundoc.com/caster/liveStream****?auth_key=1612772224-0-0-4404ca59c0246226d49d01f734b1****', + ], + 'PullRtmpUrl' => [ + 'description' => 'The streaming URL in the M3U8 format.'."\n", + 'type' => 'string', + 'example' => 'http://aliyundoc.com/caster/liveStream****.m3u8?auth_key=1612772224-0-0-919a023a127156fe82e3562c3b3b****', + ], + 'Quality' => [ + 'description' => 'The video quality of the live stream. Valid values: **original**: original quality'."\n", + 'type' => 'string', + 'example' => 'original', + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IncorrectSceneStatus', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectCasterStatus', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectSceneStatus.Inuse', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidProgramId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'InvalidNormType.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.Offset', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.StartItemId', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 403 => [ + [ + 'errorCode' => 'UserQuotaExceed', + 'errorMessage' => 'Quota exceeded: %s.', + ], + ], + [ + [ + 'errorCode' => 'PlayListNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'PlayListItemNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidCasterTemplate.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectCasterStatus.EnableChannel', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"ProgramId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b96****\\",\\n \\"StreamInfo\\": {\\n \\"AppName\\": \\"liveApp****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"Streams\\": {\\n \\"Stream\\": [\\n {\\n \\"PullFlvUrl\\": \\"http://aliyundoc.com/caster/liveStream****.flv?auth_key=1612772224-0-0-3632be7cd9907169e8b09e91099c****\\",\\n \\"PullM3U8Url\\": \\"rtmp:///aliyundoc.com/caster/liveStream****?auth_key=1612772224-0-0-4404ca59c0246226d49d01f734b1****\\",\\n \\"PullRtmpUrl\\": \\"http://aliyundoc.com/caster/liveStream****.m3u8?auth_key=1612772224-0-0-919a023a127156fe82e3562c3b3b****\\",\\n \\"Quality\\": \\"original\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 445409ec-7eaa-461d-8f29-4bec2eb9****\\n 5c6a2a0d-f228-4a64-af62-20e91b96****\\n \\n liveApp****\\n example.com\\n liveStream****\\n \\n http://aliyundoc.com/caster/liveStream****.flv?auth_key=1612772224-0-0-3632be7cd9907169e8b09e91099c****\\n rtmp:///aliyundoc.com/caster/liveStream****?auth_key=1612772224-0-0-4404ca59c0246226d49d01f734b1****\\n http://aliyundoc.com/caster/liveStream****.m3u8?auth_key=1612772224-0-0-919a023a127156fe82e3562c3b3b****\\n original\\n \\n \\n","errorExample":""}]', + 'title' => 'StartPlaylist', + 'description' => 'You can call the [AddPlaylistItems](~~2848078~~) operation to add episodes to an episode list and then call this operation to start playing the episode list.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'ProgramId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the episode list. If the episode list was created by calling the [AddPlaylistItems](~~2848078~~) operation, check the value of the response parameter ProgramId to obtain the ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'ProgramId' => [ + 'description' => 'The ID of the episode list.'."\n", + 'type' => 'string', + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidProgramId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'PlayListNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"ProgramId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n5c6a2a0d-f228-4a64-af62-20e91b96****\\n445409ec-7eaa-461d-8f29-4bec2eb9****\\n","errorExample":""}]', + 'title' => 'StopPlaylist', + 'description' => 'You can call the [AddPlaylistItems](~~2848078~~) operation to add episodes to an episode list and then call this operation to stop playing the episode list.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'CreateMixStream' => [ + 'summary' => 'Creates a stream mixing task.', + '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', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n" + ."\n" + .'> Only domain names that reside in the China (Shanghai) and China (Beijing) regions are supported.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'LayoutId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the layout. 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 layouts for stream mixing](~~199361~~).', + 'type' => 'string', + 'required' => true, + 'example' => 'MixStreamLayout-1-1', + ], + ], + [ + 'name' => 'InputStreamList', + 'in' => 'query', + 'schema' => [ + 'description' => 'The input streams. The value is a JSON array.'."\n" + ."\n" + .'For more information, see **InputStreamConfig**.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '[{"LayoutChildId":1,"ResourceType":"live","ResourceValue":"rtmp://example.net/live/f2139ec2b8d6a191068cd****ea9064d?auth_key=1600947017-0-0-0b5645fe35d21a65ab92b394bd4d****","LayoutConfig":{"FillMode":"fit","PositionRefer":"topLeft","FillPositionNormalized":[0,0],"FillSizeNormalized":[1,1]}}]', + ], + ], + [ + 'name' => 'OutputConfig', + 'in' => 'query', + 'schema' => [ + 'description' => 'The configuration of the output stream. The value is a JSON string.'."\n" + ."\n" + .'For more information, see **OutputConfig**.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '{"AppName":"liveApp****","StreamName":"9a78fb3f5c508be0122746f677a3****","MixStreamTemplate":"lp_hd_v","ExpireDuration":"86400"}', + ], + ], + [ + 'name' => 'CallbackConfig', + 'in' => 'query', + 'schema' => [ + 'description' => 'The callback URL. The value is a JSON array. If a callback event is triggered, ApsaraVideo Live sends an HTTP POST request to the URL. The content is included in the HTTP request body.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{"CallbackUrl":"http://aliyundoc.com"}', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'MixStreamId' => [ + 'description' => 'The ID of the stream mixing task. You can specify this parameter in a request to delete the stream mixing task or query stream mixing tasks.'."\n", + 'type' => 'string', + 'example' => '5b2a046e-74d7-385e-253f-8a5b87e4****', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '0D715397-2E66-4AE1-694h-C546628AD145', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 403 => [ + [ + 'errorCode' => 'MixStreamAlreadyExist', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MixStreamNotExist', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'UserQuotaExceed', + 'errorMessage' => 'Quota exceeded: %s.', + ], + ], + [ + [ + 'errorCode' => 'InvalidDomainName.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"MixStreamId\\": \\"5b2a046e-74d7-385e-253f-8a5b87e4****\\",\\n \\"RequestId\\": \\"0D715397-2E66-4AE1-694h-C546628AD145\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 5b2a046e-74d7-385e-253f-8a5b87e4****\\n 0D715397-2E66-4AE1-694h-C546628AD145\\n","errorExample":""}]', + 'title' => 'CreateMixStream', + 'description' => 'You can call this operation to create a stream mixing task. This operation supports preset layouts and custom layouts.'."\n" + ."\n" + .'If you have any questions or suggestions about the use of the stream mixing feature, you are welcome to search the group ID 34935990 in DingTalk to join the developer group.'."\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", + 'requestParamsDescription' => '### InputStreamConfig'."\n" + ."\n" + .'|Field|Type|Description|'."\n" + .'|---|---|---|'."\n" + .'|ResourceType|String|The type of the resource.**live**: live stream**url**: file|'."\n" + .'|ResourceValue|String|The URL of the resource.If you set the ResourceType parameter to live, set this parameter to the URL of a live stream. Supported protocols include Real-Time Messaging Protocol (RTMP), Flash Video (FLV), and Alibaba Real-Time Communication (ARTC). The HTTP Live Streaming (HLS) protocol is not supported.If you set the ResourceType parameter to url, set this parameter to the URL of a file.|'."\n" + .'|LayoutChildId|String|The ID that specifies the overlay sequence of the input stream in the layout.|'."\n" + .'|LayoutConfig|LayoutConfig\\[\\]|The layout information about the input stream, including the position and scaling mode. The value is a JSON array.If you use a preset layout, you do not need to specify this parameter.If you specify this parameter, the layout configuration specified by the LayoutChildId parameter is ignored.|'."\n" + ."\n" + .'### LayoutConfig'."\n" + ."\n" + .'|Field|Type|Required|Description|'."\n" + .'|---|---|---|---|'."\n" + .'|FillSizeNormalized|JSON array of floating-point numbers|Yes|The size of the layer in the layout.Format: \\[w,h\\]. The valid values of w and h are in the range of \\[0,1\\]. The width and height are normalized.For example, \\[0.2,0.3\\] indicates that the width of the layer is 20% of the screen width, and the height of the layer is 30% of the screen height.|'."\n" + .'|FillPositionNormalized|Array of floating-point numbers|Yes|The normalized value of the coordinates of the layer.Format: \\[x,y\\]. The valid values of x and y are in the range of \\[0,1\\].For example, \\[0.1,0.1\\] indicates that the layer is horizontally offset by 10% and vertically offset by 10% towards the upper-left corner.|'."\n" + .'|PositionRefer|String|No|The reference position of the layer.We recommend that you set this parameter to topLeft that indicates the upper-left corner.|'."\n" + .'|FillMode|String|No|The scaling mode of the stream in the layer. Valid values:**none**: specifies that the stream is not scaled.**fit**: specifies that the stream is scaled to ensure that the longer side reaches the border of the layer. In this case, black bars may be added to the shorter side.**fill**: specifies that the stream is proportionally scaled based on the maximum aspect ratio of the layer. Then, the stream is cropped to fill in the layer.We recommend that you set this parameter to fit.|'."\n" + ."\n" + .'### OutputConfig'."\n" + ."\n" + .'|Field|Type|Required|Description|'."\n" + .'|---|---|---|---|'."\n" + .'|AppName|String|Yes|The name of the application that generates the output stream. The name cannot contain special characters such as pound signs (#) and question marks (?).|'."\n" + .'|StreamName|String|Yes|The name of the output stream. The name cannot contain special characters such as pound signs (#) and question marks (?).|'."\n" + .'|MixStreamTemplate|String|Yes|The ID of the stream mixing template, such as lp\\_ld. Valid values:lp\\_ld (640 × 360),lp\\_sd (854 × 480),lp\\_hd (1280 × 720),lp\\_ud (1920 × 1080),lp\\_ld\\_v (640 × 360),lp\\_sd\\_v (854 × 480),lp\\_hd\\_v (1280 × 720),lp\\_ud\\_v (1920 × 1080),lp\\_ld\\_v\\_optm (640 × 360),lp\\_sd\\_v\\_optm (854 × 480),lp\\_hd\\_v\\_optm (1280 × 720), andlp\\_ud\\_v\\_optm (1920 × 1080).\\_v indicates a template in portrait mode. \\_optm indicates a low latency template. The numbers in the parentheses indicate the resolution.|'."\n" + .'|ExpireDuration|Long|No|Specifies how long until the task expires. Unit: seconds. Valid values: **1** to **31536000** (one year).If you do not specify this parameter, the task expires in seven days by default.|', + '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", + ], + 'UpdateMixStream' => [ + 'summary' => 'Updates a stream mixing 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n" + ."\n" + .'> Only domain names that reside in the China (Shanghai) and China (Beijing) regions are supported.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'MixStreamId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the stream mixing task. If the task was created by calling the [CreateMixStream](~~2848087~~) operation, check the value of the response parameter MixStreamId to obtain the ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '5b2a046e-74d7-385e-d2d7-8a5b87e4****', + ], + ], + [ + 'name' => 'InputStreamList', + 'in' => 'query', + 'schema' => [ + 'description' => 'The input streams, in a JSON array.'."\n" + ."\n" + .'For more information, see **InputStreamConfig**.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '{"InputStreamList":[{"LayoutConfig":{"fillSizeNormalized":[0.5,0.5],"fillPositionNormalized":[0,0],"positionRefer":"topLeft","fillMode":"fit"},"LayoutChildId":1,"ResourceValue":"rtmp://aliyundoc.com/caster/8564a8d1659b4dc69df5f66cf4c9****","ResourceType":"live"},{"LayoutConfig":{"fillSizeNormalized":[0.5,0.5],"fillPositionNormalized":[0.5,0],"positionRefer":"topLeft","fillMode":"fit"},"LayoutChildId":2,"ResourceValue":"http://developer.aliyundoc.com/3c3c25426cf744fdb90423e76b78a28a/69b1a16e2b1d423d9841bf27a96f134e-0b1cba51f58bb5ad3a854x96a2c735f****.mp4","ResourceType":"url"},{"LayoutConfig":{"fillSizeNormalized":[1,0.5],"fillPositionNormalized":[0,0.5],"positionRefer":"topLeft","fillMode":"fit"},"LayoutChildId":3,"ResourceValue":"http://aliyundoc.com/c0c6c5446b56432389e91535864938da/ed4adc5263b4474c954b95607a5350ae-fda757b3328438a8cf-4k57f373a0f0****.mp4","ResourceType":"url"}]}', + ], + ], + [ + 'name' => 'LayoutId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the layout. 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 layouts for stream mixing](~~199361~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'MixStreamLayout-3-2', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'MixStreamId' => [ + 'description' => 'The ID of the stream mixing task. You can specify this parameter in a request to delete the stream mixing task or query stream mixing tasks.'."\n", + 'type' => 'string', + 'example' => '5b2a046e-74d7-385e-d2d7-8a5b87e4****', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '1A8CDDFF-0121-4ABB-DA60-AEF095A8W34F', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 403 => [ + [ + 'errorCode' => 'MixStreamAlreadyExist', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MixStreamNotExist', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'InvalidDomainName.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"MixStreamId\\": \\"5b2a046e-74d7-385e-d2d7-8a5b87e4****\\",\\n \\"RequestId\\": \\"1A8CDDFF-0121-4ABB-DA60-AEF095A8W34F\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 5b2a046e-74d7-385e-d2d7-8a5b87e4****\\n 1A8CDDFF-0121-4ABB-DA60-AEF095A8W34F\\n","errorExample":""}]', + 'title' => 'UpdateMixStream', + 'description' => 'You can call this operation to update a stream mixing task. This operation allows you to modify the input sources and layout, but not other parameters such as the output resolution.'."\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", + 'requestParamsDescription' => '### InputStreamConfig'."\n" + ."\n" + .'|Parameter|Type|Description|'."\n" + .'|---|---|---|'."\n" + .'|ResourceType|String|The type of the resource.**live**: live stream**url**: file|'."\n" + .'|ResourceValue|String|The URL of the resource.If you set the ResourceType parameter to live, set this parameter to the URL of a live stream. Supported protocols include Real-Time Messaging Protocol (RTMP), Flash Video (FLV), and Alibaba Real-Time Communication (ARTC). The HTTP Live Streaming (HLS) protocol is not supported.If you set the ResourceType parameter to url, set this parameter to the URL of a file.|'."\n" + .'|LayoutChildId|String|The ID that specifies the overlay sequence of the input stream in the layout.|'."\n" + .'|LayoutConfig|LayoutConfig\\[\\]|The layout information about the input stream, including the position and scaling mode. The value is a JSON array.If you use a preset layout, you do not need to specify this parameter.If you specify this parameter, the layout configuration specified by the LayoutChildId parameter is ignored.|', + 'responseParamsDescription' => ' ', + 'extraInfo' => '### SDK example'."\n" + ."\n" + .'For more information, see [Sample code of stream mixing](https://help.aliyun.com/document_detail/199362.html).'."\n", + ], + 'DescribeMixStreamList' => [ + 'summary' => 'Queries stream mixing tasks.', + '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', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the output stream.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveStream****', + ], + ], + [ + 'name' => 'MixStreamId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the stream mixing task. If the task was created by calling the [CreateMixStream](~~2848087~~) operation, check the value of the response parameter MixStreamId to obtain the ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '5b2a046e-74d7-385e-d2d7-8a5b87e4****', + ], + ], + [ + '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", + 'type' => 'string', + 'required' => false, + 'example' => '2020-09-11T12:00:00Z', + ], + ], + [ + '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", + 'type' => 'string', + 'required' => false, + 'example' => '2020-09-20T13:00:00Z', + ], + ], + [ + 'name' => 'PageNo', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of the page to return. Valid values: an integer that is greater than **0** and does not exceed the maximum value of the INTEGER data type. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries to return on each page. Default value: **1000**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1000', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'MixStreamList' => [ + 'description' => 'Details about the stream mixing tasks.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'Details about the stream mixing task.'."\n", + 'type' => 'object', + 'properties' => [ + 'AppName' => [ + 'description' => 'The name of the application.'."\n", + 'type' => 'string', + 'example' => 'liveApp****', + ], + 'DomainName' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'GmtCreate' => [ + 'description' => 'The time when the stream mixing task 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' => '2020-09-17T08:39:14Z', + ], + 'GmtModified' => [ + 'description' => 'The time when the stream mixing task was 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' => '2020-09-17T08:39:15Z', + ], + 'InputStreamNumber' => [ + 'description' => 'The number of input streams.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '2', + ], + 'LayoutId' => [ + 'description' => 'The ID of the layout.'."\n", + 'type' => 'string', + 'example' => 'USERDEFINED', + ], + 'MixStreamTemplate' => [ + 'description' => 'The stream mixing template.'."\n", + 'type' => 'string', + 'example' => 'lp_ld', + ], + 'MixstreamId' => [ + 'description' => 'The ID of the stream mixing task. You can specify this parameter in a request to delete the steam mixing task.'."\n", + 'type' => 'string', + 'example' => 'aaf9a50f-c460-3a9b-f180-38dd8f05****', + ], + 'StreamName' => [ + 'description' => 'The name of the output stream.'."\n", + 'type' => 'string', + 'example' => 'liveStream****', + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'BC1E78D3-FA8B-4457-DEE2-6093E1232254', + ], + 'Total' => [ + 'description' => 'The total number of tasks.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidDomainName.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"MixStreamList\\": [\\n {\\n \\"AppName\\": \\"liveApp****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"GmtCreate\\": \\"2020-09-17T08:39:14Z\\",\\n \\"GmtModified\\": \\"2020-09-17T08:39:15Z\\",\\n \\"InputStreamNumber\\": 2,\\n \\"LayoutId\\": \\"USERDEFINED\\",\\n \\"MixStreamTemplate\\": \\"lp_ld\\",\\n \\"MixstreamId\\": \\"aaf9a50f-c460-3a9b-f180-38dd8f05****\\",\\n \\"StreamName\\": \\"liveStream****\\"\\n }\\n ],\\n \\"RequestId\\": \\"BC1E78D3-FA8B-4457-DEE2-6093E1232254\\",\\n \\"Total\\": 1\\n}","errorExample":""},{"type":"xml","example":"\\n \\n liveApp****\\n example.com\\n 2020-09-17T08:39:14Z\\n 2020-09-17T08:39:15Z\\n 2\\n USERDEFINED\\n lp_ld\\n aaf9a50f-c460-3a9b-f180-38dd8f05****\\n liveStream****\\n \\n BC1E78D3-FA8B-4457-DEE2-6093E1232254\\n 1\\n","errorExample":""}]', + 'title' => 'DescribeMixStreamList', + 'description' => 'You can call the [CreateMixStream](~~2848087~~) operation to create stream mixing tasks and then call this operation to query the list of stream mixing tasks.'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => '### MixStreamInfo'."\n" + ."\n" + .'|Filed|Type|Description|'."\n" + .'|---|---|---|'."\n" + .'|MixStreamId|String|The ID of the stream mixing task.|'."\n" + .'|DomainName|String|The main streaming domain.|'."\n" + .'|AppName|String|The name of the application.|'."\n" + .'|StreamName|String|The name of the output stream.|'."\n" + .'|LayoutId|String|The ID of the layout.|'."\n" + .'|InputStreamNumber|Integer|The number of input streams.|'."\n" + .'|MixStreamTemplate|String|The stream mixing template.|'."\n" + .'|GmtCreate|String|The time when the stream mixing task 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" + .'|GmtModified|String|The time when the stream mixing task was 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.|', + 'extraInfo' => '### SDK example'."\n" + ."\n" + .'For more information, see [Sample code of stream mixing](https://help.aliyun.com/document_detail/199362.html).'."\n", + ], + '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', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the output stream.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveStream****', + ], + ], + [ + 'name' => 'MixStreamId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the stream mixing task. If the task was created by calling the [CreateMixStream](~~2848087~~) operation, check the value of the response parameter MixStreamId to obtain the ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '749b7594-86d6-37b1-513b-e1e19845****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'MixStreamId' => [ + 'description' => 'The ID of the stream mixing task.'."\n", + 'type' => 'string', + 'example' => '749b7594-86d6-37b1-513b-e1e19845****', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'BE9407FF-F897-4DBD-338D-98A750AD805F', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 403 => [ + [ + 'errorCode' => 'MixStreamAlreadyExist', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MixStreamNotExist', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'InvalidDomainName.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"MixStreamId\\": \\"749b7594-86d6-37b1-513b-e1e19845****\\",\\n \\"RequestId\\": \\"BE9407FF-F897-4DBD-338D-98A750AD805F\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 749b7594-86d6-37b1-513b-e1e19845****\\n BE9407FF-F897-4DBD-338D-98A750AD805F\\n","errorExample":""}]', + 'title' => 'DeleteMixStream', + 'description' => 'You can call the [CreateMixStream](~~2848087~~) operation to create a stream mixing task and then call this operation to delete the stream mixing task. If you no longer need a mixed stream, be sure to delete it. Mixed streams that are not deleted are continuously ingested.'."\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", + '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", + ], + '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', + ], + ], + [ + 'name' => 'CustomTemplate', + 'in' => 'query', + 'schema' => [ + 'description' => 'The configuration of the template. The value is in the following JSON format: {height:xxx,scale:xxx,gop:xxx,bframes:xxx,cdesc:xxx}. All fields are required. If any field is left empty, the call fails.'."\n" + ."\n" + .'> For more information, see **Fields of the CustomTemplate parameter**.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '{height:1080,scale:[16:9],gop:60,bframes:30,cdesc:h264}', + ], + ], + [ + 'name' => 'Template', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the template.'."\n" + ."\n" + .'> Record the template name. The template name is required if you want to use, query, or delete the template.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'TestTemplate', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '0D715397-2E66-4AE1-694h-C546628AD145', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'TemplateAlreadyExist', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'CustomTemplateInvalid', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidDomainName.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0D715397-2E66-4AE1-694h-C546628AD145\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0D715397-2E66-4AE1-694h-C546628AD145\\n","errorExample":""}]', + 'title' => 'CreateCustomTemplate', + 'description' => 'After you call this operation to create a custom template, record the template name. When you call the [CreateMixStream](~~2848087~~) operation to create a stream mixing task, you can set the MixStreamTemplate parameter to the name of the custom template. This way, you can use the custom template for stream mixing.'."\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", + 'requestParamsDescription' => '**Fields of the CustomTemplate parameter**'."\n" + ."\n" + .'|Field|Type|Required|Description|'."\n" + .'|---|---|---|---|'."\n" + .'|height|String|Yes|The height of the output resolution.If you set the scale field to 16:9, a maximum resolution of 1920 × 1080 is supported.If you set the scale field to 4:3, a maximum resolution of 1440 × 1080 is supported.|'."\n" + .'|scale|String|Yes|The aspect ratio. Valid values:\\[3:4\\]\\[4:3\\]\\[16:9\\]\\[9:16\\]|'."\n" + .'|bframes|String|Yes|The number of B-frames of 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 keyframe interval. The value must be greater than 25 but less than 250.|', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteCustomTemplate' => [ + 'summary' => 'Deletes a custom stream mixing template.', + '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', + ], + ], + [ + 'name' => 'Template', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the template that you want to delete. The value is a string.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'TestTemplate', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'BC1E78D3-FA8B-4457-DEE2-6093E1232254', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'CustomTemplateInvalid', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidDomainName.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BC1E78D3-FA8B-4457-DEE2-6093E1232254\\"\\n}","errorExample":""},{"type":"xml","example":"\\n BC1E78D3-FA8B-4457-DEE2-6093E1232254\\n","errorExample":""}]', + 'title' => 'DeleteCustomTemplate', + 'description' => 'Obtain the name of the custom stream mixing template that you want to delete, and then call this operation to delete the template.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'GetCustomTemplate' => [ + 'summary' => 'Queries the information about 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', + ], + ], + [ + 'name' => 'Template', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the custom template that you want to query. The value is a string.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'TestTemplate', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'BC1E78D3-FA8B-4457-DEE2-6093E1232254', + ], + 'CustomTemplate' => [ + 'description' => 'The configurations of the template.'."\n", + 'type' => 'string', + 'example' => '{height:1080,scale:[16:9],gop:60,bframes:30,cdesc:h264}', + ], + 'Template' => [ + 'description' => 'The name of the template.'."\n", + 'type' => 'string', + 'example' => 'TestTemplate', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'CustomTemplateInvalid', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidDomainName.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BC1E78D3-FA8B-4457-DEE2-6093E1232254\\",\\n \\"CustomTemplate\\": \\"{height:1080,scale:[16:9],gop:60,bframes:30,cdesc:h264}\\",\\n \\"Template\\": \\"TestTemplate\\"\\n}","errorExample":""},{"type":"xml","example":"\\n BC1E78D3-FA8B-4457-DEE2-6093E1232254\\n {height:1080,scale:[16:9],gop:60,bframes:30,cdesc:h264}\\n \\n","errorExample":""}]', + 'title' => 'GetCustomTemplate', + 'description' => 'Obtain the name of the custom stream mixing template, and then call this operation to query the information about the template.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'GetAllCustomTemplates' => [ + 'summary' => 'Queries all custom stream mixing 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', + ], + ], + [ + 'name' => 'UserId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '25346073170691****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'CustomTemplates' => [ + 'description' => 'The template names and template configurations returned.'."\n", + 'type' => 'string', + 'example' => ' [{"templateConfig": "{\\"cdesc\\":\\"H264\\",\\"scale\\":\\"[3:4]\\",\\"gop\\":\\"1\\",\\"bframes\\":\\"1\\",\\"height\\":\\"1080\\"}","templateName": "custom1"},{"templateConfig": "{\\"ar\\":\\"44100\\",\\"cdesc\\":\\"H264\\",\\"scale\\":\\"[3:4]\\",\\"gop\\":\\"1\\",\\"bframes\\":\\"1\\",\\"height\\":\\"1080\\"}","templateName": "cus"}]', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '4791648Q-813C-6254-865C-0ED913661230', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'CustomTemplateInvalid', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidDomainName.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CustomTemplates\\": \\" [{\\\\\\"templateConfig\\\\\\": \\\\\\"{\\\\\\\\\\\\\\"cdesc\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"H264\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"scale\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"[3:4]\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"gop\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"bframes\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"height\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1080\\\\\\\\\\\\\\"}\\\\\\",\\\\\\"templateName\\\\\\": \\\\\\"custom1\\\\\\"},{\\\\\\"templateConfig\\\\\\": \\\\\\"{\\\\\\\\\\\\\\"ar\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"44100\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"cdesc\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"H264\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"scale\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"[3:4]\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"gop\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"bframes\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"height\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1080\\\\\\\\\\\\\\"}\\\\\\",\\\\\\"templateName\\\\\\": \\\\\\"cus\\\\\\"}]\\",\\n \\"RequestId\\": \\"4791648Q-813C-6254-865C-0ED913661230\\"\\n}","errorExample":""},{"type":"xml","example":"\\n [{\\"templateConfig\\": \\"{\\\\\\"cdesc\\\\\\":\\\\\\"H264\\\\\\",\\\\\\"scale\\\\\\":\\\\\\"[3:4]\\\\\\",\\\\\\"gop\\\\\\":\\\\\\"1\\\\\\",\\\\\\"bframes\\\\\\":\\\\\\"1\\\\\\",\\\\\\"height\\\\\\":\\\\\\"1080\\\\\\"}\\",\\"templateName\\": \\"custom1\\"},{\\"templateConfig\\": \\"{\\\\\\"ar\\\\\\":\\\\\\"44100\\\\\\",\\\\\\"cdesc\\\\\\":\\\\\\"H264\\\\\\",\\\\\\"scale\\\\\\":\\\\\\"[3:4]\\\\\\",\\\\\\"gop\\\\\\":\\\\\\"1\\\\\\",\\\\\\"bframes\\\\\\":\\\\\\"1\\\\\\",\\\\\\"height\\\\\\":\\\\\\"1080\\\\\\"}\\",\\"templateName\\": \\"cus\\"}]\\n 4791648Q-813C-6254-865C-0ED913661230\\n","errorExample":""}]', + 'title' => 'GetAllCustomTemplates', + 'description' => 'You can call this operation to query all custom stream mixing templates. A list of template names and template configurations is returned.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'AddLiveStreamWatermark' => [ + 'summary' => 'Creates a watermark template.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Type', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the watermark. Valid values:'."\n" + ."\n" + .'* **0**: image.'."\n" + .'* **1**: text. Only image watermarks are supported.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '0', + ], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the watermark.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'livewatermark****', + ], + ], + [ + 'name' => 'RefWidth', + 'in' => 'query', + 'schema' => [ + 'description' => 'The width of the background video. Unit: pixels.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '1920', + ], + ], + [ + 'name' => 'RefHeight', + 'in' => 'query', + 'schema' => [ + 'description' => 'The height of the background video. Unit: pixels.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '1080', + ], + ], + [ + 'name' => 'XOffset', + 'in' => 'query', + 'schema' => [ + 'description' => 'The offset of the watermark along the x-axis. Unit: pixels.'."\n" + ."\n" + .'> In this case, the value of the RefWidth parameter is used as the reference. If the OffsetCorner parameter is set to TopLeft, the value of the XOffset parameter indicates the x-axis offset of the upper-left corner of the watermark relative to that of the background video. The directions from the coordinate axes to the center of the background video are positive. In other words, the x-axis is positive toward the right.'."\n", + 'type' => 'number', + 'format' => 'float', + 'required' => true, + 'example' => '50.0', + ], + ], + [ + 'name' => 'YOffset', + 'in' => 'query', + 'schema' => [ + 'description' => 'The offset of the watermark along the y-axis. Unit: pixels.'."\n" + ."\n" + .'> In this case, the value of the RefHeight parameter is used as the reference. If the OffsetCorner parameter is set to TopLeft, the value of the YOffset parameter indicates the y-axis offset of the upper-left corner of the watermark relative to that of the background video. The directions from the coordinate axes to the center of the background video are positive. In other words, the y-axis is positive downward.'."\n", + 'type' => 'number', + 'format' => 'float', + 'required' => true, + 'example' => '100.0', + ], + ], + [ + 'name' => 'Height', + 'in' => 'query', + 'schema' => [ + 'description' => 'The height of the watermark. Unit: pixels. The height of the watermark is scaled in proportion to the height of the background video.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '200', + ], + ], + [ + 'name' => 'Transparency', + 'in' => 'query', + 'schema' => [ + 'description' => 'The transparency of the watermark. A smaller value indicates a more transparent watermark. Valid values: 0 to 255.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '255', + ], + ], + [ + 'name' => 'OffsetCorner', + 'in' => 'query', + 'schema' => [ + 'description' => 'The location of the watermark. Valid values:'."\n" + ."\n" + .'* TopLeft: the upper-left corner.'."\n" + .'* TopRight: the upper-right corner.'."\n" + .'* BottomLeft: the lower-left corner.'."\n" + .'* BottomRight: the lower-right corner.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'TopRight', + ], + ], + [ + 'name' => 'PictureUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The URL of the watermark image.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'http://example.com', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The description of the watermark.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'my watermark', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'example.aliyundoc.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TemplateId' => [ + 'description' => 'The ID of the watermark template.'."\n", + 'type' => 'string', + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5c6a2a0df228-4a64- af62-20e91b96****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameters', + 'errorMessage' => '%s Please check and try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TemplateId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0df228-4a64- af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n5c6a2a0df228-4a64- af62-20e91b9676b3\\n445409ec-7eaa-461d-8f29-4bec2eb9****\\n","errorExample":""}]', + 'title' => 'AddLiveStreamWatermark', + 'description' => '* You can call this operation to create a watermark template and configure information such as the watermark content and layout in the template.'."\n" + .'* After you create a watermark template, you must also call the [AddLiveStreamWatermarkRule](~~2848100~~) operation to add a watermark rule. A live stream in progress can contain the watermark only after the stream is re-ingested.'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'translator' => 'machine', + ], + 'DeleteLiveStreamWatermark' => [ + 'summary' => 'Deletes a specified watermark template.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the watermark template.'."\n" + ."\n" + .'> You can obtain the template ID by checking the value of the TemplateId parameter that is returned by the [AddLiveStreamWatermark](~~410759~~) operation.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '5c6a2a0df228-4a64-af62-20e91b******', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameters', + 'errorMessage' => '%s Please check and try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b******\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 5c6a2a0df228-4a64-af62-20e91b9676b3\\r\\n","errorExample":""}]', + 'title' => 'DeleteLiveStreamWatermark', + 'description' => 'This interface supports deleting the watermark template with the specified TemplateId for live streaming. '."\n" + .'## QPS Limitation'."\n" + .' The per-user QPS limit for this interface is 60 times/second. Exceeding this limit will result in API throttling, which may impact your business operations. Please use it reasonably. For more information, please refer to [QPS Limitation](~~343507~~).', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'UpdateLiveStreamWatermark' => [ + 'summary' => 'Updates a watermark template.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the watermark template.'."\n" + ."\n" + .'> You can obtain the template ID by checking the value of the TemplateId parameter that is returned by the [AddLiveStreamWatermark](~~410759~~) operation.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the watermark.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'livewatermark****', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The description of the watermark.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'my watermark', + ], + ], + [ + 'name' => 'RefWidth', + 'in' => 'query', + 'schema' => [ + 'description' => 'The width of the background video. Unit: pixel.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1920', + ], + ], + [ + 'name' => 'RefHeight', + 'in' => 'query', + 'schema' => [ + 'description' => 'The height of the background video. Unit: pixel.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1080', + ], + ], + [ + 'name' => 'XOffset', + 'in' => 'query', + 'schema' => [ + 'description' => 'The offset of the watermark along the x-axis. Unit: pixel.'."\n" + ."\n" + .'> In this case, the value of the RefWidth parameter is used as the reference. If the OffsetCorner parameter is set to TopLeft, the value of the XOffset parameter indicates the x-axis offset of the upper-left corner of the watermark relative to that of the background video. The directions from the coordinate axes to the center of the background video are positive. In other words, the x-axis is positive toward the right.'."\n", + 'type' => 'number', + 'format' => 'float', + 'required' => false, + 'example' => '50.0', + ], + ], + [ + 'name' => 'YOffset', + 'in' => 'query', + 'schema' => [ + 'description' => 'The offset of the watermark along the y-axis. Unit: pixel.'."\n" + ."\n" + .'> In this case, the value of the RefHeight parameter is used as the reference. If the OffsetCorner parameter is set to TopLeft, the value of the YOffset parameter indicates the y-axis offset of the upper-left corner of the watermark relative to that of the background video. The directions from the coordinate axes to the center of the background video are positive. In other words, the y-axis is positive downward.'."\n", + 'type' => 'number', + 'format' => 'float', + 'required' => false, + 'example' => '100.0', + ], + ], + [ + 'name' => 'Height', + 'in' => 'query', + 'schema' => [ + 'description' => 'The height of the watermark. Unit: pixel. The height of the watermark is scaled in proportion to the height of the background video.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '200', + ], + ], + [ + 'name' => 'Transparency', + 'in' => 'query', + 'schema' => [ + 'description' => 'The transparency of the watermark. A smaller value indicates a more transparent watermark. Valid values: 0 to 255.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '255', + ], + ], + [ + 'name' => 'OffsetCorner', + 'in' => 'query', + 'schema' => [ + 'description' => 'The position of the watermark. Valid values:'."\n" + ."\n" + .'* TopLeft: the upper-left corner.'."\n" + .'* TopRight: the upper-right corner.'."\n" + .'* BottomLeft: the lower-left corner.'."\n" + .'* BottomRight: the lower-right corner.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TopRight', + ], + ], + [ + 'name' => 'PictureUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The URL of the watermark image.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'http://example.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '5c6a2a0df228-4a64-af62-20e91b9676b3', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameters', + 'errorMessage' => '%s Please check and try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b9676b3\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 5c6a2a0df228-4a64-af62-20e91b9676b3\\r\\n","errorExample":""}]', + 'title' => 'UpdateLiveStreamWatermark', + 'description' => 'This operation allows you to modify the parameters of a watermark template with a specified 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 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' => ' ', + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'pull.aliyundoc.com', + ], + ], + [ + 'name' => 'App', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'Stream', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the stream that contains the watermark.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveStream****', + ], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The watermark template ID. You can call the [DescribeLiveStreamWatermarks](~~2848102~~) operation to obtain available watermark template IDs.'."\n" + ."\n" + .'> The TemplateId parameter is used to replace the watermark template ID during live streaming.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '749b7594-86d6-37b1-513b-e1e19845****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'BE9407FF-F897-4DBD-338D-98A750AD805F', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameters', + 'errorMessage' => '%s Please check and try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BE9407FF-F897-4DBD-338D-98A750AD805F\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\nBE9407FF-F897-4DBD-338D-98A750AD805F\\r\\n","errorExample":""}]', + 'title' => 'DynamicUpdateWaterMarkStreamRule', + 'description' => 'Dynamically updating a watermark means replacing the watermark template ID during live streaming. Before you call this operation to update a watermark, you must prepare the watermark template ID that is used for replacement. The watermark template ID is specified by the **TemplateId** parameter of this operation. You can call the [DescribeLiveStreamWatermarks](~~2848102~~) operation to obtain available watermark template IDs.'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the main streaming domain.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'live.yourdomain.com', + ], + ], + [ + 'name' => 'KeyWord', + 'in' => 'query', + 'schema' => [ + 'description' => 'The keyword used in the query. You can specify the template ID or name. Fuzzy search is supported for the name.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: 1.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of templates per page. Default value: 100.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '100', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The information about the watermark template.'."\n", + 'type' => 'object', + 'properties' => [ + 'Total' => [ + 'description' => 'The total number of watermark templates that meet the specified conditions.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '100', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '5c6a2a0df228-4a64- af62-20e91b9676b3', + ], + 'WatermarkList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Watermark' => [ + 'description' => 'Details of the watermark templates.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Type' => [ + 'description' => 'The watermark type.'."\n" + ."\n" + .'* 0: image. Only image watermarks are supported.'."\n" + .'* 1: text.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'XOffset' => [ + 'description' => 'The offset of the watermark along the x-axis. Unit: pixels.'."\n" + ."\n" + .'> The value of the RefWidth parameter is used as the reference. If the OffsetCorner parameter is set to TopLeft, the value of the XOffset parameter indicates the x-axis offset of the upper-left corner of the watermark relative to that of the background video. The directions from the coordinate axes to the center of the background video are positive. In other words, the x-axis is positive toward the right.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '50.0', + ], + 'RefWidth' => [ + 'description' => 'The width of the background video. Unit: pixels.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1920', + ], + 'YOffset' => [ + 'description' => 'The offset of the watermark along the y-axis. Unit: pixels.'."\n" + ."\n" + .'> The value of the RefHeight parameter is used as the reference. If the OffsetCorner parameter is set to TopLeft, the value of the YOffset parameter indicates the y-axis offset of the upper-left corner of the watermark relative to that of the background video. The directions from the coordinate axes to the center of the background video are positive. In other words, the y-axis is positive downward.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '100.0', + ], + 'Height' => [ + 'description' => 'The height of the watermark. Unit: pixels.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '200', + ], + 'RefHeight' => [ + 'description' => 'The height of the background video. Unit: pixels.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1080', + ], + 'PictureUrl' => [ + 'description' => 'The URL of the watermark image.'."\n", + 'type' => 'string', + 'example' => 'http://example.com', + ], + 'Transparency' => [ + 'description' => 'The transparency of the watermark. A smaller value indicates a more transparent watermark. Valid values: 0 to 255.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '255', + ], + 'Description' => [ + 'description' => 'The description of the watermark.'."\n", + 'type' => 'string', + 'example' => 'my watermark', + ], + 'OffsetCorner' => [ + 'description' => 'The position of the watermark.'."\n" + ."\n" + .'* TopLeft: the upper-left corner.'."\n" + .'* TopRight: the upper-right corner.'."\n" + .'* BottomLeft: the lower-left corner.'."\n" + .'* BottomRight: the lower-right corner.'."\n", + 'type' => 'string', + 'example' => 'TopRight', + ], + 'RuleCount' => [ + 'description' => 'The number of watermark rules configured for the domain name.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '12', + ], + 'Name' => [ + 'description' => 'The name of the watermark.'."\n", + 'type' => 'string', + 'example' => 'livewatermark****', + ], + 'TemplateId' => [ + 'description' => 'The ID of the watermark template.'."\n", + 'type' => 'string', + 'example' => '445409ec-7eaa-4 61d-8f29-4bec2eb9 ****', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameters', + 'errorMessage' => '%s Please check and try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Total\\": 100,\\n \\"RequestId\\": \\"5c6a2a0df228-4a64- af62-20e91b9676b3\\",\\n \\"WatermarkList\\": {\\n \\"Watermark\\": [\\n {\\n \\"Type\\": 0,\\n \\"XOffset\\": 50,\\n \\"RefWidth\\": 1920,\\n \\"YOffset\\": 100,\\n \\"Height\\": 200,\\n \\"RefHeight\\": 1080,\\n \\"PictureUrl\\": \\"http://example.com\\",\\n \\"Transparency\\": 255,\\n \\"Description\\": \\"my watermark\\",\\n \\"OffsetCorner\\": \\"TopRight\\",\\n \\"RuleCount\\": 12,\\n \\"Name\\": \\"livewatermark****\\",\\n \\"TemplateId\\": \\"445409ec-7eaa-4 61d-8f29-4bec2eb9 ****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 100\\n 5c6a2a0df228-4a64- af62-20e91b9676b3\\n \\n \\n 0\\n 50\\n 1920\\n 100\\n 200\\n 1080\\n http://example.com\\n 255\\n my watermark\\n TopRight\\n 12\\n livewatermark****\\n 445409ec-7eaa-4 61d-8f29-4bec2eb9 ****\\n \\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveStreamWatermarks', + 'description' => 'You can call this operation to query watermark templates. You can use the PageNumber parameter to view results on separate pages. Make sure that you configure parameters properly when you call this operation.'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the custom rule.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'WatermarkRule****', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.aliyundoc.com', + ], + ], + [ + 'name' => 'App', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'Stream', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream. The following rules apply:'."\n" + ."\n" + .'* A stream name can be exactly matched. Example: liveStreamA.'."\n" + .'* Fuzzy match is also supported. The use of an asterisk (`*`) allows all approximate matches to be found.'."\n" + .'* You can place the asterisk before or after an approximate string.'."\n" + ."\n\n" + ."\n" + .'>* Fuzzy match: Only one asterisk (`*`) before or after an approximate string is allowed. The approximate string must be enclosed in `()`. Separate multiple strings with vertical bars (`|`).'."\n" + .'>* For example, `*(t1|t2)` matches all streams whose name has the `t1` or `t2` suffix, and `(abc|123)*` matches all streams whose name has the `abc` or `123` prefix.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveStreamA', + ], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the watermark template.'."\n" + ."\n" + .'> You can obtain the template ID by checking the value of the TemplateId parameter that is returned by the [AddLiveStreamWatermark](~~410759~~) operation.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The description of the custom rule.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'my rule', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RuleId' => [ + 'description' => 'The ID of the watermark rule.'."\n", + 'type' => 'string', + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '5c6a2a0df228-4a64-af62-20e91b96****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameters', + 'errorMessage' => '%s Please check and try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RuleId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n5c6a2a0df228-4a64-af62-20e91b9676b3\\n445409ec-7eaa-461d-8f29-4bec2eb9****\\n","errorExample":""}]', + 'title' => 'AddLiveStreamWatermarkRule', + 'description' => 'After calling the [AddLiveStreamWatermark](~~469416~~) API to add a watermark template, you can use this interface to add watermark rules. '."\n" + .'## QPS Limit'."\n" + .' The QPS limit for this interface per user is 60 times/second. Exceeding the limit will result in API calls being throttled, which may impact your business. Please use it reasonably. For more information, see [QPS Limit](~~343507~~).', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteLiveStreamWatermarkRule' => [ + 'summary' => 'Deletes a watermark rule.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.aliyundoc.com', + ], + ], + [ + 'name' => 'App', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'Stream', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the stream. The following matching rules apply:'."\n" + ."\n" + .'* A stream name can be exactly matched, Example: liveStreamA.'."\n" + .'* Fuzzy match is also supported. The use of an asterisk (`*`) allows all approximate matches to be found.'."\n" + .'* You can place the asterisk before or after an approximate string.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* Fuzzy match: Only one asterisk (`*`) before or after an approximate string is allowed. The approximate string must be enclosed in `()`. Separate multiple strings with vertical bars (`|`).'."\n" + ."\n" + .'* For example, `*(t1|t2)` matches all streams whose name has the `t1` or `t2` suffix, and `(abc|123)*` matches all streams whose name has the `abc` or `123` prefix.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveStreamA', + ], + ], + [ + 'name' => 'RuleId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the watermark rule.'."\n" + ."\n" + .'> You can obtain the rule ID by checking the value of the RuleId parameter that is returned by the [AddLiveStreamWatermarkRule](~~2848100~~) operation.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '445409ec-7eaa-461d -8f29-4bec2eb9****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5c6a2a0df228-4a64- af62-20e91******', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameters', + 'errorMessage' => '%s Please check and try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64- af62-20e91******\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n5c6a2a0df228-4a64- af62-20e91b9676b3\\r\\n","errorExample":""}]', + 'title' => 'DeleteLiveStreamWatermarkRule', + 'description' => 'You can call this operation to delete a watermark rule with a specified ID.'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'UpdateLiveStreamWatermarkRule' => [ + 'summary' => 'Updates a watermark rule.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'RuleId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the watermark rule.'."\n" + ."\n" + .'> You can obtain the rule ID by checking the value of the RuleId parameter that is returned by the [AddLiveStreamWatermarkRule](~~2848100~~) operation.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the custom rule.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'WatermarkRule****', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The description of the custom rule.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'my rule', + ], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the watermark template.'."\n" + ."\n" + .'> You can obtain the template ID by checking the value of the TemplateId parameter that is returned by the [AddLiveStreamWatermark](~~2848096~~) operation.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9 ****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5c6a2a0df228-4a64-af62-20e91b9676b3', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameters', + 'errorMessage' => '%s Please check and try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b9676b3\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n5c6a2a0df228-4a64-af62-20e91b9676b3\\r\\n","errorExample":""}]', + 'title' => 'UpdateLiveStreamWatermarkRule', + 'description' => 'This operation allows you to modify the parameters of a watermark rule with a specified ID.'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLiveStreamWatermarkRules' => [ + 'summary' => 'Queries 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'live.yourdomain.com', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. If you do not specify this parameter, the default value 1 is used.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. If you do not specify this parameter, the default value 100 is used.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '100', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Total' => [ + 'description' => 'The total number of entries that meet the specified conditions.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '100', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5c6a2a0df228-4a64- af62-20e91b9676b3', + ], + 'RuleInfoList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RuleInfo' => [ + 'description' => 'The watermark rules.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the watermark rule.'."\n", + 'type' => 'object', + 'properties' => [ + 'Domain' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.aliyundoc.com', + ], + 'Description' => [ + 'description' => 'The description of the custom rule.'."\n", + 'type' => 'string', + 'example' => 'my rule', + ], + 'App' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'example' => 'liveApp****', + ], + 'Stream' => [ + 'description' => 'The name of the live stream. The following matching rules apply:'."\n" + ."\n" + .'* A stream name can be exactly matched. Example: liveStreamA.'."\n" + .'* Fuzzy match is also supported. The use of an asterisk (`*`) allows all approximate matches to be found.'."\n" + .'* You can place the asterisk before or after an approximate string.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* Fuzzy match: Only one asterisk (`*`) before or after an approximate string is allowed. The approximate string must be enclosed in `()`. Separate multiple strings with vertical bars (`|`).'."\n" + ."\n" + .'* For example, `*(t1|t2)` matches all streams whose name has the `t1` or `t2` suffix, and `(abc|123)*` matches all streams whose name has the `abc` or `123` prefix.'."\n", + 'type' => 'string', + 'example' => 'liveStreamA', + ], + 'Name' => [ + 'description' => 'The name of the custom rule.'."\n", + 'type' => 'string', + 'example' => 'WatermarkRule****', + ], + 'TemplateId' => [ + 'description' => 'The ID of the watermark template.'."\n" + ."\n" + .'> You can obtain the template ID by checking the value of the TemplateId parameter that is returned by the [AddLiveStreamWatermark](~~2848096~~) operation.'."\n", + 'type' => 'string', + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9 ****', + ], + 'RuleId' => [ + 'description' => 'The ID of the watermark rule.'."\n" + ."\n" + .'> You can obtain the rule ID by checking the value of the RuleId parameter that is returned by the [AddLiveStreamWatermarkRule](~~2848100~~) operation.'."\n", + 'type' => 'string', + 'example' => '445409ec-7eaa-461d -8f29-4bec2eb9****', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameters', + 'errorMessage' => '%s Please check and try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Total\\": 100,\\n \\"RequestId\\": \\"5c6a2a0df228-4a64- af62-20e91b9676b3\\",\\n \\"RuleInfoList\\": {\\n \\"RuleInfo\\": [\\n {\\n \\"Domain\\": \\"example.aliyundoc.com\\",\\n \\"Description\\": \\"my rule\\",\\n \\"App\\": \\"liveApp****\\",\\n \\"Stream\\": \\"liveStreamA\\",\\n \\"Name\\": \\"WatermarkRule****\\",\\n \\"TemplateId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9 ****\\",\\n \\"RuleId\\": \\"445409ec-7eaa-461d -8f29-4bec2eb9****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n \\n liveApp****\\n my rule\\n 445409ec-7eaa-461d -8f29-4bec2eb9****\\n liveStreamA\\n example.aliyundoc.com\\n 445409ec-7eaa-461d-8f29-4bec2eb9 ****\\n WatermarkRule****\\n \\n\\n5c6a2a0df228-4a64- af62-20e91b9676b3\\n","errorExample":""}]', + 'title' => 'DescribeLiveStreamWatermarkRules', + 'description' => 'When you call this operation, you can specify the PageNumber and PageSize parameters to view watermark rules on separate pages. Make sure that the parameter settings meet the requirements.'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ListEdgeTranscodeTemplate' => [ + 'summary' => 'Queries the 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the data center.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '******3b-4d18-395c-8106-ff21a6******', + ], + ], + [ + 'name' => 'Type', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of edge transcoding. Valid values:'."\n" + ."\n" + .'* **common**: standard transcoding and Narrowband HD™ 1.0 transcoding.'."\n" + .'* **nbhd-2**: Narrowband HD™ 2.0 transcoding.'."\n" + .'* **ultra-hd**: ultra-high definition transcoding.'."\n" + ."\n" + .'> If you do not specify this parameter, the query result is filtered based on the type of edge transcoding on which you are granted permissions.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'nbhd-2', + ], + ], + [ + 'name' => 'VideoCodec', + 'in' => 'query', + 'schema' => [ + 'description' => 'The video encoding format. Valid values:'."\n" + ."\n" + .'* H.264'."\n" + .'* H.265'."\n" + ."\n" + .'> If you do not specify this parameter, the query result is filtered based on the video encoding format on which you are granted permissions.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'H.264', + ], + ], + [ + 'name' => 'PageNo', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: 1.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Valid values: 1 to 100. Default value: 10.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '20', + ], + ], + [ + 'name' => 'SortBy', + 'in' => 'query', + 'schema' => [ + 'description' => 'The sorting order of the templates by creation time. Default value: desc. Valid values:'."\n" + ."\n" + .'* desc: descending order.'."\n" + .'* asc: ascending order.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'desc', + ], + ], + [ + 'name' => 'Keyword', + 'in' => 'query', + 'schema' => [ + 'description' => 'The keyword of the query.'."\n" + ."\n" + .'* You can specify a template ID for an exact match.'."\n" + .'* You can also specify a template name for a fuzzy match.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'baseline', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '******3B-0E1A-586A-AC29-742247******', + ], + 'TemplateList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Template' => [ + 'description' => 'The details of the edge transcoding templates.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The details of the edge transcoding templates.'."\n", + 'type' => 'object', + 'properties' => [ + 'Bitrate' => [ + 'description' => 'The bitrate. If a numeric value is returned, a fixed bitrate is configured for the output stream. If ws is returned, the output stream maintains the same bitrate as the input stream.'."\n", + 'type' => 'string', + 'example' => '3000', + ], + 'Codec' => [ + 'description' => 'The video encoding format. Valid values:'."\n" + ."\n" + .'* H.264'."\n" + .'* H.265'."\n", + 'type' => 'string', + 'example' => 'H.264', + ], + 'CreateTime' => [ + 'description' => 'The time when the image template was created.'."\n", + 'type' => 'string', + 'example' => '2023-07-25T02:48:58Z', + ], + 'Fps' => [ + 'description' => 'The frame rate. If a numeric value is returned, a fixed frame rate is configured for the output stream. If ws is returned, the output stream maintains the same frame rate as the input stream.'."\n", + 'type' => 'string', + 'example' => '30', + ], + 'Gop' => [ + 'description' => 'The group of pictures (GOP) size. The GOP size can be defined by the number of frames or the time interval between I-frames. If ws is returned, the output stream maintains the same GOP size as the input stream.'."\n", + 'type' => 'string', + 'example' => '2s', + ], + 'Name' => [ + 'description' => 'The template name.'."\n", + 'type' => 'string', + 'example' => 'my_template', + ], + 'Resolution' => [ + 'description' => 'The resolution. If width and height values are returned, a fixed resolution is configured for the output stream. If ws is returned, the output stream maintains the same resolution as the input stream.'."\n" + ."\n" + .'> If the width value is -1, the width of the output video is adapted to a fixed height. If the height value is -2, the height of the output video is adapted to a fixed width.'."\n", + 'type' => 'string', + 'example' => '1920*1080', + ], + 'TemplateId' => [ + 'description' => 'The ID of the edge transcoding template.'."\n", + 'type' => 'string', + 'example' => '9b1571b513cb44f7a1ba6ae561ff46f7', + ], + 'Type' => [ + 'description' => 'The type of edge transcoding.'."\n", + 'type' => 'string', + 'example' => 'common', + ], + ], + ], + ], + ], + ], + 'TotalCount' => [ + 'description' => 'The total number of templates returned.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '100', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\",\\n \\"TemplateList\\": {\\n \\"Template\\": [\\n {\\n \\"Bitrate\\": \\"3000\\",\\n \\"Codec\\": \\"H.264\\",\\n \\"CreateTime\\": \\"2023-07-25T02:48:58Z\\",\\n \\"Fps\\": \\"30\\",\\n \\"Gop\\": \\"2s\\",\\n \\"Name\\": \\"my_template\\",\\n \\"Resolution\\": \\"1920*1080\\",\\n \\"TemplateId\\": \\"9b1571b513cb44f7a1ba6ae561ff46f7\\",\\n \\"Type\\": \\"common\\"\\n }\\n ]\\n },\\n \\"TotalCount\\": 100\\n}","errorExample":""},{"type":"xml","example":"\\n ******3B-0E1A-586A-AC29-742247******\\n \\n 3000\\n H.264\\n 2023-07-25T02:48:58Z\\n 30\\n 2s\\n my_template\\n 1920*1080\\n 9b1571b513cb44f7a1ba6ae561ff46f7\\n common\\n \\n 100\\n","errorExample":""}]', + 'title' => 'ListEdgeTranscodeTemplate', + 'description' => '* You can call this operation to query the list of edge transcoding templates.'."\n" + .'* To call this operation, make sure that you have the permissions to access the edge transcoding feature.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 6,000 times per minute 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", + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the data center.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '******3b-4d18-395c-8106-ff21a6******', + ], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The template ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '****a046-263c-3560-978a-fb287666****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '******3B-0E1A-586A-AC29-742247******', + ], + 'Template' => [ + 'description' => 'The details of the edge transcoding template.'."\n", + 'type' => 'object', + 'properties' => [ + 'Bitrate' => [ + 'description' => 'The bitrate. If a numeric value is returned, a fixed bitrate is configured for the output stream. If ws is returned, the output stream maintains the same bitrate as the input stream.'."\n", + 'type' => 'string', + 'example' => '3000', + ], + 'Codec' => [ + 'description' => 'The video encoding format. Valid values:'."\n" + ."\n" + .'* H.264'."\n" + .'* H.265'."\n", + 'type' => 'string', + 'example' => 'H.264', + ], + 'CreateTime' => [ + 'description' => 'The time when the template was created.'."\n", + 'type' => 'string', + 'example' => '2023-07-25T02:48:58Z', + ], + 'Fps' => [ + 'description' => 'The frame rate. If a numeric value is returned, a fixed frame rate is configured for the output stream. If ws is returned, the output stream maintains the same frame rate as the input stream.'."\n", + 'type' => 'string', + 'example' => '30', + ], + 'Gop' => [ + 'description' => 'The group of pictures (GOP) size. The GOP size can be defined by the number of frames or the time interval between I-frames. If ws is returned, the output stream maintains the same GOP size as the input stream.'."\n", + 'type' => 'string', + 'example' => '2s', + ], + 'Name' => [ + 'description' => 'The template name.'."\n", + 'type' => 'string', + 'example' => 'my_template', + ], + 'Resolution' => [ + 'description' => 'The resolution. If width and height values are returned, a fixed resolution is configured for the output stream. If ws is returned, the output stream maintains the same resolution as the input stream.'."\n" + ."\n" + .'> If the width value is -1, the width of the output stream is adapted to the height. If the height value is -2, the height of the output stream is adapted to the width.'."\n", + 'type' => 'string', + 'example' => '1920*1080', + ], + 'TemplateId' => [ + 'description' => 'The template ID.'."\n", + 'type' => 'string', + 'example' => '9b1571b513cb44f7a1ba6ae561ff****', + ], + 'Type' => [ + 'description' => 'The type of edge transcoding.'."\n", + 'type' => 'string', + 'example' => 'common', + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'TemplateNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\",\\n \\"Template\\": {\\n \\"Bitrate\\": \\"3000\\",\\n \\"Codec\\": \\"H.264\\",\\n \\"CreateTime\\": \\"2023-07-25T02:48:58Z\\",\\n \\"Fps\\": \\"30\\",\\n \\"Gop\\": \\"2s\\",\\n \\"Name\\": \\"my_template\\",\\n \\"Resolution\\": \\"1920*1080\\",\\n \\"TemplateId\\": \\"9b1571b513cb44f7a1ba6ae561ff****\\",\\n \\"Type\\": \\"common\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n ******3B-0E1A-586A-AC29-742247******\\n \\n","errorExample":""}]', + 'title' => 'GetEdgeTranscodeTemplate', + 'description' => '* You can call this operation to query the details of an edge transcoding template.'."\n" + .'* To call this operation, make sure that you have the permissions to access the edge transcoding feature.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 6,000 times per minute 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", + ], + 'CreateEdgeTranscodeJob' => [ + 'summary' => 'Creates an edge transcoding task.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the data center.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '******3b-4d18-395c-8106-ff21a6******', + ], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => [ + 'description' => 'The task name. The name can contain letters, digits, hyphens (-), and underscores (\\_). The name must be 255 characters in length.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'task1', + ], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The template ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '****96e8864746a0b6f3****', + ], + ], + [ + 'name' => 'StreamInput', + 'in' => 'query', + 'schema' => [ + 'description' => 'The URL of the input stream.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'rtmp://mydomain/app/stream1', + ], + ], + [ + 'name' => 'StreamOutput', + 'in' => 'query', + 'schema' => [ + 'description' => 'The URL of the output stream.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'rtmp://testdomain/app/stream2', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'JobId' => [ + 'description' => 'The ID of the edge transcoding task.'."\n", + 'type' => 'string', + 'example' => '****20b48fb04483915d4f2cd8ac****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '******3B-0E1A-586A-AC29-742247******', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'TemplateNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"****20b48fb04483915d4f2cd8ac****\\",\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ****20b48fb04483915d4f2cd8ac****\\n ******3B-0E1A-586A-AC29-742247******\\n","errorExample":""}]', + 'title' => 'CreateEdgeTranscodeJob', + 'description' => '* You can call this operation to create an edge transcoding task.'."\n" + .'* To call this operation, make sure that you have the permissions to access the edge transcoding feature.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 6,000 times per minute 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", + ], + 'DeleteEdgeTranscodeJob' => [ + 'summary' => 'Deletes an edge transcoding task.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the data center.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '******3b-4d18-395c-8106-ff21a6******', + ], + ], + [ + 'name' => 'JobId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the edge transcoding task.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '****20b48fb04483915d4f2cd8ac****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '******3B-0E1A-586A-AC29-742247******', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'JobNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ******3B-0E1A-586A-AC29-742247******\\n","errorExample":""}]', + 'title' => 'DeleteEdgeTranscodeJob', + 'description' => '* You can call this operation to delete an edge transcoding task.'."\n" + .'* To call this operation, make sure that you have the permissions to access the edge transcoding feature.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 6,000 times per minute 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", + ], + 'ListEdgeTranscodeJob' => [ + 'summary' => 'Queries edge transcoding tasks.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the data center.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cluster-1', + ], + ], + [ + 'name' => 'Type', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of edge transcoding. Valid values:'."\n" + ."\n" + .'* common: standard transcoding and Narrowband HD™ 1.0 transcoding.'."\n" + .'* nbhd-2: Narrowband HD™ 2.0 transcoding'."\n" + .'* ultra-hd: ultra-high definition transcoding'."\n" + ."\n" + .'> If you do not specify this parameter, the query results are filtered based on the types of edge transcoding on which you are granted permissions.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'common', + ], + ], + [ + 'name' => 'Status', + 'in' => 'query', + 'schema' => [ + 'description' => 'The task status. Valid values:'."\n" + ."\n" + .'* 0: not started'."\n" + .'* 1: running'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '0', + ], + ], + [ + 'name' => 'PageNo', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: 1.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: 10. Maximum value: 100.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '20', + ], + ], + [ + 'name' => 'SortBy', + 'in' => 'query', + 'schema' => [ + 'description' => 'The sort order of the tasks by creation time. Default value: desc. Valid values:'."\n" + ."\n" + .'* desc: descending order'."\n" + .'* asc: ascending order'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'desc', + ], + ], + [ + 'name' => 'Keyword', + 'in' => 'query', + 'schema' => [ + 'description' => 'The keyword of the query.'."\n" + ."\n" + .'* You can specify a task ID for an exact match.'."\n" + .'* You can specify a task name for a fuzzy match.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'JobList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Job' => [ + 'description' => 'The edge transcoding tasks.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'CreateTime' => [ + 'description' => 'The time when the task was created.'."\n", + 'type' => 'string', + 'example' => '2023-07-24T16:44:55Z', + ], + 'JobId' => [ + 'description' => 'The ID of the task.'."\n", + 'type' => 'string', + 'example' => '****20b48fb04483915d4f2cd8ac****', + ], + 'LastStartAt' => [ + 'description' => 'The time when the task was last started.'."\n", + 'type' => 'string', + 'example' => '2023-07-25T02:48:58Z', + ], + 'LastStopAt' => [ + 'description' => 'The time when the task was last stopped.'."\n", + 'type' => 'string', + 'example' => '2023-07-25T05:48:58Z', + ], + 'Name' => [ + 'description' => 'The name of the task.'."\n", + 'type' => 'string', + 'example' => 'my_job', + ], + 'Status' => [ + 'description' => 'The status of the task. Valid values:'."\n" + ."\n" + .'* 0: not started'."\n" + .'* 1: in progress'."\n", + 'type' => 'string', + 'example' => '0', + ], + 'StreamInput' => [ + 'description' => 'The URL of the input stream.'."\n", + 'type' => 'string', + 'example' => 'rtmp://mydomain/app/stream1', + ], + 'StreamOutput' => [ + 'description' => 'The URL of the output stream.'."\n", + 'type' => 'string', + 'example' => 'rtmp://testdomain/app/stream2', + ], + 'TemplateId' => [ + 'description' => 'The ID of the edge transcoding template used by the task.'."\n", + 'type' => 'string', + 'example' => '9b1571b513cb44f7a1ba6ae561ff****', + ], + 'TemplateName' => [ + 'description' => 'The name of the edge transcoding template used by the task.'."\n", + 'type' => 'string', + 'example' => 'my_template', + ], + 'Type' => [ + 'description' => 'The type of edge transcoding. Valid values:'."\n" + ."\n" + .'* common: standard transcoding and Narrowband HD™ 1.0 transcoding.'."\n" + .'* nbhd-2: Narrowband HD™ 2.0 transcoding'."\n" + .'* ultra-hd: ultra-high definition transcoding'."\n", + 'type' => 'string', + 'example' => 'common', + ], + ], + 'description' => '', + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '******3B-0E1A-586A-AC29-742247******', + ], + 'TotalCount' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '100', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobList\\": {\\n \\"Job\\": [\\n {\\n \\"CreateTime\\": \\"2023-07-24T16:44:55Z\\",\\n \\"JobId\\": \\"****20b48fb04483915d4f2cd8ac****\\",\\n \\"LastStartAt\\": \\"2023-07-25T02:48:58Z\\",\\n \\"LastStopAt\\": \\"2023-07-25T05:48:58Z\\",\\n \\"Name\\": \\"my_job\\",\\n \\"Status\\": \\"0\\",\\n \\"StreamInput\\": \\"rtmp://mydomain/app/stream1\\",\\n \\"StreamOutput\\": \\"rtmp://testdomain/app/stream2\\",\\n \\"TemplateId\\": \\"9b1571b513cb44f7a1ba6ae561ff****\\",\\n \\"TemplateName\\": \\"my_template\\",\\n \\"Type\\": \\"common\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\",\\n \\"TotalCount\\": 100\\n}","errorExample":""},{"type":"xml","example":"\\n \\n 2023-07-24T16:44:55Z\\n ****20b48fb04483915d4f2cd8ac****\\n 2023-07-25T02:48:58Z\\n 2023-07-25T05:48:58Z\\n my_job\\n 0\\n rtmp://mydomain/app/stream1\\n rtmp://testdomain/app/stream2\\n 9b1571b513cb44f7a1ba6ae561ff****\\n my_template\\n common\\n \\n ******3B-0E1A-586A-AC29-742247******\\n 100\\n","errorExample":""}]', + 'title' => 'ListEdgeTranscodeJob', + 'description' => '* You can call this operation to query edge transcoding tasks.'."\n" + .'* To call this operation, make sure that you have the permissions to access the edge transcoding feature.'."\n" + .'* You can query only tasks created or modified in the last 180 days.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 6,000 times per minute 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", + 'requestParamsDescription' => '## [](#)Notes about the request parameters'."\n" + ."\n" + .'* You can specify Type and Status to filter the query results by task type and status.'."\n" + .'* You can specify SortBy to sort the query results by creation time. By default, descending order is used.'."\n" + .'* You can set Keyword to a task ID for an exact match or a task name for a fuzzy match.'."\n", + ], + 'GetEdgeTranscodeJob' => [ + 'summary' => 'Queries the details of an edge transcoding task.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the data center.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '******3b-4d18-395c-8106-ff21a6******', + ], + ], + [ + 'name' => 'JobId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the edge transcoding task.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '****20b48fb04483915d4f2cd8ac****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Job' => [ + 'description' => 'The details of the edge transcoding task.'."\n", + 'type' => 'object', + 'properties' => [ + 'CreateTime' => [ + 'description' => 'The time when the task was created.'."\n", + 'type' => 'string', + 'example' => '2023-07-24T16:44:55Z', + ], + 'JobId' => [ + 'description' => 'The ID of the task.'."\n", + 'type' => 'string', + 'example' => '****20b48fb04483915d4f2cd8ac****', + ], + 'LastStartAt' => [ + 'description' => 'The time when the task was last started.'."\n", + 'type' => 'string', + 'example' => '2023-07-25T02:48:58Z', + ], + 'LastStopAt' => [ + 'description' => 'The time when the task was last stopped.'."\n", + 'type' => 'string', + 'example' => '2023-07-25T05:48:58Z', + ], + 'Name' => [ + 'description' => 'The name of the task.'."\n", + 'type' => 'string', + 'example' => 'my_job', + ], + 'Status' => [ + 'description' => 'The status of the task. Valid values:'."\n" + ."\n" + .'* 0: not started'."\n" + .'* 1: in progress'."\n", + 'type' => 'string', + 'example' => '0', + ], + 'StreamInput' => [ + 'description' => 'The URL of the input stream.'."\n", + 'type' => 'string', + 'example' => 'rtmp://mydomain/app/stream1', + ], + 'StreamOutput' => [ + 'description' => 'The URL of the output stream.'."\n", + 'type' => 'string', + 'example' => 'rtmp://testdomain/app/stream2', + ], + 'TemplateId' => [ + 'description' => 'The ID of the edge transcoding template used by the task.'."\n", + 'type' => 'string', + 'example' => '9b1571b513cb44f7a1ba6ae561ff****', + ], + 'TemplateName' => [ + 'description' => 'The name of the edge transcoding template used by the task.'."\n", + 'type' => 'string', + 'example' => 'my_template', + ], + 'Type' => [ + 'description' => 'The type of edge transcoding. Valid values:'."\n" + ."\n" + .'* common: standard transcoding and Narrowband HD™ 1.0 transcoding'."\n" + .'* nbhd-2: Narrowband HD™ 2.0 transcoding'."\n" + .'* ultra-hd: ultra-high definition transcoding'."\n", + 'type' => 'string', + 'example' => 'common', + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '******3B-0E1A-586A-AC29-742247******', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'JobNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Job\\": {\\n \\"CreateTime\\": \\"2023-07-24T16:44:55Z\\",\\n \\"JobId\\": \\"****20b48fb04483915d4f2cd8ac****\\",\\n \\"LastStartAt\\": \\"2023-07-25T02:48:58Z\\",\\n \\"LastStopAt\\": \\"2023-07-25T05:48:58Z\\",\\n \\"Name\\": \\"my_job\\",\\n \\"Status\\": \\"0\\",\\n \\"StreamInput\\": \\"rtmp://mydomain/app/stream1\\",\\n \\"StreamOutput\\": \\"rtmp://testdomain/app/stream2\\",\\n \\"TemplateId\\": \\"9b1571b513cb44f7a1ba6ae561ff****\\",\\n \\"TemplateName\\": \\"my_template\\",\\n \\"Type\\": \\"common\\"\\n },\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n \\n 2023-07-24T16:44:55Z\\n ****20b48fb04483915d4f2cd8ac****\\n 2023-07-25T02:48:58Z\\n 2023-07-25T05:48:58Z\\n my_job\\n 0\\n rtmp://mydomain/app/stream1\\n rtmp://testdomain/app/stream2\\n 9b1571b513cb44f7a1ba6ae561ff****\\n my_template\\n common\\n \\n ******3B-0E1A-586A-AC29-742247******\\n","errorExample":""}]', + 'title' => 'GetEdgeTranscodeJob', + 'description' => 'To call this operation, make sure that you have the permissions to access the edge transcoding feature.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 6,000 times per minute 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", + ], + 'UpdateEdgeTranscodeJob' => [ + 'summary' => 'Updates 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the data center.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '******3b-4d18-395c-8106-ff21a6******', + ], + ], + [ + 'name' => 'JobId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the edge transcoding task.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '****20b48fb04483915d4f2cd8ac****', + ], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => [ + 'description' => 'The task name.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'task1', + ], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The template ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '****96e8864746a0b6f3****', + ], + ], + [ + 'name' => 'StreamInput', + 'in' => 'query', + 'schema' => [ + 'description' => 'The URL of the input stream.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rtmp://mydomain/app/stream1', + ], + ], + [ + 'name' => 'StreamOutput', + 'in' => 'query', + 'schema' => [ + 'description' => 'The URL of the output stream.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rtmp://testdomain/app/stream2', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'JobId' => [ + 'description' => 'The ID of the edge transcoding task.'."\n", + 'type' => 'string', + 'example' => '****20b48fb04483915d4f2cd8ac****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '******3B-0E1A-586A-AC29-742247******', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'TemplateNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'JobNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"****20b48fb04483915d4f2cd8ac****\\",\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ****20b48fb04483915d4f2cd8ac****\\n ******3B-0E1A-586A-AC29-742247******\\n","errorExample":""}]', + 'title' => 'UpdateEdgeTranscodeJob', + 'description' => '* You can call this operation to update an edge transcoding task.'."\n" + .'* To call this operation, make sure that you have the permissions to access the edge transcoding feature and the edge transcoding task that you specify is not started.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 6,000 times per minute 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", + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the data center.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '******3b-4d18-395c-8106-ff21a6******', + ], + ], + [ + 'name' => 'JobId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the edge transcoding task.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '****20b48fb04483915d4f2cd8ac****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'JobId' => [ + 'description' => 'The ID of the edge transcoding task.'."\n", + 'type' => 'string', + 'example' => '****20b48fb04483915d4f2cd8ac****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '******3B-0E1A-586A-AC29-742247******', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'UserTaskExceed', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 403 => [ + [ + 'errorCode' => 'UserQuotaExceed', + 'errorMessage' => 'Quota exceeded: %s.', + ], + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'JobNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"****20b48fb04483915d4f2cd8ac****\\",\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ****20b48fb04483915d4f2cd8ac****\\n ******3B-0E1A-586A-AC29-742247******\\n","errorExample":""}]', + 'title' => 'StartEdgeTranscodeJob', + 'description' => '* You can call this operation to start an edge transcoding task.'."\n" + .'* To call this operation, make sure that you have the permissions to access the edge transcoding feature and the edge transcoding task that you specify is not started.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 6,000 times per minute 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", + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the data center.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '******3b-4d18-395c-8106-ff21a6******', + ], + ], + [ + 'name' => 'JobId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the edge transcoding task.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '****20b48fb04483915d4f2cd8ac****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'JobId' => [ + 'description' => 'The ID of the edge transcoding task.'."\n", + 'type' => 'string', + 'example' => '****20b48fb04483915d4f2cd8ac****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '******3B-0E1A-586A-AC29-742247******', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'JobNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"****20b48fb04483915d4f2cd8ac****\\",\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ****20b48fb04483915d4f2cd8ac****\\n ******3B-0E1A-586A-AC29-742247******\\n","errorExample":""}]', + 'title' => 'StopEdgeTranscodeJob', + 'description' => '* You can call this operation to stop an edge transcoding task.'."\n" + .'* To call this operation, make sure that you have the permissions to access the edge transcoding feature and the edge transcoding task that you specify is running.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 6,000 times per minute 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", + ], + 'EnableLiveRealtimeLogDelivery' => [ + 'summary' => 'Enables real-time log delivery for one or more domain names.', + 'methods' => [ + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATURElive066BXV', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain for which you want to enable real-time log delivery.'."\n" + ."\n" + .'Separate multiple streaming domains with commas (,).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '9732E117-8A37-49FD-A36F-ABBB87556CA7', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Unauthorized', + 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', + ], + ], + 404 => [ + [ + 'errorCode' => 'Domain.NotFound', + 'errorMessage' => 'Domain not found', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9732E117-8A37-49FD-A36F-ABBB87556CA7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 9732E117-8A37-49FD-A36F-ABBB87556CA7\\n","errorExample":""}]', + 'title' => 'EnableLiveRealtimeLogDelivery', + 'description' => '##'."\n" + ."\n" + .'This operation is applicable to only streaming domains. If you want to configure real-time log delivery for an ingest domain, [submit a ticket](https://workorder-intl.console.aliyun.com/?spm=5176.12818093.nav-right.dticket.6cb216d07otFWR#/ticket/createIndex).'."\n" + ."\n" + .'## QPS limit'."\n" + ."\n" + .'You can call this operation up to 6,000 times per minute 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](~~343507~~).'."\n", + '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.|', + ], + 'DisableLiveRealtimeLogDelivery' => [ + 'summary' => 'Suspends real-time log delivery for one or more domain names.', + 'methods' => [ + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATURElive066BXV', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain for which you want to suspend real-time log delivery. Separate multiple streaming domains with commas (,).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '9732E117-8A37-49FD-A36F-ABBB87556CA7', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Unauthorized', + 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', + ], + ], + 404 => [ + [ + 'errorCode' => 'Domain.NotFound', + 'errorMessage' => 'Domain not found', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9732E117-8A37-49FD-A36F-ABBB87556CA7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 9732E117-8A37-49FD-A36F-ABBB87556CA7\\n","errorExample":""}]', + 'title' => 'DisableLiveRealtimeLogDelivery', + 'description' => 'Obtain a domain name for which real-time log delivery is enabled, and then call this operation to suspend real-time log delivery for the domain name.'."\n" + ."\n" + .'This operation is applicable to only streaming domains. If you want to configure real-time log delivery for an ingest domain, [submit a ticket](https://workorder-intl.console.aliyun.com/?spm=5176.12818093.nav-right.dticket.6cb216d07otFWR#/ticket/createIndex).'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 6,000 times per minute 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", + '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.|', + ], + 'ModifyLiveRealtimeLogDelivery' => [ + 'summary' => 'Modifies the configuration of 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Project', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the Log Service project that is used for real-time log delivery.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'project_example', + ], + ], + [ + 'name' => 'Logstore', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the Logstore to which log entries are delivered.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'logstore_example', + ], + ], + [ + 'name' => 'Region', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the Log Service project is deployed.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain for which you want to modify the configuration of real-time log delivery.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '9732E117-8A37-49FD-A36F-ABBB87556CA7', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Unauthorized', + 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', + ], + ], + 404 => [ + [ + 'errorCode' => 'Domain.NotFound', + 'errorMessage' => 'Domain not found', + ], + [ + 'errorCode' => 'LogstoreNotExist', + 'errorMessage' => 'Logstore does not exist', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9732E117-8A37-49FD-A36F-ABBB87556CA7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 9732E117-8A37-49FD-A36F-ABBB87556CA7\\n","errorExample":""}]', + 'title' => 'ModifyLiveRealtimeLogDelivery', + 'description' => '* You can call this operation to modify the configuration of real-time log delivery for a domain name. Logs for a domain name can be delivered to only one Logstore.'."\n" + ."\n" + .'This operation is applicable to only streaming domains. If you want to configure real-time log delivery for an ingest domain, [submit a ticket](https://workorder-intl.console.aliyun.com/?spm=5176.12818093.nav-right.dticket.6cb216d07otFWR#/ticket/createIndex).'."\n" + ."\n" + .'* You can call the [DescribeLiveDomainRealtimeLogDelivery](~~2848121~~) operation to query the Project, Logstore, and Region parameters.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 6,000 times per minute 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", + '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.|', + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Project', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the Log Service project that is used for real-time log delivery.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'test_project', + ], + ], + [ + 'name' => 'Logstore', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the Logstore to which log entries are delivered.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'test_logstore', + ], + ], + [ + 'name' => 'Region', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the Log Service project is deployed.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'F32C57AA-7BF8-49AE-A2CC-9F42390F5A19', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Unauthorized', + 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', + ], + ], + 404 => [ + [ + 'errorCode' => 'LogstoreNotExist', + 'errorMessage' => 'Logstore does not exist', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F32C57AA-7BF8-49AE-A2CC-9F42390F****\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n F32C57AA-7BF8-49AE-A2CC-9F42390F5A19\\r\\n","errorExample":""}]', + 'title' => 'CreateLiveRealTimeLogDelivery', + 'description' => '##'."\n" + ."\n" + .'Obtain the streaming domain, and then call this operation to configure real-time log delivery for the streaming domain.'."\n" + ."\n" + .'This operation is applicable to only streaming domains. If you want to configure real-time log delivery for an ingest domain, [submit a ticket](https://workorder-intl.console.aliyun.com/?spm=5176.12818093.nav-right.dticket.6cb216d07otFWR#/ticket/createIndex).'."\n" + ."\n" + .'## QPS limit'."\n" + ."\n" + .'You can call this operation up to 6,000 times per minute 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](~~343507~~).'."\n", + '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.|', + ], + 'DeleteLiveRealtimeLogDelivery' => [ + 'summary' => 'Deletes the configurations of real-time log delivery for one or more domain names.', + 'methods' => [ + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATURElive066BXV', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain.'."\n" + ."\n" + .'Separate multiple streaming domains with commas (,).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com,example.aliyundoc.com', + ], + ], + [ + 'name' => 'Project', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the Log Service project that is used for real-time log delivery.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'project_example', + ], + ], + [ + 'name' => 'Logstore', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the Logstore to which log entries are delivered.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'logstore_example', + ], + ], + [ + 'name' => 'Region', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the Log Service project is deployed.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '9732E117-8A37-49FD-A36F-ABBB87556CA7', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Unauthorized', + 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', + ], + ], + 404 => [ + [ + 'errorCode' => 'LogstoreNotExist', + 'errorMessage' => 'Logstore does not exist', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9732E117-8A37-49FD-A36F-ABBB87556CA7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 9732E117-8A37-49FD-A36F-ABBB87556CA7\\n","errorExample":""}]', + 'title' => 'DeleteLiveRealtimeLogDelivery', + 'description' => '*'."\n" + .'* This operation is applicable to only streaming domains. If you want to configure real-tome log delivery for an ingest domain, [submit a ticket](https://workorder-intl.console.aliyun.com/?spm=5176.12818093.nav-right.dticket.6cb216d07otFWR#/ticket/createIndex).'."\n" + .'* You can call the [DescribeLiveDomainRealtimeLogDelivery](~~2848121~~) to query the Project, Logstore, and Region parameters.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 6,000 times per minute 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", + '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.|', + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + ], + '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" + .'* offline: Real-time log delivery is disabled.'."\n", + 'type' => 'string', + 'example' => 'online', + ], + 'Logstore' => [ + 'description' => 'The name of the Logstore to which log entries are delivered.'."\n", + 'type' => 'string', + 'example' => 'logstore_example', + ], + 'Project' => [ + 'description' => 'The name of the Log Service project that is used for real-time log delivery.'."\n", + 'type' => 'string', + 'example' => 'project_example', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '2F8F3852-912F-42AC-80EB-F1CF4284DE93', + ], + 'Region' => [ + 'description' => 'The ID of the region where the Log Service project is deployed.'."\n", + 'type' => 'string', + 'example' => 'cn-shanghai', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Unauthorized', + 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', + ], + ], + 404 => [ + [ + 'errorCode' => 'Domain.NotFound', + 'errorMessage' => 'Domain not found', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Status\\": \\"online\\",\\n \\"Logstore\\": \\"logstore_example\\",\\n \\"Project\\": \\"project_example\\",\\n \\"RequestId\\": \\"2F8F3852-912F-42AC-80EB-F1CF4284DE93\\",\\n \\"Region\\": \\"cn-shanghai\\"\\n}","errorExample":""},{"type":"xml","example":"\\n online\\n logstore_example\\n project_example\\n 2F8F3852-912F-42AC-80EB-F1CF4284DE93\\n cn-shanghai\\n","errorExample":""}]', + 'title' => 'DescribeLiveDomainRealtimeLogDelivery', + 'description' => 'You can call this operation to query the status of real-time log delivery for a domain name. Make sure that the parameter settings meet the requirements.'."\n" + ."\n" + .'## QPS limit'."\n" + ."\n" + .'You can call this operation up to 6,000 times per minute 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](~~343507~~).', + '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.|', + ], + 'ListLiveRealtimeLogDelivery' => [ + 'summary' => 'Queries all configurations of real-time log delivery under an Alibaba Cloud account.', + 'methods' => [ + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATURElive066BXV', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'LiveOpenapiReserve', + 'in' => 'query', + 'schema' => [ + 'description' => 'This parameter has no practical significance.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The details about real-time log delivery.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '30559C03-86C9-4EEC-B840-0DC5F5A2189B', + ], + 'Content' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RealtimeLogDeliveryInfo' => [ + 'description' => 'The configurations of real-time log delivery.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The configuration of real-time log delivery.'."\n", + 'type' => 'object', + 'properties' => [ + 'Status' => [ + 'description' => 'The status of real-time log delivery. Valid values:'."\n" + ."\n" + .'* **online**: enabled'."\n" + .'* **offline**: disabled'."\n", + 'type' => 'string', + 'example' => 'online', + ], + 'DmId' => [ + 'description' => 'The ID of the domain name.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1001010', + ], + 'Region' => [ + 'description' => 'The ID of the region where the Log Service project is deployed.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + 'Logstore' => [ + 'description' => 'The name of the Logstore to which log entries are delivered.'."\n", + 'type' => 'string', + 'example' => 'logstore_example', + ], + 'Project' => [ + 'description' => 'The name of the Log Service project that is used for real-time log delivery.'."\n", + 'type' => 'string', + 'example' => 'project_example', + ], + 'DomainName' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Unauthorized', + 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"30559C03-86C9-4EEC-B840-0DC5F5A2189B\\",\\n \\"Content\\": {\\n \\"RealtimeLogDeliveryInfo\\": [\\n {\\n \\"Status\\": \\"online\\",\\n \\"DmId\\": 1001010,\\n \\"Region\\": \\"cn-hangzhou\\",\\n \\"Logstore\\": \\"logstore_example\\",\\n \\"Project\\": \\"project_example\\",\\n \\"DomainName\\": \\"example.com\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 30559C03-86C9-4EEC-B840-0DC5F5A2189B\\n \\n \\n online\\n cn-hangzhou-corp\\n example.com\\n 1001010\\n project_example\\n logstore_example\\n \\n \\n online\\n cn-hangzhou\\n example.com\\n 101010101\\n project_example\\n logstore_example\\n \\n \\n","errorExample":""}]', + 'title' => 'ListLiveRealtimeLogDelivery', + 'description' => 'You can call this operation to query all configurations of real-time log delivery under an account. Make sure that the parameter settings meet the requirements.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 6,000 times per minute 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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + ], + 'ListLiveRealtimeLogDeliveryDomains' => [ + 'summary' => 'Queries all domain names that are associated with a specific configuration of real-time log delivery.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Project', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the Log Service project that is used for real-time log delivery.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'project_example', + ], + ], + [ + 'name' => 'Logstore', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the Logstore to which log entries are delivered.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'logstore_example', + ], + ], + [ + 'name' => 'Region', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the Log Service project is deployed.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '95D5B69F-8AEC-419B-8F3A-612B35032B0D', + ], + 'Content' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Domains' => [ + 'description' => 'The domain names.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => [ + 'description' => 'The status of real-time log delivery. Valid values:'."\n" + ."\n" + .'* **online**: enabled'."\n" + .'* **offline**: disabled'."\n", + 'type' => 'string', + 'example' => 'online', + ], + 'DomainName' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Unauthorized', + 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', + ], + ], + 404 => [ + [ + 'errorCode' => 'LogstoreNotExist', + 'errorMessage' => 'Logstore does not exist', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"95D5B69F-8AEC-419B-8F3A-612B35032B0D\\",\\n \\"Content\\": {\\n \\"Domains\\": [\\n {\\n \\"Status\\": \\"online\\",\\n \\"DomainName\\": \\"example.com\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 95D5B69F-8AEC-419B-8F3A-612B35032B0D\\n \\n online\\n example.com\\n \\n","errorExample":""}]', + 'title' => 'ListLiveRealtimeLogDeliveryDomains', + 'description' => '* You can call this operation to query all domain names that are associated with a specific configuration of real-time log delivery. The returned results indicate whether real-time log delivery is enabled or disabled for the domain names.'."\n" + .'* You can call the [DescribeLiveDomainRealtimeLogDelivery](~~2848121~~) to query the Project, Logstore, and Region parameters.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 6,000 times per minute 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", + '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.|', + ], + 'ListLiveRealtimeLogDeliveryInfos' => [ + 'summary' => 'Queries all configurations of 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'LiveOpenapiReserve', + 'in' => 'query', + 'schema' => [ + 'description' => 'This parameter has no practical significance.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '95D5B69F-8AEC-419B-8F3A-612B35032B0D', + ], + 'Content' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RealtimeLogDeliveryInfos' => [ + 'description' => 'Details about the configuration of real-time log delivery.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Logstore' => [ + 'description' => 'The name of the Logstore to which log entries are delivered.'."\n", + 'type' => 'string', + 'example' => 'logstore_example', + ], + 'Project' => [ + 'description' => 'The name of the Log Service project that is used for real-time log delivery.'."\n", + 'type' => 'string', + 'example' => 'project_example', + ], + 'Region' => [ + 'description' => 'The ID of the region where the Log Service project is deployed.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + ], + 'description' => 'The details about real-time log delivery.'."\n", + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Unauthorized', + 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"95D5B69F-8AEC-419B-8F3A-612B35032B0D\\",\\n \\"Content\\": {\\n \\"RealtimeLogDeliveryInfos\\": [\\n {\\n \\"Logstore\\": \\"logstore_example\\",\\n \\"Project\\": \\"project_example\\",\\n \\"Region\\": \\"cn-hangzhou\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n95D5B69F-8AEC-419B-8F3A-612B35032B0D\\n\\n \\n project_example\\n logstore_example\\n cn-hangzhou\\n \\n\\n","errorExample":""}]', + 'title' => 'ListLiveRealtimeLogDeliveryInfos', + 'description' => 'You can call this operation to query all configurations of real-time log delivery. Make sure that the parameter settings meet the requirements.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 6,000 times per minute 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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + ], + 'DescribeLivePushProxyLog' => [ + 'summary' => 'Queries the stream relay logs, which are available for download.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ingest domain. You can specify only one domain in each request.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Valid values: \\[1,1000]. Default value: 300.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '300', + 'default' => '300', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: 1.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '2', + 'default' => '1', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'Get the log start time in ISO8601 format with UTC+0 timezone, formatted as yyyy-MM-ddTHH:mm:ssZ.', + 'type' => 'string', + 'required' => false, + 'example' => '2023-09-20T08:00:00Z', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'Get the log end time.'."\n" + .'Date format follows the ISO8601 representation and uses UTC+0 time, formatted as yyyy-MM-ddTHH:mm:ssZ.', + 'type' => 'string', + 'required' => false, + 'example' => '2023-09-20T09:00:00Z', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The returned results.'."\n", + 'type' => 'object', + 'properties' => [ + 'DomainLogDetails' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DomainLogDetail' => [ + 'description' => 'The log information.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '--', + 'type' => 'object', + 'properties' => [ + 'LogCount' => [ + 'description' => 'The total number of entries returned on the current page.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + 'LogInfos' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LogInfoDetail' => [ + 'description' => 'Details about the logs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '--', + 'type' => 'object', + 'properties' => [ + 'EndTime' => [ + 'description' => 'The end of the time range during which data was queried.'."\n" + ."\n" + .'The value is a UNIX timestamp.'."\n", + 'type' => 'string', + 'example' => '1695189600', + ], + 'LogName' => [ + 'description' => 'The name of the log file.'."\n", + 'type' => 'string', + 'example' => 'example.com'."\n" + .'_2023_09_20_160000_170000.****.gz', + ], + 'LogPath' => [ + 'description' => 'The path of the log file.'."\n", + 'type' => 'string', + 'example' => '****.aliyuncs.com/push_proxy/****/example.com/2023_09_20/1600/example.com'."\n" + .'_2023_09_20_160000_170000.****.gz', + ], + 'LogSize' => [ + 'description' => 'The size of the log file.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '512', + ], + 'StartTime' => [ + 'description' => 'The beginning of the time range during which data was queried.'."\n" + ."\n" + .'The value is a UNIX timestamp.'."\n", + 'type' => 'string', + 'example' => '1695193200', + ], + ], + ], + ], + ], + ], + 'PageInfos' => [ + 'description' => 'The page information.'."\n", + 'type' => 'object', + 'properties' => [ + 'PageIndex' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'PageSize' => [ + 'description' => 'The number of entries per page.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '20', + ], + 'Total' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '20', + ], + ], + ], + ], + ], + ], + ], + ], + 'DomainName' => [ + 'description' => 'Push domain.', + 'type' => 'string', + 'example' => 'example.com', + ], + 'RequestId' => [ + 'description' => 'Request ID.', + 'type' => 'string', + 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'Specified StartTime is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + [ + 'errorCode' => 'InvalidStartTime.ValueNotSupported', + 'errorMessage' => 'The specified value of parameter StartTime is not supported.', + ], + [ + 'errorCode' => 'Invalid Parameter', + 'errorMessage' => 'The specified Invalid Parameter', + ], + [ + 'errorCode' => 'Internal Error', + 'errorMessage' => 'Internal Error contact admin', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DomainLogDetails\\": {\\n \\"DomainLogDetail\\": [\\n {\\n \\"LogCount\\": 10,\\n \\"LogInfos\\": {\\n \\"LogInfoDetail\\": [\\n {\\n \\"EndTime\\": \\"1695189600\\",\\n \\"LogName\\": \\"example.com\\\\n_2023_09_20_160000_170000.****.gz\\",\\n \\"LogPath\\": \\"****.aliyuncs.com/push_proxy/****/example.com/2023_09_20/1600/example.com\\\\n_2023_09_20_160000_170000.****.gz\\",\\n \\"LogSize\\": 512,\\n \\"StartTime\\": \\"1695193200\\"\\n }\\n ]\\n },\\n \\"PageInfos\\": {\\n \\"PageIndex\\": 1,\\n \\"PageSize\\": 20,\\n \\"Total\\": 20\\n }\\n }\\n ]\\n },\\n \\"DomainName\\": \\"example.com\\",\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n example.com\\n CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n \\n 10\\n \\n 1695189600\\n 512\\n 1695193200\\n example.com\\n_2023_09_20_160000_170000.****.gz\\n ****.aliyuncs.com/push_proxy/****/example.com/2023_09_20/1600/example.com\\n_2023_09_20_160000_170000.****.gz\\n \\n \\n 1\\n 20\\n 20\\n \\n \\n","errorExample":""}]', + 'title' => 'DescribeLivePushProxyLog', + 'description' => '* The time granularity of the data is 1 hour.'."\n" + .'* You can query data in the last 31 days.'."\n" + .'* If you do not specify the StartTime or EndTime parameter, the data of the last 24 hours is queried. You can specify both the StartTime and EndTime parameters to query the data of a specific time range.'."\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", + ], + 'DeleteLiveRealTimeLogLogstore' => [ + 'summary' => 'Deletes the Logstore that is specified by a configuration of 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Project', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the Log Service project that is used for real-time log delivery.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'project_example', + ], + ], + [ + 'name' => 'Logstore', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the Logstore to which log entries are delivered.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'logstore_example', + ], + ], + [ + 'name' => 'Region', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the Log Service project is deployed.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '9732E117-8A37-49FD-A36F-ABBB87556CA7', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Unauthorized', + 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', + ], + ], + 404 => [ + [ + 'errorCode' => 'LogstoreNotExist', + 'errorMessage' => 'Logstore does not exist', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9732E117-8A37-49FD-A36F-ABBB*******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 9732E117-8A37-49FD-A36F-ABBB87556CA7\\n","errorExample":""}]', + 'title' => 'DeleteLiveRealTimeLogLogstore', + 'description' => '* You can call this operation to delete the Logstore that is specified by a configuration of real-time log delivery. Make sure that all parameters meet the requirements when you call this operation.'."\n" + .'* You can call the [DescribeLiveDomainRealtimeLogDelivery](~~2848121~~) operation to query the Project, Logstore, and Region parameters.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 6,000 times per minute 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", + '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.|', + ], + 'DescribeLiveDomainLog' => [ + 'summary' => 'Queries the address from which you can download the raw access logs of a domain name.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '107021', + 'abilityTreeNodes' => [ + 'FEATURElive066BXV', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain or ingest domain.'."\n" + ."\n" + .'You can specify only one domain name.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page.'."\n" + ."\n" + .'* Valid values: integers from **1 to 1000**.'."\n" + .'* Default value: **300**.'."\n" + .'* Maximum value: **1000**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '20', + 'default' => '300', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number.'."\n" + ."\n" + .'> If you do not specify the PageNumber parameter, the data on the first page is returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + '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", + 'type' => 'string', + 'required' => false, + 'example' => '2016-10-20T04:00:00Z', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range to query data. 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 end time must be later than the start time. The maximum time range that can be specified is 31 days.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2016-10-20T05:00:00Z', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'DomainName' => [ + 'description' => 'The streaming domain or ingest domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + 'DomainLogDetails' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DomainLogDetail' => [ + 'description' => 'The log information.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'LogCount' => [ + 'description' => 'The total number of entries returned on the current page.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + 'LogInfos' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LogInfoDetail' => [ + 'description' => 'Details about the logs.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'EndTime' => [ + 'description' => 'The end of the time range for which the logs were queried.'."\n", + 'type' => 'string', + 'example' => '2016-10-20T05:00:00Z', + ], + 'LogSize' => [ + 'description' => 'The size of the log file.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + 'StartTime' => [ + 'description' => 'The beginning of the time range for which the logs were queried.'."\n", + 'type' => 'string', + 'example' => '2016-10-20T04:00:00Z', + ], + 'LogName' => [ + 'description' => 'The name of the log file.'."\n", + 'type' => 'string', + 'example' => 'developer.aliyundoc.com_2016_10_20_040000_050000.gz', + ], + 'LogPath' => [ + 'description' => 'The path of the log file.'."\n", + 'type' => 'string', + 'example' => 'learn.aliyundoc.com/developer.aliyundoc.com/2016_10_20/example.aliyundoc.com_2016_10_20_040000_050000.gz?Expires=1522659931&OSSAccessKeyId=LTAI******eo4ZEuA&Signature=C01p%2BtA%******KP9Sru2Oxwy7Do0%3D', + ], + ], + ], + ], + ], + ], + 'PageInfos' => [ + 'description' => 'The page information.'."\n", + 'type' => 'object', + 'properties' => [ + 'PageIndex' => [ + 'description' => 'The page number of the returned page.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'PageSize' => [ + 'description' => 'The number of entries returned per page.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '20', + ], + 'Total' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '20', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DomainName\\": \\"example.com\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"DomainLogDetails\\": {\\n \\"DomainLogDetail\\": [\\n {\\n \\"LogCount\\": 10,\\n \\"LogInfos\\": {\\n \\"LogInfoDetail\\": [\\n {\\n \\"EndTime\\": \\"2016-10-20T05:00:00Z\\",\\n \\"LogSize\\": 10,\\n \\"StartTime\\": \\"2016-10-20T04:00:00Z\\",\\n \\"LogName\\": \\"developer.aliyundoc.com_2016_10_20_040000_050000.gz\\",\\n \\"LogPath\\": \\"learn.aliyundoc.com/developer.aliyundoc.com/2016_10_20/example.aliyundoc.com_2016_10_20_040000_050000.gz?Expires=1522659931&OSSAccessKeyId=LTAI******eo4ZEuA&Signature=C01p%2BtA%******KP9Sru2Oxwy7Do0%3D\\"\\n }\\n ]\\n },\\n \\"PageInfos\\": {\\n \\"PageIndex\\": 1,\\n \\"PageSize\\": 20,\\n \\"Total\\": 20\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\nexample.com\\n\\n \\n 10\\n \\n \\n 10\\n 2016-10-20T05:00:00Z\\n 2016-10-20T04:00:00Z\\n developer.aliyundoc.com_2016_10_20_040000_050000.gz\\n learn.aliyundoc.com/developer.aliyundoc.com/2016_10_20/example.aliyundoc.com_2016_10_20_040000_050000.gz?Expires=1522659931&OSSAccessKeyId=LTAI******eo4ZEuA&Signature=C01p%2BtA%******KP9Sru2Oxwy7Do0%3D\\n \\n \\n \\n 20\\n 20\\n 1\\n \\n \\n\\n","errorExample":""}]', + 'title' => 'DescribeLiveDomainLog', + 'description' => '* You can call this operation to query the offline logs of a single domain name.'."\n" + .'* The StartTime and EndTime parameters are optional. You can specify both the parameters to query logs that are generated within the specified time period.'."\n" + .'* If you do not specify the StartTime and EndTime parameters, logs that are generated in the last 24 hours are queried by default.'."\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. 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](~~343507~~).', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'MonitorName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the monitoring session.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveMonitor****', + ], + ], + [ + 'name' => 'OutputTemplate', + 'in' => 'query', + 'schema' => [ + 'description' => 'The output template of the monitoring session. Valid values:'."\n" + ."\n" + .'* **lp_ld**: low definition.'."\n" + .'* **lp_sd**: standard definition.'."\n" + .'* **lp_hd**: high definition.'."\n" + .'* **lp_ud**: ultra high definition.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'lp_ud', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The endpoint of the monitoring session.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo.aliyundoc.com', + ], + ], + [ + 'name' => 'App', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application that plays the output streams of the monitoring session.'."\n" + ."\n" + .'You can specify a name. If you do not specify a name, the system uses **monitor** as the name of the application.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'monitor****', + ], + ], + [ + 'name' => 'Stream', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the output stream of the monitoring session. If you do not specify a name, the system generates a name at random.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'monitorStream****', + ], + ], + [ + 'name' => 'InputList', + 'in' => 'query', + 'schema' => [ + 'description' => 'The list of input streams to monitor. For more information, see the following **InputConfig** table.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'InputConfig', + ], + ], + [ + 'name' => 'MonitorConfig', + 'in' => 'query', + 'schema' => [ + 'description' => 'Alarm threshold setting for monitoring, in JSON format. For more details, please refer to the table below for MonitorConfig.', + 'type' => 'string', + 'required' => false, + 'example' => '"{\\"fpsLowThres\\": 0.6,\\"brLowThres\\": 1.1,\\"eofDurationThresSec\\": 10}"', + ], + ], + [ + 'name' => 'CallbackUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'Supports input of callback addresses in HTTP(S) format.', + 'type' => 'string', + 'required' => false, + 'example' => 'http://guide.aliyundoc.com/notify', + ], + ], + [ + 'name' => 'DingTalkWebHookUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'DingTalk alert monitoring sends alert notifications through a DingTalk group robot. Please set up the DingTalk group robot first and enter the HTTP(S) address of the robot here. For more details, see [Custom Robot Access](https://open.dingtalk.com/document/robots/custom-robot-access).'."\n" + .'> Configure the custom keyword for the DingTalk group robot as \'alert\', otherwise, messages will not be received.', + 'type' => 'string', + 'required' => false, + 'example' => 'https://oapi.dingtalk.com/robot/send?access_token=7a7d404056eee1f2fd944ace9bcfc361dc6448583e1d3d3baa****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'MonitorId' => [ + 'description' => 'The ID of the monitoring session.'."\n", + 'type' => 'string', + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '5c6a2a0d-f228-4a64-af62-20e91b9676b3', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'StreamMonitorExist', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidDomainName.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"MonitorId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n5c6a2a0d-f228-4a64-af62-20e91b9676b3\\n445409ec-7eaa-461d-8f29-4bec2eb9****\\n","errorExample":""}]', + 'title' => 'CreateLiveStreamMonitor', + 'description' => 'You can call this operation to create a monitoring session. Make sure that the parameter settings meet the requirements.'."\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", + 'requestParamsDescription' => '**InputConfig**| Parameter | Type | Description | Example |'."\n" + .'| --------- | ---- | ----------- | ------- |'."\n" + .'| Index | Integer | The index. | 1 |'."\n" + .'| LayoutId | Integer | The ID of the layout. The value starts from 1. | 1 |'."\n" + .'| StreamName | String | The display name of a monitored stream. | monitorStream**** |'."\n" + .'| InputUrl | String | The URL of an input stream. | demo.aliyundoc.com |'."\n" + .'| LayoutConfig | LayoutConfig | The details of the layout. | For more information, see the following table **LayoutConfig**. |'."\n" + .'| PlayConfig | PlayConfig | The playback configurations. | For more information, see the following table **PlayConfig**. |'."\n" + .'**LayoutConfig**| Parameter | Type | Description | Example |'."\n" + .'| --------- | ---- | ----------- | ------- |'."\n" + .'| FillMode | String | The fill type. Set this value to none. | none |'."\n" + .'| PositionRefer | String | The reference coordinate value of an element position. Valid values: topLeft (upper left), topRight (upper right), bottomLeft (lower left), and bottomRight (lower right). | topLeft |'."\n" + .'| PositionNormalized | Float | The normalized value [x,y] of the coordinates of the layer. '."\n" + ."\n" + .'The values of x and y range from 0 to 1. '."\n" + ."\n" + .'For example, [0.1,0.1] indicates that the layer is horizontally offset by 10% and vertically offset by 10% towards the upper-left corner. | [0.1, 0.1] |'."\n" + .'| SizeNormalized | Float | The normalized value [w,h] of the size of the layer. '."\n" + ."\n" + .' The values of w and h range from 0 to 1. '."\n" + ."\n" + .'For example, [0.2,0.3] indicates that the width of the layer is 20% of the screen width, and the height of the layer is 30% of the screen height. | [0.2, 0.3] |'."\n" + .'**PlayConfig**| Parameter | Type | Description | Example |'."\n" + .'| --------- | ---- | ----------- | ------- |'."\n" + .'| VolumeRate | Float | The volume. The value ranges from 0 to 1 and rounded down to two decimal places. | 0.50 |', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'translator' => 'machine', + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'MonitorId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the monitoring session.'."\n" + ."\n" + .'> You can obtain the monitoring session ID from the response of the [CreateLiveStreamMonitor](~~2848129~~) operation.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + ], + [ + 'name' => 'MonitorName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the monitoring session.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveMonitor****', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The domain name.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'demo.aliyundoc.com', + ], + ], + [ + 'name' => 'App', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the output stream of the monitoring session belongs. You can specify a name. If you do not specify a name, the system uses **monitor** as the name of the application.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'monitor****', + ], + ], + [ + 'name' => 'Stream', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the output stream of the monitoring session.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'monitorStream****', + ], + ], + [ + 'name' => 'OutputTemplate', + 'in' => 'query', + 'schema' => [ + 'description' => 'The output template of the monitoring session. Valid values:'."\n" + ."\n" + .'* **lp_ld**: low definition'."\n" + .'* **lp_sd**: standard definition'."\n" + .'* **lp_hd**: high definition'."\n" + .'* **lp_ud**: ultra-high definition'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'lp_ud', + ], + ], + [ + 'name' => 'InputList', + 'in' => 'query', + 'schema' => [ + 'description' => 'The list of input streams to monitor. For more information, see the following **InputConfig** table.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'InputConfig', + ], + ], + [ + 'name' => 'MonitorConfig', + 'in' => 'query', + 'schema' => [ + 'description' => 'The monitoring alert thresholds. The value is a JSON string. For more information, see the following MonitorConfig table.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '"{\\"fpsLowThres\\": 0.6,\\"brLowThres\\": 1.1,\\"eofDurationThresSec\\": 10}"', + ], + ], + [ + 'name' => 'CallbackUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The callback URL. Supported formats include HTTP and HTTPS.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'http://guide.aliyundoc.com/notify', + ], + ], + [ + 'name' => 'DingTalkWebHookUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The URL of the DingTalk chatbot. Specify a DingTalk chatbot that you have configured, and you can receive live monitoring alerts from the chatbot. For more information, see [Configure a custom chatbot](https://open.dingtalk.com/document/robots/custom-robot-access).'."\n" + ."\n" + .'> Specify "Alert" as the custom keyword of the DingTalk chatbot. Otherwise, you cannot receive messages.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'https://oapi.dingtalk.com/robot/send?access_token=7a7d404056eee1f2fd944ace9bcfc361dc6448583e1d3d3baa****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5c6a2a0d-f228-4a64-af62-20e91b9676b3', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidMonitorId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidDomainName.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'StreamMonitorNotExist', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b9676b3\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n5c6a2a0d-f228-4a64-af62-20e91b9676b3\\r\\n","errorExample":""}]', + 'title' => 'UpdateLiveStreamMonitor', + 'description' => 'You can call this operation to update the configurations of a monitoring session. The updates that you make to the input source configurations when the monitoring session is in the Running state immediately take effect.'."\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", + 'requestParamsDescription' => '**InputConfig**'."\n" + ."\n" + .'|Field|Type|Description|Example|'."\n" + .'|---|---|---|---|'."\n" + .'|Index|Integer|The index.|1|'."\n" + .'|LayoutId|Integer|The layout ID, which must start from 1.|1|'."\n" + .'|StreamName|String|The display name of the stream to monitor.|monitorStream\\*\\*\\*\\*|'."\n" + .'|InputUrl|String|The URL of the input stream.|demo.aliyundoc.com|'."\n" + .'|LayoutConfig|LayoutConfig|The layout information.|See the following **LayoutConfig** table.|'."\n" + .'|PlayConfig|PlayConfig|The playback configurations.|See the following **PlayConfig** table.|'."\n" + ."\n" + .'**LayoutConfig**'."\n" + ."\n" + .'|Field|Type|Description|Example|'."\n" + .'|---|---|---|---|'."\n" + .'|FillMode|String|The fill type. Set this value to none.|none|'."\n" + .'|PositionRefer|String|The reference position of the element. Valid values: topLeft, topRight, bottomLeft, and bottomRight.|TopLeft|'."\n" + .'|PositionNormalized|Float|The normalized value of the position of the layer, in the format of \\[x,y\\].The values of x and y range from 0 to 1.For example, \\[0.1,0.1\\] indicates that the layer is horizontally offset by 10% and vertically offset by 10% towards the upper-left corner.|\\[0.1, 0.1\\]|'."\n" + .'|SizeNormalized|Float|The normalized value of the size of the layer, in the format of \\[w,h\\].The values of w and h range from 0 to 1.For example, \\[0.2,0.3\\] indicates that the width of the layer is 20% of the screen width and the height of the layer is 30% of the screen height.|\\[0.2, 0.3\\]|'."\n" + ."\n" + .'**PlayConfig**'."\n" + ."\n" + .'|Field|Type|Description|Example|'."\n" + .'|---|---|---|---|'."\n" + .'|VolumeRate|Float|The volume. Valid values: 0 to 1. The value is rounded to two decimal places.|0.50|'."\n" + ."\n" + .'**MonitorConfig**'."\n" + ."\n" + .'|Field|Type|Description|Example|'."\n" + .'|---|---|---|---|'."\n" + .'|fpsLowThres|Float|The video frame rate alert threshold. This threshold is a scale factor. Valid values: (0.0,1.0\\]. Default value: 0.7. When the video frame rate of the monitored stream is less than the threshold times the original frame rate of the stream, an alert is triggered.|0.7|'."\n" + .'|brHighThres|Float|The audio/video bitrate alert threshold. This threshold is a scale factor. Valid values: (0.0,100\\]. Default value: 1.0. When the audio/video bitrate of the monitored stream is greater than the threshold times the original bitrate of the stream, an alert is triggered.|1.0|'."\n" + .'|eofDurationThresSec|Float|The interruption duration alert threshold. If the monitored stream is interrupted for a period of time that is longer than the threshold, an alert is triggered. Valid values: (0,65535\\]. Default value: 0. Unit: seconds. - After the stream is interrupted, the connection is still available and a packet timeout occurs after 5 seconds. The system determines whether there is an interruption based on the timeout. If you set this parameter to a value that is less than or equal to 5 seconds, the threshold is fixed at 5 seconds. If you set this parameter to a value that is greater than 5 seconds, the threshold is the specified value. - If the stream is resumed within the threshold after it is interrupted, no alert is triggered. If you modify the URL of the monitored stream within the threshold after the stream is interrupted, interruption detection is not performed for the stream and no alert is triggered.|10|', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'MonitorId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the monitoring session.'."\n" + ."\n" + .'> You can obtain the monitoring session ID from the response parameter MonitorId of the [CreateLiveStreamMonitor](~~2848129~~) operation. If you leave this parameter empty, the data of all monitoring sessions is returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + ], + [ + 'name' => 'PageNum', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '2', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of monitoring sessions to return per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + ], + ], + [ + 'name' => 'Status', + 'in' => 'query', + 'schema' => [ + 'description' => 'The status of the monitoring session. Valid values:'."\n" + ."\n" + .'* 1: Monitoring'."\n" + .'* 0: Unmonitored'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'OrderRule', + 'in' => 'query', + 'schema' => [ + 'description' => 'The sorting order of monitoring sessions. Valid values:'."\n" + ."\n" + .'* 0: Monitoring sessions are sorted by status.'."\n" + .'* 1: Monitoring sessions are sorted by start time in descending order.'."\n" + .'* 2: Monitoring sessions are sorted by start time in ascending order.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Total' => [ + 'description' => 'The number of monitoring sessions.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '2234baba-a586-46ea-8bd4-c8f7891abcdef', + ], + 'LiveStreamMonitorList' => [ + 'description' => 'The list of monitoring sessions.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'MonitorConfig' => [ + 'description' => 'The monitoring alert thresholds. The following fields are included:'."\n" + ."\n" + .'* fpsLowThres: the video frame rate alert threshold. The value is a floating-point number.'."\n" + .'* brHighThres: the audio/video bitrate alert threshold. The value is a floating-point number.'."\n" + .'* eofDurationThresSec: the interruption duration alert threshold. The value is a floating-point number.'."\n", + 'type' => 'string', + 'example' => '"{\\"fpsLowThres\\": 0.6,\\"brLowThres\\": 1.1,\\"eofDurationThresSec\\": 10}"', + ], + 'Status' => [ + 'description' => 'The status of the monitoring session. Valid values:'."\n" + ."\n" + .'* 1: Monitoring'."\n" + .'* 0: Unmonitored'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'MonitorId' => [ + 'description' => 'The ID of the monitoring session.'."\n", + 'type' => 'string', + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + 'Domain' => [ + 'description' => 'The domain name.'."\n", + 'type' => 'string', + 'example' => 'demo.aliyundoc.com', + ], + 'CallbackUrl' => [ + 'description' => 'The callback URL that sends monitoring alerts.'."\n", + 'type' => 'string', + 'example' => 'http://guide.aliyundoc.com/notify', + ], + 'AudioFrom' => [ + 'description' => 'The audio source in the layout.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'DingTalkWebHookUrl' => [ + 'description' => 'The URL of the DingTalk chatbot.'."\n", + 'type' => 'string', + 'example' => 'https://oapi.dingtalk.com/robot/send?access_token=7a7d404056eee1f2fd944ace9bcfc361dc6448583e1d3d3baa****', + ], + 'MonitorName' => [ + 'description' => 'The name of the monitoring session.'."\n", + 'type' => 'string', + 'example' => 'liveMonito****', + ], + 'StopTime' => [ + 'description' => 'The end time of live monitoring. The time is displayed in UTC.'."\n", + 'type' => 'string', + 'example' => '2017-01-11T12:00:00Z', + ], + 'StartTime' => [ + 'description' => 'The start time of live monitoring. The time is displayed in UTC.'."\n", + 'type' => 'string', + 'example' => '2017-01-11T12:00:00Z', + ], + 'OutputTemplate' => [ + 'description' => 'The output resolution template. Valid values:'."\n" + ."\n" + .'* **lp_ld**: low definition'."\n" + .'* **lp_sd**: standard definition'."\n" + .'* **lp_hd**: high definition'."\n" + .'* **lp_ud**: ultra-high definition'."\n", + 'type' => 'string', + 'example' => 'lp_ud', + ], + 'Region' => [ + 'description' => 'The ID of the region. Valid values:'."\n" + ."\n" + .'* cn-shanghai: China (Shanghai)'."\n" + .'* cn-beijing: China (Beijing)'."\n" + .'* ap-southeast-1: Singapore'."\n", + 'type' => 'string', + 'example' => 'cn-shanghai', + ], + 'InputList' => [ + 'description' => 'The list of monitored input streams.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Index' => [ + 'description' => 'The index.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'InputUrl' => [ + 'description' => 'The URL of the input stream.'."\n", + 'type' => 'string', + 'example' => 'demo.aliyundoc.com', + ], + 'LayoutId' => [ + 'description' => 'The layout ID, which must start from 1.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'StreamName' => [ + 'description' => 'The display name of the monitored stream.'."\n", + 'type' => 'string', + 'example' => 'monitorStream****', + ], + 'LayoutConfig' => [ + 'description' => 'The layout information.'."\n", + 'type' => 'object', + 'properties' => [ + 'FillMode' => [ + 'description' => 'The fill type. Set this value to none.'."\n", + 'type' => 'string', + 'example' => 'none', + ], + 'PositionRefer' => [ + 'description' => 'The reference position of the element. Valid values:'."\n" + ."\n" + .'* topLeft'."\n" + .'* topRight'."\n" + .'* bottomLeft'."\n" + .'* bottomRight'."\n", + 'type' => 'string', + 'example' => 'topLeft', + ], + 'PositionNormalized' => [ + 'description' => 'The position of the layer, in the format of \\[unk]\\[x,y]\\[unk]. The values of x and y need to be normalized.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The normalized value of the position of the layer, in the format of \\[x,y].\\'."\n" + .'For example, \\[0.1,0.1] indicates that the layer is horizontally offset by 10% and vertically offset by 10% towards the upper-left corner.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '0.1', + ], + ], + 'SizeNormalized' => [ + 'description' => 'The size of the layer. Unit: bytes.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The normalized value of the size of the layer, in the format of \\[w,h].\\'."\n" + .'For example, \\[0.2,0.3] indicates that the width of the layer is 20% of the screen width and the height of the layer is 30% of the screen height.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '0.3', + ], + ], + ], + ], + 'PlayConfig' => [ + 'description' => 'The playback configurations.'."\n", + 'type' => 'object', + 'properties' => [ + 'VolumeRate' => [ + 'description' => 'The volume. Valid values: 0 to 1. The value is rounded to two decimal places.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '0.50', + ], + ], + ], + ], + 'description' => '', + ], + ], + 'OutputUrls' => [ + 'description' => 'The output URLs.'."\n", + 'type' => 'object', + 'properties' => [ + 'FlvUrl' => [ + 'description' => 'The output URL in the Flash Video (FLV) format.'."\n", + 'type' => 'string', + 'example' => 'http://demo.aliyundoc.com/monitor/445409ec-7eaa-461d-8f29-4bec2eb9****.flv', + ], + 'RtmpUrl' => [ + 'description' => 'The output URL in the Real-Time Messaging Protocol (RTMP) format.'."\n", + 'type' => 'string', + 'example' => 'rtmp://demo.aliyundoc.com/monitor/445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Total\\": 1,\\n \\"RequestId\\": \\"2234baba-a586-46ea-8bd4-c8f7891abcdef\\",\\n \\"LiveStreamMonitorList\\": [\\n {\\n \\"MonitorConfig\\": \\"\\\\\\"{\\\\\\\\\\\\\\"fpsLowThres\\\\\\\\\\\\\\": 0.6,\\\\\\\\\\\\\\"brLowThres\\\\\\\\\\\\\\": 1.1,\\\\\\\\\\\\\\"eofDurationThresSec\\\\\\\\\\\\\\": 10}\\\\\\"\\",\\n \\"Status\\": 1,\\n \\"MonitorId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"Domain\\": \\"demo.aliyundoc.com\\",\\n \\"CallbackUrl\\": \\"http://guide.aliyundoc.com/notify\\",\\n \\"AudioFrom\\": 1,\\n \\"DingTalkWebHookUrl\\": \\"https://oapi.dingtalk.com/robot/send?access_token=7a7d404056eee1f2fd944ace9bcfc361dc6448583e1d3d3baa****\\",\\n \\"MonitorName\\": \\"liveMonito****\\",\\n \\"StopTime\\": \\"2017-01-11T12:00:00Z\\",\\n \\"StartTime\\": \\"2017-01-11T12:00:00Z\\",\\n \\"OutputTemplate\\": \\"lp_ud\\",\\n \\"Region\\": \\"cn-shanghai\\",\\n \\"InputList\\": [\\n {\\n \\"Index\\": 1,\\n \\"InputUrl\\": \\"demo.aliyundoc.com\\",\\n \\"LayoutId\\": 1,\\n \\"StreamName\\": \\"monitorStream****\\",\\n \\"LayoutConfig\\": {\\n \\"FillMode\\": \\"none\\",\\n \\"PositionRefer\\": \\"topLeft\\",\\n \\"PositionNormalized\\": [\\n 0.1\\n ],\\n \\"SizeNormalized\\": [\\n 0.3\\n ]\\n },\\n \\"PlayConfig\\": {\\n \\"VolumeRate\\": 0.5\\n }\\n }\\n ],\\n \\"OutputUrls\\": {\\n \\"FlvUrl\\": \\"http://demo.aliyundoc.com/monitor/445409ec-7eaa-461d-8f29-4bec2eb9****.flv\\",\\n \\"RtmpUrl\\": \\"rtmp://demo.aliyundoc.com/monitor/445409ec-7eaa-461d-8f29-4bec2eb9****\\"\\n }\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n2234baba-a586-46ea-8bd4-c8f7891abcdef\\n1\\n\\n 1\\n 1\\n lp_ud\\n 2017-01-11T12:00:00Z\\n liveMonito****\\n cn-shanghai\\n demo.aliyundoc.com\\n 445409ec-7eaa-461d-8f29-4bec2eb9****\\n 2017-01-11T12:00:00Z\\n \\n monitorStream****\\n 1\\n 1\\n demo.aliyundoc.com\\n \\n none\\n topLeft\\n 0.1\\n 0.3\\n \\n \\n 0.50\\n \\n \\n \\n http://demo.aliyundoc.com/monitor/445409ec-7eaa-461d-8f29-4bec2eb9****.flv\\n rtmp://demo.aliyundoc.com/monitor/445409ec-7eaa-461d-8f29-4bec2eb9****\\n \\n\\n","errorExample":""}]', + 'title' => 'DescribeLiveStreamMonitorList', + 'description' => '[Create monitoring sessions](~~2848129~~) before you call this operation to query the monitoring session list. Make sure that the parameter settings meet the requirements.'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'StartLiveStreamMonitor' => [ + 'summary' => 'Starts live monitoring.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'MonitorId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the monitoring session.'."\n" + ."\n" + .'> You can obtain the monitoring session ID from the response of the [CreateLiveStreamMonitor](~~2848129~~) operation.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5c6a2a0d-f228-4a64-af62-20e91b9676b3', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidMonitorId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'StreamMonitorAlreadyStarted', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 403 => [ + [ + 'errorCode' => 'UserQuotaExceed', + 'errorMessage' => 'Quota exceeded: %s.', + ], + ], + [ + [ + 'errorCode' => 'StreamMonitorNotExist', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b9676b3\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n5c6a2a0d-f228-4a64-af62-20e91b9676b3\\r\\n","errorExample":""}]', + 'title' => 'StartLiveStreamMonitor', + 'description' => 'You can call the [CreateLiveStreamMonitor](~~2848129~~) operation to create a monitoring session, obtain the value of the response parameter **MonitorId**, and then start live monitoring.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'StopLiveStreamMonitor' => [ + 'summary' => 'Stops live monitoring.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'MonitorId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the monitoring session.'."\n" + ."\n" + .'> You can obtain the monitoring session ID**** from the response of the [CreateLiveStreamMonitor](~~2848129~~) operation.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5c6a2a0d-f228-4a64-af62-20e91b9676b3', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidMonitorId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'StreamMonitorAlreadyStop', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 403 => [ + [ + 'errorCode' => 'UserQuotaExceed', + 'errorMessage' => 'Quota exceeded: %s.', + ], + ], + [ + [ + 'errorCode' => 'StreamMonitorNotExist', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b9676b3\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n5c6a2a0d-f228-4a64-af62-20e91b9676b3\\r\\n","errorExample":""}]', + 'title' => 'StopLiveStreamMonitor', + 'description' => 'Before you call this operation to stop live monitoring, make sure that live monitoring is started. You can call the [CreateLiveStreamMonitor](~~2848129~~) operation to create a monitoring session, obtain the value of the response parameter **MonitorId**, and then start live monitoring.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'MonitorId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the monitoring session.'."\n" + ."\n" + .'> You can obtain the monitoring session ID from the response parameter **MonitorId** of the [CreateLiveStreamMonitor](~~2848129~~) operation.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5c6a2a0d-f228-4a64-af62-20e91b9676b3', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidMonitorId.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'StreamMonitorNotExist', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b9676b3\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n5c6a2a0d-f228-4a64-af62-20e91b9676b3\\r\\n","errorExample":""}]', + 'title' => 'DeleteLiveStreamMonitor', + 'description' => 'Before you call this operation, obtain the monitoring session ID from the response parameter **MonitorId** of the [CreateLiveStreamMonitor](~~2848129~~) operation.'."\n" + ."\n" + .'> You cannot delete a monitoring session that is in the started state. If you try to delete it, a 400 error is reported.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'GetMessageToken' => [ + 'summary' => 'Obtains a token that the client can use to establish a persistent connection over the LWP protocol and based on atomic capabilities.', + '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' => [ + 'title' => '应用ID', + 'description' => 'The ID of the interactive messaging application.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'a494caec-***-695ef345db77', + ], + ], + [ + 'name' => 'DeviceId', + 'in' => 'formData', + 'schema' => [ + 'title' => '终端设备ID', + 'description' => 'The ID of the device. Each device has a unique ID. You can specify a custom ID. The ID can be up to 64 characters in length and can contain lowercase letters, digits, underscores (\\_), and hyphen (-). You can specify multiple device IDs. We recommend that you obtain the IDs from the devices and pass the IDs to the server.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'a494caec-***-695ef345db77', + ], + ], + [ + 'name' => 'DeviceType', + 'in' => 'formData', + 'schema' => [ + 'title' => '终端设备类型', + 'description' => 'The type of the device. Valid values:'."\n" + ."\n" + .'* ios'."\n" + .'* android'."\n" + .'* web'."\n" + .'* pc'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'android', + ], + ], + [ + 'name' => 'UserId', + 'in' => 'formData', + 'schema' => [ + 'title' => '用户UserId,在AppId下单独唯一', + 'description' => 'The ID of the user. Each user has a unique ID in the application. The ID can be up to 32 characters in length and can contain lowercase letters, digits, underscores (\\_), and periods (.). You can specify multiple user IDs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'de1**a0', + ], + ], + ], + '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' => '16A96B9A-****-CB92E68F4CD8', + ], + 'Result' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'AccessToken' => [ + 'title' => '用于长连接建连的token', + 'description' => 'The token used to establish a persistent connection.'."\n", + 'type' => 'string', + 'example' => 'oauth_cloud_key:***-b0YY5Gy6Q', + ], + 'AccessTokenExpiredTime' => [ + 'title' => '登录token过期时间(毫秒)', + 'description' => 'Indicates how long until the token expires. Unit: milliseconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '86400000', + ], + 'RefreshToken' => [ + 'title' => '更新Token,若AccessToken过期,则可以使用RefreshToken再次获取新Token', + 'description' => 'The updated token. If a token expires, you can call RefreshToken to obtain a new token.'."\n", + 'type' => 'string', + 'example' => 'oauth_cloud_key:****-Q62xggOTdgk3gw=', + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvaildParameter', + 'errorMessage' => 'Invalid Parameter', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User not authorized to operate on the specified resource.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"AccessToken\\": \\"oauth_cloud_key:***-b0YY5Gy6Q\\",\\n \\"AccessTokenExpiredTime\\": 86400000,\\n \\"RefreshToken\\": \\"oauth_cloud_key:****-Q62xggOTdgk3gw=\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n oauth_cloud_key:***-b0YY5Gy6Q\\n oauth_cloud_key:****-Q62xggOTdgk3gw=\\n 86400000\\n \\n","errorExample":""}]', + 'title' => 'GetMessageToken', + 'description' => '##'."\n" + ."\n" + .'Obtain the user ID, device ID, and device type of the client, and then pass the information to the server. When you call this operation, the server obtains a token and returns the token to the client. Different users have different user IDs, and different devices have different device IDs.'."\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. 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](~~343507~~).'."\n", + ], + 'CreateMessageApp' => [ + 'summary' => 'Creates an interactive messaging 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 name must be 2 to 16 characters in length.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'test', + ], + ], + [ + 'name' => 'AppConfig', + 'in' => 'formData', + 'style' => 'json', + 'schema' => [ + 'description' => 'The configurations of the application.'."\n", + 'type' => 'object', + 'required' => false, + 'additionalProperties' => [ + 'type' => 'string', + 'description' => 'The custom configuration.'."\n", + 'example' => '"appAlias":"localApp"', + ], + ], + ], + [ + 'name' => 'Extension', + 'in' => 'formData', + 'style' => 'json', + 'schema' => [ + 'description' => 'The extended fields.'."\n", + 'type' => 'object', + 'required' => false, + 'additionalProperties' => [ + 'type' => 'string', + 'description' => 'The extended field. Specify an additional parameter based on your business requirements.'."\n", + 'example' => 'test001', + ], + ], + ], + ], + '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' => '16A96B9A-****-CB92E68F4CD8', + ], + 'Result' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'AppId' => [ + 'title' => '用于长连接建连的token', + 'description' => 'The ID of the interactive messaging application.'."\n", + 'type' => 'string', + 'example' => 'VKL3***', + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"AppId\\": \\"VKL3***\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n 7m***q\\n \\n","errorExample":""}]', + 'title' => 'CreateMessageApp', + '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 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](~~343507~~).'."\n", + ], + 'UpdateMessageApp' => [ + 'summary' => 'Updates the configurations of an interactive message application.', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + ], + 'parameters' => [ + [ + 'name' => 'AppId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The ID of the interactive messaging application.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'VKL3***', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The name of the interactive messaging application.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'testApp', + ], + ], + [ + 'name' => 'AppConfig', + 'in' => 'formData', + 'style' => 'json', + 'schema' => [ + 'description' => 'The configurations of the application.'."\n", + 'type' => 'object', + 'required' => false, + 'additionalProperties' => [ + 'type' => 'string', + 'description' => 'The custom configuration.'."\n", + 'example' => '"appAlias":"localApp"', + ], + ], + ], + [ + 'name' => 'Extension', + 'in' => 'formData', + 'style' => 'json', + 'schema' => [ + 'description' => 'The extended field.'."\n", + 'type' => 'object', + 'required' => false, + 'additionalProperties' => [ + 'type' => 'string', + 'description' => 'The extended field. Specify an additional parameter based on your business requirements.'."\n", + 'example' => 'test001', + ], + ], + ], + ], + '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' => '16A96B9A-****-CB92E68F4CD8', + ], + 'Result' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'Success' => [ + 'description' => 'Indicates whether the update is successful. Valid values:'."\n" + ."\n" + .'* true: The update is successful.'."\n" + .'* false: The update failed.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": true\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n true\\n \\n","errorExample":""}]', + 'title' => 'UpdateMessageApp', + '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 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](~~343507~~).'."\n", + ], + 'ListMessageApp' => [ + 'summary' => 'Queries interactive messaging applications.', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + ], + 'parameters' => [ + [ + 'name' => 'SortType', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The sort order. Valid values:'."\n" + ."\n" + .'* 0: ascending order by time'."\n" + .'* 1: descending order by time'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageNum', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The number of the page to return. Default value: 1. Valid values: 1 to 100000.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '10', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The number of applications to return on each page. Default value: 20. Valid values: 1 to 50.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '20', + ], + ], + ], + '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' => '16A96B9A-****-CB92E68F4CD8', + ], + 'Result' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'AppList' => [ + 'description' => 'Details about the applications.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'AppConfig' => [ + 'description' => 'The configurations of the application.'."\n", + 'type' => 'object', + 'additionalProperties' => [ + 'type' => 'string', + 'description' => 'The configuration.'."\n", + 'example' => '"appAlias":"localApp"', + ], + ], + 'AppId' => [ + 'description' => 'The ID of the interactive messaging application.'."\n", + 'type' => 'string', + 'example' => 'VKL3***', + ], + 'AppName' => [ + 'description' => 'The name of the interactive messaging application.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'CreateTime' => [ + 'description' => 'The time when the interactive messaging application was created. The time is displayed in UTC.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '502280113', + ], + 'Extension' => [ + 'description' => 'The extended field.'."\n", + 'type' => 'object', + 'additionalProperties' => [ + 'type' => 'string', + 'example' => 'test001', + 'description' => 'The extended field.'."\n", + ], + ], + 'Status' => [ + 'description' => 'The status of the interactive message application. A value of **1** indicates that the application is normal.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + ], + ], + ], + 'HasMore' => [ + 'description' => 'Indicates whether the current page is followed by another page. Valid values:'."\n" + ."\n" + .'* true: The current page is followed by another page.'."\n" + .'* false: The current page is not followed by another page.'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + 'Total' => [ + 'description' => 'The total number of interactive message applications.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '15', + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"AppList\\": [\\n {\\n \\"AppConfig\\": {\\n \\"key\\": \\"\\\\\\"appAlias\\\\\\":\\\\\\"localApp\\\\\\"\\"\\n },\\n \\"AppId\\": \\"VKL3***\\",\\n \\"AppName\\": \\"test\\",\\n \\"CreateTime\\": 502280113,\\n \\"Extension\\": {\\n \\"key\\": \\"test001\\"\\n },\\n \\"Status\\": 1\\n }\\n ],\\n \\"HasMore\\": false,\\n \\"Total\\": 15\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n 15\\n false\\n \\n VKL3***\\n test\\n 502280113\\n 1\\n \\n \\"appAlias\\":\\"localApp\\"\\n \\n \\n test001\\n \\n \\n \\n","errorExample":""}]', + 'title' => 'ListMessageApp', + '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 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](~~343507~~).'."\n", + ], + 'GetMessageApp' => [ + 'summary' => 'Queries the information about a specified interactive messaging application.', + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'VKL3***', + ], + ], + ], + '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' => '16A96B9A-****-CB92E68F4CD8', + ], + 'Result' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'AppConfig' => [ + 'description' => 'The configurations of the application.'."\n", + 'type' => 'object', + 'additionalProperties' => [ + 'type' => 'string', + 'example' => '"appAlias":"localApp"', + 'description' => 'The configuration.'."\n", + ], + ], + 'AppId' => [ + 'title' => '应用ID。', + 'description' => 'The ID of the interactive messaging application.'."\n", + 'type' => 'string', + 'example' => 'VKL3***', + ], + 'AppName' => [ + 'title' => '应用名称。长度2~16位。', + 'description' => 'The name of the interactive messaging application.'."\n", + 'type' => 'string', + 'example' => 'testApp', + ], + 'CreateTime' => [ + 'description' => 'The time when the interactive messaging application was created. The time is displayed in UTC.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '502280113', + ], + 'Extension' => [ + 'description' => 'The extended field.'."\n", + 'type' => 'object', + 'additionalProperties' => [ + 'type' => 'string', + 'description' => 'The extended field.'."\n", + 'example' => 'test001', + ], + ], + 'Status' => [ + 'description' => 'The status of the interactive message application. A value of 1 indicates that the application is normal.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"AppConfig\\": {\\n \\"key\\": \\"\\\\\\"appAlias\\\\\\":\\\\\\"localApp\\\\\\"\\"\\n },\\n \\"AppId\\": \\"VKL3***\\",\\n \\"AppName\\": \\"testApp\\",\\n \\"CreateTime\\": 502280113,\\n \\"Extension\\": {\\n \\"key\\": \\"test001\\"\\n },\\n \\"Status\\": 1\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n VKL3***\\n testApp\\n 1\\n \\n \\"appAlias\\":\\"localApp\\"\\n \\n \\n test001\\n \\n \\n","errorExample":""}]', + 'title' => 'GetMessageApp', + '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 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](~~343507~~).'."\n", + ], + 'QueryMessageApp' => [ + 'summary' => 'Queries interactive messaging 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' => 'The ID of the interactive messaging application.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'VKL3***', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The name of the interactive messaging application.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'testApp', + ], + ], + [ + 'name' => 'SortType', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The sort order. Valid values:'."\n" + ."\n" + .'* 0: ascending order by time'."\n" + .'* 1: descending order by time'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageNum', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The number of the page to return. Default value: 1. Valid values: 1 to 100000.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The number of applications to return on each page. Default value: 20. Valid values: 1 to 50.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '20', + ], + ], + ], + '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' => '16A96B9A-****-CB92E68F4CD8', + ], + 'Result' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'AppList' => [ + 'description' => 'Details about the interactive messaging applications.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'AppConfig' => [ + 'description' => 'The configurations of the application.'."\n", + 'type' => 'object', + 'additionalProperties' => [ + 'type' => 'string', + 'description' => 'The configuration.'."\n", + 'example' => 'dawd', + ], + ], + 'AppId' => [ + 'description' => 'The ID of the interactive messaging application.'."\n", + 'type' => 'string', + 'example' => 'VKL3***', + ], + 'AppName' => [ + 'description' => 'The name of the interactive messaging application.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'CreateTime' => [ + 'description' => 'The time when the interactive messaging application was created. The time is displayed in UTC.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '502280113', + ], + 'Extension' => [ + 'description' => 'The extended field.'."\n", + 'type' => 'object', + 'additionalProperties' => [ + 'type' => 'string', + 'example' => 'test001', + 'description' => 'The extended field.'."\n", + ], + ], + 'Status' => [ + 'description' => 'The status of the interactive message application. A value of **1** indicates that the application is normal.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + ], + ], + ], + 'HasMore' => [ + 'description' => 'Indicates whether the current page is followed by another page. Valid values:'."\n" + ."\n" + .'* true: The current page is followed by another page.'."\n" + .'* false: The current page is not followed by another page.'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + 'TotalCount' => [ + 'description' => 'The total number of applications returned.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '4', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": [\\n {\\n \\"AppList\\": [\\n {\\n \\"AppConfig\\": {\\n \\"key\\": \\"dawd\\"\\n },\\n \\"AppId\\": \\"VKL3***\\",\\n \\"AppName\\": \\"test\\",\\n \\"CreateTime\\": 502280113,\\n \\"Extension\\": {\\n \\"key\\": \\"test001\\"\\n },\\n \\"Status\\": 1\\n }\\n ],\\n \\"HasMore\\": false,\\n \\"TotalCount\\": 4\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n 4\\n false\\n \\n VKL3***\\n test\\n 502280113\\n 1\\n \\n dawd\\n \\n \\n test001\\n \\n \\n \\n","errorExample":""}]', + 'title' => 'QueryMessageApp', + '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 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](~~343507~~).'."\n", + ], + 'DeleteMessageApp' => [ + 'summary' => 'Deletes an interactive messaging 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 messaging application that you want to delete. You can specify only one ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'VKL3***', + ], + ], + ], + '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' => '16A96B9A-****-CB92E68F4CD8', + ], + 'Result' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'Success' => [ + 'description' => 'Indicates whether the application was deleted. Valid values:'."\n" + ."\n" + .'* true: The application was deleted.'."\n" + .'* false: The application failed to be deleted.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": true\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n true\\n \\n","errorExample":""}]', + 'title' => 'DeleteMessageApp', + '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 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](~~343507~~).'."\n", + ], + '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.'."\n", + 'type' => 'string', + 'required' => true, + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'as****hs', + ], + ], + [ + 'name' => 'Extension', + 'in' => 'formData', + 'style' => 'json', + 'schema' => [ + 'description' => 'The extended field.'."\n", + 'type' => 'object', + 'required' => false, + 'additionalProperties' => [ + 'type' => 'string', + 'description' => 'The extended field. Specify an additional parameter based on your business requirements.'."\n", + 'example' => 'test001', + ], + ], + ], + ], + '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' => '16A96B9A-****-CB92E68F4CD8', + ], + 'Result' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'Extension' => [ + 'description' => 'The extended field.'."\n", + 'type' => 'object', + 'example' => 'test001', + ], + 'GroupId' => [ + 'title' => '用于长连接建连的token', + 'description' => 'The ID of the message group.'."\n", + 'type' => 'string', + 'example' => 'AE35-****-T95F', + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Extension\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"GroupId\\": \\"AE35-****-T95F\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n AE35-****-T95F\\n \\n","errorExample":""}]', + 'title' => 'CreateMessageGroup', + '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 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](~~343507~~).'."\n", + ], + 'UpdateMessageGroup' => [ + 'summary' => 'Updates the information about a message group.', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + ], + 'parameters' => [ + [ + 'name' => 'GroupId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The ID of the message group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'AE35-****-T95F', + ], + ], + [ + 'name' => 'AppId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The ID of the interactive messaging application.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'VKL3***', + ], + ], + [ + 'name' => 'Extension', + 'in' => 'formData', + 'style' => 'json', + 'schema' => [ + 'description' => 'The extended field.'."\n", + 'type' => 'object', + 'required' => false, + 'additionalProperties' => [ + 'type' => 'string', + 'description' => 'The extended field of the message group.'."\n", + 'example' => 'test01', + ], + ], + ], + ], + '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' => '16A96B9A-****-CB92E68F4CD8', + ], + 'Result' => [ + 'description' => 'The returned result.'."\n", + '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.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": true\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n true\\n \\n","errorExample":""}]', + 'title' => 'UpdateMessageGroup', + '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 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](~~343507~~).'."\n", + ], + 'ListMessageGroupUser' => [ + 'summary' => 'Queries the 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' => 'The ID of the interactive messaging application.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'VKL3***', + ], + ], + [ + 'name' => 'GroupId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The ID of the message group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'AE35-****-T95F', + ], + ], + [ + 'name' => 'SortType', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The sort order. Valid values:'."\n" + ."\n" + .'* 0: ascending order by time'."\n" + .'* 1: descending order by time'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageNum', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The number of the page to return. Default value: 1.'."\n" + ."\n" + .'Valid values: 1 to 100000.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The number of members to return on each page. Default value: 20.'."\n" + ."\n" + .'Valid values: 1 to 50.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '20', + ], + ], + ], + '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' => '16A96B9A-****-CB92E68F4CD8', + ], + 'Result' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'HasMore' => [ + 'description' => 'Indicates whether the current page is followed by another page. Valid values:'."\n" + ."\n" + .'* true: The current page is followed by another page.'."\n" + .'* false: The current page is not followed by another page.'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + 'Total' => [ + 'description' => 'The total number of users in the message group.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '2', + ], + 'UserList' => [ + 'description' => 'Details about the users.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the user.'."\n", + 'type' => 'object', + 'properties' => [ + 'JoinTime' => [ + 'description' => 'The time when the user joined the message group. The value is a UTC timestamp.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '12**45', + ], + 'UserId' => [ + 'description' => 'The ID of the user.'."\n", + 'type' => 'string', + 'example' => 'de1**a0,hu**9', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"HasMore\\": false,\\n \\"Total\\": 2,\\n \\"UserList\\": [\\n {\\n \\"JoinTime\\": 0,\\n \\"UserId\\": \\"de1**a0,hu**9\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n 2\\n false\\n \\n de1**a0,hu**9\\n \\n \\n","errorExample":""}]', + 'title' => 'ListMessageGroupUser', + '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 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](~~343507~~).'."\n", + ], + 'ListMessageGroup' => [ + 'summary' => 'Queries the message groups of a specified user.', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + ], + 'parameters' => [ + [ + 'name' => 'UserId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The ID of the user. Each user has a unique ID in the application. You can specify multiple user IDs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'de1**a0', + ], + ], + [ + 'name' => 'AppId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The ID of the interactive messaging application.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'VKL3***', + ], + ], + [ + 'name' => 'SortType', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The sort order. Valid values:'."\n" + ."\n" + .'* 0: ascending order by time'."\n" + .'* 1: descending order by time'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageNum', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The number of the page to return. Default value: 1. Valid values: 1 to 100000.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '10', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The number of message groups to return on each page. Default value: 20.'."\n" + ."\n" + .'Valid values: 1 to 50.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '20', + ], + ], + ], + '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' => '16A96B9A-****-CB92E68F4CD8', + ], + 'Result' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'GroupList' => [ + 'description' => 'The list of message groups.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'Details about the message group.'."\n", + 'type' => 'object', + 'properties' => [ + 'AppId' => [ + 'description' => 'The ID of the interactive messaging application.'."\n", + 'type' => 'string', + 'example' => 'VKL3***', + ], + 'CreateTime' => [ + 'description' => 'The time when the message group was created. The time is displayed in UTC.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1502280113', + ], + 'CreatorId' => [ + 'description' => 'The ID of the creator.'."\n", + 'type' => 'string', + 'example' => 'as****hs', + ], + 'Extension' => [ + 'description' => 'The extended field.'."\n", + 'type' => 'object', + 'additionalProperties' => [ + 'type' => 'string', + 'example' => 'test001', + 'description' => 'The extended field.'."\n", + ], + ], + 'GroupId' => [ + 'description' => 'The ID of the message group.'."\n", + 'type' => 'string', + 'example' => 'AE35-****-T95F', + ], + 'Status' => [ + 'description' => 'The status of the message group. The default value is **1**, which indicates that the status of the message group is normal.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + ], + ], + ], + 'HasMore' => [ + 'description' => 'Indicates whether the current page is followed by another page. Valid values:'."\n" + ."\n" + .'* true: The current page is followed by another page.'."\n" + .'* false: The current page is not followed by another page.'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + 'Total' => [ + 'description' => 'The total number of message groups.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '5', + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"GroupList\\": [\\n {\\n \\"AppId\\": \\"VKL3***\\",\\n \\"CreateTime\\": 1502280113,\\n \\"CreatorId\\": \\"as****hs\\",\\n \\"Extension\\": {\\n \\"key\\": \\"test001\\"\\n },\\n \\"GroupId\\": \\"AE35-****-T95F\\",\\n \\"Status\\": 1\\n }\\n ],\\n \\"HasMore\\": false,\\n \\"Total\\": 5\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n 5\\n false\\n \\n AE35-****-T95F\\n VKL3***\\n 1502280113\\n 1\\n as****hs\\n \\n test001\\n \\n \\n \\n","errorExample":""}]', + 'title' => 'ListMessageGroup', + '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 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](~~343507~~).'."\n", + ], + 'GetMessageGroup' => [ + 'summary' => 'Queries the information about a message group.', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + ], + 'parameters' => [ + [ + 'name' => 'GroupId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The ID of the message group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'AE35-****-T95F', + ], + ], + [ + 'name' => 'AppId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The ID of the interactive messaging application.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'VKL3***', + ], + ], + ], + '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' => '16A96B9A-****-CB92E68F4CD8', + ], + 'Result' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'CreateTime' => [ + 'description' => 'The time when the message group was created. The time is displayed in UTC.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1502280113', + ], + 'CreatorId' => [ + 'description' => 'The ID of the creator.'."\n", + 'type' => 'string', + 'example' => 'as****hs', + ], + 'Extension' => [ + 'description' => 'The extended field.'."\n", + 'type' => 'object', + 'example' => '1', + ], + 'GroupId' => [ + 'title' => '用于长连接建连的token', + 'description' => 'The ID of the message group.'."\n", + 'type' => 'string', + 'example' => 'AE35-****-T95F', + ], + 'IsMuteAll' => [ + 'description' => 'Indicates whether the message group is muted.'."\n" + ."\n" + .'* true: The message group is muted.'."\n" + .'* false: The message group is not muted.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'Status' => [ + 'description' => 'The status of the message group. The default value is **1**, which indicates that the message group is normal.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"CreateTime\\": 1502280113,\\n \\"CreatorId\\": \\"as****hs\\",\\n \\"Extension\\": 1,\\n \\"GroupId\\": \\"AE35-****-T95F\\",\\n \\"IsMuteAll\\": true,\\n \\"Status\\": 1\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n AE35-****-T95F\\n 1502280113\\n 1\\n as****hs\\n true\\n \\n","errorExample":""}]', + 'title' => 'GetMessageGroup', + 'description' => '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 limit on an API operation in ApsaraVideo Live](~~343507~~).', + ], + 'JoinMessageGroup' => [ + 'summary' => 'Joins a message group.', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + ], + 'parameters' => [ + [ + 'name' => 'AppId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The ID of the interactive messaging application.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'a494caec-***-695ef345db77', + ], + ], + [ + 'name' => 'GroupId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The ID of the message group to join.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'AE35-****-T95F', + ], + ], + [ + 'name' => 'UserId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The ID of the user. Each user has a unique ID in the application. The ID can be up to 32 characters in length and can contain lowercase letters, digits, underscores (\\_), and periods (.). You can specify multiple user IDs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'de1**a0', + ], + ], + [ + 'name' => 'BroadCastType', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The mode in which system messages are broadcasted. Valid values:'."\n" + ."\n" + .'* 0: specifies that system messages are not broadcasted. This is the default value.'."\n" + .'* 1: specifies that system messages are broadcasted to specified users.'."\n" + .'* 2: specifies that system messages are broadcasted to the message group.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '2', + ], + ], + [ + 'name' => 'BroadCastStatistics', + 'in' => 'formData', + 'schema' => [ + 'description' => 'Specifies whether to broadcast statistical messages. If you set the value to true, statistical messages of the message group are broadcasted after the users join the message group. The client can receive and process these messages. Valid values:'."\n" + ."\n" + .'* true: broadcasts statistical messages.'."\n" + .'* false: does not broadcast statistical messages.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + ], + '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' => '16A96B9A-****-CB92E68F4CD8', + ], + 'Result' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'Success' => [ + 'description' => 'Indicates whether the users successfully joined the message group. Valid values:'."\n" + ."\n" + .'* true: The users successfully joined the message group.'."\n" + .'* false: The users failed to join the message group.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": true\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n true\\n \\n","errorExample":""}]', + 'title' => 'JoinMessageGroup', + 'description' => 'You can call this operation up to 200 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", + ], + 'MuteAllGroupUser' => [ + 'summary' => 'Mutes a message group. In this case, all members of the message group are muted.', + '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 messaging application.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'VKL3***', + ], + ], + [ + 'name' => 'GroupId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The ID of the message group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'AE35-****-T95F', + ], + ], + [ + 'name' => 'OperatorUserId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The ID of the user who performs the operation.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'de1**a0', + ], + ], + [ + 'name' => 'BroadCastType', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The mode in which system messages are broadcasted. Valid values:'."\n" + ."\n" + .'* 0: specifies that system messages are not broadcasted.'."\n" + .'* 1: specifies that system messages are broadcasted to specified users.'."\n" + .'* 2: specifies that system messages are broadcasted to the message group.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '2', + ], + ], + ], + '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' => '16A96B9A-****-CB92E68F4CD8', + ], + 'Result' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'Success' => [ + 'description' => 'Indicates whether the mute was successful. Valid values:'."\n" + ."\n" + .'* true: The mute was successful.'."\n" + .'* false: The mute failed.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": true\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n true\\n \\n","errorExample":""}]', + 'title' => 'MuteAllGroupUser', + '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 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](~~343507~~).'."\n", + ], + 'MuteGroupUser' => [ + 'summary' => 'Mutes 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 messaging application.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'VKL3***', + ], + ], + [ + 'name' => 'GroupId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The ID of the message group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'AE35-****-T95F', + ], + ], + [ + 'name' => 'MuteUserList', + 'in' => 'formData', + 'style' => 'simple', + 'schema' => [ + 'description' => 'Details about the mute.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The IDs of the users to mute.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'qu***,yu1***', + ], + 'required' => true, + ], + ], + [ + 'name' => 'MuteTime', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The duration of the mute. Unit: seconds.'."\n" + ."\n" + .'> If you do not specify this parameter or set the value to 0, the default duration of 86,400 seconds is used.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '3600', + ], + ], + [ + 'name' => 'OperatorUserId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The ID of the user who performs the operation.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'de1**a0', + ], + ], + [ + 'name' => 'BroadCastType', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The mode in which system messages are broadcasted. Valid values:'."\n" + ."\n" + .'* 0: specifies that system messages are not broadcasted. This is the default value.'."\n" + .'* 1: specifies that system messages are broadcasted to specified users.'."\n" + .'* 2: specifies that system messages are broadcasted to the message group.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '2', + ], + ], + ], + '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' => '16A96B9A-****-CB92E68F4CD8', + ], + 'Result' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'Success' => [ + 'description' => 'Indicates whether the mute is successful. Valid values:'."\n" + ."\n" + .'* true: The mute is successful.'."\n" + .'* false: The mute failed.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": true\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n true\\n \\n","errorExample":""}]', + 'title' => 'MuteGroupUser', + '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 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](~~343507~~).'."\n", + ], + 'CancelMuteGroupUser' => [ + 'summary' => 'Unmutes 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 messaging application.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'VKL3***', + ], + ], + [ + 'name' => 'GroupId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The ID of the message group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'AE35-****-T95F', + ], + ], + [ + 'name' => 'CancelMuteUserList', + 'in' => 'formData', + 'style' => 'simple', + 'schema' => [ + 'description' => 'The IDs of the users.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The IDs of the users to unmute.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'qu***,yu1***', + ], + 'required' => true, + ], + ], + [ + 'name' => 'OperatorUserId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The ID of the user who performs the operation.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'de1**a0', + ], + ], + [ + 'name' => 'BroadCastType', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The mode in which system messages are broadcasted. Valid values:'."\n" + ."\n" + .'* 0: specifies that system messages are not broadcasted. This is the default value.'."\n" + .'* 1: specifies that system messages are broadcasted to specified users.'."\n" + .'* 2: specifies that system messages are broadcasted to the message group.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '2', + ], + ], + ], + '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' => '16A96B9A-****-CB92E68F4CD8', + ], + 'Result' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'Success' => [ + 'description' => 'Indicates whether the members are unmuted. Valid values:'."\n" + ."\n" + .'* true: The members are unmuted.'."\n" + .'* false: The members failed to be unmuted.'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": false\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n false\\n \\n","errorExample":""}]', + 'title' => 'CancelMuteGroupUser', + '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 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](~~343507~~).'."\n", + ], + 'CancelMuteAllGroupUser' => [ + 'summary' => 'Unmutes a message group.', + '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 message application ID.', + 'type' => 'string', + 'required' => true, + 'example' => 'VKL3***', + ], + ], + [ + 'name' => 'GroupId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'Message group ID.', + 'type' => 'string', + 'required' => true, + 'example' => 'AE35-****-T95F', + ], + ], + [ + 'name' => 'OperatorUserId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'Operator\'s UserId. > This parameter is required and the user must be the creator of the group.', + 'type' => 'string', + 'required' => false, + 'example' => 'de1**a0', + ], + ], + [ + 'name' => 'BroadCastType', + 'in' => 'formData', + 'schema' => [ + 'description' => '系统消息扩散类型,取值:'."\n" + ."\n" + .'- 0:不扩散。'."\n" + ."\n" + .'- 1:扩散到指定人。'."\n" + ."\n" + .'- 2:扩散到群组。', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '2', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-****-CB92E68F4CD8', + ], + 'Result' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'Success' => [ + 'description' => 'Indicates whether the cancellation was successful, with values:'."\n" + .'- true: Success. '."\n" + .'- false: Not successful.', + 'type' => 'boolean', + 'example' => 'true', + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": true\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n true\\n \\n","errorExample":""}]', + 'title' => 'CancelMuteAllGroupUser', + 'description' => '## QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'translator' => 'machine', + ], + 'LeaveMessageGroup' => [ + 'summary' => 'Leaves a message group.', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + ], + 'parameters' => [ + [ + 'name' => 'AppId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The ID of the interactive messaging application.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'VKL3***', + ], + ], + [ + 'name' => 'GroupId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The ID of the message group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'AE35-****-T95F', + ], + ], + [ + 'name' => 'UserId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The ID of the user. Each user has a unique ID in the application.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'de1**a0', + ], + ], + [ + 'name' => 'BroadCastType', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The mode in which system messages are broadcasted. Valid values:'."\n" + ."\n" + .'* 0: specifies that system messages are not broadcasted. This is the default value.'."\n" + .'* 1: specifies that system messages are broadcasted to specified users.'."\n" + .'* 2: specifies that system messages are broadcasted to the message group.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '2', + ], + ], + [ + 'name' => 'BroadCastStatistics', + 'in' => 'formData', + 'schema' => [ + 'description' => 'Specifies whether to broadcast statistical messages. If you set the value to true, statistical messages of the message group are broadcasted after the users join the message group. The client can receive and process these messages. Valid values:'."\n" + ."\n" + .'* true: broadcasts statistical messages.'."\n" + .'* false: does not broadcast statistical messages.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + ], + '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' => '16A96B9A-****-CB92E68F4CD8', + ], + 'Result' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'Success' => [ + 'description' => 'Indicates whether the user left the message group. Valid values:'."\n" + ."\n" + .'* true: The user left the message group.'."\n" + .'* false: The user failed to leave the message group.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": true\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n true\\n \\n","errorExample":""}]', + 'title' => 'LeaveMessageGroup', + 'description' => '##'."\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 limit on an API operation in ApsaraVideo Live](~~343507~~).'."\n", + ], + 'SendLike' => [ + 'summary' => 'Configures likes in a message group.', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + ], + 'parameters' => [ + [ + 'name' => 'AppId', + 'in' => 'formData', + 'schema' => [ + 'title' => '应用ID。', + 'description' => 'The ID of the interactive messaging application.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'VKL3***', + ], + ], + [ + 'name' => 'GroupId', + 'in' => 'formData', + 'schema' => [ + 'title' => '消息组ID。', + 'description' => 'The ID of the message group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'AE35-****-T95F', + ], + ], + [ + 'name' => 'OperatorUserId', + 'in' => 'formData', + 'schema' => [ + 'title' => '操作者ID。示例值:testUserId。', + 'description' => 'The ID of the user who performs the operation.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'de1**a0', + ], + ], + [ + 'name' => 'Count', + 'in' => 'formData', + 'schema' => [ + 'title' => '点赞数。示例值:1。', + 'description' => 'The number of likes.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '10', + ], + ], + [ + 'name' => 'BroadCastType', + 'in' => 'formData', + 'schema' => [ + 'title' => '系统消息广播类型,取值0,1,2.'."\n" + .'0:不广播。'."\n" + .'1:广播至消息组指定成员。'."\n" + .'2:广播至消息组。', + 'description' => 'The mode in which system messages are broadcasted. Valid values:'."\n" + ."\n" + .'* 0: specifies that system messages are not broadcasted. This is the default value.'."\n" + .'* 1: specifies that system messages are broadcasted to specified users.'."\n" + .'* 2: specifies that system messages are broadcasted to the message group.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '2', + ], + ], + ], + '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' => '16A96B9A-****-CB92E68F4CD8', + ], + 'Result' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'LikeCount' => [ + 'description' => 'The number of likes.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"LikeCount\\": 10\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n 10\\n \\n","errorExample":""}]', + 'title' => 'SendLike', + '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 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](~~343507~~).'."\n", + ], + 'SendMessageToGroup' => [ + 'summary' => 'Sends a message to all 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 messaging application.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'VKL3***', + ], + ], + [ + 'name' => 'GroupId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The ID of the message group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'AE35-****-T95F', + ], + ], + [ + 'name' => 'OperatorUserId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The ID of the user who performed the operation.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'de1**a0', + ], + ], + [ + 'name' => 'Type', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The type of the message. A value that is less than or equal to 10000 specifies a system message. A value that is greater than 10000 specifies a custom message.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '12000', + ], + ], + [ + 'name' => 'Data', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The message body. The value is a JSON string.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'test', + ], + ], + [ + 'name' => 'SkipAudit', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether the message requires Alibaba Cloud content moderation. Valid values:'."\n" + ."\n" + .'- **true**: does not require content moderation.'."\n" + .'- **false**: requires content moderation. This is the default value.', + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + ], + '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' => '16A96B9A-****-CB92E68F4CD8', + ], + 'Result' => [ + 'description' => 'The data returned.'."\n", + 'type' => 'object', + 'properties' => [ + 'MessageId' => [ + 'title' => '用于长连接建连的token', + 'description' => 'The ID of the message.'."\n", + 'type' => 'string', + 'example' => 'qt***', + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"MessageId\\": \\"qt***\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n qt***\\n \\n","errorExample":""}]', + 'title' => 'SendMessageToGroup', + '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 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](~~343507~~).'."\n", + ], + 'SendMessageToGroupUsers' => [ + 'summary' => 'Sends a message 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' => 'The ID of the interactive messaging application.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'VKL3***', + ], + ], + [ + 'name' => 'GroupId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The ID of the message group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'AE35-****-T95F', + ], + ], + [ + 'name' => 'Type', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The type of the message. A value that is less than or equal to 10000 specifies a system message. A value that is greater than 10000 specifies a custom message.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '12000', + ], + ], + [ + 'name' => 'OperatorUserId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The ID of the user who performs the operation.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'de1**a0', + ], + ], + [ + 'name' => 'ReceiverIdList', + 'in' => 'formData', + 'style' => 'simple', + 'schema' => [ + 'description' => 'The list of users to receive the message.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the user to receive the message.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'hj***,3h***', + ], + 'required' => false, + ], + ], + [ + 'name' => 'Data', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The message body. The value is a JSON string.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'test', + ], + ], + [ + 'name' => 'SkipAudit', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether the message requires Alibaba Cloud content moderation. Valid values:'."\n" + ."\n" + .'- **true**: does not require content moderation.'."\n" + .'- **false**: requires content moderation. This is the default value.', + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + ], + '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' => '16A96B9A-****-CB92E68F4CD8', + ], + 'Result' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'MessageId' => [ + 'title' => '用于长连接建连的token', + 'description' => 'The ID of the message.'."\n", + 'type' => 'string', + 'example' => 'hp***', + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"MessageId\\": \\"hp***\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n hp***\\n \\n","errorExample":""}]', + 'title' => 'SendMessageToGroupUsers', + '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 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](~~343507~~).'."\n", + ], + 'ListMessage' => [ + 'summary' => 'Queries messages.', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + ], + 'parameters' => [ + [ + 'name' => 'GroupId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The ID of the message group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'AE35-****-T95F', + ], + ], + [ + 'name' => 'AppId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The ID of the interactive messaging application.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'VKL3***', + ], + ], + [ + 'name' => 'Type', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The type of the custom message. Valid values: integers greater than 10000.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10002', + ], + ], + [ + 'name' => 'SortType', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The sort order. Valid values:'."\n" + ."\n" + .'* 0: ascending order by time'."\n" + .'* 1: descending order by time'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageNum', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The number of the page to return. Default value: 1. Valid values: 1 to 100000.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '10', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The number of entries to return on each page. Default value: 20. Valid values: 1 to 50.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '20', + ], + ], + ], + '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' => '16A96B9A-****-CB92E68F4CD8', + ], + 'Result' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'HasMore' => [ + 'description' => 'Indicates whether the current page is followed by another page. Valid values:'."\n" + ."\n" + .'* true: The current page is followed by another page.'."\n" + .'* false: The current page is not followed by another page.'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + 'MessageList' => [ + 'description' => 'Details about the messages.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Data' => [ + 'description' => 'The message body. The value is a JSON string.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'GroupId' => [ + 'description' => 'The ID of the message group.'."\n", + 'type' => 'string', + 'example' => 'AE35-****-T95F', + ], + 'MessageId' => [ + 'description' => 'The ID of the message.'."\n", + 'type' => 'string', + 'example' => 'qt***', + ], + 'SenderId' => [ + 'description' => 'The ID of the user who sent the message.'."\n", + 'type' => 'string', + 'example' => 'yi***', + ], + 'Type' => [ + 'description' => 'The type of the message.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10002', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"HasMore\\": false,\\n \\"MessageList\\": [\\n {\\n \\"Data\\": \\"test\\",\\n \\"GroupId\\": \\"AE35-****-T95F\\",\\n \\"MessageId\\": \\"qt***\\",\\n \\"SenderId\\": \\"yi***\\",\\n \\"Type\\": 10002\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n false\\n \\n AE35-****-T95F\\n qt***\\n 10002\\n yi***\\n test\\n \\n \\n","errorExample":""}]', + 'title' => 'ListMessage', + '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 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](~~343507~~).'."\n", + ], + 'ListMessageGroupUserById' => [ + 'summary' => 'Queries user information by user ID.', + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'VKL3***', + ], + ], + [ + 'name' => 'GroupId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The ID of the message group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'AE35-****-T95F', + ], + ], + [ + 'name' => 'UserIdList', + 'in' => 'formData', + 'style' => 'simple', + 'schema' => [ + 'description' => 'The list of users.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the user.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'de1**a0', + ], + 'required' => true, + ], + ], + ], + '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' => '16A96B9A-****-CB92E68F4CD8', + ], + 'Result' => [ + 'description' => 'The returned results.'."\n", + 'type' => 'object', + 'properties' => [ + 'HasMore' => [ + 'description' => 'Indicates whether the current page is followed by another page. Valid values:'."\n" + ."\n" + .'* true'."\n" + .'* false'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + 'Total' => [ + 'description' => 'The total number of users returned.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '3', + ], + 'UserList' => [ + 'description' => 'The list of users.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'IsMute' => [ + 'description' => 'Indicates whether the user is muted. Valid values:'."\n" + ."\n" + .'* true: The user is muted.'."\n" + .'* false: The user is not muted.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'MuteBy' => [ + 'description' => 'The type of the mute. Valid values:'."\n" + ."\n" + .'* group: All members in the message group are muted.'."\n" + .'* user: Specific members in the message group are muted.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The type of the mute. Valid values:'."\n" + ."\n" + .'* group: All members in the message group are muted.'."\n" + .'* user: Specific members in the message group are muted.'."\n", + 'type' => 'string', + 'example' => 'user', + ], + ], + 'UserAvatar' => [ + 'description' => 'The URL of the profile picture of the user.'."\n", + 'type' => 'string', + 'example' => '"http://www.aliyundoc.com/xxyy.png"', + ], + 'UserExtension' => [ + 'description' => 'The custom information about the user.'."\n", + 'type' => 'string', + 'example' => '12e', + ], + 'UserId' => [ + 'description' => 'The ID of the user.'."\n", + 'type' => 'string', + 'example' => 'ad***', + ], + 'UserNick' => [ + 'description' => 'The nickname of the user.'."\n", + 'type' => 'string', + 'example' => 'xxyy', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParam', + 'errorMessage' => 'Parameter invalid.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"HasMore\\": false,\\n \\"Total\\": 3,\\n \\"UserList\\": [\\n {\\n \\"IsMute\\": true,\\n \\"MuteBy\\": [\\n \\"user\\"\\n ],\\n \\"UserAvatar\\": \\"\\\\\\"http://www.aliyundoc.com/xxyy.png\\\\\\"\\",\\n \\"UserExtension\\": \\"12e\\",\\n \\"UserId\\": \\"ad***\\",\\n \\"UserNick\\": \\"xxyy\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n 3\\n false\\n \\n ad***\\n xxyy\\n \\"http://www.aliyundoc.com/xxyy.png\\"\\n 12e\\n true\\n user\\n \\n \\n","errorExample":""}]', + 'title' => 'ListMessageGroupUserById', + '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 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](~~343507~~).'."\n", + ], + 'BatchGetOnlineUsers' => [ + 'summary' => 'Queries whether users are online by UID.', + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'a494caec-***-695ef345db77', + ], + ], + [ + 'name' => 'GroupId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The ID of the message group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '23wcaec-***695ef', + ], + ], + [ + 'name' => 'UserIds', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The list of user IDs. Separate multiple user IDs with commas (,). You can specify a maximum of 20 user IDs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'de1**a0,hu**9', + ], + ], + ], + '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' => '16A96B9A-****-CB92E68F4CD8', + ], + 'Result' => [ + 'description' => 'The returned results.'."\n", + 'type' => 'object', + 'properties' => [ + 'OnlineUsers' => [ + 'description' => 'The information about users.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'JoinTime' => [ + 'description' => 'The time when the user joined the group. The value is a UTC timestamp. Unit: milliseconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '12**45', + ], + 'Online' => [ + 'description' => 'Indicates whether the user is online. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'UserId' => [ + 'description' => 'The ID of the user.'."\n", + 'type' => 'string', + 'example' => 'de1**a0', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User not authorized to operate on the specified resource.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"OnlineUsers\\": [\\n {\\n \\"JoinTime\\": 0,\\n \\"Online\\": true,\\n \\"UserId\\": \\"de1**a0\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n \\n de1**a0\\n true\\n \\n \\n","errorExample":""}]', + 'title' => 'BatchGetOnlineUsers', + 'description' => '## Usage notes'."\n" + ."\n" + .'You can query whether up to 20 users are online at a time.'."\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. 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](~~343507~~).'."\n", + ], + 'ListMuteGroupUser' => [ + 'summary' => 'Queries muted members in a messaging 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 messaging application.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'VKL3***', + ], + ], + [ + 'name' => 'GroupId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The ID of the messaging group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'AE35-****-T95F', + ], + ], + [ + 'name' => 'PageNum', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The page number. Default value: 1. Valid values: 1 to 100000.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '10', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: 20. Valid values: 1 to 50.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '20', + ], + ], + [ + 'name' => 'OperatorUserId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The ID of the user who performs the operation.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'de1**a0', + ], + ], + ], + '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' => '16A96B9A-****-CB92E68F4CD8', + ], + 'Result' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'HasMore' => [ + 'description' => 'Indicates whether the current page is followed by another page. Valid values:'."\n" + ."\n" + .'* true'."\n" + .'* false'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + 'Total' => [ + 'description' => 'The total number of muted members.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '2', + ], + 'UserList' => [ + 'description' => 'The list of muted users.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'UserId' => [ + 'description' => 'The ID of the muted user.'."\n", + 'type' => 'string', + 'example' => '1sd***,yu***', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"HasMore\\": false,\\n \\"Total\\": 2,\\n \\"UserList\\": [\\n {\\n \\"UserId\\": \\"1sd***,yu***\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n 2\\n false\\n \\n 1sd***,yu***\\n \\n \\n","errorExample":""}]', + 'title' => 'ListMuteGroupUser', + 'description' => '## [](#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", + ], + '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 name of the application. The name must be 2 to 16 characters in length.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'testApp', + ], + ], + [ + 'name' => 'AuditType', + 'in' => 'query', + 'schema' => [ + 'title' => '安全审核方式:0为不开启安全审核,1为内置安全审核, 2为自定义安全审核', + 'description' => 'The content moderation method. Valid values:'."\n" + ."\n" + .'* 0 (default): 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. If you set AuditType to 2, you must specify this parameter. The URL must start with http:// or https:// and cannot contain a private IP address or a port number. For more information about custom content moderation, see the "Custom content moderation" section of this topic.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'http://demo.aliyundoc.com/exampleaudit', + ], + ], + [ + 'name' => 'EventCallbackUrl', + 'in' => 'query', + 'schema' => [ + 'title' => '用户登录、登出,加入、离开群组等事件回调地址,若为空则不开启事件回调', + 'description' => 'The callback URL for events, such as logon, logoff, and joining and leaving a group. If you leave this parameter empty, event callbacks are disabled. [](~~2672836~~)The callback URL must start with http:// or https:// and cannot contain a private IP address or a port number. For information about the callback message format and authentication logic, see the "Event callbacks" and "Callback authentication" sections of this topic.'."\n", + '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)'."\n" + .'* ap-southeast-1: Singapore'."\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.'."\n", + 'type' => 'string', + 'required' => false, + '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.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + ], + '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' => '65EEDBEB-43FE-1E15-976F-3DDD753A****', + ], + 'AppId' => [ + 'description' => 'The application ID. The ID is used in subsequent operations, such as joining a group.'."\n", + 'type' => 'string', + 'example' => 'demo', + ], + 'AppKey' => [ + 'description' => 'The AppKey for authentication of this application.'."\n", + 'type' => 'string', + 'example' => '**********************************', + ], + 'AppSign' => [ + 'description' => 'The application signature. The signature is required when you use the interactive messaging SDK.'."\n", + 'type' => 'string', + 'example' => '**************************************************************************', + ], + 'DataCenter' => [ + 'description' => 'The data center in which the interactive messaging application was created.'."\n", + 'type' => 'string', + 'example' => 'cn-shanghai', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'ErrorInvalidAppName', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'ErrorTooManyApps', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'ErrorInvalidEventCallbackUrl', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'ErrorInvalidAuditUrl', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"65EEDBEB-43FE-1E15-976F-3DDD753A****\\",\\n \\"AppId\\": \\"demo\\",\\n \\"AppKey\\": \\"**********************************\\",\\n \\"AppSign\\": \\"**************************************************************************\\",\\n \\"DataCenter\\": \\"cn-shanghai\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 65EEDBEB-43FE-1E15-976F-3DDD753A****\\n demo\\n **********************************\\n **************************************************************************\\n","errorExample":""}]', + 'title' => 'CreateLiveMessageApp', + 'description' => '* When you call other operations to manage the interactive messaging application, you must specify the same data center in which the application is created.'."\n" + .'* You can create up to 300 interactive messaging applications in an Alibaba Cloud account.'."\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", + 'requestParamsDescription' => '### [](#)Custom content moderation'."\n" + ."\n" + .'* Request protocol: HTTP'."\n" + .'* Request method: POST'."\n" + .'* Sample request:'."\n" + ."\n" + .''."\n" + ."\n" + .' {'."\n" + .' "content": "testaudit"'."\n" + .' }'."\n" + ."\n" + .'* Sample response:'."\n" + ."\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" + .'> 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" + .' "transactionid":"A8C7B033-B339-1A58-B0E0-7B9197BA****",'."\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 returned for the event of joining a group or leaving a group, but not returned for the logon or logoff event.'."\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" + .'> 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 received 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 MD5CONTENT = 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.'."\n", + ], + 'CreateLiveMessageGroup' => [ + 'summary' => 'Creates an interactive messaging group.', + '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', + ], + ], + [ + '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', + ], + ], + [ + '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' => '管理员用户ID列表,不能超过3个', + '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', + ], + 'required' => false, + 'maxItems' => 3, + ], + ], + [ + 'name' => 'CreatorId', + 'in' => 'query', + 'schema' => [ + 'title' => '群创建者ID', + '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', + ], + ], + ], + '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' => 'A8C7B033-B339-1A58-B0E0-7B9197BA****', + ], + 'GroupId' => [ + 'description' => 'The ID of the group created.'."\n", + 'type' => 'string', + 'example' => 'grouptest', + ], + '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', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'ErrorTooManyGroups', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A8C7B033-B339-1A58-B0E0-7B9197BA****\\",\\n \\"GroupId\\": \\"grouptest\\",\\n \\"AlreadyExists\\": true,\\n \\"AlreadyDelete\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n A8C7B033-B339-1A58-B0E0-7B9197BA****\\n grouptest\\n true\\n true\\n","errorExample":""}]', + 'title' => 'CreateLiveMessageGroup', + '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", + ], + 'DescribeLiveMessageGroup' => [ + 'summary' => 'Queries the information about an interactive messaging group.', + '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' => 'coims-pre', + ], + ], + [ + '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', + ], + ], + [ + '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', + ], + ], + ], + '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' => '1815A27D-BAE2-10E6-89FD-D477951C67C7', + ], + 'GroupId' => [ + 'description' => 'The group ID.'."\n", + 'type' => 'string', + 'example' => 'grouptest1', + ], + 'CreatorId' => [ + 'description' => 'The ID of the group creator.'."\n", + 'type' => 'string', + 'example' => 'uid1', + ], + 'AdminList' => [ + 'description' => 'The list of the group administrators.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the administrator.'."\n", + 'type' => 'string', + 'example' => 'uid1', + ], + ], + 'Createtime' => [ + 'description' => 'The time when the group was created. The value is a UNIX timestamp. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1698305471', + ], + 'GroupName' => [ + 'description' => 'The name of the group.'."\n", + 'type' => 'string', + 'example' => 'mytestgroup', + ], + 'GroupInfo' => [ + 'description' => 'Additional information about the group.'."\n", + 'type' => 'string', + 'example' => 'testgroupinfo', + ], + 'Delete' => [ + 'description' => 'Indicates whether the group was deleted.'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + 'TotalTimes' => [ + 'description' => 'The total number of sessions. This parameter is returned only if the group exists.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '50', + ], + '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', + ], + '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.', + ], + ], + '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', + ], + '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', + ], + 'SuperLargeGroup' => [ + 'description' => 'Indicates whether the group is a super group. Valid values:'."\n" + ."\n" + .'* True'."\n" + .'* False'."\n", + 'type' => 'boolean', + 'example' => 'False', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"1815A27D-BAE2-10E6-89FD-D477951C****\\",\\n \\"GroupId\\": \\"grouptest\\",\\n \\"CreatorId\\": \\"uid1\\",\\n \\"AdminList\\": [\\n \\"[\\\\\\"uid1\\\\\\",\\\\\\"uid2\\\\\\"]\\"\\n ],\\n \\"Createtime\\": 1698305471,\\n \\"GroupName\\": \\"mytestgroup\\",\\n \\"GroupInfo\\": \\"testgroupinfo\\",\\n \\"Delete\\": false,\\n \\"TotalTimes\\": 50,\\n \\"OnlineUserCounts\\": 2,\\n \\"MsgAmount\\": {\\n \\"key\\": 0\\n },\\n \\"Deletatime\\": 1698299827,\\n \\"Deletor\\": \\"uid1\\",\\n \\"SuperLargeGroup\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n 1815A27D-BAE2-10E6-89FD-D477951C****\\n grouptest\\n uid1\\n [\\"uid1\\",\\"uid2\\"]\\n 1698305471\\n mytestgroup\\n testgroupinfo\\n false\\n 50\\n 2\\n {1:20,2:30}\\n","errorExample":""}]', + 'title' => 'DescribeLiveMessageGroup', + '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", + ], + 'ModifyLiveMessageGroup' => [ + 'summary' => 'Modifies the information about an interactive messaging 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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo', + ], + ], + [ + 'name' => 'GroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The group ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'grouptest', + ], + ], + [ + 'name' => 'ModifyAdmin', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to change the group administrators.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + [ + 'name' => 'AdminList', + 'in' => 'query', + 'style' => 'simple', + 'schema' => [ + 'description' => 'The list of administrators after your change.'."\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","uid2","uid3"]', + ], + 'required' => false, + ], + ], + [ + 'name' => 'ModifyInfo', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to modify the additional information about the group.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + [ + 'name' => 'GroupInfo', + 'in' => 'query', + 'schema' => [ + 'description' => 'The additional information about the group after the modification. The value can be up to 32 KB in length.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'newmeta', + ], + ], + [ + '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', + ], + ], + ], + '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' => '84AF36BF-0B39-1F8A-A416-FAC7C484****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"84AF36BF-0B39-1F8A-A416-FAC7C484****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 84AF36BF-0B39-1F8A-A416-FAC7C484****\\n","errorExample":""}]', + 'title' => 'ModifyLiveMessageGroup', + '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", + ], + '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', + ], + ], + [ + 'name' => 'GroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the group that you want to delete.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'grouptest', + ], + ], + [ + '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', + ], + ], + [ + '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', + ], + ], + ], + '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', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"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", + ], + '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', + ], + ], + [ + 'name' => 'SortType', + 'in' => 'query', + 'schema' => [ + 'title' => '排序方式,1为正序,2为逆序', + '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' => '查询页的起始位置,若为空或者 -1 则默认为首页', + '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', + ], + ], + ], + [ + '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', + ], + ], + ], + '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', + ], + '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****', + ], + 'CreatorId' => [ + 'description' => 'The ID of the group creator.'."\n", + 'type' => 'string', + 'example' => 'user_77', + ], + 'AdminList' => [ + 'description' => 'The list of the IDs of the group administrators.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'Administrator.', + 'type' => 'string', + 'example' => 'uid1', + ], + ], + 'Createtime' => [ + 'description' => 'The time when the group was created. The value is a UNIX timestamp. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1698299727', + ], + 'GroupName' => [ + 'description' => 'The name of the group.'."\n", + 'type' => 'string', + 'example' => 'mytestgroup', + ], + 'GroupInfo' => [ + 'description' => 'The additional information about the group.'."\n", + 'type' => 'string', + 'example' => 'testgroupinfo', + ], + 'Delete' => [ + 'description' => 'Indicates whether the group is deleted.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"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", + ], + 'ListLiveMessageGroupByPage' => [ + 'summary' => 'Queries interactive messaging groups by page.', + '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', + ], + ], + [ + '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', + ], + ], + ], + [ + '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', + ], + ], + [ + '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', + ], + ], + [ + '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', + ], + ], + ], + [ + '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', + ], + ], + ], + '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', + ], + 'PageNumber' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'PageSize' => [ + 'description' => 'The number of entries returned on each page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '20', + ], + '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****', + ], + 'CreatorId' => [ + 'description' => 'The ID of the user who created the group.'."\n", + 'type' => 'string', + 'example' => 'user_77', + ], + 'AdminList' => [ + 'description' => 'The list of administrators.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the administrator.'."\n", + 'type' => 'string', + 'example' => 'uid1', + ], + ], + 'Createtime' => [ + 'description' => 'The time when the group was created. The value is a UNIX timestamp. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1698299727', + ], + 'GroupName' => [ + 'description' => 'The name of the group.'."\n", + 'type' => 'string', + 'example' => 'mytestgroup', + ], + 'GroupInfo' => [ + 'description' => 'The additional information about the group.'."\n", + 'type' => 'string', + 'example' => 'testgroupinfo', + ], + 'Delete' => [ + 'description' => 'Indicates whether the group is deleted.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"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", + ], + 'ModifyLiveMessageGroupBand' => [ + 'summary' => 'Modifies the mute status of users.', + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo', + ], + ], + [ + 'name' => 'GroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The group ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'grouptest', + ], + ], + [ + 'name' => 'BannedAll', + 'in' => 'query', + 'schema' => [ + 'title' => '是否全员禁言', + 'description' => 'Specifies whether to mute all users.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + ], + [ + 'name' => 'BannnedUsers', + 'in' => 'query', + 'style' => 'simple', + 'schema' => [ + 'title' => '被禁言的用户', + 'description' => 'The ID of the user whom you want to mute. Separate multiple user IDs with commas (,). You can specify up to 30 users IDs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'Users who are muted, separated by commas (,). Up to 30 users.', + 'type' => 'string', + 'required' => false, + 'example' => '["uid1","uid2"]', + ], + 'required' => false, + ], + ], + [ + 'name' => 'ExceptUsers', + 'in' => 'query', + 'style' => 'simple', + 'schema' => [ + 'title' => '不被禁言的用户', + 'description' => 'The ID of the user whom you do not want to mute when you set the BannedAll parameter to true. Separate multiple user IDs with commas (,). You can specify up to 30 users IDs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'Users who are not muted when global mute is enabled, separated by commas (,). Up to 30 users allowed.', + 'type' => 'string', + 'required' => false, + 'example' => '["uid3"]', + ], + 'required' => false, + ], + ], + [ + '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', + ], + ], + ], + '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' => '84AF36BF-0B39-1F8A-A416-FAC7C484****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"84AF36BF-0B39-1F8A-A416-FAC7C484****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 84AF36BF-0B39-1F8A-A416-FAC7C484****\\n","errorExample":""}]', + 'title' => 'ModifyLiveMessageGroupBand', + '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 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", + ], + 'DescribeLiveMessageGroupBand' => [ + 'summary' => 'Queries the mute status of users.', + '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', + ], + ], + [ + 'name' => 'GroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the interactive messaging group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'grouptest', + ], + ], + [ + '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', + ], + ], + ], + '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', + ], + '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"]', + ], + ], + '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"]', + ], + ], + 'IsbannedAll' => [ + 'description' => 'Indicates whether all users in the interactive messaging group are muted.'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"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", + ], + 'CheckLiveMessageUsersOnline' => [ + 'summary' => 'Queries whether one or more specified users are online.', + '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', + ], + ], + [ + 'name' => 'UserIds', + 'in' => 'query', + 'style' => 'simple', + 'schema' => [ + 'title' => '需要查询的用户,范围为1-10个', + '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', + ], + 'required' => true, + 'maxItems' => 10, + 'minItems' => 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', + ], + ], + ], + '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' => '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', + ], + 'UserId' => [ + 'description' => 'The user ID.'."\n", + 'type' => 'string', + 'example' => 'uid1', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"178F572F-AECF-100B-937A-B8047B4D****\\",\\n \\"UserList\\": [\\n {\\n \\"Online\\": false,\\n \\"UserId\\": \\"uid1\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 178F572F-AECF-100B-937A-B8047B4D****\\n \\n uid1\\n false\\n \\n","errorExample":""}]', + 'title' => 'CheckLiveMessageUsersOnline', + '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", + ], + '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', + ], + ], + [ + 'name' => 'GroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The group ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'grouptest', + ], + ], + [ + 'name' => 'UserIds', + 'in' => 'query', + 'style' => 'simple', + 'schema' => [ + 'title' => '需要查询的UserId,查询个数范围为1-10', + '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', + ], + 'required' => true, + 'maxItems' => 10, + 'minItems' => 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', + ], + ], + ], + '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' => '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', + ], + 'Online' => [ + 'description' => 'Indicates whether the user is in the group.'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F1F68D81-1543-1FE4-B56E-82200DD2****\\",\\n \\"Users\\": [\\n {\\n \\"UserId\\": \\"uid1\\",\\n \\"Online\\": false\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n F1F68D81-1543-1FE4-B56E-82200DD2****\\n \\n uid1\\n false\\n \\n","errorExample":""}]', + 'title' => '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", + ], + 'ListLiveMessageGroupUsers' => [ + 'summary' => 'Queries the users in an interactive messaging group.', + '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', + ], + ], + [ + 'name' => 'GroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the group to query.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'grouptest', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'title' => '一次显示的用户数量,最小值10,最大值50', + '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' => '排序方式,1为正序,2为逆序', + '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', + ], + ], + ], + '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' => 'A1D75BEA-1329-116F-B29C-76F3F200****', + ], + 'GroupId' => [ + 'description' => 'The ID of the group queried.'."\n", + 'type' => 'string', + 'example' => 'grouptest', + ], + 'NextPageToken' => [ + 'title' => '下一页的起始位置,若没有下一页则为0', + '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' => '查询的用户Id', + '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', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 420 => [ + [ + 'errorCode' => 'SuperLargeGroup', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A1D75BEA-1329-116F-B29C-76F3F200****\\",\\n \\"GroupId\\": \\"grouptest\\",\\n \\"NextPageToken\\": 0,\\n \\"Hasmore\\": false,\\n \\"UserList\\": [\\n {\\n \\"UserId\\": \\"uid1\\",\\n \\"UserInfo\\": \\"info1\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n A1D75BEA-1329-116F-B29C-76F3F200****\\n grouptest\\n 0\\n false\\n \\n uid1\\n info1\\n \\n","errorExample":""}]', + 'title' => '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", + ], + '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', + ], + ], + [ + 'name' => 'GroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the group to query.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'grouptest', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'title' => '一次显示的消息数量,最小10,最大50', + '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' => '排序方式,1为正序,2为逆序', + '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', + ], + ], + ], + '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', + ], + 'NextPageToken' => [ + 'title' => '下一页的起始位置,若没有下一页则为0', + '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', + ], + 'UserInfo' => [ + 'description' => 'The additional information about the user who sent the message.'."\n", + 'type' => 'string', + 'example' => 'testusermeta2', + ], + ], + ], + 'Body' => [ + 'description' => 'The message body.'."\n", + 'type' => 'string', + 'example' => 'step2 helo, cc group', + ], + 'Timestamp' => [ + 'description' => 'The time when the message was sent. The value is a UNIX timestamp. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1697081134', + ], + 'MsgTid' => [ + 'description' => 'The ID of the message.'."\n", + 'type' => 'string', + 'example' => 'c-1-1-0', + ], + 'MsgType' => [ + 'description' => 'The type of the message.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2', + ], + 'SeqNumber' => [ + 'description' => 'The sequence number of the message.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'TotalMessages' => [ + 'description' => 'The total number of messages.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"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", + ], + 'UnbanLiveMessageGroup' => [ + 'summary' => 'Unmutes a group.', + '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', + ], + ], + [ + 'name' => 'GroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The group ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'grouptest', + ], + ], + [ + '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', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '84AF36BF-0B39-1F8A-A416-FAC7C484****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"84AF36BF-0B39-1F8A-A416-FAC7C484****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 84AF36BF-0B39-1F8A-A416-FAC7C484****\\n","errorExample":""}]', + 'title' => 'UnbanLiveMessageGroup', + '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", + ], + 'RecoverLiveMessageDeletedGroup' => [ + 'summary' => 'Restores a deleted interactive messaging group.', + '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', + ], + ], + [ + 'name' => 'GroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the group that you want to restore.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'grouptest', + ], + ], + [ + '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', + ], + ], + ], + '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' => 'B95BE680-5A6A-1CAD-8AB1-09DFF5D6****', + ], + 'GroupId' => [ + 'description' => 'The ID of the group that was restored.'."\n", + 'type' => 'string', + 'example' => 'grouptest', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'ErrorTooManyGroups', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B95BE680-5A6A-1CAD-8AB1-09DFF5D6****\\",\\n \\"GroupId\\": \\"grouptest\\"\\n}","errorExample":""},{"type":"xml","example":"\\n B95BE680-5A6A-1CAD-8AB1-09DFF5D6****\\n grouptest\\n","errorExample":""}]', + 'title' => 'RecoverLiveMessageDeletedGroup', + '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", + ], + 'BanLiveMessageGroup' => [ + 'summary' => 'Mutes a group.', + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo', + ], + ], + [ + 'name' => 'GroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The group ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'grouptest', + ], + ], + [ + 'name' => 'ExceptUsers', + 'in' => 'query', + 'style' => 'simple', + 'schema' => [ + 'description' => 'The users whom you do not want to mute when the group is muted.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the user whom you do not want to mute when the group is muted. Separate multiple user IDs with commas (,).'."\n" + ."\n" + .'> You can specify up to 30 users IDs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '["uid3"]', + ], + 'required' => false, + ], + ], + [ + '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', + ], + ], + ], + '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' => '84AF36BF-0B39-1F8A-A416-FAC7C484****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"84AF36BF-0B39-1F8A-A416-FAC7C484****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 84AF36BF-0B39-1F8A-A416-FAC7C484****\\n","errorExample":""}]', + 'title' => 'BanLiveMessageGroup', + '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 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", + ], + 'AddLiveMessageGroupBand' => [ + 'summary' => 'Mutes one or more users.', + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo', + ], + ], + [ + 'name' => 'GroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The group ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'grouptest', + ], + ], + [ + 'name' => 'BannedUsers', + 'in' => 'query', + 'style' => 'simple', + 'schema' => [ + 'description' => 'The users whom you want to mute.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the user whom you want to mute. Separate multiple user IDs with commas (,).'."\n" + ."\n" + .'> You can specify up to 30 users IDs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '["uid1","uid2"]', + ], + 'required' => true, + ], + ], + [ + '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', + ], + ], + ], + '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' => '84AF36BF-0B39-1F8A-A416-FAC7C484****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"84AF36BF-0B39-1F8A-A416-FAC7C484****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 84AF36BF-0B39-1F8A-A416-FAC7C484****\\n","errorExample":""}]', + 'title' => 'AddLiveMessageGroupBand', + '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 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", + ], + 'RemoveLiveMessageGroupBand' => [ + 'summary' => 'Unmutes one or more users.', + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo', + ], + ], + [ + 'name' => 'GroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The group ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'grouptest', + ], + ], + [ + 'name' => 'UnbannedUsers', + 'in' => 'query', + 'style' => 'simple', + 'schema' => [ + 'description' => 'The users whom you want to unmute.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the user whom you want to unmute. Separate multiple user IDs with commas (,).'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* You can specify up to 30 users IDs.'."\n" + ."\n" + .'* Set the value to an asterisk (\\*) if you want to unmute all muted users.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '["uid1","uid2"]', + ], + 'required' => true, + ], + ], + [ + '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', + ], + ], + ], + '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' => '84AF36BF-0B39-1F8A-A416-FAC7C484****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"84AF36BF-0B39-1F8A-A416-FAC7C484****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 84AF36BF-0B39-1F8A-A416-FAC7C484****\\n","errorExample":""}]', + 'title' => 'RemoveLiveMessageGroupBand', + '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 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", + ], + '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', + ], + ], + [ + 'name' => 'GroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The group ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'grouptest', + ], + ], + [ + '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******', + ], + ], + [ + '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', + ], + ], + [ + '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****', + ], + ], + [ + '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', + ], + ], + ], + '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 group ID.'."\n", + 'type' => 'string', + 'example' => 'grouptest', + ], + 'MessageId' => [ + 'description' => 'The ID of the deleted or non-existent message.'."\n", + 'type' => 'string', + 'example' => 'a74a8fbd3cfe4b2daa8517e4e3******', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B95BE680-5A6A-1CAD-8AB1-09DFF5D6****\\",\\n \\"GroupId\\": \\"grouptest\\",\\n \\"MessageId\\": \\"a74a8fbd3cfe4b2daa8517e4e3******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n B95BE680-5A6A-1CAD-8AB1-09DFF5D6****\\n grouptest\\n a74a8fbd3cfe4b2daa8517e4e3******\\n","errorExample":""}]', + 'title' => '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", + ], + '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', + ], + ], + [ + '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****', + ], + ], + [ + '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' => '**********', + ], + ], + [ + '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****', + ], + ], + [ + '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', + ], + ], + [ + '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', + ], + ], + ], + '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' => '6CFDE7AB-571A-14EA-B072-989FF753****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"6CFDE7AB-571A-14EA-B072-989FF753****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 6CFDE7AB-571A-14EA-B072-989FF753****\\n","errorExample":""}]', + '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", + ], + '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 in which the message is received.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo', + ], + ], + [ + 'name' => 'GroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the group that receives the message.'."\n" + ."\n" + .'> Make sure that the specified group ID exists. Otherwise, a ResourceNotExist error is returned.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'grouptest', + 'minLength' => 1, + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + '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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'uid1meta1', + ], + ], + [ + 'name' => 'Body', + 'in' => 'query', + 'schema' => [ + 'description' => 'The message body. The body can be up to 15 KB in length.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'hello,group', + ], + ], + [ + 'name' => 'MsgType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The message type.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'MsgTid', + 'in' => 'query', + 'schema' => [ + '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' => 'StaticsIncrease', + 'in' => 'query', + 'schema' => [ + 'title' => '该消息对于该类消息数量的统计增长值贡献,默认值为1', + 'description' => 'The contribution of the message to the increase in the number of messages of this type. Default value: 1.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'Weight', + 'in' => 'query', + 'schema' => [ + 'title' => '消息权重,权重越高,缓存优先级越高,缓存时间越长,默认值为1', + 'description' => 'The weight of the message. Default value: 1. A greater value indicates a higher priority. For a message of the highest priority, you can set the weight to 1000000.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'NoStorage', + 'in' => 'query', + 'schema' => [ + 'title' => '是否要存储消息,默认为false表示需要存储。', + 'description' => 'Specifies whether to disable message storage. Valid values: true and false. Default value: false, which specifies 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 want to store the message, set this parameter to true.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + ], + [ + 'name' => 'NoCache', + 'in' => 'query', + 'schema' => [ + 'title' => '是否要缓存消息,默认为false表示需要缓存。', + 'description' => 'Specifies whether to disable message caching. Valid values: true and false. Default value: false, which specifies that the message is cached to the recent message list of the group.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + ], + [ + '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', + ], + ], + ], + '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' => 'E4C1245F-597B-1BD1-B9BB-9D220E99****', + ], + '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****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'ErrorTooManyMsgTypes', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"E4C1245F-597B-1BD1-B9BB-9D220E99****\\",\\n \\"MsgTid\\": \\"169830****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n E4C1245F-597B-1BD1-B9BB-9D220E99****\\n","errorExample":""}]', + 'title' => 'SendLiveMessageGroup', + 'description' => 'Before you call this operation, make sure that you have called the [CreateLiveMessageGroup](~~2848163~~) operation to create an interactive messaging group. You can send messages to a group only if the group is active, which requires that one or more users have joined the group. Offline messages are not supported. If you fail to send a message, check whether users exist in the group. If you want to send a message when all users are offline, we recommend that you store the message locally and send it after users get online.'."\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", + ], + 'SendLiveMessageUser' => [ + 'summary' => 'Sends a message to a specified user. The user is identified by ReceiverId.', + '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', + ], + ], + [ + 'name' => 'ReceiverId', + 'in' => 'query', + 'schema' => [ + 'title' => '消息接收用户的Id', + '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' => '消息发送用户的Id', + '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', + ], + ], + [ + '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', + ], + ], + [ + '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', + ], + ], + ], + '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****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 408 => [ + [ + 'errorCode' => 'UserNotAck', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + '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", + ], + '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' => '排序方式,按创建时间先后,1为顺序,2为逆序', + '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', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + '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', + ], + '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', + ], + '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', + ], + 'AppKey' => [ + 'description' => 'The AppKey of the interactive messaging application. It is used to authorize operations related to the application ID.'."\n", + 'type' => 'string', + 'example' => '**********************************', + ], + 'AppSign' => [ + 'description' => 'The signature of the interactive messaging application. It is required by the interactive messaging SDK.'."\n", + 'type' => 'string', + 'example' => '**************************************************************************', + ], + 'Disable' => [ + 'description' => 'Indicates whether the interactive messaging application is disabled.'."\n", + 'type' => 'string', + 'example' => 'false', + ], + 'AppName' => [ + 'description' => 'The name of the application.'."\n", + 'type' => 'string', + 'example' => 'testApp', + ], + 'CreateTime' => [ + 'description' => 'The time when the application was created. The value is a UNIX timestamp. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1698305471', + ], + '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', + ], + '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', + ], + 'DataCenter' => [ + 'description' => 'The live center.'."\n", + 'type' => 'string', + 'example' => 'cn-shanghai', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B8EB4994-1368-1458-B9F3-5B88D76D734C\\",\\n \\"HasMore\\": true,\\n \\"NextPageToken\\": 1,\\n \\"AppList\\": [\\n {\\n \\"AppId\\": \\"demo\\",\\n \\"AppKey\\": \\"**********************************\\",\\n \\"AppSign\\": \\"**************************************************************************\\",\\n \\"Disable\\": \\"false\\",\\n \\"AppName\\": \\"testApp\\",\\n \\"CreateTime\\": 1698305471,\\n \\"ModifyTime\\": 1698305471,\\n \\"MsgLifeCycle\\": 1,\\n \\"DataCenter\\": \\"cn-shanghai\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n B8EB4994-1368-1458-B9F3-5B88D76D734C\\n true\\n 1\\n \\n demo\\n **********************************\\n **************************************************************************\\n false\\n testApp\\n 1698305471\\n 1698305471\\n 1\\n cn-shanghai\\n \\n","errorExample":""}]', + 'title' => '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", + ], + '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' => '待查询的AppID', + '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', + ], + ], + ], + '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****', + ], + 'AppId' => [ + 'description' => 'The ID of the interactive messaging application.'."\n", + 'type' => 'string', + 'example' => 'demo', + ], + 'AppName' => [ + 'description' => 'The name of the interactive messaging application.'."\n", + 'type' => 'string', + 'example' => 'testApp', + ], + 'AppKey' => [ + 'description' => 'The AppKey of the interactive messaging application. It is used to authorize operations related to the application ID.'."\n", + 'type' => 'string', + 'example' => '**********************************', + ], + 'AppSign' => [ + 'description' => 'The signature of the interactive messaging application. It is required by the interactive messaging SDK.'."\n", + 'type' => 'string', + 'example' => '**************************************************************************', + ], + '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', + ], + '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', + ], + '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', + ], + 'Disable' => [ + 'description' => 'Indicates whether the interactive messaging application is disabled.'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + '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', + ], + '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', + ], + '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', + ], + 'DataCenter' => [ + 'description' => 'The data center.'."\n", + 'type' => 'string', + 'example' => 'cn-shanghai', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + '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", + ], + 'ModifyLiveMessageAppDisable' => [ + 'summary' => 'Disables or enables an interactive messaging application.', + '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' => 'ab6b5740****', + ], + ], + [ + 'name' => 'Disable', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to disable the interactive messaging application.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + [ + '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', + ], + ], + ], + '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' => '6AA1AE11-EA78-1FD4-A966-6BA843073F6D', + ], + 'AppId' => [ + 'description' => 'The ID of the interactive messaging application.'."\n", + 'type' => 'string', + 'example' => 'ab6b5740****', + ], + 'AppSign' => [ + 'description' => 'The signature of the interactive messaging application. It is required by the interactive messaging SDK.'."\n", + 'type' => 'string', + 'example' => 'H4sIAAAAAAAE/wBwAI//zguHB+lYCilkv7diSkk4GhHQAvMXs5tWyI+I09+uEBiB5sqa28ycJSJFmsd50Mhz8nDrvvqmti+fVaNLC5CMgLvNIy48v1aV9x74LRNFN0+Dxd2Al51xuDNkEIDaEwjqfyxscTXjSr0iQjHu2WgkpQAAAP//AQAA//+yR5XCc****', + ], + 'Disable' => [ + 'description' => 'Indicates whether the interactive messaging application is disabled.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"6AA1AE11-EA78-1FD4-A966-6BA84307****\\",\\n \\"AppId\\": \\"demo\\",\\n \\"AppSign\\": \\"********************\\",\\n \\"Disable\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n 6AA1AE11-EA78-1FD4-A966-6BA84307****\\n demo\\n ********************\\n true\\n","errorExample":""}]', + 'title' => '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", + ], + 'ModifyLiveMessageAppAudit' => [ + 'summary' => 'Modifies the content moderation settings of an interactive messaging application.', + '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', + ], + ], + [ + 'name' => 'AuditType', + 'in' => 'query', + 'schema' => [ + 'title' => '安全审核方式:0为不进行安全审核,1为内置安全审核, 2为自定义安全审核', + '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', + ], + ], + ], + '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', + ], + 'AppSign' => [ + 'description' => 'The signature of the interactive messaging application. It is required by the interactive messaging SDK.'."\n", + 'type' => 'string', + 'example' => '**************************************************************************', + ], + 'AuditType' => [ + 'description' => 'The content moderation method.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '2', + ], + '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', + ], + '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', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'ErrorInvalidAuditUrl', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"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", + ], + 'ModifyLiveMessageAppCallback' => [ + 'summary' => 'Modifies the callback settings of an interactive messaging application.', + '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', + ], + ], + [ + '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', + ], + ], + [ + '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', + ], + ], + ], + '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', + ], + 'AppSign' => [ + 'description' => 'The signature of the interactive messaging application. It is required by the interactive messaging SDK.'."\n", + 'type' => 'string', + 'example' => '**************************************************************************', + ], + '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', + ], + 'EventCallbackNeedAuthentication' => [ + 'description' => 'Indicates whether authentication is required for event callbacks. Default value: true.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'ErrorInvalidEventCallbackUrl', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"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", + ], + 'KickLiveMessageGroupUser' => [ + 'summary' => 'Removes a user from an interactive messaging group.', + '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' => 'coims-****', + ], + ], + [ + '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', + ], + ], + [ + 'name' => 'KickoffUser', + 'in' => 'query', + 'schema' => [ + 'description' => 'The user that you want to remove.'."\n", + 'type' => 'string', + 'required' => true, + '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](~~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', + ], + ], + ], + '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' => '97168878-5288-10CE-AE56-E2D1627FB5F4', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"97168878-5288-10CE-AE56-E2D1627F****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 97168878-5288-10CE-AE56-E2D1627F****\\n","errorExample":""}]', + '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", + ], + 'ModifyLiveMessageUserInfo' => [ + 'summary' => 'Modifies the information about one or more users.', + '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', + ], + ], + [ + 'name' => 'UserId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user whose information you want to modify.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'uid2', + ], + ], + [ + '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', + ], + ], + [ + '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', + ], + ], + ], + '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', + ], + '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', + ], + 'Reason' => [ + 'description' => 'The reason why the information of the user failed to be modified.'."\n", + 'type' => 'string', + 'example' => 'group not exists or already deleted', + ], + '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', + ], + ], + ], + ], + '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', + ], + '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', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"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', + ], + 'StartRtcCloudRecording' => [ + 'summary' => '启动rtc云端录制任务', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'paid', + 'abilityTreeCode' => '269297', + 'abilityTreeNodes' => [ + 'FEATUREliveK6LRQR', + ], + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'AppId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => '********-7074-****-9ef5-85c19a4*****', + ], + ], + [ + 'name' => 'ChannelId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'room1024', + ], + ], + [ + 'name' => 'SubscribeParams', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'SubscribeUserIdList' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'UserId' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'userA', + ], + 'StreamType' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '0', + 'default' => '0', + 'enum' => [ + '0', + '1', + '2', + ], + ], + 'SourceType' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '0', + 'default' => '0', + 'enum' => [ + '0', + '1', + ], + ], + ], + 'required' => false, + ], + 'required' => true, + 'maxItems' => 17, + 'minItems' => 1, + ], + ], + 'required' => true, + ], + ], + [ + 'name' => 'RecordParams', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RecordMode' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '0', + 'enum' => [ + '0', + '1', + ], + ], + 'StreamType' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '0', + 'default' => '0', + 'enum' => [ + '0', + '1', + '2', + ], + ], + 'MaxFileDuration' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '7200', + 'minimum' => '180', + 'example' => '7200', + 'default' => '7200', + ], + ], + 'required' => true, + ], + ], + [ + 'name' => 'StorageParams', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'StorageType' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '1', + 'enum' => [ + '1', + ], + ], + 'FileInfo' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Format' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'HLS', + 'enum' => [ + 'HLS', + 'MP4', + 'MP3', + ], + ], + 'FileNamePattern' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '{AppId}_{ChannelId}_{StartTime}_{UserId}', + ], + 'SliceNamePattern' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '{AppId}_{ChannelId}_{StartTime}_{Sequence}', + ], + 'FilePathPrefix' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'string', + ], + ], + 'SliceDuration' => [ + 'title' => '指定切片时长,单位为秒,仅HLS格式下有效。取值范围在[10,30]内', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '30', + ], + ], + 'required' => false, + ], + 'required' => false, + ], + 'OSSParams' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'OSSEndpoint' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'oss-cn-shanghai.aliyuncs.com', + ], + 'OSSBucket' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'mytest-bucket', + ], + ], + 'required' => false, + ], + 'VodParams' => [ + 'type' => 'object', + 'properties' => [ + 'StorageLocation' => [ + 'type' => 'string', + 'required' => false, + ], + 'VodTranscodeGroupId' => [ + 'type' => 'string', + 'required' => false, + ], + 'AutoCompose' => [ + 'type' => 'integer', + 'format' => 'int32', + 'default' => '0', + 'enum' => [ + '0', + '1', + ], + ], + 'ComposeVodTranscodeGroupId' => [ + 'type' => 'string', + ], + ], + ], + ], + 'required' => true, + ], + ], + [ + 'name' => 'MixTranscodeParams', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'FrameFillType' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '0', + 'default' => '0', + 'enum' => [ + '0', + ], + ], + 'AudioBitrate' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'maximum' => '500', + 'minimum' => '8', + 'example' => '300', + ], + 'AudioChannels' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '2', + 'enum' => [ + '1', + '2', + ], + ], + 'AudioSampleRate' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '32000', + 'enum' => [ + '8000', + '16000', + '32000', + '44100', + '48000', + ], + ], + 'VideoCodec' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'H.264', + 'default' => 'H.264', + 'enum' => [ + 'H.264', + 'H.265', + ], + ], + 'VideoBitrate' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '10000', + 'minimum' => '1', + 'example' => '5000', + ], + 'VideoFramerate' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '60', + 'minimum' => '1', + 'example' => '30', + ], + 'VideoGop' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '60', + 'minimum' => '1', + 'example' => '30', + ], + 'VideoHeight' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '1920', + 'minimum' => '0', + 'example' => '480', + 'default' => '0', + ], + 'VideoWidth' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '1920', + 'minimum' => '0', + 'example' => '640', + 'default' => '0', + ], + ], + 'required' => false, + ], + ], + [ + 'name' => 'MixLayoutParams', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'MixBackground' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RenderMode' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '0', + 'default' => '0', + 'enum' => [ + '0', + '1', + ], + ], + 'Url' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'https://xxxx.com/photos/my-test-picture.png', + 'maxLength' => 2048, + ], + ], + 'required' => false, + ], + 'UserPanes' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'UserId' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'userA', + ], + 'SourceType' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '0', + 'default' => '0', + 'enum' => [ + '0', + '1', + ], + ], + 'Height' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '0.5', + 'default' => '0', + ], + 'Width' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '0.5', + 'default' => '0', + ], + 'X' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '0', + 'default' => '0', + ], + 'Y' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '0', + 'default' => '0', + ], + 'ZOrder' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '0', + 'default' => '0', + ], + 'SubBackground' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RenderMode' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '0', + 'default' => '0', + 'enum' => [ + '0', + '1', + ], + ], + 'Url' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'https://xxxx.com/photos/my-test-pane-picture.png', + 'maxLength' => 2048, + ], + ], + 'required' => false, + ], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + 'required' => false, + ], + ], + [ + 'name' => 'NotifyUrl', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'http://xxxx/test/mycallback', + ], + ], + [ + 'name' => 'NotifyAuthKey', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + ], + ], + [ + 'name' => 'NotifyFileUploadedFormat', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '指定在录制文件上传后,需要触发回调的格式', + 'type' => 'array', + 'items' => [ + 'title' => '需要回调的具体文件格式', + 'type' => 'string', + 'example' => 'MP4', + ], + 'maxItems' => 100, + ], + ], + [ + 'name' => 'MaxIdleTime', + 'in' => 'query', + 'schema' => [ + 'type' => 'integer', + 'format' => 'int64', + 'maximum' => '86400', + 'minimum' => '10', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => '', + 'type' => 'string', + 'example' => '******58-5876-****-83CA-B56278******', + ], + 'TaskId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '******73-8501-****-8ac1-72295a******', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter.NotifyUrl', + 'errorMessage' => '%s, please check the notifyUrl.', + ], + [ + 'errorCode' => 'InvalidParameter.StorageParams.FileInfo', + 'errorMessage' => '%s, please check the fileInfo of storageParams.', + ], + [ + 'errorCode' => 'InvalidParameter.StorageParams.OSSParams', + 'errorMessage' => '%s, please check the ossParams of storageParams.', + ], + [ + 'errorCode' => 'NotFound.OSSBucket', + 'errorMessage' => '%s, please check the ossBucket of storageParams.', + ], + [ + 'errorCode' => 'InvalidParameter.SubscribeParams.SubscribeUserIdList', + 'errorMessage' => '%s, please check the subscribeUserIdList of subscribeParams.', + ], + [ + 'errorCode' => 'InvalidParameter.MixLayoutParams.UserPanes', + 'errorMessage' => '%s, please check the userPanes of mixLayoutParams.', + ], + [ + 'errorCode' => 'InvalidParameter.MixTranscodeParams', + 'errorMessage' => '%s, please check the transcodeParams.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'InvalidParameter.UserId', + 'errorMessage' => '%s, please check the UserId.', + ], + ], + [ + [ + 'errorCode' => 'InvalidParameter.ChannelId', + 'errorMessage' => '%s, please check the channelId.', + ], + [ + 'errorCode' => 'InvalidParameter.AppId', + 'errorMessage' => '%s, please check the appId.', + ], + ], + [ + [ + 'errorCode' => 'InvalidParameter.StorageParams.VodParams', + 'errorMessage' => '%s, please check the vodParams of storageParams.', + ], + [ + 'errorCode' => 'InvalidParameter.NotifyAuthKey', + 'errorMessage' => '%s, please check the notifyAuthKey.', + ], + [ + 'errorCode' => 'InvalidParameter.MaxIdleTime', + 'errorMessage' => '%s, please check the maxIdleTime.', + ], + [ + 'errorCode' => 'InvalidParameter.RecordParams', + 'errorMessage' => '%s, please check the recordParams.', + ], + [ + 'errorCode' => 'InvalidParameter.StorageParams.StorageType', + 'errorMessage' => '%s, please check the storageType of storageParams.', + ], + [ + 'errorCode' => 'InvalidParameter.NotifyFileUploadedFormat', + 'errorMessage' => '%s, please check the notifyFileUploadedFormat.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"******58-5876-****-83CA-B56278******\\",\\n \\"TaskId\\": \\"******73-8501-****-8ac1-72295a******\\"\\n}","type":"json"}]', + ], + 'UpdateRtcCloudRecording' => [ + 'summary' => '更新rtc云端录制任务', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'paid', + 'abilityTreeCode' => '269333', + 'abilityTreeNodes' => [ + 'FEATUREliveK6LRQR', + ], + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'TaskId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => '******73-8501-****-8ac1-72295a******'."\n", + ], + ], + [ + 'name' => 'SubscribeParams', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'SubscribeUserIdList' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'UserId' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'userA', + ], + 'StreamType' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '0', + 'default' => '0', + 'enum' => [ + '0', + '1', + '2', + ], + ], + 'SourceType' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '0', + 'default' => '0', + 'enum' => [ + '0', + '1', + ], + ], + ], + 'required' => false, + ], + 'required' => true, + 'maxItems' => 17, + 'minItems' => 1, + ], + ], + 'required' => true, + ], + ], + [ + 'name' => 'MixLayoutParams', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'MixBackground' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RenderMode' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '0', + 'default' => '0', + 'enum' => [ + '0', + '1', + ], + ], + 'Url' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'https://xxxx.com/photos/my-test-picture.png'."\n", + 'maxLength' => 2048, + ], + ], + 'required' => false, + ], + 'UserPanes' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'UserId' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'userA', + ], + 'SourceType' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '0', + 'default' => '0', + 'enum' => [ + '0', + '1', + ], + ], + 'Height' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '0.5', + 'default' => '0', + ], + 'Width' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '0.5', + 'default' => '0', + ], + 'X' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '0', + 'default' => '0', + ], + 'Y' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '0', + 'default' => '0', + ], + 'ZOrder' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '0', + 'default' => '0', + ], + 'SubBackground' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RenderMode' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '0', + 'default' => '0', + 'enum' => [ + '0', + '1', + ], + ], + 'Url' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'https://xxxx.com/photos/my-test-pane-picture.png'."\n", + 'maxLength' => 2048, + ], + ], + 'required' => false, + ], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + 'required' => false, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => '', + 'type' => 'string', + 'example' => '******58-5876-****-83CA-B56278******'."\n", + ], + 'TaskId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '******73-8501-****-8ac1-72295a******'."\n", + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'NotFound.Task', + 'errorMessage' => '%s, please check the TaskId.', + ], + [ + 'errorCode' => 'InvalidParameter.TaskId', + 'errorMessage' => '%s, please check the TaskId.', + ], + [ + 'errorCode' => 'InvalidParameter.SubscribeParams.SubscribeUserIdList', + 'errorMessage' => '%s, please check the subscribeUserIdList of subscribeParams.', + ], + [ + 'errorCode' => 'InvalidParameter.MixLayoutParams.UserPanes', + 'errorMessage' => '%s, please check the userPanes of mixLayoutParams.', + ], + [ + 'errorCode' => 'InvalidParameter.MixTranscodeParams', + 'errorMessage' => '%s, please check the transcodeParams.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'InvalidParameter.UserId', + 'errorMessage' => '%s, please check the UserId.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"******58-5876-****-83CA-B56278******\\\\n\\",\\n \\"TaskId\\": \\"******73-8501-****-8ac1-72295a******\\\\n\\"\\n}","type":"json"}]', + ], + 'StopRtcCloudRecording' => [ + 'summary' => 'Stops a real-time communication (RTC) cloud-based 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' => '', + 'type' => 'string', + 'required' => true, + 'example' => '******73-8501-****-8ac1-72295a******'."\n", + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => '', + 'type' => 'string', + 'example' => '******58-5876-****-83CA-B56278******', + ], + 'TaskId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '******73-8501-****-8ac1-72295a******', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'NotFound.Task', + 'errorMessage' => '%s, please check the TaskId.', + ], + [ + 'errorCode' => 'InvalidParameter.TaskId', + 'errorMessage' => '%s, please check the TaskId.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'InvalidParameter.UserId', + 'errorMessage' => '%s, please check the UserId.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"******58-5876-****-83CA-B56278******\\",\\n \\"TaskId\\": \\"******73-8501-****-8ac1-72295a******\\"\\n}","type":"json"}]', + 'title' => 'StopRtcCloudRecording', + ], + 'DescribeRtcCloudRecordingFiles' => [ + 'summary' => 'Queries the information about a real-time communication (RTC) cloud-based recording task.', + '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' => '', + 'type' => 'string', + 'required' => true, + 'example' => '******73-8501-****-8ac1-72295a******'."\n", + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => '', + 'type' => 'string', + 'example' => '******58-5876-****-83CA-B56278******'."\n", + ], + 'TaskInfo' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'TaskId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '******73-8501-****-8ac1-72295a******'."\n", + ], + 'Status' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'RUNNING', + ], + 'RecordFileList' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Mp3FileList' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'string', + 'example' => '******73-8501-****-8ac1-72295a******/myappid_testroom_userA_2025-05-06-14:37:22.mp3', + ], + ], + 'Mp4FileList' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'string', + 'example' => '******73-8501-****-8ac1-72295a******/myappid_testroom_userA_2025-05-06-14:37:22.mp4', + ], + ], + 'HlsFileList' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'string', + 'example' => '******73-8501-****-8ac1-72295a******/myappid_testroom_userA_2025-05-06-14:37:22.m3u8', + ], + ], + 'VodMediaList' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Stream' => [ + 'type' => 'string', + ], + 'MediaIds' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'string', + ], + ], + 'MergedIds' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'string', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'NotFound.Task', + 'errorMessage' => '%s, please check the TaskId.', + ], + [ + 'errorCode' => 'InvalidParameter.TaskId', + 'errorMessage' => '%s, please check the TaskId.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'InvalidParameter.UserId', + 'errorMessage' => '%s, please check the UserId.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"******58-5876-****-83CA-B56278******\\\\n\\",\\n \\"TaskInfo\\": {\\n \\"TaskId\\": \\"******73-8501-****-8ac1-72295a******\\\\n\\",\\n \\"Status\\": \\"RUNNING\\",\\n \\"RecordFileList\\": {\\n \\"Mp3FileList\\": [\\n \\"******73-8501-****-8ac1-72295a******/myappid_testroom_userA_2025-05-06-14:37:22.mp3\\"\\n ],\\n \\"Mp4FileList\\": [\\n \\"******73-8501-****-8ac1-72295a******/myappid_testroom_userA_2025-05-06-14:37:22.mp4\\"\\n ],\\n \\"HlsFileList\\": [\\n \\"******73-8501-****-8ac1-72295a******/myappid_testroom_userA_2025-05-06-14:37:22.m3u8\\"\\n ],\\n \\"VodMediaList\\": [\\n {\\n \\"Stream\\": \\"Single::UserA::AV::C\\",\\n \\"MediaIds\\": [\\n \\"****bbd9f59c71ee80065017f0f8****\\"\\n ],\\n \\"MergedIds\\": [\\n \\"****d2f9f59c71ee8006501790g7****\\"\\n ]\\n }\\n ]\\n }\\n }\\n}","type":"json"}]', + 'title' => 'DescribeRtcCloudRecordingFiles', + ], + 'DescribeChannelParticipants' => [ + 'summary' => 'Queries online users in a channel.', + '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****', + ], + ], + [ + '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', + ], + ], + [ + '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', + ], + ], + [ + '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', + ], + ], + [ + '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', + ], + ], + ], + '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' => '6159ba01-6687-4fb2-a831-f0cd8d188648', + ], + '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', + ], + 'TotalNum' => [ + 'description' => 'The number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '3', + ], + 'TotalPage' => [ + 'title' => 'TotalCount本次请求条件下的数据总量,此参数为可选参数,默认可不返回', + '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****', + ], + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"6159ba01-6687-4fb2-a831-f0cd8d1******\\",\\n \\"Times\\": 1557909133,\\n \\"TotalNum\\": 3,\\n \\"TotalPage\\": 1,\\n \\"UserList\\": [\\n \\"27f9****,bb87****,df82****\\"\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 6159ba01-6687-4fb2-a831-f0cd8d188648\\n 1557909133\\n 3\\n 1\\n \\n 27f9****\\n bb87****\\n df82****\\n \\n","errorExample":""}]', + 'title' => 'DescribeChannelParticipants', + '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", + ], + 'DescribeChannelUsers' => [ + 'summary' => 'Queries the details of online users in a channel.', + '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****', + ], + ], + [ + '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', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'AD86847D-1F36-18C8-A995-5EEA340B3202', + ], + 'Timestamp' => [ + 'description' => 'The UTC timestamp when the response is returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1691027655', + ], + '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', + ], + 'InteractiveUserNumber' => [ + 'description' => 'The number of co-streamers.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'LiveUserNumber' => [ + 'description' => 'The number of viewers.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'InteractiveUserList' => [ + 'description' => 'The list of streamers/co-streamers.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'Interactive user list.', + 'type' => 'string', + 'example' => 'aaa', + ], + ], + 'LiveUserList' => [ + 'description' => 'The list of viewers.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'Viewer list, up to 1000 people returned.', + 'type' => 'string', + 'example' => 'bbb', + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => '400', + 'errorMessage' => 'InvalidInput', + ], + ], + [ + [ + 'errorCode' => '401', + 'errorMessage' => 'InvalidAuth', + ], + ], + 404 => [ + [ + 'errorCode' => '404', + 'errorMessage' => 'AppOrChannelNotExists', + ], + ], + 500 => [ + [ + 'errorCode' => '500', + 'errorMessage' => 'SystemError, Please Check App And Channel Exists, RETRY', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"AD86847D-1F36-18C8-A995-5EEA34******\\",\\n \\"Timestamp\\": 1691027655,\\n \\"IsChannelExists\\": true,\\n \\"InteractiveUserNumber\\": 1,\\n \\"LiveUserNumber\\": 1,\\n \\"InteractiveUserList\\": [\\n \\"aaa\\"\\n ],\\n \\"LiveUserList\\": [\\n \\"bbb\\"\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n AD86847D-1F36-18C8-A995-5EEA340B3202\\n 1691027655\\n true\\n 1\\n 1\\n aaa\\n bbb\\n","errorExample":""}]', + 'title' => '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", + ], + '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****', + ], + ], + [ + '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', + ], + ], + [ + '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****', + ], + 'required' => true, + 'maxItems' => 30, + ], + ], + ], + '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', + ], + 'Message' => [ + 'description' => 'The result of removing the specified users from the channel. Valid values:'."\n" + ."\n" + .'* Success'."\n" + .'* Failed'."\n", + 'type' => 'string', + 'example' => 'Success', + ], + 'Id' => [ + 'description' => 'The ID of the user.'."\n", + 'type' => 'string', + 'example' => '1811****', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4AF8\\",\\n \\"Terminals\\": [\\n {\\n \\"Code\\": 0,\\n \\"Message\\": \\"Success\\",\\n \\"Id\\": \\"1811****\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4AF8\\n \\n 0\\n Success\\n 1811****\\n \\n","errorExample":""}]', + 'title' => '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", + ], + 'CreateRTCWhipStreamAddress' => [ + 'summary' => '创建房间whip协议推流地址', + 'path' => '', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREliveK6LRQR', + ], + ], + 'parameters' => [ + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => [ + 'title' => '幂等参数', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '58E73333-xxxx-xxxx-xxxx', + ], + ], + [ + 'name' => 'AppId', + 'in' => 'query', + 'schema' => [ + 'title' => '应用AppID', + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => '6a0**6dcc-xxxx-xxxx-xxxx-e**e3exxxxxx ', + 'maxLength' => 64, + 'minLength' => 1, + 'pattern' => '^[0-9a-zA-Z_-]+$', + ], + ], + [ + 'name' => 'ChannelId', + 'in' => 'query', + 'schema' => [ + 'title' => '频道号', + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => ' ch00000****001', + 'maxLength' => 64, + 'minLength' => 1, + 'pattern' => '^[0-9a-zA-Z_-]+$', + ], + ], + [ + 'name' => 'UserId', + 'in' => 'query', + 'schema' => [ + 'title' => '用户ID,不要与其他进频道的用户重合。', + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'zb0000****0001', + 'maxLength' => 64, + 'minLength' => 1, + 'pattern' => '^[0-9a-zA-Z_-]+$', + ], + ], + [ + 'name' => 'DisplayName', + 'in' => 'query', + 'schema' => [ + 'title' => '在频道内显示的名称', + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => '', + 'maxLength' => 40, + 'minLength' => 1, + ], + ], + [ + 'name' => 'ExpireTime', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '43200', + 'default' => '43200', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => '', + 'type' => 'string', + 'example' => '58E7**D4-xxxx-xxxx-xxxx-6B5**6Cxxxxx', + ], + 'WhipAddress' => [ + 'title' => 'whip协议推流服务地址', + 'description' => '', + 'type' => 'string', + 'example' => 'https://xxxxxx.media-sh.xxxxx.com/xxxxxxxxxxxx/3723a3xxxxxxxxx223c606b***5f7a2bc7c56ea5cdd0xxxxe?auth_key=17495xxxxx-xxxx-0-f013003067c78c4053f9cd0xxxxxxx&qqzr=H4sIAAAAAAAC_6pWSlayUkrOMxxxxxxrPyCxQ0lFKQTCLlKyUjM2Nj**NDQ1TEy2Mjc3xxxxxxxxxxqRYAAAD__xxxxx__xxxxxxxx', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"58E7**D4-xxxx-xxxx-xxxx-6B5**6Cxxxxx\\",\\n \\"WhipAddress\\": \\"https://xxxxxx.media-sh.xxxxx.com/xxxxxxxxxxxx/3723a3xxxxxxxxx223c606b***5f7a2bc7c56ea5cdd0xxxxe?auth_key=17495xxxxx-xxxx-0-f013003067c78c4053f9cd0xxxxxxx&qqzr=H4sIAAAAAAAC_6pWSlayUkrOMxxxxxxrPyCxQ0lFKQTCLlKyUjM2Nj**NDQ1TEy2Mjc3xxxxxxxxxxqRYAAAD__xxxxx__xxxxxxxx\\"\\n}","type":"json"}]', + ], + 'CreateRoomRealTimeStreamAddress' => [ + 'summary' => 'Generates 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 (-).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'yourAppId', + ], + ], + [ + 'name' => 'ChannelId', + 'in' => 'query', + 'schema' => [ + 'title' => '往哪个频道中推', + '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 (-).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'yourChannelId', + ], + ], + [ + 'name' => 'UserId', + 'in' => 'query', + 'schema' => [ + 'title' => 'rtmp在房间中的userid,请不要与房间中的其他用户重复', + '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 (-).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'rtmp-uuid', + 'maxLength' => 64, + 'minLength' => 1, + ], + ], + [ + 'name' => 'DisplayName', + 'in' => 'query', + 'schema' => [ + 'title' => 'rtmp在频道中的显示名称,长度1~40,必填', + 'description' => 'The name of the RTMP stream. The name can be up to 40 characters in length.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'rtmp-dname', + 'maxLength' => 40, + 'minLength' => 1, + ], + ], + [ + 'name' => 'ExpireTime', + 'in' => 'query', + 'schema' => [ + 'title' => '地址有效时长,单位秒,默认10个小时', + 'description' => 'The validity period of the RTMP URL. Unit: seconds. The default value is 36,000 seconds, which is 10 hours.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '43200', + 'default' => '43200', + ], + ], + ], + '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' => 'F8DB7E25-6A35-161A-AA41-B7A658AF****', + ], + 'RtmpAddress' => [ + 'description' => 'The RTMP ingest URL.'."\n", + 'type' => 'string', + 'example' => 'rtmp://rtcpush****.rtmp.alivecdn.com/rtcdev****/H4sIAAAA****_6pWSlayUipJLS5R0lEqRTBTEMwiJSul1CRTMxNjsyQTM****-PUZCMz8yTDZLNkAwMDA6M0I0ulWgA****__wEAAP__a_e7YkkAAAA?auth_key=1700492701-6e33-0-c6d7e3a93dc2dbe3af42f6259ccd****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F8DB7E25-6A35-161A-AA41-B7A658AF****\\",\\n \\"RtmpAddress\\": \\"rtmp://rtcpush****.rtmp.alivecdn.com/rtcdev****/H4sIAAAA****_6pWSlayUipJLS5R0lEqRTBTEMwiJSul1CRTMxNjsyQTM****-PUZCMz8yTDZLNkAwMDA6M0I0ulWgA****__wEAAP__a_e7YkkAAAA?auth_key=1700492701-6e33-0-c6d7e3a93dc2dbe3af42f6259ccd****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n F8DB7E25-6A35-161A-AA41-B7A658AF0635\\n rtmp://rtcpush****.rtmp.alivecdn.com/rtcdev****/H4sIAAAA****_6pWSlayUipJLS5R0lEqRTBTEMwiJSul1CRTMxNjsyQTM****-PUZCMz8yTDZLNkAwMDA6M0I0ulWgA****__wEAAP__a_e7YkkAAAA?auth_key=1700492701-6e33-0-c6d7e3a93dc2dbe3af42f6259ccd****\\n","errorExample":""}]', + 'title' => '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" + .'2. Ingest a stream by using the ingest URL. Other users in the channel can watch the stream.'."\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~~).'."\n", + ], + 'DeleteChannel' => [ + 'summary' => 'Deletes a channel.', + '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 application ID. You can specify only one application ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'eo85****', + ], + ], + [ + 'name' => 'ChannelId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The channel ID. You can specify only one channel ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'testid', + ], + ], + ], + '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' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => '400', + 'errorMessage' => 'InvalidInput', + ], + ], + [ + [ + 'errorCode' => '401', + 'errorMessage' => 'InvalidAuth', + ], + ], + 404 => [ + [ + 'errorCode' => '404', + 'errorMessage' => 'AppOrChannelNotExists', + ], + ], + 500 => [ + [ + 'errorCode' => '500', + 'errorMessage' => 'ServerError, Check App And Channel Exists,Retry', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\n","errorExample":""}]', + 'title' => 'DeleteChannel', + 'description' => '## [](#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", + ], + 'ListRTCLiveRooms' => [ + 'summary' => '获取在线频道列表', + 'path' => '', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREliveK6LRQR', + ], + 'autoTest' => false, + 'notSupportAutoTestReason' => '需要前置客户端入会等操作', + ], + 'parameters' => [ + [ + 'name' => 'AppId', + 'in' => 'query', + 'schema' => [ + 'title' => '应用AppID', + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'a494caec-***-695ef345db77', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'title' => '分页大小,取值【10,100】,默认50', + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '100', + 'minimum' => '10', + 'example' => '50', + 'default' => '50', + ], + ], + [ + 'name' => 'PageNo', + 'in' => 'query', + 'schema' => [ + 'title' => '当前分页,从1开始', + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'minimum' => '1', + 'example' => '1', + 'default' => '1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'Id of the request', + 'type' => 'string', + 'example' => '5c6a2a0df228-4a64-af62-20e91b96****', + ], + 'Total' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '2', + ], + 'Rooms' => [ + 'title' => '活跃房间列表', + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'room1', + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b96****\\",\\n \\"Total\\": 2,\\n \\"Rooms\\": [\\n \\"room1\\"\\n ]\\n}","type":"json"}]', + ], + 'StartLiveMPUTask' => [ + 'summary' => 'Creates a mixed-stream relay 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. 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 (-).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'yourAppId', + ], + ], + [ + '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 (-).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'yourChannelId', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'yourTaskId', + ], + ], + [ + '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" + .'* **1** (default): the mixed-stream relay mode.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '0', + ], + ], + [ + '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" + .'* You cannot use the same ingest URL in different tasks.'."\n" + .'* You cannot use the same ingest URL within 10 seconds after a task is stopped.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rtmp://example.com/live/stream', + ], + ], + [ + 'name' => 'MultiStreamURL', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'The multiple ingest URLs to relay. This parameter allows you to specify multiple ingest URLs.'."\n" + ."\n" + .'> The StreamURL and MultiStreamURL parameters are mutually exclusive. You must specify one of the two parameters.'."\n", + '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~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rtmp://example.com/live/stream****', + ], + '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" + .'* true: performs stream relay by using Alibaba Cloud CDN.'."\n" + ."\n" + .'> The default value of this parameter is false.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + ], + 'required' => false, + 'description' => '', + ], + 'required' => false, + ], + ], + [ + 'name' => 'Region', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the streams are mixed. Valid values:'."\n" + ."\n" + .'* **CN-Shanghai**'."\n" + .'* **AP-Singapore** (default)'."\n" + .'* **EMAA-Saudi**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'CN-Shanghai', + ], + ], + [ + 'name' => 'MaxIdleTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The timeout period of an idle connection. Unit: seconds. Valid values: \\[10,86400].'."\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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '10', + ], + ], + [ + 'name' => 'SingleSubParams', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'The single-stream relay parameters. These parameters are required if you set MixMode to 0. Leave these parameters empty in the mixed-stream relay mode.'."\n", + '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" + .'* **shareScreen**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'camera', + ], + 'StreamType' => [ + 'description' => 'The type of the stream that you want to relay. Valid values:'."\n" + ."\n" + .'* **0** (default): original stream'."\n" + .'* **1**: only the audio track'."\n" + .'* **2**: only the video track'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '0', + ], + 'UserId' => [ + 'description' => 'The user ID. In the single-stream relay mode, you can relay only one stream in a request.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'yourSubUserId', + ], + ], + 'required' => false, + ], + ], + [ + 'name' => 'TranscodeParams', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'The mixed-stream relay parameters. These parameters are required if you set MixMode to 1. Leave these parameters empty if you use the single-stream relay mode.'."\n", + 'type' => 'object', + 'properties' => [ + 'Background' => [ + 'description' => 'The global background image.'."\n", + 'type' => 'object', + 'properties' => [ + 'RenderMode' => [ + 'description' => 'The display mode of the global background image. Valid values:'."\n" + ."\n" + .'* **0**: scales the background image proportionally to fit the view, with black bars displayed.'."\n" + .'* **1** (default): crops the background image to fit the view.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + 'URL' => [ + 'description' => 'The URL of the global background image. The URL can be up to 2,048 characters in length.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'yourImageUrl', + ], + ], + 'required' => false, + ], + 'EncodeParams' => [ + 'description' => 'The encoding parameters for the output stream.'."\n", + '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" + .'* **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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'false', + ], + 'AudioBitrate' => [ + 'description' => 'The bitrate of the audio. Valid values: \\[8,500]. Unit: Kbit/s.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '128', + ], + 'AudioChannels' => [ + 'description' => 'The number of sound channels. Valid values: 1 and 2.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2', + ], + 'AudioSampleRate' => [ + 'description' => 'The audio sampling rate. Valid values: 8000, 16000, 32000, 44100, and 48000. Unit: Hz.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '44100', + ], + 'VideoCodec' => [ + 'description' => 'The video codec. Valid values:'."\n" + ."\n" + .'* H.264 (default)'."\n" + .'* H.265'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'H.264', + ], + 'VideoBitrate' => [ + 'description' => 'The bitrate of the video. Valid values: \\[1,10000]. Unit: Kbit/s.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '3500', + ], + 'VideoFramerate' => [ + 'description' => 'The frame rate of the video. Valid values: \\[1,60]. Unit: frames per second (FPS).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '25', + ], + 'VideoGop' => [ + 'description' => 'The group of pictures (GOP) size of the video. Valid values: \\[1,60].'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '20', + ], + 'VideoHeight' => [ + 'description' => 'The height of the video. Valid values: \\[0,1920]. Unit: pixels.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1000', + ], + 'VideoWidth' => [ + 'description' => 'The width of the video. Valid values: \\[0,1920]. Unit: pixels.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1920', + ], + '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" + .'* 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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{"profile": "high", "preset": "veryfast"}', + ], + ], + 'required' => false, + ], + '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.'."\n", + 'type' => 'object', + 'properties' => [ + 'UserPanes' => [ + 'description' => 'The information about the panes.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the pane.'."\n", + '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.'."\n", + '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" + .'* **shareScreen**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'camera', + ], + '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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'yourChannelId', + ], + 'UserId' => [ + 'description' => 'The user ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'yourSubUserId', + ], + ], + 'required' => false, + ], + 'Height' => [ + 'description' => 'The height of the pane. The value is normalized.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '0.2632', + ], + 'Width' => [ + 'description' => 'The width of the pane. The value is normalized.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '0.3564', + ], + 'X' => [ + 'description' => 'The x-coordinate of the pane. The value is normalized.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '0.2456', + ], + 'Y' => [ + 'description' => 'The y-coordinate of the pane. The value is normalized.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '0.3789', + ], + '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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '0', + ], + 'BackgroundImageUrl' => [ + 'description' => 'The URL of the background image of the pane. The URL can be up to 2,048 characters in length. This image is displayed if the user turns off the camera or is not present in the channel.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'yourImageUrl', + ], + '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" + .'* **1 (default)**: crops the video to fit the view.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + 'required' => false, + ], + 'UserInfos' => [ + 'description' => 'The information about the users whose streams are subscribed to. If you leave this parameter empty, streams from all users are mixed.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the user.'."\n", + '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" + .'* **shareScreen**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'camera', + ], + 'StreamType' => [ + 'description' => 'The type of the relayed stream that is subscribed to. Valid values:'."\n" + ."\n" + .'* **0** (default): original stream'."\n" + .'* **1**: only the audio track'."\n" + .'* **2**: only the video track'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '0', + ], + '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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'yourChannelId', + ], + 'UserId' => [ + 'description' => 'The ID of the subscribed user.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'yourSubUserId', + ], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + 'required' => false, + ], + ], + [ + 'name' => 'SeiParams', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'The supplemental enhancement information (SEI) parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'LayoutVolume' => [ + 'description' => 'The layout and volume SEI. If you leave this parameter empty, the default layout and volume SEI is used.'."\n", + '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" + .'* **1**: includes the SEI.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '0', + ], + 'Interval' => [ + 'description' => 'The interval at which the SEI is sent. Valid values: \\[1000,5000]. Unit: milliseconds.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1000', + ], + ], + 'required' => false, + ], + 'PassThrough' => [ + 'description' => 'Specifies whether to pass through the SEI.'."\n", + '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" + .'* **1**: includes the SEI.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '0', + ], + 'Interval' => [ + 'description' => 'The interval at which the SEI is sent. Valid values: \\[1000,5000]. Unit: milliseconds.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1000', + ], + 'PayloadContent' => [ + 'description' => 'The payload content of the SEI.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'yourPayloadContent', + ], + 'PayloadContentKey' => [ + 'description' => 'The key of the payload content of the SEI. If you do not specify this parameter, the default value udd is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'yourPayloadContentKey', + ], + ], + 'required' => false, + ], + 'PayloadType' => [ + 'description' => 'The custom payload_type of the SEI. Valid values: 100 to 254. If you do not specify this parameter, the default value 5 is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '100', + ], + ], + 'required' => false, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '0F72851F-5DC1-1979-9B2C-450040316C3E', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidAppId', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissingParam', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'Your account has not enabled the Live service', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'InternalError', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0F72851F-5DC1-1979-9B2C-450040316C3E\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0F72851F-5DC1-1979-9B2C-450040316C3E\\n","errorExample":""}]', + 'title' => 'StartLiveMPUTask', + 'description' => 'By default, you can create up to 200 single-stream relay tasks and up to 40 mixed-stream relay tasks for an application. To increase the quota, [submit a ticket](https://smartservice.console.aliyun.com/service/create-ticket).'."\n" + ."\n" + .'### [](#)Lifecycle of a stream relay task'."\n" + ."\n" + .'**Start**'."\n" + ."\n" + .'* Call the StartLiveMPUTask operation to create a task.'."\n" + ."\n" + .' * If no user joins the channel, an error indicating that the channel does not exist is returned.'."\n" + .' * Stream relay is not performed if no stream is ingested. In this case, no relayed stream is available for playback.'."\n" + .' * If the task is in the mixed-stream relay mode, make sure that at least one user is ingesting a stream, which can be relayed for playback. A black screen is displayed in the pane of a user who is not ingesting a stream.'."\n" + ."\n" + .'* We recommend that you record the task status, task mode, and task parameters on your business server.'."\n" + ."\n" + .' * Task status: started or stopped.'."\n" + .' * Task mode: single-stream relay or mixed-stream relay.'."\n" + .' * Task parameters: the latest input parameters. For example, after your call of the UpdateLiveMPUTask operation is successful, record the task parameters, which are the latest.'."\n" + ."\n" + .'* In co-streaming or battle scenarios, the task is in the mixed-stream relay mode. If the streamer leaves the channel due to exceptions and re-joins the channel, you can directly call the StartLiveMPUTask operation on your business server to start stream relay based on the recorded task parameters.'."\n" + ."\n" + .' * If the task has not been automatically cleared by the system, the task is directly started.'."\n" + .' * If the task has not been automatically cleared by the system, a message indicating that **the task already exists** is returned.'."\n" + ."\n" + .'**End**'."\n" + ."\n" + .'* After the streamer leaves the channel, you need to call the [StopLiveMPUTask](~~2362742~~) operation to stop the task.'."\n" + .'* If all users specified in the task have left the channel, but you do not call the StopLiveMPUTask operation, the system stops the task in 2 minutes.'."\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.'."\n", + 'requestParamsDescription' => '### Layout and volume SEI'."\n" + ."\n" + .'|Parameter|Description|'."\n" + .'|---|---|'."\n" + .'|canvas|The information about the canvas. The following fields are included:\\- w: the width of the canvas. Unit: pixels.\\- h: the height of the canvas. Unit: pixels.\\- bgnd: the background color of the canvas, which is an RGB value in the format of a hexadecimal integer.|'."\n" + .'|stream|The information about the video stream. The following fields are included:\\- uid: the user ID of the streamer.\\- paneid: the sequence number of the pane on the canvas. Valid values: \\[0,8\\].\\- zorder: the layer of the pane. Valid values: \\[0,99\\].\\- x: the x-coordinate of the pane on the canvas. The value is normalized.\\- y: the y-coordinate of the pane on the canvas. The value is normalized.\\- w: the width of the pane. The value is normalized.\\- h: the height of the pane. The value is normalized.\\- type: the source of the video stream in the pane. Valid values: 0 (camera) and 1 (screen sharing).\\- status: the status of the video stream in the pane. Valid values: 0 (not pulled) and 1 (pulled).\\- muted: the mute status of the streamer. Valid values: 0 (not muted) and 1 (muted). For example, when two streamers (Streamer A and Streamer B) have a battle, if Streamer A mutes Streamer B, the muted field displayed for Streamer B is 1.\\- vol: the volume of the streamer. Valid values: \\[0,255\\]. Unit: dB.\\- vad: detects human voice. Valid values: \\[0,150\\]. 150 indicates that human voice is detected and a value other than 150 indicates the period of time during which the volume of human voice decreases to 0.|'."\n" + .'|ts|The operating system timestamp when the SEI is generated. Unit: milliseconds.|'."\n" + .'|ver|The version of the SEI. For example, the current version is 1.0.0.20220915.|'."\n" + .'|udd|The custom scenario-based event that is sent by using the PassThrough parameter. The content of the event is specified by the PayloadContent parameter.|'."\n" + ."\n" + .'**Note** The streaming data of the relayed stream contains SEI, which can be used to convey custom information. The SEI can be extracted from the video frame data during decoding. For information about the SEI format, see the description about the PassThrough parameter in the Request parameters section.'."\n" + ."\n" + .'**The following example shows a co-streaming scenario:**'."\n" + ."\n" + .'If a single streamer is streaming, the SEI message that viewers receive contains information about only one participant. If co-streaming or a battle occurs, the SEI message that viewers receive contains information about multiple participants. For example, when the streamer whose user ID is 111 is streaming, an SEI frame in the following format is sent to the viewer side: '."\n" + .'`{"canvas":{"w":1920,"h":1080,"bgnd":0},"stream":[{"uid":"111","paneid":-1,"zorder":0,"x":0,"y":0,"w":0,"h":0,"type":0,"status":1,"muted":0,"vol":0,"vad":0}],"ver":"1.0.0.20220915","ts":1697696105170}` When the streamer whose user ID is 111 is co-streaming with a co-streamer whose user ID is 222, an SEI frame in the following format is sent to the viewer side: '."\n" + .'`{"canvas":{"w":1920,"h":1080,"bgnd":0},"stream":[{"uid":"111","paneid":0,"zorder":1,"x":0,"y":0.25,"w":0.5,"h":0.5,"type":0,"status":1,"muted":0,"vol":1,"vad":119},{"uid":"222","paneid":1,"zorder":1,"x":0.5018382,"y":0.25,"w":0.5,"h":0.5,"type":0,"status":1,"muted":0,"vol":60,"vad":123}],"ver":"1.0.0.20220915","ts":1697696106230}` Viewers can determine whether a streaming layout changes based on the number of stream arrays. If only one stream array exists, a single streamer is streaming. If more than one stream array exists, co-streaming or a battle is in progress. The layout information of the participants can indicate the position of each participant in the mixed stream.'."\n" + ."\n" + .'### SEI pass-through'."\n" + ."\n" + .'* To configure custom SEI, call the StartLiveMPUTask operation to start a mixed-stream relay task and specify the PayloadContent parameter under the PassThrough parameter, or call the UpdateLiveMPUTask operation to update a mixed-stream relay task and specify the PayloadContent parameter under the PassThrough parameter.'."\n" + .'* Custom SEI can be sent periodically. You can use the Interval parameter under the PassThrough parameter to specify the interval in milliseconds.'."\n" + .'* Custom SEI can also be sent with keyframes by specifying the FollowIdr parameter under the PassThrough parameter.'."\n" + .' * You can configure settings to periodically send the custom SEI and send the custom SEI with keyframes at the same time. For example, you can set the Interval parameter to 1000 and the FollowIdr parameter to 1 to send the custom SEI every 1,000 milliseconds and include the custom SEI in keyframes.'."\n" + .' * If you do not specify the Interval parameter and the FollowIdr parameter, the custom SEI is sent only once when you call the operation.'."\n" + ."\n" + .'For example, the streamer whose user ID is 111 ingests a stream and calls the UpdateLiveMPUTask operation to specify periodic SEI. In the operation, the Interval parameter is set to 1000, the FollowIdr parameter is set to 0, and the PayloadContent parameter is set to "hello world". In this case, the custom SEI is sent every 1,000 milliseconds. The SEI frame received on the viewer side is in the following format: '."\n" + .'`{"canvas":{"w":1920,"h":1080,"bgnd":0},"stream":[{"uid":"111","paneid":-1,"zorder":0,"x":0,"y":0,"w":0,"h":0,"type":0,"status":1,"muted":0,"vol":0,"vad":0}],"ver":"1.0.0.20220915","ts":1697696109876,"udd":"hello world"}`'."\n" + ."\n" + .'### Mixed-stream relay across channels'."\n" + ."\n" + .'If you want to mix streams from multiple streamers across multiple channels and relay the mixed stream to ApsaraVideo Live, you must specify the user ID and channel ID of the streamer who initiates the cross-channel call and the user IDs of other streamers as input parameters to create a mixed-stream relay task. Example: In a battle scenario, Streamer A in Channel A initiates a cross-channel battle with Streamer B in Channel B by using the client interface and relays the mixed stream to viewers in Channel A. In this example, the following parameters are specified:'."\n" + ."\n" + .'* ChannelID: channelA'."\n" + .'* UserId under UserInfos: userA and userB'."\n" + ."\n" + .'**Note** To create a cross-channel mixed-stream relay task, make sure that a cross-channel call has been initiated by using the SDK on the client side. If users in different channels are not making a call with each other, you cannot create a cross-channel mixed-stream relay task. For more information about how to initiate a cross-channel call, see [Cross-channel subscription](~~2642837~~).', + ], + 'UpdateLiveMPUTask' => [ + 'summary' => 'Updates a mixed-stream relay task.', + '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 (-).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'yourAppId', + ], + ], + [ + '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 (-).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'yourChannelId', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'yourTaskId', + ], + ], + [ + '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" + .'* **1** (default): the mixed-stream relay mode.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '0', + ], + ], + [ + '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" + .'* You cannot use the same ingest URL in different tasks.'."\n" + .'* You cannot use the same ingest URL within 10 seconds after a task is stopped.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rtmp://example.com/live/stream', + ], + ], + [ + 'name' => 'MultiStreamURL', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'The multiple ingest URLs to relay. This parameter allows you to specify multiple ingest URLs.'."\n", + '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~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rtmp://example.com/live/stream****', + ], + '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" + .'* true: performs stream relay by using Alibaba Cloud CDN.'."\n" + ."\n" + .'> The default value of this parameter is false.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + ], + 'required' => false, + 'description' => '', + ], + 'required' => false, + ], + ], + [ + 'name' => 'SingleSubParams', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'The single-stream relay parameters. These parameters are required if you set MixMode to 0.'."\n", + '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" + .'* **shareScreen**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'camera', + ], + 'StreamType' => [ + 'description' => 'The type of the stream that you want to relay. Valid values:'."\n" + ."\n" + .'* **0** (default): original stream'."\n" + .'* **1**: only the audio track'."\n" + .'* **2**: only the video track'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '0', + ], + 'UserId' => [ + 'description' => 'The user ID. In the single-stream relay mode, you can relay only one stream in a request.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'yourSubUserId', + ], + ], + 'required' => false, + ], + ], + [ + 'name' => 'TranscodeParams', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'The mixed-stream relay parameters. These parameters are required if you set MixMode to 1.'."\n", + 'type' => 'object', + 'properties' => [ + 'Background' => [ + 'description' => 'The global background image.'."\n", + '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" + .'* **1** (default): crops the background image to fit the view.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + 'URL' => [ + 'description' => 'The URL of the global background image.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'yourImageUrl', + ], + ], + 'required' => false, + ], + 'EncodeParams' => [ + 'description' => 'The encoding parameters for the output stream.'."\n", + '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" + .'* **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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'false', + ], + 'AudioBitrate' => [ + 'description' => 'The bitrate of the audio. Valid values: \\[8,500]. Unit: Kbit/s.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '128', + ], + 'AudioChannels' => [ + 'description' => 'The number of sound channels. Valid values: 1 and 2.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2', + ], + 'AudioSampleRate' => [ + 'description' => 'The audio sampling rate. Valid values: 8000, 16000, 32000, 44100, and 48000. Unit: Hz.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '44100', + ], + 'VideoCodec' => [ + 'description' => 'The video codec. Valid values:'."\n" + ."\n" + .'* H.264 (default)'."\n" + .'* H.265'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'H.264', + ], + 'VideoBitrate' => [ + 'description' => 'The bitrate of the video. Valid values: \\[1,10000]. Unit: Kbit/s.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '3500', + ], + 'VideoFramerate' => [ + 'description' => 'The frame rate of the video. Valid values: \\[1,60]. Unit: frames per second (FPS).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '25', + ], + 'VideoGop' => [ + 'description' => 'The group of pictures (GOP) size of the video. Valid values: \\[1,60].'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '20', + ], + 'VideoHeight' => [ + 'description' => 'The height of the video. Valid values: \\[0,1920]. Unit: pixels.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1000', + ], + 'VideoWidth' => [ + 'description' => 'The width of the video. Valid values: \\[0,1920]. Unit: pixels.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1920', + ], + '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" + .'* 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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{"profile": "high", "preset": "veryfast"}', + ], + ], + 'required' => false, + ], + '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.'."\n", + 'type' => 'object', + 'properties' => [ + 'UserPanes' => [ + 'description' => 'The information about the panes.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the pane.'."\n", + '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.'."\n", + '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" + .'* **shareScreen**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'camera', + ], + '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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'yourChannelId', + ], + 'UserId' => [ + 'description' => 'The user ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'yourSubUserId', + ], + ], + 'required' => false, + ], + 'Height' => [ + 'description' => 'The height of the pane. The value is normalized.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '0.2632', + ], + 'Width' => [ + 'description' => 'The width of the pane. The value is normalized.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '0.3564', + ], + 'X' => [ + 'description' => 'The x-coordinate of the pane. The value is normalized.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '0.2456', + ], + 'Y' => [ + 'description' => 'The y-coordinate of the pane. The value is normalized.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '0.3789', + ], + '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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '0', + ], + '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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'yourImageUrl', + ], + '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" + .'* **1 (default)**: crops the video to fit the view.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + 'required' => false, + ], + 'UserInfos' => [ + 'description' => 'The information about the users whose streams are subscribed to. If you leave this parameter empty, streams from all users are mixed.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the user.'."\n", + '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" + .'* **shareScreen**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'camera', + ], + 'StreamType' => [ + 'description' => 'The type of the relayed stream that is subscribed to. Valid values:'."\n" + ."\n" + .'* **0** (default): original stream'."\n" + .'* **1**: only the audio track'."\n" + .'* **2**: only the video track'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '0', + ], + '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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'yourChannelId', + ], + 'UserId' => [ + 'description' => 'The ID of the subscribed user.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'yourSubUserId', + ], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + 'required' => false, + ], + ], + [ + 'name' => 'SeiParams', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'The supplemental enhancement information (SEI) parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'LayoutVolume' => [ + 'description' => 'The layout and volume SEI. If you leave this parameter empty, the default layout and volume SEI is used.'."\n", + '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" + .'* **1**: includes the SEI.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '0', + ], + 'Interval' => [ + 'description' => 'The interval at which the SEI is sent. Valid values: \\[1000,5000]. Unit: milliseconds.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1000', + ], + ], + 'required' => false, + ], + 'PassThrough' => [ + 'description' => 'Specifies whether to pass through the SEI.'."\n", + '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" + .'* **1**: includes the SEI.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '0', + ], + 'Interval' => [ + 'description' => 'The interval at which the SEI is sent. Valid values: \\[1000,5000]. Unit: milliseconds.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1000', + ], + 'PayloadContent' => [ + 'description' => 'The payload content of the SEI.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'yourPayloadContent', + ], + 'PayloadContentKey' => [ + 'description' => 'The key of the payload content of the SEI. If you do not specify this parameter, the default value udd is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'yourPayloadContentKey', + ], + ], + 'required' => false, + ], + ], + 'required' => false, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '0F72851F-5DC1-1979-9B2C-450040316C3E', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidAppId', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissingParam', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'Your account has not enabled the Live service', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'InternalError', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0F72851F-5DC1-1979-9B2C-450040316C3E\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0F72851F-5DC1-1979-9B2C-450040316C3E\\n","errorExample":""}]', + 'title' => 'UpdateLiveMPUTask', + '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.'."\n", + ], + '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', + ], + ], + [ + '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', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '0F72851F-5DC1-1979-9B2C-450040316C3E', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidAppId', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissingParam', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'Your account has not enabled the Live service', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'InternalError', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0F72851F-5DC1-1979-9B2C-450040316C3E\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0F72851F-5DC1-1979-9B2C-450040316C3E\\n","errorExample":""}]', + 'title' => '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" + .'* 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.'."\n", + ], + '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 (-).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'yourAppId', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'yourTaskId', + ], + ], + [ + '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.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '10', + ], + ], + [ + 'name' => 'PageNo', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '20', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '******3B-0E1A-586A-AC29-742247******', + ], + 'MPUTasks' => [ + 'description' => 'The parameters that you configured when you called the StartLiveMPUTask operation to create the tasks.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'AppId' => [ + 'description' => 'The ID of the application.'."\n", + 'type' => 'string', + 'example' => 'yourAppId', + ], + 'ChannelId' => [ + 'description' => 'The ID of the channel.'."\n", + 'type' => 'string', + 'example' => 'yourChannelId', + ], + 'TaskId' => [ + 'description' => 'The ID of the stream relay task.'."\n", + 'type' => 'string', + 'example' => 'yourTaskId', + ], + '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" + .'* 1 (default): mixes multiple streams into a single stream and relays the mixed stream.'."\n", + 'type' => 'string', + 'example' => '0', + ], + 'StreamURL' => [ + 'description' => 'The ingest URL.'."\n", + 'type' => 'string', + 'example' => 'rtmp://example.com/live/stream****', + ], + 'MultiStreamURL' => [ + 'description' => 'The multiple ingest URLs relayed.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'URL' => [ + 'description' => 'The ingest URL.'."\n", + 'type' => 'string', + 'example' => 'rtmp://example.com/live/stream****', + ], + '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" + .'* true: Stream relay is performed by using Alibaba Cloud CDN.'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + ], + 'description' => '', + ], + ], + 'Region' => [ + 'description' => 'The region in which the streams are mixed. Valid values:'."\n" + ."\n" + .'* **CN-shanghai**'."\n" + .'* **AP-Singapore (default)**'."\n" + .'* **EMAA-Saudi**'."\n", + 'type' => 'string', + 'example' => 'CN-Shanghai', + ], + '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.'."\n", + 'type' => 'string', + 'example' => '10', + ], + 'SingleSubParams' => [ + 'description' => 'The parameters of the single-stream relay task.'."\n", + '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" + .'* shareScreen: captures the content displayed on a screen.'."\n", + 'type' => 'string', + 'example' => 'camera', + ], + 'StreamType' => [ + 'description' => 'The type of the stream that is relayed. Valid values:'."\n" + ."\n" + .'* 0 (default): the original stream.'."\n" + .'* 1: the audio-only stream.'."\n" + .'* 2: the video-only stream.'."\n", + 'type' => 'string', + 'example' => '0', + ], + '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.'."\n", + 'type' => 'string', + 'example' => 'yourSubUserId', + ], + ], + ], + 'TranscodeParams' => [ + 'description' => 'The mixed-stream relay parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'Background' => [ + 'description' => 'The global background image.'."\n", + '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" + .'* 1 (default): crops the video or background image to fit the pane.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'URL' => [ + 'description' => 'The URL of the global background image.'."\n", + 'type' => 'string', + 'example' => 'yourImageUrl', + ], + ], + ], + 'EncodeParams' => [ + 'description' => 'The encoding parameters of the output stream.'."\n", + 'type' => 'object', + 'properties' => [ + 'AudioOnly' => [ + 'description' => 'Indicates whether the output stream is an audio-only stream. Valid values:'."\n" + ."\n" + .'* true'."\n" + .'* false (default)'."\n", + 'type' => 'string', + 'example' => 'false', + ], + 'AudioBitrate' => [ + 'description' => 'The bitrate of the audio. Unit: Kbit/s.'."\n", + 'type' => 'string', + 'example' => '128', + ], + 'AudioChannels' => [ + 'description' => 'The number of audio channels. Valid values: 1 and 2.'."\n", + 'type' => 'string', + 'example' => '2', + ], + 'AudioSampleRate' => [ + 'description' => 'The audio sampling rate. Unit: Hz.'."\n", + 'type' => 'string', + 'example' => '44100', + ], + 'VideoCodec' => [ + 'description' => 'The video encoding format. Default value: H.264.'."\n", + 'type' => 'string', + 'example' => 'H.264', + ], + 'VideoBitrate' => [ + 'description' => 'The bitrate of the video. Unit: Kbit/s.'."\n", + 'type' => 'string', + 'example' => '3500', + ], + 'VideoFramerate' => [ + 'description' => 'The frame rate of the video. Unit: frames per second (FPS).'."\n", + 'type' => 'string', + 'example' => '25', + ], + 'VideoGop' => [ + 'description' => 'The group of pictures (GOP) size of the video.'."\n", + 'type' => 'string', + 'example' => '20', + ], + 'VideoHeight' => [ + 'description' => 'The height of the video. Unit: pixels.'."\n", + 'type' => 'string', + 'example' => '1000', + ], + 'VideoWidth' => [ + 'description' => 'The width of the video. Unit: pixels.'."\n", + 'type' => 'string', + 'example' => '1920', + ], + '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" + .'* 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.'."\n", + 'type' => 'string', + 'example' => '{"profile": "high", "preset": "veryfast"}', + ], + ], + ], + '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.'."\n", + 'type' => 'object', + 'properties' => [ + 'UserPanes' => [ + 'description' => 'The information about the panes.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'UserInfo' => [ + 'description' => 'The information about the user whose stream is played in the pane.'."\n", + '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" + .'* shareScreen: captures the content displayed on a screen.'."\n", + 'type' => 'string', + 'example' => 'camera', + ], + 'ChannelId' => [ + 'description' => 'The ID of the channel where the user is.'."\n", + 'type' => 'string', + 'example' => 'yourChannelId', + ], + 'UserId' => [ + 'description' => 'The ID of the user.'."\n", + 'type' => 'string', + 'example' => 'yourSubUserId', + ], + ], + ], + 'Height' => [ + 'description' => 'The height of the pane. The value is normalized.'."\n", + 'type' => 'string', + 'example' => '0.2632', + ], + 'Width' => [ + 'description' => 'The width of the pane. The value is normalized.'."\n", + 'type' => 'string', + 'example' => '0.3564', + ], + 'X' => [ + 'description' => 'The x-coordinate of the pane. The value is normalized.'."\n", + 'type' => 'string', + 'example' => '0.2456', + ], + 'Y' => [ + 'description' => 'The y-coordinate of the pane. The value is normalized.'."\n", + 'type' => 'string', + 'example' => '0.3789', + ], + '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.'."\n", + 'type' => 'string', + 'example' => '0', + ], + '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.'."\n", + 'type' => 'string', + 'example' => 'yourImageUrl', + ], + '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" + .'* 1 (default): crops the video or background image to fit the pane.'."\n", + 'type' => 'string', + 'example' => '1', + ], + ], + 'description' => '', + ], + ], + ], + ], + 'UserInfos' => [ + 'description' => 'The information about the user whose stream is mixed. If an empty value is returned, streams from all users are mixed.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ChannelId' => [ + 'description' => 'The ID of the channel where the user is.'."\n", + 'type' => 'string', + 'example' => 'yourChannelId', + ], + 'UserId' => [ + 'description' => 'The ID of the user.'."\n", + 'type' => 'string', + 'example' => 'yourSubUserId', + ], + '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" + .'* shareScreen: captures the content displayed on a screen.'."\n", + 'type' => 'string', + 'example' => 'camera', + ], + 'StreamType' => [ + 'description' => 'The type of the stream that is relayed. Valid values:'."\n" + ."\n" + .'* 0 (default): the original stream.'."\n" + .'* 1: the audio-only stream.'."\n" + .'* 2: the video-only stream.'."\n", + 'type' => 'string', + 'example' => '0', + ], + ], + 'description' => '', + ], + ], + ], + ], + 'SeiParams' => [ + 'description' => 'The supplemental enhancement information (SEI) parameters.'."\n", + '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.'."\n", + '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" + .'* 1: adds SEI messages.'."\n", + 'type' => 'string', + 'example' => '0', + ], + 'Interval' => [ + 'description' => 'The interval at which the SEI messages are added. Unit: milliseconds.'."\n", + 'type' => 'string', + 'example' => '1000', + ], + ], + ], + 'PassThrough' => [ + 'description' => 'The custom SEI.'."\n", + '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" + .'* 1: adds SEI messages.'."\n", + 'type' => 'string', + 'example' => '0', + ], + 'Interval' => [ + 'description' => 'The interval at which the SEI messages are added. Unit: milliseconds.'."\n", + 'type' => 'string', + 'example' => '1000', + ], + 'PayloadContent' => [ + 'description' => 'The payload content of the custom SEI.'."\n", + 'type' => 'string', + 'example' => 'yourPayloadContent', + ], + 'PayloadContentKey' => [ + 'description' => 'The key of the payload content. Default value: udd.'."\n", + 'type' => 'string', + 'example' => 'yourPayloadContentKey', + ], + ], + ], + 'PayloadType' => [ + 'description' => 'The custom payload type. Valid values: 100 to 254. Default value: 5.'."\n", + 'type' => 'string', + 'example' => '100', + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidAppId', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissingParam', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'Your account has not enabled the Live service', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\",\\n \\"MPUTasks\\": [\\n {\\n \\"AppId\\": \\"yourAppId\\",\\n \\"ChannelId\\": \\"yourChannelId\\",\\n \\"TaskId\\": \\"yourTaskId\\",\\n \\"MixMode\\": \\"0\\",\\n \\"StreamURL\\": \\"rtmp://example.com/live/stream****\\",\\n \\"MultiStreamURL\\": [\\n {\\n \\"URL\\": \\"rtmp://example.com/live/stream****\\",\\n \\"IsAliCdn\\": false\\n }\\n ],\\n \\"Region\\": \\"CN-Shanghai\\",\\n \\"MaxIdleTime\\": \\"10\\",\\n \\"SingleSubParams\\": {\\n \\"SourceType\\": \\"camera\\",\\n \\"StreamType\\": \\"0\\",\\n \\"UserId\\": \\"yourSubUserId\\"\\n },\\n \\"TranscodeParams\\": {\\n \\"Background\\": {\\n \\"RenderMode\\": \\"1\\",\\n \\"URL\\": \\"yourImageUrl\\"\\n },\\n \\"EncodeParams\\": {\\n \\"AudioOnly\\": \\"false\\",\\n \\"AudioBitrate\\": \\"128\\",\\n \\"AudioChannels\\": \\"2\\",\\n \\"AudioSampleRate\\": \\"44100\\",\\n \\"VideoCodec\\": \\"H.264\\",\\n \\"VideoBitrate\\": \\"3500\\",\\n \\"VideoFramerate\\": \\"25\\",\\n \\"VideoGop\\": \\"20\\",\\n \\"VideoHeight\\": \\"1000\\",\\n \\"VideoWidth\\": \\"1920\\",\\n \\"EnhancedParam\\": \\"{\\\\\\"profile\\\\\\": \\\\\\"high\\\\\\", \\\\\\"preset\\\\\\": \\\\\\"veryfast\\\\\\"}\\"\\n },\\n \\"Layout\\": {\\n \\"UserPanes\\": [\\n {\\n \\"UserInfo\\": {\\n \\"SourceType\\": \\"camera\\",\\n \\"ChannelId\\": \\"yourChannelId\\",\\n \\"UserId\\": \\"yourSubUserId\\"\\n },\\n \\"Height\\": \\"0.2632\\",\\n \\"Width\\": \\"0.3564\\",\\n \\"X\\": \\"0.2456\\",\\n \\"Y\\": \\"0.3789\\",\\n \\"ZOrder\\": \\"0\\",\\n \\"BackgroundImageUrl\\": \\"yourImageUrl\\",\\n \\"RenderMode\\": \\"1\\"\\n }\\n ]\\n },\\n \\"UserInfos\\": [\\n {\\n \\"ChannelId\\": \\"yourChannelId\\",\\n \\"UserId\\": \\"yourSubUserId\\",\\n \\"SourceType\\": \\"camera\\",\\n \\"StreamType\\": \\"0\\"\\n }\\n ]\\n },\\n \\"SeiParams\\": {\\n \\"LayoutVolume\\": {\\n \\"FollowIdr\\": \\"0\\",\\n \\"Interval\\": \\"1000\\"\\n },\\n \\"PassThrough\\": {\\n \\"FollowIdr\\": \\"0\\",\\n \\"Interval\\": \\"1000\\",\\n \\"PayloadContent\\": \\"yourPayloadContent\\",\\n \\"PayloadContentKey\\": \\"yourPayloadContentKey\\"\\n },\\n \\"PayloadType\\": \\"100\\"\\n }\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n ******3B-0E1A-586A-AC29-742247******\\n \\n yourAppId\\n yourChannelId\\n yourTaskId\\n 0\\n rtmp://example.com/live/stream****\\n \\n rtmp://example.com/live/stream****\\n \\n CN-Shanghai\\n \\n camera\\n 0\\n yourSubUserId\\n \\n \\n \\n 1\\n yourImageUrl\\n \\n \\n false\\n 128\\n 2\\n 44100\\n H.264\\n 3500\\n 25\\n 20\\n 1000\\n 1920\\n {\\"profile\\": \\"high\\", \\"preset\\": \\"veryfast\\"}\\n \\n \\n \\n \\n camera\\n yourChannelId\\n yourSubUserId\\n \\n 0.2632\\n 0.3564\\n 0.2456\\n 0.3789\\n 0\\n yourImageUrl\\n 1\\n \\n \\n \\n yourChannelId\\n yourSubUserId\\n camera\\n 0\\n \\n \\n \\n \\n 0\\n 1000\\n \\n \\n 0\\n 1000\\n yourPayloadContent\\n yourPayloadContentKey\\n \\n 100\\n \\n \\n","errorExample":""}]', + 'title' => '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" + .'* 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.'."\n", + ], + 'SetLiveMpuTaskSei' => [ + 'summary' => 'Configures custom supplemental enhancement information (SEI) for co-streaming.', + '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 (-).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'VKL3***', + ], + ], + [ + '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 (-).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'AL-4bce036dd90277c50705b0599wgfffc7', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '{"name":"myroom"}', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '7BF95F2A-3B24-4CDE-9346-7F6FA86697A1', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidAppId', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissingParam', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'Your account has not enabled the Live service', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'InternalError', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ******3B-0E1A-586A-AC29-742247******\\n","errorExample":""}]', + 'title' => 'SetLiveMpuTaskSei', + '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.'."\n", + ], + 'CreateEventSub' => [ + 'summary' => 'Creates a callback to subscribe to channel or user events.', + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '9qb1****', + ], + ], + [ + 'name' => 'ChannelId', + 'in' => 'query', + 'schema' => [ + 'title' => '要监听的频道,不填表示全部,每个appid 只允许1个全频道订阅', + '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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123333', + ], + ], + [ + 'name' => 'Users', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '只监听哪些用户,不填表示全部;与ChannelId过滤同时使用才生效', + '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" + .' Users.1=****'."\n" + .' Users.2=****'."\n" + .' ......'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The user ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'user1', + ], + 'required' => false, + 'maxItems' => 30, + ], + ], + [ + '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" + .'* UserEvent: user events in the channel.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'ChannelEvent', + ], + 'required' => true, + 'maxItems' => 5, + ], + ], + [ + 'name' => 'CallbackUrl', + 'in' => 'query', + 'schema' => [ + 'title' => '回调地址', + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'http://****.com/callback', + ], + ], + ], + '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' => '760bad53276431c499e30dc36f6b****', + ], + 'SubscribeId' => [ + 'description' => 'The subscription ID.'."\n", + 'type' => 'string', + 'example' => 'ad53276431c****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'QuotaLimitError', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'ErrorInvalidCallBackUrl', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"760bad53276431c499e30dc36f6b****\\",\\n \\"SubscribeId\\": \\"ad53276431c****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 760bad53276431c499e30dc36f6b26be\\n ad53276431c****\\n","errorExample":""}]', + 'title' => 'CreateEventSub', + '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.'."\n", + '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" + .'* 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.', + ], + 'ListEventSub' => [ + 'summary' => 'Queries the events generated in channels to which you subscribe.', + '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****', + ], + ], + ], + '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' => '订阅ID', + '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', + ], + 'Events' => [ + 'title' => 'ChannelEvent表示频道事件,包括频道开启与关闭;'."\n" + .'UserEvent表示用户事件,包括用户入离会等', + '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', + ], + ], + 'CallbackUrl' => [ + 'description' => 'The callback URL.'."\n", + 'type' => 'string', + 'example' => 'http://****.com/callback', + ], + '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' => '只回调指定userid的事件;不建议与role同用;'."\n" + .'指定此参数必须同时指定ChannelId', + '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', + ], + ], + 'Roles' => [ + 'title' => '1只回调主播事件,2只回调观众事件;'."\n" + .'无值、0、其他值表示回调所有用户事件', + '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', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"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", + ], + 'ListEventSubEvent' => [ + 'summary' => 'Queries callback records.', + '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****', + ], + ], + [ + '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****', + ], + ], + [ + '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', + ], + ], + [ + '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', + ], + ], + [ + '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', + ], + ], + [ + 'name' => 'PageNo', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'maximum' => '9999999999', + 'minimum' => '1', + 'example' => '20', + ], + ], + ], + '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' => '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', + ], + 'HasMore' => [ + 'description' => 'Indicates whether the current page is followed by a page.'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + 'Logs' => [ + 'description' => 'The callback records.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'AppId' => [ + 'description' => 'The application ID.'."\n", + 'type' => 'string', + 'example' => '9qb1****', + ], + 'SubId' => [ + 'description' => 'The subscription ID.'."\n", + 'type' => 'string', + 'example' => 'ad53276431c****', + ], + 'MessageId' => [ + 'description' => 'The ID of the callback record.'."\n", + 'type' => 'string', + 'example' => '875d5266cbabb1834cc84a105cf6****', + ], + '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}}]}', + ], + 'Cost' => [ + 'description' => 'The callback duration. Unit: milliseconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '22', + ], + 'Time' => [ + 'description' => 'The time when the callback was generated.'."\n", + 'type' => 'string', + 'example' => '2023-10-17 20:26:31.988', + ], + 'Url' => [ + 'description' => 'The callback URL.'."\n", + 'type' => 'string', + 'example' => 'http://****.com/callback', + ], + 'Code' => [ + 'description' => 'The HTTP status code. A value of 200 indicates that the callback was successful.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '200', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CC8CB656-A7BA-1811-9D6B-4CC187E988BD\\",\\n \\"Count\\": 1,\\n \\"HasMore\\": false,\\n \\"Logs\\": [\\n {\\n \\"AppId\\": \\"9qb1****\\",\\n \\"SubId\\": \\"ad53276431c****\\",\\n \\"MessageId\\": \\"875d5266cbabb1834cc84a105cf6****\\",\\n \\"Data\\": \\"{\\\\\\\\\\\\\\"MsgId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"875d5266cbabb1834cc84a105cf68454\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"MsgTimestamp\\\\\\\\\\\\\\":1697545591,\\\\\\\\\\\\\\"SubscribeId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"09be0d2254cb5a89f4cbd86403ec5343\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"AppId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"xxx\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"ChannelId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"9099\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Contents\\\\\\\\\\\\\\":[{\\\\\\\\\\\\\\"Event\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"UserEvent\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"UserEvent\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"UserId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"linux_test\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"EventTag\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"Leave\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"SessionId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"je7y2sBZJZQ0VBJZrh4LnBkxvGH2WyVs\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Timestamp\\\\\\\\\\\\\\":1697545591,\\\\\\\\\\\\\\"ChannelProfile\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"interactive_live\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"US\\\\\\\\\\\\\\":5068748604047364,\\\\\\\\\\\\\\"Reason\\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\"Role\\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\"TerminalType\\\\\\\\\\\\\\":6,\\\\\\\\\\\\\\"UserType\\\\\\\\\\\\\\":2}}]}\\",\\n \\"Cost\\": 22,\\n \\"Time\\": \\"2023-10-17 20:26:31.988\\",\\n \\"Url\\": \\"http://****.com/callback\\",\\n \\"Code\\": 200\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n CC8CB656-A7BA-1811-9D6B-4CC187E988BD\\n 1\\n false\\n \\n 9qb1****\\n ad53276431c****\\n 875d5266cbabb1834cc84a105cf6****\\n {\\\\\\"MsgId\\\\\\":\\\\\\"875d5266cbabb1834cc84a105cf68454\\\\\\",\\\\\\"MsgTimestamp\\\\\\":1697545591,\\\\\\"SubscribeId\\\\\\":\\\\\\"09be0d2254cb5a89f4cbd86403ec5343\\\\\\",\\\\\\"AppId\\\\\\":\\\\\\"xxx\\\\\\",\\\\\\"ChannelId\\\\\\":\\\\\\"9099\\\\\\",\\\\\\"Contents\\\\\\":[{\\\\\\"Event\\\\\\":\\\\\\"UserEvent\\\\\\",\\\\\\"UserEvent\\\\\\":{\\\\\\"UserId\\\\\\":\\\\\\"linux_test\\\\\\",\\\\\\"EventTag\\\\\\":\\\\\\"Leave\\\\\\",\\\\\\"SessionId\\\\\\":\\\\\\"je7y2sBZJZQ0VBJZrh4LnBkxvGH2WyVs\\\\\\",\\\\\\"Timestamp\\\\\\":1697545591,\\\\\\"ChannelProfile\\\\\\":\\\\\\"interactive_live\\\\\\",\\\\\\"US\\\\\\":5068748604047364,\\\\\\"Reason\\\\\\":1,\\\\\\"Role\\\\\\":1,\\\\\\"TerminalType\\\\\\":6,\\\\\\"UserType\\\\\\":2}}]}\\n 22\\n \\n http://****.com/callback\\n 200\\n \\n","errorExample":""}]', + 'title' => '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", + ], + 'UpdateEventSub' => [ + 'summary' => 'Updates a callback that is used to subscribe to channel or user events.', + '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****', + ], + ], + [ + 'name' => 'SubscribeId', + 'in' => 'query', + 'schema' => [ + 'title' => '订阅ID', + 'description' => 'The subscription ID. You can obtain the ID from the response to the [CreateEventSub](~~2848209~~) operation.'."\n", + 'type' => 'string', + 'required' => true, + '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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123333', + ], + ], + [ + 'name' => 'Users', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '只监听指定用户的事件,必须同时指定ChannelId才有效。', + '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', + ], + 'required' => false, + 'maxItems' => 30, + ], + ], + [ + '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" + .'- ChannelEvent: channel events '."\n" + .'- UserEvent: user events in the channel', + 'type' => 'string', + 'required' => true, + 'example' => 'ChannelEvent', + ], + 'required' => true, + 'maxItems' => 5, + ], + ], + [ + 'name' => 'CallbackUrl', + 'in' => 'query', + 'schema' => [ + 'title' => '回调地址,因为安全需求,回调地址必须是域名,用标准端号,回调地址不允许包含端口号。示例: http(s)://xxxx.com/xxxx', + 'description' => 'The callback URL. For more information about the callback content, see CreateEventSub.', + 'type' => 'string', + 'required' => true, + '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.'."\n", + 'type' => 'string', + 'example' => 'AE050E24-BE9B-1E79-BB30-7EA0BBAE7F08', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'QuotaLimitError', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'ErrorInvalidCallBackUrl', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"AE050E24-BE9B-1E79-BB30-7EA0BBAE7F08\\"\\n}","errorExample":""},{"type":"xml","example":"\\n AE050E24-BE9B-1E79-BB30-7EA0BBAE7F08\\n","errorExample":""}]', + 'title' => 'UpdateEventSub', + '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" + .'* 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" + .'* 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.'."\n", + ], + 'DeleteEventSub' => [ + 'summary' => 'Deletes a callback that is used to subscribe to channel or user events.', + '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****', + ], + ], + [ + '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****', + ], + ], + ], + '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', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InputInvalid', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'NoAuth', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'ServerError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"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", + ], + 'CreateRtcMPUEventSub' => [ + 'summary' => 'Creates a subscription to mixed-stream relay events.', + '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.'."\n" + ."\n" + .'> The ID can be up to 64 characters in length and can contain letters, digits, underscores, and hyphens (-).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'yourAppId', + ], + ], + [ + '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 mixed-stream relay events of all channels 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 (-).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'yourChannelIds', + ], + ], + [ + 'name' => 'CallbackUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The callback URL.'."\n" + ."\n" + .'> The callback URL can be up to 2,083 characters in length. You can use headers such as HTTP and HTTPS in callback URLs. The URL can contain letters, digits, and the following special characters: - \\_ ? % = # . / +'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'http://****.com/callback', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '******3B-0E1A-586A-AC29-742247******', + ], + 'SubId' => [ + 'description' => 'The ID of the subscription.'."\n", + 'type' => 'string', + 'example' => 'Sub-******9799B2C4500******', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'MissingParam', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidAppId', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'Your account has not enabled the Live service', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'InternalError', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\",\\n \\"SubId\\": \\"Sub-******9799B2C4500******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ******3B-0E1A-586A-AC29-742247******\\n Sub-******9799B2C4500******\\n","errorExample":""}]', + 'title' => 'CreateRtcMPUEventSub', + 'description' => 'You can call this operation to create a subscription to mixed-stream relay events. You can configure parameters such as the callback URL, application to which you want to subscribe, and channel information when you create a 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.'."\n", + 'requestParamsDescription' => '## Sample callback'."\n" + ."\n" + .'Callbacks are sent to your application server as **HTTP or HTTPS POST** requests. The request is encoded in **UTF-8** and the request body is a **JSON** struct. The callback request is successful if the **HTTP status code 200** is returned. Sample code:'."\n" + ."\n" + .'**Note** We recommend that you check both the callback information and the active stream status provided by your CDN vendor to determine whether the mixed-stream relay task is normal.'."\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" + ."\n" + .'The following table describes the fields that are included in the callback header.'."\n" + ."\n" + .'|Field|Description|'."\n" + .'|---|---|'."\n" + .'|Content-Type|The data type. Set the value to application/json.|'."\n" + .'|Ali-Rtc-Timestamp|The timestamp.|'."\n" + .'|Ali-Rtc-Signature|The signature value.|'."\n" + ."\n" + .'The following table describes the fields that are included in the callback message.'."\n" + ."\n" + .'|Field|Type|Description|Example|'."\n" + .'|---|---|---|---|'."\n" + .'|EventType|Integer|The type of the callback event. 1 is returned for mixed-stream relay event callbacks.|1|'."\n" + .'|MsgId|String|The unique ID of the callback.|\\*\\*\\*\\*\\*973C-4529-A334\\*\\*\\*\\*\\*|'."\n" + .'|AppId|String|The ID of the application.|yourAppId|'."\n" + .'|SubId|String|The ID of the subscription.|Sub-\\*\\*\\*\\*\\*\\*9799B2C4500\\*\\*\\*\\*\\*\\*|'."\n" + .'|TaskId|String|The ID of the stream relay task.|yourTaskId|'."\n" + .'|CallbackTs|Integer|The time when the callback request was initiated. The value must be a timestamp in milliseconds.|1712656430476|'."\n" + .'|Payload|JSON Object|The information about the callback event.|\\-|'."\n" + ."\n" + .'* The following table describes the fields in Payload.'."\n" + ."\n" + .'|Field|Type|Description|Example|'."\n" + .'|---|---|---|---|'."\n" + .'|DstUrl|String|The destination URL.|rtmp://domain/app/stream?auth|'."\n" + .'|EventTs|Integer|The time when the callback event occurred. The value must be a timestamp in milliseconds.|1712656430384|'."\n" + .'|EventCode|Integer|The callback event code.|1|'."\n" + .'|ErrorCode|Integer|The error code.|10001|'."\n" + .'|ErrorMessage|String|The error message.|rtmp server init failed|'."\n" + ."\n" + .'## Callback event codes'."\n" + ."\n" + .'|Field|Value|Description|Callback interval|'."\n" + .'|---|---|---|---|'."\n" + .'|MPU\\_STATE\\_PREPARING|0|The stream relay task is created.|Only one callback is fired.|'."\n" + .'|MPU\\_STATE\\_ESTABLISHING|1|The stream relay task is being connected.|Every 5 seconds|'."\n" + .'|MPU\\_STATE\\_RUNNING|2|The stream relay task is in progress.|Only one callback is fired.|'."\n" + .'|MPU\\_STATE\\_RECOVERING|3|The stream relay task is interrupted and being recovered.|Every 5 seconds|'."\n" + .'|MPU\\_STATE\\_TERMINATED|4|The stream relay task ends. You can differentiate whether the task is completed, failed to start, or unexpectedly exited based on ErrorCode and ErrorMessage.|Only one callback is fired.|'."\n" + ."\n" + .'The following flowchart describes the lifecycle of a callback event:![](https://img.alicdn.com/imgextra/i2/O1CN01iLaeA81U5w9M3xI5x_!!6000000002467-2-tps-2116-624.png) **Note:**'."\n" + ."\n" + .'1. Callback information may be sent to your business server out of order. You can sort events by using EventTs in Payload. This allows you to ignore callbacks of expired events and helps you obtain the latest callback information.'."\n" + .'2. If you create a mixed-stream relay task by calling the [StartLiveMPUTask (new)](~~2848199~~) operation, the task automatically stops when all users in the room leave for a specific period of time. The MPU\\_STATE\\_TERMINATED callback is fired when the task stops.'."\n" + .'3. Callback configurations affect only incremental tasks. The following rules apply:'."\n" + ."\n" + .'a. No callback is fired for tasks that are created before the callback configurations are set.'."\n" + ."\n" + .'b. Callbacks are fired for tasks that are created after the callback configurations are set.'."\n" + ."\n" + .'c. Callbacks are fired for tasks that are created before the callback configurations are deleted.'."\n" + ."\n" + .'d. No callback is fired for tasks that are created before after the callback configurations are deleted.'."\n" + ."\n" + .'### Callback error codes'."\n" + ."\n" + .'When a stream relay task ends, you can check the cause based on ErrorCode and ErrorMessage.'."\n" + ."\n" + .'|Error code|Error message|Description|'."\n" + .'|---|---|---|'."\n" + .'|0||The task is completed.|'."\n" + .'|10001|rtmp server init failed|The connection failed to be established.|'."\n" + .'|10002|rtmp server internal error|An internal error occurred and the task failed.|'."\n" + .'|10003|task idle timeout|The task was idle for too long and timed out.|'."\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 the Ali-Rtc-Signature header is calculated by using 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" + .'* 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.', + ], + '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 (-).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'yourAppId', + ], + ], + [ + '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" + .'* The ID can be up to 64 characters in length and contain letters, digits, underscores (\\_), and hyphens (-).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'yourChannelIds', + ], + ], + [ + '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: - \\_ ? % = # . / +'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'http://****.com/callback', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '******3B-0E1A-586A-AC29-742247******', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidAppId', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissingParam', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'Your account has not enabled the Live service', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'InternalError', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ******3B-0E1A-586A-AC29-742247******\\n","errorExample":""}]', + 'title' => '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" + .'* 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.'."\n", + ], + '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 (-).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'yourAppId', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '******3B-0E1A-586A-AC29-742247******', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidAppId', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissingParam', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'Your account has not enabled the Live service', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'InternalError', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ******3B-0E1A-586A-AC29-742247******\\n","errorExample":""}]', + 'title' => 'DeleteRtcMPUEventSub', + 'description' => '* You can call this operation to delete a subscription to mixed-stream relay events.'."\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~~).'."\n", + ], + 'DescribeRtcMPUEventSub' => [ + 'summary' => 'Queries information about a subscription to mixed-stream relay events.', + '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', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '******3B-0E1A-586A-AC29-742247******', + ], + 'SubInfo' => [ + 'description' => 'The information about the subscription.', + 'type' => 'object', + 'properties' => [ + 'SubId' => [ + 'description' => 'The ID of the subscription.', + 'type' => 'string', + 'example' => 'Sub-******9799B2C4500******', + ], + 'AppId' => [ + 'description' => 'The application ID. You can specify only one application ID.'."\n", + 'type' => 'string', + 'example' => 'yourAppId', + ], + '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', + ], + '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', + ], + 'CallbackUrl' => [ + 'description' => 'The callback URL.', + 'type' => 'string', + 'example' => 'http://testcallback***.com/callback', + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidAppId', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissingParam', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'Your account has not enabled the Live service', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'InternalError', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\",\\n \\"SubInfo\\": {\\n \\"SubId\\": \\"Sub-******9799B2C4500******\\",\\n \\"AppId\\": \\"yourAppId\\",\\n \\"ChannelIds\\": \\"yourCh1,yourCh2\\",\\n \\"CreateTime\\": \\"2024-04-09 18:00:00Z\\",\\n \\"CallbackUrl\\": \\"http://testcallback***.com/callback\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n ******3B-0E1A-586A-AC29-742247******\\n \\n Sub-******9799B2C4500******\\n yourAppId\\n yourCh1,yourCh2\\n 2024-04-09 18:00:00Z\\n http://testcallback***.com/callback\\n \\n","errorExample":""}]', + 'title' => 'DescribeRtcMPUEventSub', + 'description' => '### Usage notes'."\n" + .'- You can call this operation to query information about a subscription to mixed-stream relay events. '."\n" + .'- Before you call this operation, make sure that you have called the CreateRtcMPUEventSub operation to create the subscription. '."\n" + .'### QPS limit'."\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~~).', + ], + '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 (-).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'yourAppId', + ], + ], + [ + 'name' => 'SubId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the subscription.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'yourSubId', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1970-01-01T00:00:00Z', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1970-01-01T00:00:00Z', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Valid values: 1 to 100.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '10', + ], + ], + [ + 'name' => 'PageNo', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '20', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '******3B-0E1A-586A-AC29-742247******', + ], + 'Count' => [ + 'description' => 'The number of entries per page.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'HasMore' => [ + 'description' => 'Indicates whether the current page is followed by a page.'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + 'Logs' => [ + 'description' => 'The callback records.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The callback record.'."\n", + 'type' => 'object', + 'properties' => [ + 'AppId' => [ + 'description' => 'The ID of the application.'."\n", + 'type' => 'string', + 'example' => 'yourAppId', + ], + 'SubId' => [ + 'description' => 'The ID of the subscription.'."\n", + 'type' => 'string', + 'example' => 'Sub-******9799B2C4500******', + ], + 'MsgId' => [ + 'description' => 'The ID of the callback record.'."\n", + 'type' => 'string', + 'example' => '42bba8b5-********-9b501dd6cb6e', + ], + 'Data' => [ + 'description' => 'For more information about the callback, see [CreateRtcMPUEventSub](~~2804583~~).'."\n", + 'type' => 'string', + 'example' => '{\\"EventType\\":1,\\"MsgId\\":\\"42bba8b5-94ab-468c-9dae-9b501dd6c***\\",\\"AppId\\":\\"rtcdev\\",\\"SubId\\":\\"Sub-9799B2C45009799B2C4***\\",\\"TaskId\\":\\"mpucallbacktest\\",\\"CallbackTs\\":1712656430***,\\"Payload\\":{\\"DstUrl\\":\\"rtmp://domain/app/stream?auth\\",\\"EventTs\\":1712656430***,\\"EventCode\\":1,\\"ErrorCode\\":0,\\"ErrorMessage\\":\\"\\"}}', + ], + 'Time' => [ + 'description' => '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.'."\n", + 'type' => 'string', + 'example' => '1970-01-01T00:00:00Z', + ], + 'Cost' => [ + 'description' => 'The callback duration. Unit: milliseconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '22', + ], + 'CallbackUrl' => [ + 'description' => 'The callback URL.'."\n", + 'type' => 'string', + 'example' => 'http://testcallback***.com/callback', + ], + 'HTTPCode' => [ + 'description' => 'The HTTP status code. 200 indicates that the callback is successful.'."\n", + 'type' => 'string', + 'example' => '200', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidAppId', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissingParam', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'Your account has not enabled the Live service', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'InternalError', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\",\\n \\"Count\\": 1,\\n \\"HasMore\\": false,\\n \\"Logs\\": [\\n {\\n \\"AppId\\": \\"yourAppId\\",\\n \\"SubId\\": \\"Sub-******9799B2C4500******\\",\\n \\"MsgId\\": \\"42bba8b5-********-9b501dd6cb6e\\",\\n \\"Data\\": \\"{\\\\\\\\\\\\\\"EventType\\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\"MsgId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"42bba8b5-94ab-468c-9dae-9b501dd6c***\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"AppId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"rtcdev\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"SubId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"Sub-9799B2C45009799B2C4***\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"TaskId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"mpucallbacktest\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"CallbackTs\\\\\\\\\\\\\\":1712656430***,\\\\\\\\\\\\\\"Payload\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"DstUrl\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"rtmp://domain/app/stream?auth\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"EventTs\\\\\\\\\\\\\\":1712656430***,\\\\\\\\\\\\\\"EventCode\\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\"ErrorCode\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\"ErrorMessage\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"\\\\\\\\\\\\\\"}}\\",\\n \\"Time\\": \\"1970-01-01T00:00:00Z\\",\\n \\"Cost\\": 22,\\n \\"CallbackUrl\\": \\"http://testcallback***.com/callback\\",\\n \\"HTTPCode\\": \\"200\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n ******3B-0E1A-586A-AC29-742247******\\n 1\\n false\\n \\n yourAppId\\n Sub-******9799B2C4500******\\n 42bba8b5-********-9b501dd6cb6e\\n {\\\\\\"EventType\\\\\\":1,\\\\\\"MsgId\\\\\\":\\\\\\"42bba8b5-94ab-468c-9dae-9b501dd6c***\\\\\\",\\\\\\"AppId\\\\\\":\\\\\\"rtcdev\\\\\\",\\\\\\"SubId\\\\\\":\\\\\\"Sub-9799B2C45009799B2C4***\\\\\\",\\\\\\"TaskId\\\\\\":\\\\\\"mpucallbacktest\\\\\\",\\\\\\"CallbackTs\\\\\\":1712656430***,\\\\\\"Payload\\\\\\":{\\\\\\"DstUrl\\\\\\":\\\\\\"rtmp://domain/app/stream?auth\\\\\\",\\\\\\"EventTs\\\\\\":1712656430***,\\\\\\"EventCode\\\\\\":1,\\\\\\"ErrorCode\\\\\\":0,\\\\\\"ErrorMessage\\\\\\":\\\\\\"\\\\\\"}}\\n \\n 22\\n http://testcallback***.com/callback\\n 200\\n \\n","errorExample":""}]', + 'title' => '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.'."\n", + ], + 'DescribeLiveInteractionMetricData' => [ + 'summary' => 'Queries the metric data of 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. Valid values:'."\n" + ."\n" + .'* JoinChannelSucRate: the success rate of joining a channel within 5 seconds.'."\n" + .'* VideoStuckRate: the video stuttering rate.'."\n" + .'* AudioStuckRate: the audio stuttering rate.'."\n" + .'* FirstFrameCost: the time to first frame.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'FirstFrameCost', + ], + ], + [ + 'name' => 'BeginTs', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. The value is a UNIX timestamp. Unit: milliseconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1698195600000', + ], + ], + [ + 'name' => 'EndTs', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range to query. The value is a UNIX timestamp. Unit: milliseconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1698201013000', + ], + ], + [ + 'name' => 'Os', + 'in' => 'query', + 'schema' => [ + 'description' => 'The operating system. Valid values: iOS and Android.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Android', + ], + ], + [ + 'name' => 'TerminalType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The terminal type. Valid values: web and mobile.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'mobile', + ], + ], + [ + 'name' => 'AppId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the application.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'e4d7f08a-01fe-41b5-a091-fe41060a****', + ], + ], + [ + 'name' => 'ChannelId', + 'in' => 'query', + 'schema' => [ + 'title' => '管道ID'."\n" + .'频道标识', + 'type' => 'string', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Nodes' => [ + 'description' => 'The node data.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Timestamp' => [ + 'description' => 'The time when the metric was queried. The value is a UNIX timestamp. Unit: milliseconds.'."\n", + 'type' => 'string', + 'example' => '1548670257000', + ], + 'Value' => [ + 'description' => 'The value of the metric.'."\n", + 'type' => 'string', + 'example' => '66.670000', + ], + ], + ], + ], + 'RequestId' => [ + 'title' => 'Id', + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'A01C98C5-25AE-124A-83FE-514DF5C5BE36', + ], + 'SummaryData' => [ + 'description' => 'The summary data.'."\n", + 'type' => 'string', + 'example' => '2000', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Meter.ParamError', + 'errorMessage' => 'Param Error:%s,Please Check Again.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Meter.AuthError', + 'errorMessage' => 'Authentication Failed,Please Try Again.', + ], + ], + 500 => [ + [ + 'errorCode' => 'Meter.ServerInternalError', + 'errorMessage' => 'The Request Processing Has Failed Due To Some Unknown Error.', + ], + [ + 'errorCode' => 'Meter.DataSourceQueryError', + 'errorMessage' => 'Data Source Error:%s,Please Try Again.', + ], + ], + 502 => [ + [ + 'errorCode' => 'Meter.ReadyTsError', + 'errorMessage' => 'Get ReadyTs Failed,Please Try Again.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Nodes\\": [\\n {\\n \\"Timestamp\\": \\"1548670257000\\",\\n \\"Value\\": \\"66.670000\\"\\n }\\n ],\\n \\"RequestId\\": \\"A01C98C5-25AE-124A-83FE-514DF5C5BE36\\",\\n \\"SummaryData\\": \\"2000\\"\\n}","errorExample":""},{"type":"xml","example":"\\n A01C98C5-25AE-124A-83FE-514DF5C5BE36\\n 2000\\n \\n 1548670257000\\n 66.670000\\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveInteractionMetricData', + 'description' => '* You can query data in the last 30 days. The time range for a query cannot exceed 24 hours.'."\n" + .'* The time granularity for a query is 5 minutes.'."\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", + ], + 'CreateRtcAsrTask' => [ + 'summary' => 'Creates a live subtitle task to transcribe an audio stream to 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Mode', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the stream. Valid values: live and rtc. The value live specifies a regular live stream, such as a Real-Time Messaging Protocol (RTMP) stream.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'live', + 'enum' => [ + 'rtc', + 'live', + ], + ], + ], + [ + 'name' => 'SDKAppID', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the ApsaraVideo Real-time Communication (ARTC) application.'."\n" + ."\n" + .'> This parameter is required and takes effect only if you set the Mode parameter to rtc.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'appId', + ], + ], + [ + 'name' => 'ChannelID', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the channel.'."\n" + ."\n" + .'> This parameter is required and takes effect only if you set the Mode parameter to rtc.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'channelId', + ], + ], + [ + 'name' => 'RtcUserId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the user who ingests the stream.'."\n" + ."\n" + .'> This parameter is required and takes effect only if you set the Mode parameter to rtc. You can specify only one user ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'user1', + ], + ], + [ + 'name' => 'StreamURL', + 'in' => 'query', + 'schema' => [ + 'description' => 'The URL of the live stream.'."\n" + ."\n" + .'> This parameter is required and takes effect only if you set the Mode parameter to live.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rtmp://xxx', + ], + ], + [ + 'name' => 'Language', + 'in' => 'query', + 'schema' => [ + 'description' => 'The source language of the audio. Valid values:'."\n" + ."\n" + .'* ja: Japanese'."\n" + .'* yue: Cantonese'."\n" + .'* fspk: mixed Mandarin and English'."\n" + .'* en: English'."\n" + .'* cn: Mandarin'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn', + ], + ], + [ + 'name' => 'CallbackURL', + 'in' => 'query', + 'schema' => [ + 'description' => 'The callback URL.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'http://xxx.com', + ], + ], + [ + 'name' => 'AuthKey', + 'in' => 'query', + 'schema' => [ + 'description' => 'The AuthKey that is used to generate the MD5 signature in callbacks.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'abcd', + ], + ], + [ + 'name' => 'TranslateEnabled', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable the translation feature.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + [ + 'name' => 'TargetLanguages', + 'in' => 'query', + 'schema' => [ + 'description' => 'The language into which the subtitles are translated. Valid values:'."\n" + ."\n" + .'* cn: Chinese'."\n" + .'* en: English'."\n" + .'* ja: Japanese'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'en', + ], + ], + [ + 'name' => 'AutoTerminateEnabled', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to automatically stop the task when the latency exceeds the specified limit. Default value: false.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + [ + 'name' => 'AutoTerminateDelay', + 'in' => 'query', + 'schema' => [ + 'description' => 'The maximum latency at which the task is automatically stopped. Unit: seconds. Valid values: 1 to 10.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '5', + ], + ], + [ + 'name' => 'ReportInterval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The interval at which callbacks are returned. Unit: milliseconds. Valid values: -1 and 0 to 500.'."\n" + ."\n" + .'* \\-1: accepts callbacks only for whole sentences, but not for incomplete sentences.'."\n" + .'* 0 or an empty value: returns callbacks in real time.'."\n" + .'* A value that is greater than 0 and less than or equal to 500: returns callbacks at the specified interval.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '5', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Description' => [ + 'description' => 'The result of the request. If success is returned, the request is successful. If an error message is returned, the request failed.'."\n", + 'type' => 'string', + 'example' => 'success', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '7FF5417D-06E9-5A2C-9A70-581F6149E6C1', + ], + 'RetCode' => [ + 'description' => 'The returned HTTP status code. HTTP status code 2000 indicates that the request is successful. If another HTTP status code is returned, the request failed.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2000', + ], + 'TaskId' => [ + 'description' => 'The ID of the task.'."\n", + 'type' => 'string', + 'example' => 'asr-a6ac15e0-9118-4b4c-9e64-306163a0****', + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Description\\": \\"success\\",\\n \\"RequestId\\": \\"7FF5417D-06E9-5A2C-9A70-581F6149E6C1\\",\\n \\"RetCode\\": 2000,\\n \\"TaskId\\": \\"asr-a6ac15e0-9118-4b4c-9e64-306163a0****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n success\\n 7FF5417D-06E9-5A2C-9A70-581F6149E6C1\\n 2000\\n asr-a6ac15e0-9118-4b4c-9e64-306163a0****\\n","errorExample":""}]', + 'title' => 'CreateRtcAsrTask', + 'description' => 'You can call this operation to create a live subtitle task that transcribes audio in a live stream to text in real time.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 20 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", + 'requestParamsDescription' => '## [](#)Sample callback'."\n" + ."\n" + .'Callback content is returned from the specified callback URL. For more information, see [Interaction 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\\":\\"It\'s an honor to be here with all of you\\",\\"confidence\\":0.0,\\"words\\":[{\\"startTime\\":0,\\"text\\":\\"It\'s an honor\\",\\"endTime\\":510},{\\"startTime\\":510,\\"text\\":\\"to be here\\",\\"endTime\\":1020},{\\"startTime\\":1020,\\"text\\":\\"with\\",\\"endTime\\":1530},{\\"startTime\\":1530,\\"text\\":\\"all of you\\",\\"endTime\\":2040}],\\"index\\":0,\\"time\\":2040,\\"fixed_result\\":\\"\\",\\"unfixed_result\\":\\"\\",\\"status\\":0}}"'."\n" + .' }'."\n", + ], + 'QueryRtcAsrTasks' => [ + 'summary' => 'Queries the status of a speech-to-text or translation task.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'TaskId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the task that you want to query. If you do not specify this parameter, all running tasks under your UID are queried.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'asr-a6ac15e0-9118-4b4c-9e64-306163a0****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Description' => [ + 'description' => 'The result of the request. If success is returned, the request was successful. If an error message is returned, the request failed.'."\n", + 'type' => 'string', + 'example' => 'success', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'D8ADAB55-1BB8-5C01-8434-C45D353BB1FD', + ], + 'RetCode' => [ + 'description' => 'The HTTP status code. HTTP status code 2000 indicates that the request was successful. Other HTTP status codes indicate that the request failed.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2000', + ], + 'Tasks' => [ + 'description' => 'The results returned for the tasks.'."\n", + 'type' => 'object', + 'additionalProperties' => [ + 'type' => 'any', + 'example' => '"asr-a7bdde0a-0939-4288-973e-170082aa****": { "createdAt": "2024-05-14T11:52:02+08:00", "updatedAt": "2024-05-14T11:52:03+08:00", "mode": "live", "taskId": "asr-a7bdde0a-0939-4288-973e-170082aa****", "language": "cn", "callbackUrl": "default", "autoTerminateDelay": "10", "streamUrl": "http://pull-lveditor.alivecdn.com/caster/9c6c26281a6f4da29af7d3ec84d2****.flv?auth_key=1715745062-0-0-fbc68f2ccebb4d46b5ab6d4801ed****", "status": 1, "reportInterval": "0", "aliUid": "1119309225474343", "tag": "" }', + 'description' => 'The result returned for the task.'."\n", + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'ConfigNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Description\\": \\"success\\",\\n \\"RequestId\\": \\"D8ADAB55-1BB8-5C01-8434-C45D353BB1FD\\",\\n \\"RetCode\\": 2000,\\n \\"Tasks\\": {\\n \\"key\\": \\"\\\\\\"asr-a7bdde0a-0939-4288-973e-170082aa****\\\\\\": { \\\\\\"createdAt\\\\\\": \\\\\\"2024-05-14T11:52:02+08:00\\\\\\", \\\\\\"updatedAt\\\\\\": \\\\\\"2024-05-14T11:52:03+08:00\\\\\\", \\\\\\"mode\\\\\\": \\\\\\"live\\\\\\", \\\\\\"taskId\\\\\\": \\\\\\"asr-a7bdde0a-0939-4288-973e-170082aa****\\\\\\", \\\\\\"language\\\\\\": \\\\\\"cn\\\\\\", \\\\\\"callbackUrl\\\\\\": \\\\\\"default\\\\\\", \\\\\\"autoTerminateDelay\\\\\\": \\\\\\"10\\\\\\", \\\\\\"streamUrl\\\\\\": \\\\\\"http://pull-lveditor.alivecdn.com/caster/9c6c26281a6f4da29af7d3ec84d2****.flv?auth_key=1715745062-0-0-fbc68f2ccebb4d46b5ab6d4801ed****\\\\\\", \\\\\\"status\\\\\\": 1, \\\\\\"reportInterval\\\\\\": \\\\\\"0\\\\\\", \\\\\\"aliUid\\\\\\": \\\\\\"1119309225474343\\\\\\", \\\\\\"tag\\\\\\": \\\\\\"\\\\\\" }\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n success\\n D8ADAB55-1BB8-5C01-8434-C45D353BB1FD\\n 2000\\n \\n \\"asr-a7bdde0a-0939-4288-973e-170082aa****\\": { \\"createdAt\\": \\"2024-05-14T11:52:02+08:00\\", \\"updatedAt\\": \\"2024-05-14T11:52:03+08:00\\", \\"mode\\": \\"live\\", \\"taskId\\": \\"asr-a7bdde0a-0939-4288-973e-170082aa****\\", \\"language\\": \\"cn\\", \\"callbackUrl\\": \\"default\\", \\"autoTerminateDelay\\": \\"10\\", \\"streamUrl\\": \\"http://pull-lveditor.alivecdn.com/caster/9c6c26281a6f4da29af7d3ec84d2****.flv?auth_key=1715745062-0-0-fbc68f2ccebb4d46b5ab6d4801ed****\\", \\"status\\": 1, \\"reportInterval\\": \\"0\\", \\"aliUid\\": \\"1119309225474343\\", \\"tag\\": \\"\\" }\\n \\n","errorExample":""}]', + 'title' => 'QueryRtcAsrTasks', + 'description' => 'You can call this operation up to 20 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", + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'TaskId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the task.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'asr-d794cc89-a63e-4d08-8b44-242a6597****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Description' => [ + 'description' => 'The result of the request. If success is returned, the request is successful. If an error message is returned, the request failed.'."\n", + 'type' => 'string', + 'example' => 'success', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '3D208CC1-27C9-51E9-82B8-A6682D466421', + ], + 'RetCode' => [ + 'description' => 'The returned HTTP status code. HTTP status code 2000 indicates that the request is successful. If another HTTP status code is returned, the request failed.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2000', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'ConfigNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Description\\": \\"success\\",\\n \\"RequestId\\": \\"3D208CC1-27C9-51E9-82B8-A6682D466421\\",\\n \\"RetCode\\": 2000\\n}","errorExample":""},{"type":"xml","example":"\\n success\\n 3D208CC1-27C9-51E9-82B8-A6682D466421\\n 2000\\n","errorExample":""}]', + 'title' => 'StopRtcAsrTask', + 'description' => 'You can call this operation up to 20 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", + ], + 'DeleteRtcAsrTask' => [ + 'summary' => 'Deletes a live subtitle 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'TaskId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The task ID. You can obtain the ID from the response to the [CreateRtcAsrTask](~~2848217~~) operation.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'asr-51c72******', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Description' => [ + 'description' => 'The result of the request. If success is returned, the request is successful. If an error message is returned, the request failed.'."\n", + 'type' => 'string', + 'example' => 'success', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '85F94125-B695-1FB8-A7E7-3BE7CE07EF31', + ], + 'RetCode' => [ + 'description' => 'The returned HTTP status code. HTTP status code 2000 indicates that the request is successful. If another HTTP status code is returned, the request failed.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2000', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'ConfigNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Description\\": \\"success\\",\\n \\"RequestId\\": \\"85F94125-B695-1FB8-A7E7-3BE7CE******\\",\\n \\"RetCode\\": 2000\\n}","errorExample":""},{"type":"xml","example":"\\n success\\n 85F94125-B695-1FB8-A7E7-3BE7CE07EF31\\n 2000\\n","errorExample":""}]', + 'title' => 'DeleteRtcAsrTask', + 'description' => 'You can call this operation up to 20 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", + ], + 'DeleteLiveAIProduceRules' => [ + 'summary' => 'Deletes a subtitle rule.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'RulesId', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => [ + 'description' => 'The ID of the subtitle rule.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => true, + 'example' => '445409ec-7eaa-461d -8f29-4bec2eb9****', + ], + ], + [ + 'name' => 'SuffixName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The suffix of the subtitle rule.'."\n" + ."\n" + .'> Set the value to the name of the subtitle template.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'et', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo.aliyundoc.com', + ], + ], + [ + 'name' => 'App', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'AppName', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5c6a2a0df228-4a64- af62-20e91b96****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'IncorrectSubtitleStatus.%s', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64- af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 5c6a2a0df228-4a64- af62-20e91b96****\\n","errorExample":""}]', + 'title' => 'DeleteLiveAIProduceRules', + 'description' => 'You can call this operation to delete a specified subtitle rule.'."\n" + ."\n" + .'> The live subtitles feature is in invitational preview. You can add up to 300 subtitle templates.'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + ], + 'DescribeLiveAIProduceRules' => [ + 'summary' => 'Queries subtitle 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'demo.aliyundoc.com', + ], + ], + [ + 'name' => 'App', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'AppName', + ], + ], + [ + 'name' => 'SuffixName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The suffix of the subtitle rule.'."\n" + ."\n" + .'> Set the value to the name of the subtitle template.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'sub01', + ], + ], + [ + 'name' => 'RulesId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the subtitle rule.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '445409ec-7eaa-461d-8f29-4bec****', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Valid values: \\[1,100].'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Valid values: \\[1,100].'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '100', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '5c6a2a0df228-4a64- af62-20e91b96****', + ], + 'RuleInfoList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RuleInfo' => [ + 'description' => 'The subtitle rules.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the subtitle rule.'."\n", + 'type' => 'object', + 'properties' => [ + 'Domain' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'example' => 'demo.aliyundoc.com', + ], + 'App' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'example' => 'App Name', + ], + 'SubtitleName' => [ + 'description' => 'The name of the subtitle template.'."\n", + 'type' => 'string', + 'example' => 'sub1', + ], + 'IsLazy' => [ + 'description' => 'Indicates whether the rule takes effect when stream pulling starts.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'RulesId' => [ + 'description' => 'The ID of the subtitle rule.'."\n", + 'type' => 'string', + 'example' => '72fba656-2cc2-40fd-923c-2a10c3b9****', + ], + 'LiveTemplate' => [ + 'description' => 'The specification of the exported subtitles.'."\n", + 'type' => 'string', + 'example' => 'lp_ld', + ], + 'GmtModifyTime' => [ + 'description' => 'The last time when the rule was modified. The value is a timestamp.'."\n", + 'type' => 'string', + 'example' => '1715594344000', + ], + 'SuffixName' => [ + 'description' => 'The suffix of the subtitle rule.'."\n", + 'type' => 'string', + 'example' => 'test0506', + ], + 'StudioName' => [ + 'description' => 'The name of the virtual background template.'."\n", + 'type' => 'string', + 'example' => 'test0708', + ], + 'Description' => [ + 'description' => 'The description of the rule.'."\n", + 'type' => 'string', + 'example' => 'live AI subtitle template', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'IncorrectSubtitleStatus.%s', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64- af62-20e91b96****\\",\\n \\"RuleInfoList\\": {\\n \\"RuleInfo\\": [\\n {\\n \\"Domain\\": \\"demo.aliyundoc.com\\",\\n \\"App\\": \\"App Name\\",\\n \\"SubtitleName\\": \\"sub1\\",\\n \\"IsLazy\\": true,\\n \\"RulesId\\": \\"72fba656-2cc2-40fd-923c-2a10c3b9****\\",\\n \\"LiveTemplate\\": \\"lp_ld\\",\\n \\"GmtModifyTime\\": \\"1715594344000\\",\\n \\"SuffixName\\": \\"test0506\\",\\n \\"StudioName\\": \\"test0708\\",\\n \\"Description\\": \\"live AI subtitle template\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 5c6a2a0df228-4a64- af62-20e91b96****\\n \\n demo.aliyundoc.com\\n App Name\\n sub1\\n true\\n true\\n 72fba656-2cc2-40fd-923c-2a10c3b9****\\n lp_ld\\n 1715594344000\\n test0506\\n live AI subtitle template\\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveAIProduceRules', + 'description' => 'You can call this operation to query subtitle rules. Make sure that the parameter settings meet the requirements.'."\n" + ."\n" + .'> The live subtitles feature is in invitational preview. You can add up to 300 subtitle templates.'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + ], + 'UpdateLiveAIProduceRules' => [ + 'summary' => 'Updates a subtitle rule.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo.aliyundoc.com', + ], + ], + [ + 'name' => 'App', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'AppName', + ], + ], + [ + 'name' => 'Suffix', + 'in' => 'query', + 'schema' => [ + 'description' => 'The suffix to match.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test01', + ], + ], + [ + 'name' => 'SubtitleName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the subtitle template.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'sub01', + ], + ], + [ + 'name' => 'StudioName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the virtual background template.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'sub02', + ], + ], + [ + 'name' => 'IsLazy', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to generate live subtitles when stream pulling starts. Valid values:'."\n" + ."\n" + .'* true: generates live subtitles when stream pulling starts and stops generating live subtitles when no streams are pulled for 5 minutes. When stream pulling restarts, live subtitles are generated again.'."\n" + .'* false: generates live subtitles when stream ingest starts.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + [ + 'name' => 'RulesId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the subtitle rule.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '445409ec-7eaa-461d -8f29-4bec2eb9****', + ], + ], + [ + 'name' => 'LiveTemplate', + 'in' => 'query', + 'schema' => [ + 'description' => 'The specification of the output subtitles. Valid values:'."\n" + ."\n" + .'* `lp_ld`: 360p (640 × 360)'."\n" + .'* `lp_ld_v`: 360p (360 × 640)'."\n" + .'* `lp_sd`: 480p (854 × 480)'."\n" + .'* `lp_sd_v`: 480p (480 × 854)'."\n" + .'* `lp_hd`: 720p (1280 × 720)'."\n" + .'* `lp_hd_v`: 720p (720 × 1280)'."\n" + .'* `lp_ud`: 1080p (1920 × 1080)'."\n" + .'* `lp_ud_v`: 1080p (1080 × 1920)'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'lp_ld', + ], + ], + [ + 'name' => 'SubtitleId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the subtitle template.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The description of the subtitle rule. The description can be up to 128 characters in length and can contain letters, digits, and special characters.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'live AI subtitle template', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5c6a2a0df228-4a64-af62-20e91b96****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 5c6a2a0df228-4a64-af62-20e91b96****\\n","errorExample":""}]', + 'title' => 'UpdateLiveAIProduceRules', + 'description' => 'You can call this operation to modify the parameters of a specified subtitle rule.'."\n" + ."\n" + .'> The live subtitles feature is in invitational preview. You can add up to 300 subtitle templates.'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + 'translator' => 'machine', + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo.aliyundoc.com', + ], + ], + [ + 'name' => 'App', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs. The name can be up to 256 characters in length and can contain digits, letters, hyphens (-), and underscores (\\_). The name must be the same as the application name in the ingest URL. Otherwise, the rule does not take effect.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'AppName', + ], + ], + [ + 'name' => 'Suffix', + 'in' => 'query', + 'schema' => [ + 'description' => 'The suffix to match.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test01', + ], + ], + [ + 'name' => 'SubtitleName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the subtitle template.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'sub01', + ], + ], + [ + 'name' => 'StudioName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the virtual background template.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'sub02', + ], + ], + [ + 'name' => 'IsLazy', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to trigger the subtitle rule when stream pulling starts. Valid values:'."\n" + ."\n" + .'* true: generates live subtitles when stream pulling starts and stops generating live subtitles when no stream is pulled for 5 minutes. When stream pulling restarts, live subtitles are generated again.'."\n" + .'* false: generates live subtitles when stream ingest starts, regardless of whether stream pulling starts.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + [ + 'name' => 'LiveTemplate', + 'in' => 'query', + 'schema' => [ + 'description' => 'The specification of the output subtitles. Valid values:'."\n" + ."\n" + .'* `lp_ld`: landscape low definition 360p (640×360)'."\n" + .'* `lp_ld_v`: portrait low definition 360p (360×640)'."\n" + .'* `lp_sd`: landscape standard definition 480p (854×480)'."\n" + .'* `lp_sd_v`: portrait standard definition 480p (480×854)'."\n" + .'* `lp_hd`: landscape high definition 720p (1280×720)'."\n" + .'* `lp_hd_v`: portrait high definition 720p (720×1280)'."\n" + .'* `lp_ud`: landscape ultra-high definition 1080p (1920×1080)'."\n" + .'* `lp_ud_v`: portrait ultra-high definition 1080p (1080×1920)'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'lp_ld', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The description of the subtitle rule. The description can be up to 128 characters in length and can contain letters, digits, and special characters.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'live AI subtitle template', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5c6a2a0df228-4a64-af62-20e91b96****', + ], + 'RulesId' => [ + 'description' => 'The ID of the subtitle rule.'."\n", + 'type' => 'string', + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b96****\\",\\n \\"RulesId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 5c6a2a0df228-4a64-af62-20e91b96****\\n 445409ec-7eaa-461d-8f29-4bec2eb9****\\n","errorExample":""}]', + 'title' => 'AddLiveAIProduceRules', + 'description' => '* After you call the [AddLiveAISubtitle](~~2848222~~) operation to add a subtitle template, you can call this operation to create a subtitle rule for the template.'."\n" + ."\n" + .'* You must add "\\_Subtitle template name" after the stream name in the streaming URL to play the subtitle stream.'."\n" + ."\n" + .' * RTMP: rtmp://example.aliyundoc.com/app/stream\\_{Subtitle template name}?auth_key={Access token}'."\n" + .' * FLV: http://example.aliyundoc.com/app/stream\\_{Subtitle template name}.flv?auth_key={Access token}'."\n" + .' * M3U8: http://example.aliyundoc.com/app/stream\\_{Subtitle template name}.m3u8?auth_key={Access token}'."\n" + ."\n" + .'> The live subtitles feature is in invitational preview. You can add up to 300 subtitle templates.'."\n" + ."\n" + .'## [](#qps-)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 will experience service interruptions. We recommend that you take note of this limit when you call this operation.'."\n", + 'translator' => 'machine', + ], + 'AddLiveAISubtitle' => [ + 'summary' => 'Adds a subtitle template.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + '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', + ], + ], + [ + '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' => true, + 'example' => 'zh-CN', + ], + ], + [ + 'name' => 'DstLanguage', + 'in' => 'query', + 'schema' => [ + 'description' => 'The target language. 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', + ], + ], + [ + 'name' => 'FontColor', + 'in' => 'query', + 'schema' => [ + 'description' => 'The font color, which is an RGBA value.', + 'type' => 'string', + 'required' => false, + 'example' => '0xFFFFFF', + ], + ], + [ + 'name' => 'FontName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The font. Valid values:'."\n" + .'- KaiTi (default)'."\n" + .'- AlibabaPuHuiTi-Regular'."\n" + .'- AlibabaPuHuiTi-Bold'."\n" + .'- AlibabaPuHuiTi-Light'."\n" + .'- NotoSansHans-Regular'."\n" + .'- NotoSansHans-Bold'."\n" + .'- NotoSansHans-Light', + 'type' => 'string', + 'required' => false, + 'example' => 'KaiTi', + ], + ], + [ + 'name' => 'BgColor', + 'in' => 'query', + 'schema' => [ + 'description' => 'The background color of the subtitles, which is an RGBA value.', + 'type' => 'string', + 'required' => false, + 'example' => '0xFF0000', + ], + ], + [ + 'name' => 'PositionNormalized', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'The position of the subtitles. The value is a pair of coordinates for which the origin of the x and y axes is the lower-left corner of the screen.', + 'type' => 'array', + 'items' => [ + 'description' => 'The position of the subtitles. The value is a pair of coordinates for which the origin of the x and y axes is the lower-left corner of the screen.', + 'type' => 'number', + 'format' => 'float', + 'required' => false, + 'example' => '[0.32,0.27]', + ], + 'required' => true, + ], + ], + [ + 'name' => 'ShowSourceLan', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to display the source language. Default value: false.', + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + [ + 'name' => 'MaxLines', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of displayed lines.', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '2', + ], + ], + [ + 'name' => 'WordPerLine', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of words displayed per line. Valid values: integers from 1 to 500.', + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '20', + ], + ], + [ + 'name' => 'FontSizeNormalized', + 'in' => 'query', + 'schema' => [ + 'description' => 'The font size. Valid values: [0,1].', + 'type' => 'number', + 'format' => 'float', + 'required' => true, + 'example' => '0.037', + ], + ], + [ + 'name' => 'BorderWidthNormalized', + 'in' => 'query', + 'schema' => [ + 'description' => 'The font weight. Valid values: [0,1].', + 'type' => 'number', + 'format' => 'float', + 'required' => false, + 'example' => '0.05', + ], + ], + [ + 'name' => 'BgWidthNormalized', + 'in' => 'query', + 'schema' => [ + 'description' => 'The background size of the subtitles. Valid values: [0,1].', + 'type' => 'number', + 'format' => 'float', + 'required' => false, + 'example' => '0.09', + ], + ], + [ + 'name' => 'CopyFrom', + 'in' => 'query', + 'schema' => [ + 'description' => 'The subtitle template that you copy. Set the value to the name of the subtitle template.', + 'type' => 'string', + 'required' => false, + 'example' => 'sub01', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The custom description of the subtitle template. The description can be up to 128 characters in length and can contain letters, digits, and special characters.', + 'type' => 'string', + 'required' => false, + 'example' => 'live AI subtitle template', + ], + ], + [ + 'name' => 'Width', + 'in' => 'query', + 'schema' => [ + 'description' => 'The preview width. Unit: pixels.', + 'type' => 'string', + 'required' => false, + 'example' => '1280', + ], + ], + [ + 'name' => 'Height', + 'in' => 'query', + 'schema' => [ + 'description' => 'The preview height. Unit: pixels.'."\n" + .'The following specifications of preview width × preview height are supported: '."\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', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5c6a2a0df228-4a64-af62-20e91b96****', + ], + 'SubtitleId' => [ + 'description' => 'The ID of the subtitle template.', + 'type' => 'string', + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b96****\\",\\n \\"SubtitleId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 5c6a2a0df228-4a64-af62-20e91b96****\\n 445409ec-7eaa-461d-8f29-4bec2eb9****\\n","errorExample":""}]', + 'title' => 'AddLiveAISubtitle', + 'description' => '## Instructions'."\n" + .'- This interface supports adding live caption template configurations, with templates configurable to describe caption content, layout, and more. '."\n" + .'- After adding caption templates, you also need to call the [AddLiveAIProduceRules](~~2799676~~) interface to add caption rules. Restarting the stream will then enable captions in the broadcast. '."\n" + .'- Real-time captions are currently supported in Beijing, Shanghai, Singapore, Indonesia, and Saudi regions.'."\n" + .'>The real-time caption feature is currently in beta testing. Each user can add up to 300 caption templates. >'."\n" + .'## QPS Limit '."\n" + .'The QPS limit for this interface per user is 60 requests/second. Exceeding this limit will result in API throttling, which may impact your services. Please use judiciously. For more information, refer to [QPS Limitations](~~343507~~).', + ], + 'DeleteLiveAISubtitle' => [ + 'summary' => 'Deletes a specified subtitle template.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'SubtitleId', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => [ + 'description' => 'The ID of the subtitle template.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + ], + [ + 'name' => 'SubtitleName', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => 'The name of the subtitle template. The name can contain only digits, letters, and hyphens (-). The name cannot start with a hyphen.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'sub01', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5c6a2a0df228-4a64-af62-20e91b96****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 5c6a2a0df228-4a64-af62-20e91b96****\\n","errorExample":""}]', + 'title' => 'DeleteLiveAISubtitle', + 'description' => 'You can call this operation to delete a specified subtitle template for live streaming.'."\n" + ."\n" + .'> The live subtitles feature is in invitational preview. You can add up to 300 subtitle templates.'."\n" + ."\n" + .'## [](#qps-)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 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", + ], + 'UpdateLiveAISubtitle' => [ + 'summary' => 'Updates a subtitle template.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'SubtitleName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the subtitle template. The name can contain digits, letters, and hyphens (-) but cannot start with a hyphen (-).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'live AI subtitle template', + ], + ], + [ + 'name' => 'SrcLanguage', + 'in' => 'query', + 'schema' => [ + 'description' => 'The source language. Valid values:'."\n" + ."\n" + .'* en-US: English'."\n" + .'* zh-CN: Chinese'."\n" + .'* ru-RU: Russian'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'zh-CN', + ], + ], + [ + 'name' => 'DstLanguage', + 'in' => 'query', + 'schema' => [ + 'description' => 'The target language. Valid values:'."\n" + ."\n" + .'* en-US: English'."\n" + .'* zh-CN: Chinese'."\n" + .'* es-ES: Spanish'."\n" + .'* ru-RU: Russian'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'zh-CN', + ], + ], + [ + 'name' => 'FontColor', + 'in' => 'query', + 'schema' => [ + 'description' => 'The font color. Color format: RGBA.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '0xFFFFFF', + ], + ], + [ + 'name' => 'FontName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The font. Valid values:'."\n" + ."\n" + .'* KaiTi (default)'."\n" + .'* AlibabaPuHuiTi-Regular'."\n" + .'* AlibabaPuHuiTi-Bold'."\n" + .'* AlibabaPuHuiTi-Light'."\n" + .'* NotoSansHans-Regular'."\n" + .'* NotoSansHans-Bold'."\n" + .'* NotoSansHans-Light'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'KaiTi', + ], + ], + [ + 'name' => 'BgColor', + 'in' => 'query', + 'schema' => [ + 'description' => 'The background color of the subtitles. Color format: RGBA.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '0xFF0000', + ], + ], + [ + 'name' => 'PositionNormalized', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'The position of the subtitles relative to the lower-left corner of the screen. The value is a pair of coordinates.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The position of the subtitles relative to the lower-left corner of the screen. The value is a pair of coordinates.', + 'type' => 'number', + 'format' => 'float', + 'required' => false, + 'example' => '[0.32,0.27]', + ], + 'required' => false, + ], + ], + [ + 'name' => 'ShowSourceLan', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to display the source language. Valid values: true and false. Default value: false.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + [ + 'name' => 'MaxLines', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of displayed lines.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '2', + ], + ], + [ + 'name' => 'WordPerLine', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of characters per line. Valid values: 1 to 500.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '20', + ], + ], + [ + 'name' => 'FontSizeNormalized', + 'in' => 'query', + 'schema' => [ + 'description' => 'The font size. Valid values: \\[0,1].'."\n", + 'type' => 'number', + 'format' => 'float', + 'required' => false, + 'example' => '0.037', + ], + ], + [ + 'name' => 'BorderWidthNormalized', + 'in' => 'query', + 'schema' => [ + 'description' => 'The font weight. Valid values: \\[0,1].'."\n", + 'type' => 'number', + 'format' => 'float', + 'required' => false, + 'example' => '0.05', + ], + ], + [ + 'name' => 'BgWidthNormalized', + 'in' => 'query', + 'schema' => [ + 'description' => 'The size of the background box. Valid values: \\[0,1].'."\n", + 'type' => 'number', + 'format' => 'float', + 'required' => false, + 'example' => '0.09', + ], + ], + [ + 'name' => 'SubtitleId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the subtitle template.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '597991f3-6ef9-4100-9238-82951de1****', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The description of the subtitle template. The description can be up to 128 characters in length and can contain letters, digits, and special characters.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'live AI subtitle template', + ], + ], + [ + 'name' => 'Width', + 'in' => 'query', + 'schema' => [ + 'description' => 'The width of the preview. Unit: pixels.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1280', + ], + ], + [ + 'name' => 'Height', + 'in' => 'query', + 'schema' => [ + 'description' => 'The height of the preview. Unit: pixels.'."\n" + ."\n" + .'The following preview specifications (width x height) are supported:'."\n" + ."\n" + .'* 360p (640 x 360)'."\n" + .'* 360p (360 x 640)'."\n" + .'* 480p (854 x 480)'."\n" + .'* 480p (480 x 854)'."\n" + .'* 720p (1280 x 720)'."\n" + .'* 720p (720 x 1280)'."\n" + .'* 1080p (1920 x 1080)'."\n" + .'* 1080p (1080 x 1920)'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '720', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'String 5c6a2a0df228-4a64- af62-20e91b96****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"String\\\\t5c6a2a0df228-4a64- af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n String\\t5c6a2a0df228-4a64- af62-20e91b96****\\n","errorExample":""}]', + 'title' => 'UpdateLiveAISubtitle', + ], + 'DescribeLiveAISubtitle' => [ + 'summary' => 'Queries subtitle templates.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'SubtitleId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the subtitle template.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'sub01', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Valid values: \\[1,100].'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Valid values: \\[1,100].'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '100', + ], + ], + [ + 'name' => 'IsDefault', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to query the default subtitle template. Valid values:'."\n" + ."\n" + .'* true'."\n" + ."\n" + .'* false'."\n" + ."\n" + .' **'."\n" + ."\n" + .' **Note **The default template includes the built-in parameter configurations. You can specify the copyFrom parameter when you call the AddLiveAISubtitle operation to use the default template.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '5c6a2a0df228-4a64- af62-20e91b96****', + ], + 'SubtitleConfigs' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SubtitleConfig' => [ + 'description' => 'The information about the subtitle templates.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'Subtitle template information object', + 'type' => 'object', + 'properties' => [ + 'DstLanguage' => [ + 'description' => 'The language to which the subtitles are translated.'."\n", + 'type' => 'string', + 'example' => 'zh-CN', + ], + 'SrcLanguage' => [ + 'description' => 'The source language of the subtitles.'."\n", + 'type' => 'string', + 'example' => 'zh-CN', + ], + 'FontColor' => [ + 'description' => 'The font color.'."\n", + 'type' => 'string', + 'example' => '0xFFFFFF', + ], + 'FontName' => [ + 'description' => 'The font.'."\n", + 'type' => 'string', + 'example' => 'AlibabaPuHuiTi-Regular', + ], + 'ShowSourceLan' => [ + 'description' => 'Indicates whether the source language of the subtitle is displayed.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => 'true', + ], + 'MaxLines' => [ + 'description' => 'The number of displayed lines.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '2', + ], + 'WordPerline' => [ + 'description' => 'The number of words per line.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '20', + ], + 'PositionNormalized' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Position' => [ + 'description' => 'The position of the subtitles.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'Subtitle position', + 'type' => 'number', + 'format' => 'float', + 'example' => '[0.3,0.35]', + ], + ], + ], + ], + 'BgColor' => [ + 'description' => 'The background color of the subtitles.'."\n", + 'type' => 'string', + 'example' => '0xFF0000', + ], + 'BgWidthNormalized' => [ + 'description' => 'The size of the background image.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '0.09', + ], + 'BorderWidthNormalized' => [ + 'description' => 'The font weight.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '0.05', + ], + 'Width' => [ + 'description' => 'The width of the preview image.'."\n", + 'type' => 'string', + 'example' => '1280', + ], + 'Height' => [ + 'description' => 'The height of the preview image.'."\n", + 'type' => 'string', + 'example' => '720', + ], + 'SubtitleName' => [ + 'description' => 'The name of the subtitle template.'."\n", + 'type' => 'string', + 'example' => 'sub1', + ], + 'SubtitleId' => [ + 'description' => 'The ID of the subtitle template.'."\n", + 'type' => 'string', + 'example' => '597991f3-6ef9-4100-9238-82951de1****', + ], + 'RulesRefer' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RulesId' => [ + 'description' => 'The ID of the subtitle rule.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'Subtitle rule ID', + 'type' => 'string', + 'example' => '1419783e-0dd2-4485-a298-6e4a0e4e****', + ], + ], + ], + ], + 'FontSizeNormalized' => [ + 'description' => 'The font size.'."\n", + 'type' => 'string', + 'example' => '0.037', + ], + 'Description' => [ + 'description' => 'The description of the template.'."\n", + 'type' => 'string', + 'example' => 'live AI subtitle template', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64- af62-20e91b96****\\",\\n \\"SubtitleConfigs\\": {\\n \\"SubtitleConfig\\": [\\n {\\n \\"DstLanguage\\": \\"zh-CN\\",\\n \\"SrcLanguage\\": \\"zh-CN\\",\\n \\"FontColor\\": \\"0xFFFFFF\\",\\n \\"FontName\\": \\"AlibabaPuHuiTi-Regular\\",\\n \\"ShowSourceLan\\": 0,\\n \\"MaxLines\\": 2,\\n \\"WordPerline\\": 20,\\n \\"PositionNormalized\\": {\\n \\"Position\\": [\\n 0\\n ]\\n },\\n \\"BgColor\\": \\"0xFF0000\\",\\n \\"BgWidthNormalized\\": 0.09,\\n \\"BorderWidthNormalized\\": 0.05,\\n \\"Width\\": \\"1280\\",\\n \\"Height\\": \\"720\\",\\n \\"SubtitleName\\": \\"sub1\\",\\n \\"SubtitleId\\": \\"597991f3-6ef9-4100-9238-82951de1****\\",\\n \\"RulesRefer\\": {\\n \\"RulesId\\": [\\n \\"1419783e-0dd2-4485-a298-6e4a0e4e****\\"\\n ]\\n },\\n \\"FontSizeNormalized\\": \\"0.037\\",\\n \\"Description\\": \\"live AI subtitle template\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 5c6a2a0df228-4a64- af62-20e91b96****\\n \\n zh-CN\\n zh-CN\\n 0xFFFFFF\\n AlibabaPuHuiTi-Regular\\n 2\\n 20\\n [0.3,0.35]\\n 0xFF0000\\n 0.09\\n 0.05\\n 1280\\n 720\\n sub1\\n 597991f3-6ef9-4100-9238-82951de1****\\n 1419783e-0dd2-4485-a298-6e4a0e4e****\\n 0.037\\n live AI subtitle template\\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveAISubtitle', + 'description' => 'This interface supports querying the list of subtitle template information with specified pagination parameters. Ensure that the parameter settings meet the requirements when calling.'."\n" + .'>The real-time subtitle function is currently in the beta testing phase, and each user can add up to 300 subtitle templates. >'."\n" + .'## QPS Limit '."\n" + .'The QPS limit for this interface per user is 60 times/second. Exceeding this limit will result in API calls being throttled, which may impact your business operations. Please use it reasonably. For more information, refer to [QPS Limitation](~~343507~~).', + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'StudioName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the virtual studio template. The name must be unique.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'stu02', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The custom description.'."\n", + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => [], + 'example' => 'template 1080', + ], + ], + [ + 'name' => 'Width', + 'in' => 'query', + 'schema' => [ + 'description' => 'The preview width. Unit: pixels.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1920', + ], + ], + [ + 'name' => 'Height', + 'in' => 'query', + 'schema' => [ + 'description' => 'The preview height. Unit: pixels.'."\n" + ."\n" + .'The following preview specifications (width × height) are supported:'."\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)'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1080', + ], + ], + [ + 'name' => 'BackgroundType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the background material. Valid values:'."\n" + ."\n" + .'* VOD: a video in ApsaraVideo VOD'."\n" + .'* PIC: an image'."\n" + .'* LIVE: a live stream'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'VOD', + 'enum' => [ + 'VOD', + 'LIVE', + 'PIC', + ], + ], + ], + [ + 'name' => 'BackgroundResourceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the background material in ApsaraVideo VOD. You can obtain the ID from the ApsaraVideo VOD console.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'd0eb493192c771efba644531858c0102', + 'enum' => [], + ], + ], + [ + 'name' => 'BackgroundResourceUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The URL of the background material. Specify either this parameter or the BackgroundResourceId parameter.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'https://xxx.com/1.mp4', + 'enum' => [], + ], + ], + [ + 'name' => 'MediaType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the multimedia material. Valid values:'."\n" + ."\n" + .'* VOD: a video in ApsaraVideo VOD'."\n" + .'* PIC: an image'."\n" + .'* LIVE: a live stream'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'VOD', + 'enum' => [ + 'VOD', + 'LIVE', + 'PIC', + ], + ], + ], + [ + 'name' => 'MediaResourceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the multimedia material in ApsaraVideo VOD. You can obtain the ID from the ApsaraVideo VOD console.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'd0eb493192c771efba644531858c0102', + 'enum' => [], + ], + ], + [ + 'name' => 'MediaResourceUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The URL of the multimedia material. Specify either this parameter or the MediaResourceId parameter.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'https://xxx.com/2.mp4', + 'enum' => [], + ], + ], + [ + 'name' => 'MediaLayout', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'The layout information of the multimedia material.'."\n", + 'type' => 'object', + 'properties' => [ + 'PositionX' => [ + 'description' => 'The x-coordinate of the material. Valid values: **0 to 1**. The upper-left corner is used as the coordinate origin for the material.'."\n", + 'type' => 'number', + 'format' => 'float', + 'required' => false, + 'example' => '0', + ], + 'PositionY' => [ + 'description' => 'The y-coordinate of the material. Valid values: **0 to 1**. The upper-left corner is used as the coordinate origin for the material.'."\n", + 'type' => 'number', + 'format' => 'float', + 'required' => false, + 'example' => '0', + ], + 'HeightNormalized' => [ + 'description' => 'The normalized value of the material height. The value indicates the ratio of the material height to the height of the background. Valid values: **0 to 1**.'."\n", + 'type' => 'number', + 'format' => 'float', + 'required' => false, + 'example' => '0.5', + ], + ], + 'required' => false, + ], + ], + [ + 'name' => 'MattingType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of chroma key. Valid values:'."\n" + ."\n" + .'* green: green-screen chroma key'."\n" + .'* blue: blue-screen chroma key'."\n" + .'* complex: background replacement'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'complex', + 'enum' => [ + 'green', + 'blue', + 'complex', + ], + ], + ], + [ + 'name' => 'MattingLayout', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'The layout information of the chroma-keyed material.'."\n", + 'type' => 'object', + 'properties' => [ + 'PositionX' => [ + 'description' => 'The x-coordinate of the material. Valid values: **0 to 1**. The upper-left corner is used as the coordinate origin for the material.'."\n", + 'type' => 'number', + 'format' => 'float', + 'required' => false, + 'example' => '0.3', + ], + 'PositionY' => [ + 'description' => 'The y-coordinate of the material. Valid values: **0 to 1**. The upper-left corner is used as the coordinate origin for the material.'."\n", + 'type' => 'number', + 'format' => 'float', + 'required' => false, + 'example' => '0.3', + ], + 'HeightNormalized' => [ + 'description' => 'The normalized value of the material height. The value indicates the ratio of the material height to the height of the background. Valid values: **0 to 1**.'."\n", + 'type' => 'number', + 'format' => 'float', + 'required' => false, + 'example' => '0.5', + ], + ], + 'required' => true, + ], + ], + ], + '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' => '17D7526C-69AD-5761-8037-071C27358345', + ], + 'StudioId' => [ + 'title' => 'Id of the request', + 'description' => 'The ID of the virtual studio template.'."\n", + 'type' => 'string', + 'example' => '369ced1f-c33a-49e5-91da-bdaae3d6c1c2', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'LiveServiceNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.PurchaseTime', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.ExpireTime', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidChargeType.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidChargeType.PostSupport', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidCasterTemplate.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'InvalidParameter.ChargeType', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidPeriod.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidClientToken.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectCasterStatus', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'CasterNumberExceed', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 403 => [ + [ + 'errorCode' => 'PermissionDenied', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'InvalidParameter.NormType', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidConfiguration.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 408 => [ + [ + 'errorCode' => 'CreateLiveAIStudio.Timeout', + 'errorMessage' => '%s, 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' => 'CreateLiveAIStudio', + 'description' => '> The lightweight virtual studio feature is in invitational preview. You can add up to 300 virtual studio templates.'."\n", + ], + 'DeleteLiveAIStudio' => [ + 'summary' => 'Deletes a virtual studio template.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'StudioId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the template. You can obtain the ID from the response to the CreateLiveAIStudio operation.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '369ced1f-c33a-49e5-91da-bdaae3d6c1c2', + ], + ], + ], + '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' => '40A4F36D-A7CC-473A-88E7-154F92242566', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'LiveServiceNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.PurchaseTime', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParameter.ExpireTime', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidChargeType.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidChargeType.PostSupport', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidCasterTemplate.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'InvalidParameter.ChargeType', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidPeriod.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidClientToken.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectStudioStatus.Inuse', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'CasterNumberExceed', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 403 => [ + [ + 'errorCode' => 'PermissionDenied', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'InvalidParameter.NormType', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidConfiguration.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 408 => [ + [ + 'errorCode' => 'DeleteLiveAIStudio.Timeout', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"40A4F36D-A7CC-473A-88E7-154F92242566\\"\\n}","type":"json"}]', + 'title' => 'DeleteLiveAIStudio', + 'description' => 'To delete a virtual studio template, you must first unbind the rules. Otherwise, an error occurs.'."\n" + ."\n" + .'> The lightweight virtual studio feature is in invitational preview. You can add up to 300 virtual studio templates.'."\n", + ], + 'ModifyLiveAIStudio' => [ + 'summary' => 'Modifies a 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'StudioName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the virtual studio template. The name is the same as the value of the StudioName parameter that was specified when you called the CreateLiveAIStudio operation to create the virtual studio template.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'stu02', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The custom description.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'custom', + ], + ], + [ + 'name' => 'Width', + 'in' => 'query', + 'schema' => [ + 'description' => 'The preview width. Unit: pixels.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1920', + ], + ], + [ + 'name' => 'Height', + 'in' => 'query', + 'schema' => [ + 'description' => 'The preview height. Unit: pixels.'."\n" + ."\n" + .'The following preview specifications (width × height) are supported:'."\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)'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1080', + ], + ], + [ + 'name' => 'BackgroundType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the background material. Valid values:'."\n" + ."\n" + .'* VOD: a video in ApsaraVideo VOD'."\n" + .'* PIC: an image'."\n" + .'* LIVE: a live stream'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'VOD'."\n", + 'enum' => [ + 'VOD', + 'LIVE', + 'PIC', + ], + ], + ], + [ + 'name' => 'BackgroundResourceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the background material in ApsaraVideo VOD. You can obtain the ID from the ApsaraVideo VOD console.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'd0eb493192c771efba644531858c0102', + 'enum' => [], + ], + ], + [ + 'name' => 'BackgroundResourceUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The URL of the background material.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'https://xxx.com/2.mp4'."\n", + 'enum' => [], + ], + ], + [ + 'name' => 'MediaType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the multimedia material. Valid values:'."\n" + ."\n" + .'* VOD: a video in ApsaraVideo VOD'."\n" + .'* PIC: an image'."\n" + .'* LIVE: a live stream'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'VOD', + 'enum' => [ + 'VOD', + 'LIVE', + 'PIC', + ], + ], + ], + [ + 'name' => 'MediaResourceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the multimedia material in ApsaraVideo VOD. You can obtain the ID from the ApsaraVideo VOD console.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'd0eb493192c771efba644531858c01102', + 'enum' => [], + ], + ], + [ + 'name' => 'MediaResourceUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The URL of the multimedia material. Specify either this parameter or the MediaResourceId parameter.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'https://xxx.com/1.mp4'."\n", + 'enum' => [], + ], + ], + [ + 'name' => 'MediaLayout', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'The layout information of the multimedia material.'."\n", + 'type' => 'object', + 'properties' => [ + 'PositionX' => [ + 'description' => 'The x-coordinate of the material. Valid values: **0 to 1**. The upper-left corner is used as the coordinate origin for the material.'."\n", + 'type' => 'number', + 'format' => 'float', + 'required' => false, + 'example' => '0', + ], + 'PositionY' => [ + 'description' => 'The y-coordinate of the material. Valid values: **0 to 1**. The upper-left corner is used as the coordinate origin for the material.'."\n", + 'type' => 'number', + 'format' => 'float', + 'required' => false, + 'example' => '0', + ], + 'HeightNormalized' => [ + 'description' => 'The normalized value of the material height. The value indicates the ratio of the material height to the height of the background. Valid values: **0 to 1**.'."\n", + 'type' => 'number', + 'format' => 'float', + 'required' => false, + 'example' => '0.5', + ], + ], + 'required' => false, + ], + ], + [ + 'name' => 'MattingType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of chroma key. Valid values:'."\n" + ."\n" + .'* green: green-screen chroma key'."\n" + .'* blue: blue-screen chroma key'."\n" + .'* complex: background replacement'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'complex', + 'enum' => [ + 'green', + 'blue', + 'complex', + ], + ], + ], + [ + 'name' => 'MattingLayout', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'The layout information of the chroma-keyed material.'."\n", + 'type' => 'object', + 'properties' => [ + 'PositionX' => [ + 'description' => 'The x-coordinate of the material. Valid values: **0 to 1**. The upper-left corner is used as the coordinate origin for the material.'."\n", + 'type' => 'number', + 'format' => 'float', + 'required' => false, + 'example' => '0', + ], + 'PositionY' => [ + 'description' => 'The y-coordinate of the material. Valid values: **0 to 1**. The upper-left corner is used as the coordinate origin for the material.'."\n", + 'type' => 'number', + 'format' => 'float', + 'required' => false, + 'example' => '0', + ], + 'HeightNormalized' => [ + 'description' => 'The normalized value of the height. The value indicates the ratio of the material height to the height of the background. Valid values: **0 to 1**.'."\n", + 'type' => 'number', + 'format' => 'float', + 'required' => false, + 'example' => '0.5', + ], + ], + 'required' => true, + ], + ], + ], + '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' => '0BA6B3C4-525A-5381-A2B0-5351323F31C5', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'LiveServiceNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.PurchaseTime', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.ExpireTime', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidChargeType.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidChargeType.PostSupport', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidCasterTemplate.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'InvalidParameter.ChargeType', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidPeriod.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidClientToken.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectCasterStatus', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'CasterNumberExceed', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 403 => [ + [ + 'errorCode' => 'PermissionDenied', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'InvalidParameter.NormType', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidConfiguration.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 408 => [ + [ + 'errorCode' => 'ModifyLiveAIStudio.Timeout', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0BA6B3C4-525A-5381-A2B0-5351323F31C5\\"\\n}","type":"json"}]', + 'title' => 'ModifyLiveAIStudio', + ], + 'DescribeLiveAIStudio' => [ + 'summary' => 'Queries the virtual studio templates within your Alibaba Cloud account.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'StudioId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the virtual studio template that you want to query. This parameter is optional.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'dbe61b87-db9a-448f-8757-a875edb3f944', + ], + ], + [ + 'name' => 'StudioName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the virtual studio template.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'sub02', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: 10. Valid values: 1 to 50.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + ], + ], + ], + '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' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + 'Total' => [ + 'description' => 'The total number of templates.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '100', + ], + 'PageNumber' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'PageSize' => [ + 'description' => 'The number of entries per page. Default value: 10. Valid values: 1 to 50.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'StudioConfigs' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SubtitleConfig' => [ + 'description' => 'The virtual studio templates.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the virtual studio template.'."\n", + 'type' => 'object', + 'properties' => [ + 'MediaType' => [ + 'description' => 'The type of the multimedia material. Valid values:'."\n" + ."\n" + .'* VOD: a video in ApsaraVideo VOD'."\n" + .'* PIC: an image'."\n" + .'* LIVE: a live stream'."\n", + 'type' => 'string', + 'example' => 'VOD', + ], + 'MediaLayout' => [ + 'description' => 'LIVE, live streaming'."\n", + 'type' => 'string', + 'example' => '"{\\"positionY\\":\\"0.0\\",\\"positionX\\":\\"0.0\\",\\"heightNormalized\\":\\"0.5\\"}"', + ], + 'MediaResourceUrl' => [ + 'description' => 'The URL of the multimedia material.'."\n", + 'type' => 'string', + 'example' => 'https://testbucket.xx.com/2.jpg', + ], + 'MediaResourceId' => [ + 'description' => 'The ID of the multimedia material in ApsaraVideo VOD.'."\n", + 'type' => 'string', + 'example' => ' '."\n" + .'d0eb493192c771efba644531858c0102'."\n", + ], + 'BackgroundType' => [ + 'description' => 'The type of the background material. Valid values:'."\n" + ."\n" + .'* VOD: a video in ApsaraVideo VOD'."\n" + .'* PIC: an image'."\n" + .'* LIVE: a live stream'."\n", + 'type' => 'string', + 'example' => 'VOD', + ], + 'BackgroundResourceUrl' => [ + 'description' => 'The URL of the background material. Make sure that the URL is accessible over the Internet. Either this parameter or the BackgroundResourceId parameter is returned.'."\n", + 'type' => 'string', + 'example' => 'https://testbucket.xx.com/2.jpg', + ], + 'BackgroundResourceId' => [ + 'description' => 'The ID of the background material.'."\n", + 'type' => 'string', + 'example' => 'd0eb493192c771efba644531858c0102', + ], + 'Description' => [ + 'description' => 'The custom description.'."\n", + 'type' => 'string', + 'example' => 'user defined description', + ], + 'TemplateId' => [ + 'description' => 'The ID of the virtual studio template.'."\n", + 'type' => 'string', + 'example' => '24654384-f5ac-40ea-823b-74e85a61dd9f', + ], + 'TemplateName' => [ + 'description' => 'The name of the virtual studio template. The name is the same as the value of the StudioName parameter that was specified when you called the CreateLiveAiStudio operation to create the virtual studio template.'."\n", + 'type' => 'string', + 'example' => 'studio1', + ], + 'MattingLayout' => [ + 'description' => 'The layout information of the multimedia material.'."\n", + 'type' => 'string', + 'example' => '"{\\"positionY\\":\\"0.0\\",\\"positionX\\":\\"0.0\\",\\"heightNormalized\\":\\"0.5\\"}"', + ], + 'MattingType' => [ + 'description' => 'The type of chroma key that is performed on ingested streams. Valid values:'."\n" + ."\n" + .'* green: green-key chroma key'."\n" + .'* blue: blue-screen chroma key'."\n" + .'* complex: background replacement'."\n", + 'type' => 'string', + 'example' => 'complex', + ], + 'Height' => [ + 'description' => 'The preview height. Unit: pixels.'."\n" + ."\n" + .'The following preview specifications (width × height) are supported:'."\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)'."\n", + 'type' => 'string', + 'example' => '1080', + ], + 'Width' => [ + 'description' => 'The preview width.'."\n", + 'type' => 'string', + 'example' => '1920', + ], + 'RuleIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'ruleId' => [ + 'description' => 'The IDs of the bound rules.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the rule.'."\n", + 'type' => 'string', + 'example' => '2414378f-541a-48d3-be0c-535212f9a6b4', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'LiveServiceNotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.PurchaseTime', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.ExpireTime', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidChargeType.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidChargeType.PostSupport', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidCasterTemplate.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.Malformed', + 'errorMessage' => 'There are invalid parameters: %s.', + ], + [ + 'errorCode' => 'InvalidParameter.ChargeType', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidPeriod.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidUserId.Malformed', + 'errorMessage' => '%s, please check userId.', + ], + [ + 'errorCode' => 'InvalidClientToken.Malformed', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'IncorrectCasterStatus', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'CasterNumberExceed', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 403 => [ + [ + 'errorCode' => 'PermissionDenied', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + [ + [ + 'errorCode' => 'InvalidParameter.NormType', + 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'errorCode' => 'InvalidConfiguration.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 408 => [ + [ + 'errorCode' => 'DescribeLiveAIStudio.Timeout', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"Total\\": 100,\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"StudioConfigs\\": {\\n \\"SubtitleConfig\\": [\\n {\\n \\"MediaType\\": \\"VOD\\",\\n \\"MediaLayout\\": \\"\\\\\\"{\\\\\\\\\\\\\\"positionY\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0.0\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"positionX\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0.0\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"heightNormalized\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0.5\\\\\\\\\\\\\\"}\\\\\\"\\",\\n \\"MediaResourceUrl\\": \\"https://testbucket.xx.com/2.jpg\\",\\n \\"MediaResourceId\\": \\"\\\\t\\\\nd0eb493192c771efba644531858c0102\\\\n\\",\\n \\"BackgroundType\\": \\"VOD\\",\\n \\"BackgroundResourceUrl\\": \\"https://testbucket.xx.com/2.jpg\\",\\n \\"BackgroundResourceId\\": \\"d0eb493192c771efba644531858c0102\\",\\n \\"Description\\": \\"user defined description\\",\\n \\"TemplateId\\": \\"24654384-f5ac-40ea-823b-74e85a61dd9f\\",\\n \\"TemplateName\\": \\"studio1\\",\\n \\"MattingLayout\\": \\"\\\\\\"{\\\\\\\\\\\\\\"positionY\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0.0\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"positionX\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0.0\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"heightNormalized\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0.5\\\\\\\\\\\\\\"}\\\\\\"\\",\\n \\"MattingType\\": \\"complex\\",\\n \\"Height\\": \\"1080\\",\\n \\"Width\\": \\"1920\\",\\n \\"RuleIds\\": {\\n \\"ruleId\\": [\\n \\"2414378f-541a-48d3-be0c-535212f9a6b4\\"\\n ]\\n }\\n }\\n ]\\n }\\n}","type":"json"}]', + 'title' => 'DescribeLiveAIStudio', + ], + 'CreateLivePullToPush' => [ + 'summary' => 'Creates a pulled-stream relay 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' => [ + 'type' => 'string', + 'default' => 'cn-shanghai', + ], + ], + [ + '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 (Jakarta)'."\n" + .'* cn-beijing: China (Beijing)'."\n" + .'* cn-shanghai: China (Shanghai)'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-shanghai', + 'enum' => [ + 'ap-northeast-1', + 'ap-southeast-1', + 'ap-southeast-5', + 'eu-central-1', + 'me-central-1', + 'cn-beijing', + 'cn-shanghai', + 'cn-shenzhen', + 'cn-qingdao', + 'preregion', + ], + ], + ], + [ + 'name' => 'TaskName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the task. Default value: "". Fuzzy search for task names is supported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The start time of the task.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* 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 seven days.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2024-08-26T10:30:00Z', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end time of the task.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* 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 seven days.'."\n" + ."\n" + .'* The end time must be later than the start time.'."\n" + ."\n" + .'* The end time must be later than the current time.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2024-08-27T14:30:00Z', + ], + ], + [ + 'name' => 'SourceType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the source stream. Valid values:'."\n" + ."\n" + .'* live: a live stream'."\n" + .'* vod: a list of ApsaraVideo VOD resources'."\n" + .'* url: a list of video resources from a third party'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'live', + 'enum' => [ + 'live', + 'vod', + 'url', + ], + ], + ], + [ + 'name' => 'SourceProtocol', + 'in' => 'query', + 'schema' => [ + 'description' => 'The protocol of the source stream.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* rtmp'."\n" + .'* rtsp'."\n" + .'* srt'."\n" + .'* http-flv'."\n" + .'* flv'."\n" + ."\n" + .'> This parameter is required if you set the **SourceType** parameter to live, but does not take effect if you set the SourceType parameter to vod or url.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rtmp', + 'enum' => [], + ], + ], + [ + 'name' => 'SourceUrls', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'The source URLs.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* If SourceType is set to live, you can specify only one streaming URL.'."\n" + ."\n" + .'* If SourceType is set to vod or url, you can specify up to 30 IDs or URLs.'."\n" + ."\n" + .'* If SourceType is set to live, the supported protocols for URLs are Real-Time Messaging Protocol (RTMP), Real-Time Streaming Protocol (RTSP), Secure Reliable Transport Protocol (SRT), and HTTP-FLV.'."\n" + ."\n" + .'* If SourceType is set to vod, specify the IDs of media assets from ApsaraVideo VOD.'."\n" + ."\n" + .'* If SourceType is set to url, the supported protocols for URLs are MP4 and HTTP-FLV.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The source URL of the stream.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* If SourceType is set to live, you can specify only one streaming URL.'."\n" + ."\n" + .'* If SourceType is set to vod or url, you can specify up to 30 IDs or URLs.'."\n" + ."\n" + .'* If SourceType is set to live, the supported protocols for URLs are RTMP, RTSP, SRT, and HTTP-FLV.'."\n" + ."\n" + .'* If SourceType is set to vod, specify the IDs of media assets from ApsaraVideo VOD.'."\n" + ."\n" + .'* If SourceType is set to url, the supported protocols for URLs are MP4 and HTTP-FLV.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rtmp://pulltest.****.aliyunlive.com/pulltest493/pulltest-w434', + ], + 'required' => true, + 'example' => 'testurls', + ], + ], + [ + 'name' => 'DstUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The destination URL to which the stream is relayed.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* The supported protocol for the URL is RTMP.'."\n" + ."\n" + .'* The URL can be up to 2,000 characters in length.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'rtmp://pushtest.********.aliyunlive.com/pulltest493/pulltest-w434', + ], + ], + [ + 'name' => 'RepeatNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of playbacks after the first playback is complete. Valid values:'."\n" + ."\n" + .'* 0 (default): specifies that the video list is played only once.'."\n" + .'* \\-1: specifies that the video list is played in loop mode.'."\n" + .'* Positive integer: specifies the number of times the video list repeats after the first playback is complete.'."\n" + ."\n" + .'> This parameter is applicable to only video resources from ApsaraVideo VOD or a third party.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '0', + 'default' => '0', + 'enum' => [], + ], + ], + [ + 'name' => 'FileIndex', + 'in' => 'query', + 'schema' => [ + 'description' => 'The file index, which specifies the sequence of the file where the playback starts.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '0', + ], + ], + [ + 'name' => 'Offset', + 'in' => 'query', + 'schema' => [ + 'description' => 'The offset of the position where the system starts to read the video resource. Unit: seconds. Valid values: positive numbers.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* This parameter indicates an offset from the first frame of the first video resource in the list.'."\n" + ."\n" + .'* This parameter is applicable to only video resources from ApsaraVideo VOD or a third party.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '2', + ], + ], + [ + 'name' => 'CallbackUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The HTTP callback URL. By default, this parameter is left empty.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* The URL is used to receive callbacks related to the task.'."\n" + ."\n" + .'* The URL can be up to 2,000 characters in length.'."\n" + ."\n" + .'* If you do not specify this parameter, no callbacks are returned for events related to the task.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'https://callback*****.com', + ], + ], + [ + 'name' => 'RetryInterval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The retry interval. Unit: seconds. Valid values: \\[60,300]. Default value: 60.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '300', + 'minimum' => '60', + 'example' => '60', + 'default' => '60', + ], + ], + [ + 'name' => 'RetryCount', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of retries allowed. Default value: 3.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '3', + 'default' => '3', + ], + ], + ], + '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' => '16A96B9A-F203-4EC5-8E43-CB92E68*****', + ], + 'RetCode' => [ + 'description' => 'The code that is returned for the request.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* 0 is returned if the request is normal.'."\n" + ."\n" + .'* For information about codes that are returned when exceptions occur, see the following Error codes table.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'Description' => [ + 'description' => 'The description of the custom rule.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + 'TaskId' => [ + 'description' => 'The task ID.'."\n", + 'type' => 'string', + 'example' => 'fd245384-4067-4f91-9d75-9666a6bc9****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParam.CodeIllegalDuration', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'CodeInvalidAliUid', + 'errorMessage' => 'This aliuid does not have a live domain name.', + ], + [ + 'errorCode' => 'CodeNotEnoughResource', + 'errorMessage' => 'Exceeded configuration limits or insufficient resources.', + ], + [ + 'errorCode' => 'CodeConfigAlreadyExists', + 'errorMessage' => 'Code Config Already Exists', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68*****\\",\\n \\"RetCode\\": 0,\\n \\"Description\\": \\"OK\\",\\n \\"TaskId\\": \\"fd245384-4067-4f91-9d75-9666a6bc9****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68*****\\n 0\\n OK\\n fd245384-4067-4f91-9d75-9666a6bc9****\\n","errorExample":""}]', + 'title' => 'CreateLivePullToPush', + 'description' => '> The pulled-stream relay feature is in public preview. You can use it free of charge. After the public preview ends, fees will be charged. The specific end time will be announced.'."\n" + ."\n" + .'* You can call this operation to create a pulled-stream relay task.'."\n" + .'* The pulled source can be a live stream or video-on-demand (VOD) resources.'."\n" + .'* After a task is created, it starts at the specified start time and ends at the specified end time. A task that ends is automatically deleted.'."\n" + .'* Make sure that the destination URL specified in the task is not used by another task. Otherwise, conflicts occur and stream ingest fails.'."\n" + .'* The events for pulled-stream relay callbacks include state changes of a pulled-stream relay task and exit of a pulled-stream relay task. For more information, see [Pulled-stream relay callbacks](~~2846768~~).'."\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", + ], + 'UpdateLivePullToPush' => [ + 'summary' => 'Updates a pulled-stream relay task.', + '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' => [ + 'type' => 'string', + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'TaskId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The task ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'fd245384-4067-4f91-9d75-9666a6bc****', + ], + ], + [ + '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 (Jakarta)'."\n" + .'* cn-beijing: China (Beijing)'."\n" + .'* cn-shanghai: China (Shanghai)'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-shanghai', + 'enum' => [ + 'ap-northeast-1', + 'ap-southeast-1', + 'ap-southeast-5', + 'eu-central-1', + 'me-central-1', + 'cn-beijing', + 'cn-shanghai', + 'cn-shenzhen', + 'cn-qingdao', + 'preregion', + ], + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The start time of the task.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* 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 seven days.'."\n" + ."\n" + .'* If the task has already started, the update does not take effect.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2024-08-23T15:30:00Z', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end time of the task.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* 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 seven days.'."\n" + ."\n" + .'* The end time must be later than the start time.'."\n" + ."\n" + .'* The end time must be later than the current time.'."\n" + ."\n" + .'* If the task has ended, the update does not take effect.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2024-08-27T14:30:00Z', + ], + ], + [ + 'name' => 'SourceUrls', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'The source URLs.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* If SourceType is set to live, you can specify only one streaming URL.'."\n" + ."\n" + .'* If SourceType is set to vod or url, you can specify up to 30 IDs or URLs.'."\n" + ."\n" + .'* If SourceType is set to live, the supported protocols for URLs are Real-Time Messaging Protocol (RTMP), Real-Time Streaming Protocol (RTSP), Secure Reliable Transport Protocol (SRT), and HTTP-FLV.'."\n" + ."\n" + .'* If SourceType is set to vod, specify the IDs of media assets from ApsaraVideo VOD.'."\n" + ."\n" + .'* If SourceType is set to url, the supported protocols for URLs are MP4 and HTTP-FLV.'."\n" + ."\n" + .'* If the source is a live stream, the update takes effect immediately. If the source is a list of video resources from ApsaraVideo VOD or a third party, the update does not take effect until the playback of the current video ends. After the update takes effect, the video list starts to play from the beginning.'."\n" + ."\n" + .'* You can modify this parameter only if the task is stopped. The update takes effect immediately.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The source URL of the stream.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* If SourceType is set to live, you can specify only one streaming URL.'."\n" + ."\n" + .'* If SourceType is set to vod or url, you can specify up to 30 IDs or URLs.'."\n" + ."\n" + .'* If SourceType is set to live, the supported protocols for URLs are RTMP, RTSP, SRT, and HTTP-FLV.'."\n" + ."\n" + .'* If SourceType is set to vod, specify the IDs of media assets from ApsaraVideo VOD.'."\n" + ."\n" + .'* If SourceType is set to url, the supported protocols for URLs are MP4 and HTTP-FLV.'."\n" + ."\n" + .'* If the source is a live stream, the update takes effect immediately. If the source is a list of video resources from ApsaraVideo VOD or a third party, the update does not take effect until the playback of the current video ends. After the update takes effect, the video list starts to play from the beginning.'."\n" + ."\n" + .'* You can modify this parameter only if the task is stopped. The update takes effect immediately.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rtmp://pulltest.****.aliyunlive.com/pulltest493/pulltest-w434', + ], + 'required' => false, + 'example' => 'changedtesturl', + ], + ], + [ + 'name' => 'RepeatNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of playbacks after the first playback is complete. Valid values:'."\n" + ."\n" + .'* 0 (default): specifies that the video list is played only once.'."\n" + .'* \\-1: specifies that the video list is played in loop mode.'."\n" + .'* Positive integer: specifies the number of times the video list repeats after the first playback is complete.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* This parameter is applicable to only video resources from ApsaraVideo VOD or a third party.'."\n" + ."\n" + .'* The update can take effect immediately.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '0', + 'default' => '-5', + 'enum' => [], + ], + ], + [ + 'name' => 'Offset', + 'in' => 'query', + 'schema' => [ + 'description' => 'The offset of the position where the system starts to read the video resource. Unit: seconds. Valid values: positive numbers.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* This parameter indicates an offset from the first frame.'."\n" + ."\n" + .'* This parameter is applicable to only video resources from ApsaraVideo VOD or a third party.'."\n" + ."\n" + .'* The update takes effect only for the first video in a video list.'."\n" + ."\n" + .'* You can modify this parameter only if the task is stopped. The update takes effect immediately.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '2', + ], + ], + [ + 'name' => 'CallbackUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The callback URL. By default, this parameter is left empty.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* The URL is used to receive callbacks related to the task.'."\n" + ."\n" + .'* The URL can be up to 2,000 characters in length.'."\n" + ."\n" + .'* If you do not specify this parameter, no callbacks are returned for events related to the task.'."\n" + ."\n" + .'* The update takes effect for subsequent events that occur.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'https://callback*****.com', + ], + ], + [ + 'name' => 'FileIndex', + 'in' => 'query', + 'schema' => [ + 'description' => 'The file index. Default value: 0.'."\n" + ."\n" + .'> You can modify this parameter only if the task is stopped. The update takes effect after you restart the task.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '0', + 'default' => '0', + ], + ], + ], + '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' => '16A96B9A-F203-4EC5-8E43-CB92E68*****', + ], + 'RetCode' => [ + 'description' => 'The code that is returned for the request.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* 0 is returned if the request is normal.'."\n" + ."\n" + .'* For information about codes that are returned when exceptions occur, see the following Error codes table.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'Description' => [ + 'description' => 'The error description.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParam.CodeIllegalDuration', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'CodeInvalidAliUid', + 'errorMessage' => 'This aliuid does not have a live domain name.', + ], + [ + 'errorCode' => 'CodeTaskNotExist', + 'errorMessage' => 'Task does not exist.', + ], + [ + 'errorCode' => 'CodeTaskHasStarted', + 'errorMessage' => 'The task has already started.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68*****\\",\\n \\"RetCode\\": 0,\\n \\"Description\\": \\"OK\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68*****\\n 0\\n OK\\n","errorExample":""}]', + 'title' => 'UpdateLivePullToPush', + 'description' => '* You can call this operation to update a pulled-stream relay task.'."\n" + .'* As long as the specified start time of a task has not been reached, you can modify the SourceType, Region, and DstUrl parameters of the task.'."\n" + .'* If a task is running (even if the task is in an abnormal retry state), you can modify only the CallbackUrl and RepeatTime parameters of the task. The update takes effect immediately.'."\n" + .'* If a task is stopped, you can modify all parameters of the task except SourceType, Region, and DstUrl.'."\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", + ], + 'DeleteLivePullToPush' => [ + 'summary' => 'Deletes a pulled-stream relay task.', + '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' => [ + 'type' => 'string', + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'TaskId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The task ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '3efb43c5-18ff-49eb-92a6-005f6521****', + ], + ], + [ + '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 (Jakarta)'."\n" + .'* cn-beijing: China (Beijing)'."\n" + .'* cn-shanghai: China (Shanghai)'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-shanghai', + 'enum' => [ + 'ap-northeast-1', + 'ap-southeast-1', + 'ap-southeast-5', + 'eu-central-1', + 'me-central-1', + 'cn-beijing', + 'cn-shanghai', + 'cn-shenzhen', + 'cn-qingdao', + 'preregion', + ], + ], + ], + ], + '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' => '16A96B9A-F203-4EC5-8E43-CB92E68*****', + ], + 'RetCode' => [ + 'description' => 'The code that is returned for the request.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* 0 is returned if the request is normal.'."\n" + ."\n" + .'* For information about codes that are returned when exceptions occur, see the following Error codes table.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'Description' => [ + 'description' => 'The error description.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + ], + ], + ], + [], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'CodeInvalidAliUid', + 'errorMessage' => 'This aliuid does not have a live domain name.', + ], + [ + 'errorCode' => 'CodeTaskNotExist', + 'errorMessage' => 'Task does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68*****\\",\\n \\"RetCode\\": 0,\\n \\"Description\\": \\"OK\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68*****\\n 0\\n OK\\n","errorExample":""}]', + 'title' => 'DeleteLivePullToPush', + 'description' => '* You can call this operation to delete a pulled-stream relay task.'."\n" + .'* If you delete a running task, the task is immediately stopped and cannot be restarted.'."\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", + ], + 'DescribeLivePullToPush' => [ + 'summary' => 'Queries pulled-stream relay tasks.', + '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' => [ + 'type' => 'string', + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'TaskId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The task ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'fd245384-4067-4f91-9d75-9666a6bc****', + ], + ], + [ + '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 (Jakarta)'."\n" + .'* cn-beijing: China (Beijing)'."\n" + .'* cn-shanghai: China (Shanghai)'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-shanghai', + 'enum' => [ + 'ap-northeast-1', + 'ap-southeast-1', + 'ap-southeast-5', + 'eu-central-1', + 'me-central-1', + 'cn-beijing', + 'cn-shanghai', + 'cn-shenzhen', + 'cn-qingdao', + 'preregion', + ], + ], + ], + ], + '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' => '3271ACD2-F143-1204-AFDB-9A87C131****', + ], + 'RetCode' => [ + 'description' => 'The code that is returned for the request.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* 0 is returned if the request is normal.'."\n" + ."\n" + .'* For information about codes that are returned when exceptions occur, see the following Error codes table.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'Description' => [ + 'description' => 'The error description.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + 'TaskId' => [ + 'description' => 'The task ID.'."\n", + 'type' => 'string', + 'example' => 'fd245384-4067-4f91-9d75-9666a6bc9****', + ], + 'TaskStatus' => [ + 'description' => 'The current status of the task.'."\n" + ."\n" + .'* 0: not started.'."\n" + .'* 1: running. Stream pulling and stream relay are normal.'."\n" + .'* 2: abnormal.'."\n" + .'* 3: stopped. It may be because exceptions occur during stream pulling or stream relay or you proactively call the StopLivePullToPush operation.'."\n" + .'* \\-1: exited.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'TaskInvalidReason' => [ + 'description' => 'The reason why the task was stopped.'."\n" + ."\n" + .'* PullStreamFailed: An exception occurred while pulling the source stream. A retry is in progress.'."\n" + .'* PushStreamFailed: An exception occurred while ingesting the stream. A retry is in progress.'."\n" + .'* UnknownError: An unknown exception occurred.'."\n" + ."\n" + .'> This parameter is returned only if the task status is stopped.'."\n", + 'type' => 'string', + 'example' => 'UnknownError', + ], + 'TaskExitTime' => [ + 'description' => 'The time when the task was exited. The value is a Unix timestamp in seconds.'."\n" + ."\n" + .'> This parameter is returned only if the task status is exited.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1724740200', + ], + 'TaskExitReason' => [ + 'description' => 'The reason why the task is stopped.'."\n" + ."\n" + .'* TriggerByUser: You proactively stopped the task.'."\n" + .'* OverEndTime: The specified end time was exceeded.'."\n" + ."\n" + .'> This parameter is returned only if the task is stopped.'."\n", + 'type' => 'string', + 'example' => 'TriggerByUser', + ], + 'CurrentOffset' => [ + 'description' => 'The current offset for video playback.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'CurrentFileIndex' => [ + 'description' => 'The current file index.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'TaskInfo' => [ + 'description' => 'The information about the task.'."\n", + 'type' => 'object', + 'properties' => [ + 'TaskId' => [ + 'description' => 'The task ID.'."\n", + 'type' => 'string', + 'example' => 'fd245384-4067-4f91-9d75-9666a6bc9****', + ], + 'TaskName' => [ + 'description' => 'The task name.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'StartTime' => [ + 'description' => 'The start time of the task. 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' => '2024-08-26T10:30:00Z', + ], + 'EndTime' => [ + 'description' => 'The end time of the task. 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' => '2024-08-27T14:30:00Z', + ], + 'SourceType' => [ + 'description' => 'The type of the source stream. Valid values:'."\n" + ."\n" + .'* live: a live stream'."\n" + .'* vod: a list of ApsaraVideo VOD resources'."\n" + .'* url: a list of video resources from a third party'."\n", + 'type' => 'string', + 'example' => 'live', + ], + 'SourceProtocol' => [ + 'description' => 'The protocol of the source stream.'."\n", + 'type' => 'string', + 'example' => 'RTMP', + ], + 'SourceUrls' => [ + 'description' => 'The source URLs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The source URL of the stream.'."\n", + 'type' => 'string', + 'example' => 'rtmp://pulltest.****.aliyunlive.com/pulltest493/pulltest-w434', + ], + 'example' => 'rtmp://pulltest.****.aliyunlive.com/pulltest493/pulltest-w434', + ], + 'DstUrl' => [ + 'description' => 'The destination URL to which the stream is relayed.'."\n", + 'type' => 'string', + 'example' => 'rtmp://pushtest.********.aliyunlive.com/pulltest493/pulltest-w434', + ], + 'CallbackURL' => [ + 'description' => 'The HTTP callback URL.'."\n", + 'type' => 'string', + 'example' => 'https://callback*****.com', + ], + 'Offset' => [ + 'description' => 'The offset of the position where the system starts to read the video resource. Unit: seconds. Valid values: positive numbers.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* This parameter indicates an offset from the first frame.'."\n" + ."\n" + .'* This parameter is applicable to only video resources from ApsaraVideo VOD or a third party.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '2', + ], + 'FileIndex' => [ + 'description' => 'The file index, which indicates the sequence of the file where the playback starts.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'RetryCount' => [ + 'description' => 'The number of retries allowed.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '3', + ], + 'RetryInterval' => [ + 'description' => 'The retry interval. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '60', + ], + 'RepeatNumber' => [ + 'description' => 'The number of playbacks after the first playback is complete. Valid values:'."\n" + ."\n" + .'* 0 (default): specifies that the video list is played only once.'."\n" + .'* \\-1: specifies that the video list is played in loop mode.'."\n" + .'* Positive integer: specifies the number of times the video list repeats after the first playback is complete.'."\n" + ."\n" + .'> This parameter is applicable to only video resources from ApsaraVideo VOD or a third party.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'CodeInvalidAliUid', + 'errorMessage' => 'This aliuid does not have a live domain name.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"a05e6b15-15af-405b-a4a2-0152245d****\\",\\n \\"RetCode\\": 0,\\n \\"Description\\": \\"OK\\",\\n \\"TaskId\\": \\"fb0d4ac7-c7e3-4978-9743-0bf2f6e8****\\",\\n \\"TaskStatus\\": 0,\\n \\"TaskInvalidReason\\": \\"PullStreamFailed\\",\\n \\"TaskExitTime\\": 1726354625,\\n \\"TaskExitReason\\": \\"TriggerByUser\\",\\n \\"CurrentOffset\\": 0,\\n \\"CurrentFileIndex\\": 0,\\n \\"TaskInfo\\": {\\n \\"TaskId\\": \\"fd245384-4067-4f91-9d75-9666a6bc9****\\",\\n \\"TaskName\\": \\"test\\",\\n \\"StartTime\\": \\"2024-08-26T10:30:00Z\\",\\n \\"EndTime\\": \\"2024-08-27T14:30:00Z\\",\\n \\"SourceType\\": \\"vod\\",\\n \\"SourceProtocol\\": \\"RTMP\\",\\n \\"SourceUrls\\": [\\n \\"rtmp://pulltest.****.aliyunlive.com/pulltest493/pulltest-w434\\"\\n ],\\n \\"DstUrl\\": \\"rtmp://pushtest.********.aliyunlive.com/pulltest493/pulltest-w434\\",\\n \\"CallbackURL\\": \\"https://callback*****.com\\",\\n \\"Offset\\": 0,\\n \\"FileIndex\\": 0,\\n \\"RetryCount\\": 3,\\n \\"RetryInterval\\": 60,\\n \\"RepeatNumber\\": 0\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 3271ACD2-F143-1204-AFDB-9A87C131****\\n 0\\n OK\\n fd245384-4067-4f91-9d75-9666a6bc9****\\n 1\\n UnknownError\\n 1724740200\\n TriggerByUser\\n \\n fd245384-4067-4f91-9d75-9666a6bc9****\\n live\\n 2\\n https://callback*****.com\\n rtmp://pulltest.****.aliyunlive.com/pulltest493/pulltest-w434\\n rtmp://pushtest.********.aliyunlive.com/pulltest493/pulltest-w434\\n 2024-08-26T10:30:00Z\\n 2024-08-27T14:30:00Z\\n \\n","errorExample":""}]', + 'title' => 'DescribeLivePullToPush', + 'description' => '* You can call this operation to query the information about a pulled-stream relay task.'."\n" + .'* This operation allows you to query the configurations and status of a task with a specified ID.'."\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", + ], + 'DescribeLivePullToPushList' => [ + 'summary' => 'Queries pulled-stream relay tasks. Fuzzy match is supported.', + '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' => [ + 'type' => 'string', + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Region', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region of the live center. Valid values:'."\n" + ."\n" + .'* ap-southeast-1: Singapore'."\n" + .'* ap-southeast-5: Indonesia (Jakarta)'."\n" + .'* cn-beijing: China (Beijing)'."\n" + .'* cn-shanghai: China (Shanghai)'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-shanghai', + 'enum' => [ + 'ap-northeast-1', + 'ap-southeast-1', + 'ap-southeast-5', + 'eu-central-1', + 'me-central-1', + 'cn-beijing', + 'cn-shanghai', + 'cn-shenzhen', + 'cn-qingdao', + 'preregion', + ], + ], + ], + [ + 'name' => 'TaskId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The task ID. Fuzzy search is performed based on the task ID.'."\n" + ."\n" + .'> The ID can be up to 55 characters in length and can contain letters, digits, underscores (\\_), and hyphens (-).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '861009', + ], + ], + [ + 'name' => 'TaskName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The task name. Fuzzy search is performed based on the task name.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'task', + ], + ], + [ + 'name' => 'DstUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The destination URL. Fuzzy search is performed based on the destination URL.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rtmp://qd', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number.'."\n" + ."\n" + .'> The value must be greater than 0 and not greater than the maximum value of the Integer data type. Default value: 1.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page.'."\n" + ."\n" + .'> Valid values: \\[1,100]. Default value: 10.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '100', + 'minimum' => '1', + 'example' => '10', + 'default' => '10', + ], + ], + ], + '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' => 'a05e6b15-15af-405b-a4a2-0152245*****', + ], + 'Total' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '3', + ], + 'PageNumber' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'PageSize' => [ + 'description' => 'The number of entries per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'TaskList' => [ + 'description' => 'The tasks.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the tasks returned.'."\n", + 'type' => 'object', + 'properties' => [ + 'TaskId' => [ + 'description' => 'The task ID.'."\n", + 'type' => 'string', + 'example' => 'fb0d4ac7-c7e3-4978-9743-0bf2f6e8****', + ], + 'TaskStatus' => [ + 'description' => 'The task status. Valid values:'."\n" + ."\n" + .'* 0: not started.'."\n" + .'* 1: running. Stream pulling and stream relay are normal.'."\n" + .'* 2: abnormal.'."\n" + .'* 3: stopped. It may be because exceptions occur during stream pulling or stream relay or you proactively call the StopLivePullToPush operation.'."\n" + .'* \\-1: exited.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'TaskInvalidReason' => [ + 'description' => 'The reason why the task was stopped.'."\n" + ."\n" + .'* PullStreamFailed: An exception occurred while pulling the source stream. A retry is in progress.'."\n" + .'* PushStreamFailed: An exception occurred while ingesting the stream. A retry is in progress.'."\n" + .'* UnknownError: An unknown exception occurred.'."\n" + ."\n" + .'> This parameter is returned only if the task status is stopped.'."\n", + 'type' => 'string', + 'example' => 'PullStreamFailed', + ], + 'TaskExitTime' => [ + 'description' => 'The time when the task was exited. The value is a Unix timestamp in seconds.'."\n" + ."\n" + .'> This parameter is returned only if the task status is exited.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1726354625', + ], + 'TaskExitReason' => [ + 'description' => 'The reason why the task was exited. Valid values:'."\n" + ."\n" + .'* TriggerByUser: You proactively ended the task.'."\n" + .'* OverEndTime: The specified end time was exceeded.'."\n" + ."\n" + .'> This parameter is returned only if the task status is exited.'."\n", + 'type' => 'string', + 'example' => 'TriggerByUser', + ], + 'CurrentOffset' => [ + 'description' => 'The current offset for video playback.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'CurrentFileIndex' => [ + 'description' => 'The current file index.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'TaskInfo' => [ + 'description' => 'The information about the task.'."\n", + 'type' => 'object', + 'properties' => [ + 'TaskId' => [ + 'description' => 'The task ID.'."\n", + 'type' => 'string', + 'example' => 'fb0d4ac7-c7e3-4978-9743-0bf2f6e8****', + ], + 'TaskName' => [ + 'description' => 'The task name.'."\n", + 'type' => 'string', + 'example' => 'taskname', + ], + 'StartTime' => [ + 'description' => 'The start time of the task. 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' => '2024-12-04T09:16:00Z', + ], + 'EndTime' => [ + 'description' => 'The end time of the task. 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' => '2024-12-30T14:30:00Z', + ], + 'SourceType' => [ + 'description' => 'The type of the source stream. Valid values:'."\n" + ."\n" + .'* live: a live stream'."\n" + .'* vod: a list of ApsaraVideo VOD resources'."\n" + .'* url: a list of video resources from a third party'."\n", + 'type' => 'string', + 'example' => 'vod', + ], + 'SourceProtocol' => [ + 'description' => 'The protocol of the source stream.'."\n", + 'type' => 'string', + 'example' => 'flv', + ], + 'SourceUrls' => [ + 'description' => 'The source URLs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The source URL of the stream.'."\n", + 'type' => 'string', + 'example' => 'rtmp://118.178.***.*5:****/wwtestlive1/pulltest.jiugong.aliyunlive.com_livelight2?vhost=pulltest.jiugong.aliyun*******', + ], + ], + 'DstUrl' => [ + 'description' => 'The destination URL to which the stream is relayed.'."\n", + 'type' => 'string', + 'example' => 'rtmp://qd.push.lgg.alivecdn.com/testhsc/streamhsc?live_rtmp_*******', + ], + 'CallbackURL' => [ + 'description' => 'The HTTP callback URL.'."\n", + 'type' => 'string', + 'example' => 'hahaha.com', + ], + 'Offset' => [ + 'description' => 'The offset of the position where the system starts to read the video resource. Unit: seconds. Valid values: positive numbers.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* This parameter indicates an offset from the first frame.'."\n" + ."\n" + .'* This parameter is applicable to only video resources from ApsaraVideo VOD or a third party.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'FileIndex' => [ + 'description' => 'The file index, which indicates the sequence of the file where the playback starts.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'RetryCount' => [ + 'description' => 'The number of retries allowed.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '3', + ], + 'RetryInterval' => [ + 'description' => 'The retry interval. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '60', + ], + 'RepeatNumber' => [ + 'description' => 'The number of playbacks after the first playback is complete. Valid values:'."\n" + ."\n" + .'* 0 (default): specifies that the video list is played only once.'."\n" + .'* \\-1: specifies that the video list is played in loop mode.'."\n" + .'* Positive integer: specifies the number of times the video list repeats after the first playback is complete.'."\n" + ."\n" + .'> This parameter is applicable to only video resources from ApsaraVideo VOD or a third party.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'LiveServiceNotFound', + 'errorMessage' => 'Your account does not open Live service yet', + ], + [ + 'errorCode' => 'CodeInvalidAliUid', + 'errorMessage' => 'This aliuid does not have a live domain name.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s.', + ], + ], + ], + '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' => 'DescribeLivePullToPushList', + 'description' => '* You can call this operation to query pulled-stream relay tasks.'."\n" + .'* You can query tasks by page. Fuzzy search is supported based on task IDs, task names, and destination URLs.'."\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", + ], + 'StopLivePullToPush' => [ + 'summary' => 'Stops a pulled-stream relay 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' => [ + 'type' => 'string', + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Region', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region of the live center. Valid values:'."\n" + ."\n" + .'* ap-southeast-1: Singapore'."\n" + .'* ap-southeast-5: Indonesia (Jakarta)'."\n" + .'* cn-beijing: China (Beijing)'."\n" + .'* cn-shanghai: China (Shanghai)'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'preregion', + 'enum' => [ + 'ap-northeast-1', + 'ap-southeast-1', + 'ap-southeast-5', + 'eu-central-1', + 'me-central-1', + 'cn-beijing', + 'cn-shanghai', + 'cn-shenzhen', + 'cn-qingdao', + 'preregion', + ], + ], + ], + [ + 'name' => 'TaskId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The task ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '3bb44350-0c34-49c7-8c5e-cba5e6c0****', + 'enum' => [], + ], + ], + ], + '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' => 'a05e6b15-15af-405b-a4a2-0152245d****', + ], + 'TaskId' => [ + 'description' => 'The new task ID.'."\n", + 'type' => 'string', + 'example' => 'fb0d4ac7-c7e3-4978-9743-0bf2f6e8****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'LiveServiceNotFound', + 'errorMessage' => 'Your account does not open Live service yet', + ], + [ + 'errorCode' => 'CodeInvalidAliUid', + 'errorMessage' => 'This aliuid does not have a live domain name.', + ], + [ + 'errorCode' => 'InvalidParam.CodeIllegalDuration', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'CodeTaskNotExist', + 'errorMessage' => 'Task does not exist.', + ], + [ + 'errorCode' => 'CodeTaskHasStopped', + 'errorMessage' => 'The task has been stopped.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"a05e6b15-15af-405b-a4a2-0152245d****\\",\\n \\"TaskId\\": \\"fb0d4ac7-c7e3-4978-9743-0bf2f6e8****\\"\\n}","type":"json"}]', + 'title' => 'StopLivePullToPush', + 'description' => '* You can call this operation to stop a pulled-stream relay task.'."\n" + .'* You can stop a task that is running (even if the task is in an abnormal retry state). You cannot stop a task that is not running.'."\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", + ], + 'RestartLivePullToPush' => [ + 'summary' => 'Restarts a pulled-stream relay 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' => [ + 'type' => 'string', + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Region', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region of the live center. Valid values:'."\n" + ."\n" + .'* ap-southeast-1: Singapore'."\n" + .'* ap-southeast-5: Indonesia (Jakarta)'."\n" + .'* cn-beijing: China (Beijing)'."\n" + .'* cn-shanghai: China (Shanghai)'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'preregion', + 'enum' => [ + 'ap-northeast-1', + 'ap-southeast-1', + 'ap-southeast-5', + 'eu-central-1', + 'me-central-1', + 'cn-beijing', + 'cn-shanghai', + 'cn-shenzhen', + 'cn-qingdao', + 'preregion', + ], + ], + ], + [ + 'name' => 'TaskId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The task ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '6f869419-0692-4fd5-8cf0-66cab659****', + 'enum' => [], + ], + ], + ], + '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' => 'a05e6b15-15af-405b-a4a2-01522450****', + ], + 'TaskId' => [ + 'description' => 'The new task ID.'."\n", + 'type' => 'string', + 'example' => 'fb0d4ac7-c7e3-4978-9743-0bf2f6e8****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'LiveServiceNotFound', + 'errorMessage' => 'Your account does not open Live service yet', + ], + [ + 'errorCode' => 'InvalidParam.CodeIllegalDuration', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'CodeInvalidAliUid', + 'errorMessage' => 'This aliuid does not have a live domain name.', + ], + [ + 'errorCode' => 'CodeTaskNotExist', + 'errorMessage' => 'Task does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"a05e6b15-15af-405b-a4a2-01522450****\\",\\n \\"TaskId\\": \\"fb0d4ac7-c7e3-4978-9743-0bf2f6e8****\\"\\n}","type":"json"}]', + 'title' => 'RestartLivePullToPush', + 'description' => '* You can call this operation to restart a pulled-stream relay task.'."\n" + .'* You can restart a task that is running (even if the task is in an abnormal retry state) or a task that is stopped. For a task that is running, this operation stops and then restarts it. For a task that is stopped, this operation directly starts it.'."\n" + .'* You cannot restart a task if the start time specified for the task has not been reached.'."\n" + .'* If a task is restarted, the task runs based on the latest configuration of the task. This interrupts stream ingest.'."\n" + .'* If a task for a list of ApsaraVideo VOD resources is restarted, the list plays from the beginning based on the latest configuration. You can call an operation to update the video index and playback progress to achieve successive playback.'."\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", + ], + 'SetLiveDomainMultiStreamConfig' => [ + 'summary' => 'Configures dual-stream disaster recovery for a streaming domain.', + '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 main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'Switch', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable the dual-stream disaster recovery feature. Valid values:'."\n" + ."\n" + .'* **on**: enables the feature.'."\n" + .'* **off**: disables the feature.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'on', + 'enum' => [ + 'on', + 'off', + ], + ], + ], + ], + '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' => '5c6a2a0df228-4a64-af62-20e91b96****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'CodeGetPushbackDomainError', + 'errorMessage' => 'Unable to get the push domain name, please check the domain name mapping configuration.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b96****\\"\\n}","type":"json"}]', + 'title' => 'SetLiveDomainMultiStreamConfig', + 'description' => 'You can call this operation to configure dual-stream disaster recovery for a streaming domain, which allows you to ingest two streams that have the same name.'."\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", + ], + 'SetLiveDomainMultiStreamOptimalMode' => [ + 'summary' => 'Configures the auto mode of 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 main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The application name.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'testapp', + 'enum' => [], + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'teststream', + ], + ], + [ + 'name' => 'OptimalMode', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable the auto mode of dual-stream disaster recovery. Valid values:'."\n" + ."\n" + .'* **on**: enables the auto mode.'."\n" + .'* **off**: disables the auto mode.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'on', + 'enum' => [ + 'on', + 'off', + ], + ], + ], + ], + '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' => '16A96B9A-****-CB92E68F4CD8', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'CodeTaskNotExist', + 'errorMessage' => 'Task does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\"\\n}","type":"json"}]', + 'title' => 'SetLiveDomainMultiStreamOptimalMode', + ], + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.aliyundoc.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'testapp', + 'enum' => [], + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'teststream', + ], + ], + [ + 'name' => 'UpstreamSequence', + 'in' => 'query', + 'schema' => [ + 'description' => 'The unique identifier of the stream ingest.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'teststream_***', + 'enum' => [], + ], + ], + ], + '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' => '16A96B9A-F203-4E*****43-CB92E68F4CD8', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'LiveServiceNotFound', + 'errorMessage' => 'Your account does not open Live service yet', + ], + [ + 'errorCode' => 'CodeTaskNotExist', + 'errorMessage' => 'Task does not exist.', + ], + [ + 'errorCode' => 'CodeTaskNotStarted', + 'errorMessage' => 'Task not started, cannot operate.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4E*****43-CB92E68F4CD8\\"\\n}","type":"json"}]', + 'title' => 'SetLiveDomainMultiStreamMaster', + ], + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'pliveplay.gstv.com.cn', + ], + ], + ], + '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' => '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'."\n", + 'type' => 'string', + 'enumValueTitles' => [ + 'off' => 'off', + 'on' => 'on', + ], + 'example' => 'on', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'CodeGetPushbackDomainError', + 'errorMessage' => 'Unable to get the push domain name, please check the domain name mapping configuration.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F486A44F-6B35-5A96-BF2C-************\\",\\n \\"Switch\\": \\"on\\"\\n}","type":"json"}]', + 'title' => 'DescribeLiveDomainMultiStreamConfig', + ], + 'QueryLiveDomainMultiStreamList' => [ + 'summary' => 'Queries the dual-stream disaster recovery records of online streams.', + '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 main streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo.aliyundoc.com', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream. This parameter is used for exact match.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'teststream', + ], + ], + [ + '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. The time range specified by the StartTime and EndTime parameters cannot exceed seven days.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2024-12-01T01:00:00Z', + ], + ], + [ + '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 end time must be later than the start time. The time range specified by the StartTime and EndTime parameters cannot exceed seven days. If the two parameters are not specified, data of the last 24 hours is queried by default.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2024-12-02T01:00:00Z', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: 10.'."\n" + ."\n" + .'Valid values: 1 to 100.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '100', + 'minimum' => '1', + 'example' => '10', + 'default' => '10', + ], + ], + ], + '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' => 'CF60DB6A-7FD6-426E-9288-122CC1A5****', + ], + 'PageNumber' => [ + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'PageSize' => [ + 'description' => 'The number of entries per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'TotalCount' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '19', + ], + 'OnlineStreams' => [ + 'description' => 'The online streams returned.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Domain' => [ + 'description' => 'The main streaming domain.'."\n", + 'type' => 'string', + 'example' => 'play.***.com', + ], + 'AppName' => [ + 'description' => 'The name of the application.'."\n", + 'type' => 'string', + 'example' => 'apptest', + ], + 'StreamName' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'example' => 'teststream', + ], + 'OptimalMode' => [ + 'description' => 'Indicates whether the dual-stream disaster recovery feature is enabled. Valid values:'."\n" + ."\n" + .'* **on**: enabled'."\n" + .'* **off**: disabled'."\n", + 'type' => 'string', + 'enumValueTitles' => [ + 'off' => 'off', + 'on' => 'on', + ], + 'example' => 'on', + ], + 'UpstreamList' => [ + 'description' => 'The standby streams.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'UpstreamSequence' => [ + 'description' => 'The unique identifier of the stream ingest.'."\n", + 'type' => 'string', + 'example' => '***test_Alirewrite1', + ], + 'UpstreamIp' => [ + 'description' => 'The IP address of the stream ingest client.'."\n", + 'type' => 'string', + 'example' => '1.1.1.1', + ], + 'UpstreamTime' => [ + 'description' => 'The stream ingest time.'."\n", + 'type' => 'string', + 'example' => '2024-11-13T09:20:47Z', + ], + 'MasterFlag' => [ + 'description' => 'The active/standby tag.'."\n" + ."\n" + .'> This parameter indicates whether the active or standby stream is being distributed.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true'."\n" + .'* false'."\n", + 'type' => 'boolean', + 'enumValueTitles' => [ + 'true' => 'true', + 'false' => 'false', + ], + 'example' => 'false', + ], + ], + 'description' => '', + ], + ], + 'ChangeLogs' => [ + 'description' => 'The switchover records.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ChangeTime' => [ + 'description' => 'The switchover time.'."\n", + 'type' => 'string', + 'example' => '2024-11-13T09:20:47Z', + ], + 'ChangeReason' => [ + 'description' => 'The reason for the switchover.'."\n" + ."\n" + .'* merge cut manually: You proactively switched the stream.'."\n" + .'* master stream no data: No data is available in the active stream.'."\n" + .'* master stream low quality: The quality of the active stream deteriorated.'."\n", + 'type' => 'string', + 'example' => 'merge cut manually', + ], + 'MasterUpstream' => [ + 'description' => 'The stream used after the switchover.'."\n", + 'type' => 'string', + 'example' => 'rtmp://118.178.168.35:1936/wwMultitest/pull.livetest2.aliyunlive.com_wwMultitest428_AliRewrite_2?vhost=pull.livetest2.aliyunlive.com&live_rtmp_test=on', + ], + 'UpstreamSequence' => [ + 'description' => 'The identifier of the stream after the switchover.'."\n", + 'type' => 'string', + 'example' => '***test_AliRewrite_2', + ], + 'UpstreamIp' => [ + 'description' => 'The IP address used after the switchover.'."\n", + 'type' => 'string', + 'example' => '1.1.1.1', + ], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParam.CodeIllegalDuration', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s.', + ], + ], + ], + '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' => 'QueryLiveDomainMultiStreamList', + ], + 'DescribeLiveDomainStagingConfig' => [ + 'summary' => 'Queries the feature configurations of an accelerated domain name in the canary release environment.', + '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', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The accelerated domain name.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'developer.aliyundoc.com', + ], + ], + [ + 'name' => 'FunctionNames', + 'in' => 'query', + 'schema' => [ + 'description' => 'The feature that you want to query. Separate multiple features with commas (,).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'aliauth', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'C80705BF-0F76-41FA-BAD1-5B59296A4E59', + ], + 'DomainConfigs' => [ + 'description' => 'The feature configurations of the accelerated domain name.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => [ + 'description' => 'The configuration status. Valid values:'."\n" + ."\n" + .'* **success**'."\n" + .'* **testing**'."\n" + .'* **failed**'."\n" + .'* **configuring**'."\n", + 'type' => 'string', + 'example' => 'success', + ], + 'ConfigId' => [ + 'description' => 'The configuration ID.'."\n", + 'type' => 'string', + 'example' => '6295', + ], + 'FunctionName' => [ + 'description' => 'The name of the feature.'."\n", + 'type' => 'string', + 'example' => 'aliauth', + ], + 'FunctionArgs' => [ + 'description' => 'The configurations of the feature.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ArgName' => [ + 'description' => 'The name of the parameter.'."\n", + 'type' => 'string', + 'example' => 'auth_type', + ], + 'ArgValue' => [ + 'description' => 'The configured value.'."\n", + 'type' => 'string', + 'example' => 'req_auth', + ], + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Invalid%s.ValueNotSupported', + 'errorMessage' => 'FunctionName [%s] is not supported.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C80705BF-0F76-41FA-BAD1-5B59296A4E59\\",\\n \\"DomainConfigs\\": [\\n {\\n \\"Status\\": \\"success\\",\\n \\"ConfigId\\": \\"6295\\",\\n \\"FunctionName\\": \\"aliauth\\",\\n \\"FunctionArgs\\": [\\n {\\n \\"ArgName\\": \\"auth_type\\",\\n \\"ArgValue\\": \\"req_auth\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n\\nC80705BF-0F76-41FA-BAD1-5B59296A4E59\\n\\n success\\n aliauth\\n 6295\\n \\n req_auth\\n auth_type\\n \\n\\n","errorExample":""}]', + 'title' => 'DescribeLiveDomainStagingConfig', + 'description' => '## [](#)Usage notes'."\n" + ."\n" + .'You can call this operation to query the feature configurations of an accelerated domain name in the canary release environment.'."\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 may 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' => ' ', + ], + 'PublishLiveStagingConfigToProduction' => [ + 'summary' => 'Publishes the configurations of an accelerated domain name from the canary release environment to the production 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The accelerated domain name.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'developer.aliyundoc.com', + ], + ], + [ + 'name' => 'FunctionName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the feature. For more information about how to obtain the feature name, see [DescribeLiveDomainStagingConfig](~~297374~~).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'aliauth', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'StagingConfig.Failed', + 'errorMessage' => 'The rules for the staging environment are being configured. Try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'StagingConfig.NotFound', + 'errorMessage' => 'The staging configuration does not exist.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n04F0F334-1335-436C-A1D7-6C044FE73368\\r\\n","errorExample":""}]', + 'title' => 'PublishLiveStagingConfigToProduction', + 'description' => 'Function name is required for calling this operation. You can get the function name by calling the [DescribeLiveDomainStagingConfig](~~297374#doc-api-live-DescribeLiveDomainStagingConfig~~ "Queries the configurations in the canary release environment.") operation.'."\n" + ."\n" + .'## QPS limit'."\n" + ."\n" + .'A single user can perform a maximum of 30 queries per minute. Throttling is triggered when the number of calls per second exceeds the QPS limit. The throttling may affect your business. Thus, we recommend that you observe the QPS limit on this operation. For more information about what a single user means and the QPS details, 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#topic-2136805).', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The accelerated domain name.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'developer.aliyundoc.com', + ], + ], + [ + 'name' => 'FunctionName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the feature. For more information about how to obtain the feature name, see [DescribeLiveDomainStagingConfig](~~297374~~).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'aliauth', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 404 => [ + [ + 'errorCode' => 'StagingConfig.NotFound', + 'errorMessage' => 'The staging configuration does not exist.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n04F0F334-1335-436C-A1D7-6C044FE73368\\r\\n","errorExample":""}]', + 'title' => 'RollbackLiveStagingConfig', + 'description' => 'Function name is required for calling this operation. You can get the function name by calling the [DescribeLiveDomainStagingConfig](~~297374#doc-api-live-DescribeLiveDomainStagingConfig~~ "Queries the configurations in the canary release environment.") operation.'."\n" + ."\n" + .'## QPS limit'."\n" + ."\n" + .'A single user can perform a maximum of 30 queries per minute. Throttling is triggered when the number of calls per second exceeds the QPS limit. The throttling may affect your business. Thus, we recommend that you observe the QPS limit on this operation. For more information about what a single user means and the QPS details, 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#topic-2136805).', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'SetLiveDomainStagingConfig' => [ + 'summary' => 'Sets or modifies domain name configurations in the canary release environment.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The accelerated domain name.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'developer.aliyundoc.com', + ], + ], + [ + 'name' => 'Functions', + 'in' => 'query', + 'schema' => [ + 'description' => 'The list of features. You must specify the ConfigId field when you want to modify the configurations. For more information, see **Features specified by the Functions parameter**.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '[{"functionArgs":[{"argName":"enable","argValue":"on"},{"argName":"pri","argValue":"1"},{"argName":"rule","argValue":"xxx"}],"functionName":"edge_function"}]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidFunctionName.ValueNotSupported', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidArgName.ValueNotSupported', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidArgValue.Malformed', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'InvalidRule.Malformed', + 'errorMessage' => '%s', + ], + [ + 'errorCode' => 'ConfigurationConflicts', + 'errorMessage' => 'The staging environment has a configuration in effect. You cannot modify the production environment configuration.', + ], + [ + 'errorCode' => 'InvalidDomain.BelongToConfigGroup', + 'errorMessage' => 'The domain is bound to a configuration group. Modify the domain in the configuration group.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n04F0F334-1335-436C-A1D7-6C044FE73368\\r\\n","errorExample":""}]', + 'title' => 'SetLiveDomainStagingConfig', + 'description' => '## [](#)Usage notes'."\n" + ."\n" + .'Obtain the accelerated domain name, and then call this operation to set or modify the domain name configurations in the canary release environment. For more information, see **Format of the Functions parameter**.'."\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~~).'."\n", + 'requestParamsDescription' => '## Format of the Functions parameter'."\n" + ."\n" + .'* To set the configurations, use the format similar to the following example: `[{"functionArgs":[{"argName":"enable","argValue":"on"},{"argName":"pri","argValue":"1"},{"argName":"rule","argValue":"xxx"}],"functionName":"edge_function"}]`'."\n" + ."\n" + .'* To modify the configurations, use the ConfigId field (of the Long type) to specify the configuration items that you want to modify. Example: `[{"functionArgs":[{"argName":"enable","argValue":"on"},{"argName":"pri","argValue":"1"},{"argName":"rule","argValue":"yyy"}],"ConfigId":123456,"functionName":"edge_function"}]`'."\n" + ."\n" + .'Note: The following table describes the features specified by the Functions parameter. Specify all attribute values in the form of a string.'."\n" + ."\n" + .'|Feature|Required attribute|Optional attribute|'."\n" + .'|---|---|---|'."\n" + .'|edge\\_function: configures the edge function.|\\- **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.|\\- **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.|', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteLiveSpecificStagingConfig' => [ + 'summary' => 'Deletes domain configurations in the canary release 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.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'developer.aliyundoc.com', + ], + ], + [ + 'name' => 'ConfigId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the configuration that you want to delete. If you want to specify multiple IDs, separate them with commas (,). You can call the [DescribeLiveDomainStagingConfig](~~297374~~) operation to obtain the configuration ID.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '6295', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Invalid%s.ValueNotSupported', + 'errorMessage' => 'FunctionName [%s] is not supported.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n04F0F334-1335-436C-A1D7-6C044FE73368\\r\\n","errorExample":""}]', + 'title' => 'DeleteLiveSpecificStagingConfig', + 'description' => '## [](#)Usage notes'."\n" + ."\n" + .'Before you call this operation to delete a domain configuration in the canary release environment, you can call the [DescribeLiveDomainStagingConfig](~~297374~~) operation to obtain the configuration ID.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation up to 20 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. For more information, see [QPS limits](~~343507~~).'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'IP', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IP address that you want to check. You can specify only one IP address in each call.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '192.168.0.1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'IspEname' => [ + 'description' => 'The English name of the Internet service provider (ISP).'."\n", + 'type' => 'string', + 'example' => 'telecom', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '1B1D0EE7-9559-489D-BC4E-279495EB8FB8', + ], + 'RegionEname' => [ + 'description' => 'The English name of the region.'."\n", + 'type' => 'string', + 'example' => 'China-Guizhou-guiyang', + ], + 'ISP' => [ + 'description' => 'The Chinese name of the ISP.'."\n", + 'type' => 'string', + 'example' => 'ChinaTelecom', + ], + 'Region' => [ + 'description' => 'The Chinese name of the region.'."\n", + 'type' => 'string', + 'example' => 'China-Guizhou-guiyang', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'CdnIP.NotFound', + 'errorMessage' => 'Cannot find this ip in alicdn', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"IspEname\\": \\"telecom\\",\\n \\"RequestId\\": \\"1B1D0EE7-9559-489D-BC4E-279495EB8FB8\\",\\n \\"RegionEname\\": \\"China-Guizhou-guiyang\\",\\n \\"ISP\\": \\"电信\\",\\n \\"Region\\": \\"中国-贵州省-贵阳市\\"\\n}","errorExample":""},{"type":"xml","example":"\\n China-Guizhou-guiyang\\n 中国-贵州省-贵阳市\\n telecom\\n 1B1D0EE7-9559-489D-BC4E-279495EB8FB8\\n 电信\\n","errorExample":""}]', + 'title' => 'DescribeLiveIpInfo', + 'description' => '### [](#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.'."\n", + ], + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ingest domain or streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo.aliyundoc.com', + ], + ], + [ + 'name' => 'Url', + 'in' => 'query', + 'schema' => [ + 'description' => 'The complete ingest URL or streaming URL. You can use the [URL generator](~~197400~~) to generate a URL.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'http://example.com/live/test.flv?auth_key=1664248******', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Description' => [ + 'description' => 'The error message for failed authentication.'."\n", + 'type' => 'string', + 'example' => 'INVALID AUTH_KEY', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16F08B4E-14FD-5D72-AB2F-BAFA4C4D57F1', + ], + 'Status' => [ + 'description' => 'Indicates whether the signed URL is valid. Valid values:'."\n" + ."\n" + .'* pass: valid.'."\n" + .'* false: invalid.'."\n", + 'type' => 'string', + 'example' => 'pass', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => 'Parameter invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Description\\": \\"INVALID AUTH_KEY\\",\\n \\"RequestId\\": \\"16F08B4E-14FD-5D72-AB2F-BAFA4C4D57F1\\",\\n \\"Status\\": \\"pass\\"\\n}","errorExample":""},{"type":"xml","example":"\\n pass\\n \\n 16F08B4E-14FD-5D72-AB2F-BAFA4C4D57F1\\n","errorExample":""}]', + 'title' => 'DescribeLiveStreamAuthChecking', + 'description' => '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", + 'responseParamsDescription' => '### Error codes for failed authentication'."\n" + ."\n" + .'|Error code|Description|'."\n" + .'|---|---|'."\n" + .'|INVALID AUTH\\_KEY|The auth\\_key field of the signed URL is invalid.|'."\n" + .'|INVALID TIMESTAMP|The timestamp of the signed URL is invalid.|'."\n" + .'|INVALID ALIAUTH|The type of URL signing is invalid.|'."\n" + .'|INVALID MD5HASH|The hash value calculated by using the MD5 algorithm is invalid.|', + ], + 'TagLiveResources' => [ + 'summary' => 'Adds tags for domain names.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The type of the resources. Set the value to **DOMAIN**.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'example.com', + ], + 'required' => true, + 'example' => 'example.com', + 'maxItems' => 51, + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'env', + ], + 'Value' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'product', + ], + ], + 'required' => false, + ], + 'required' => true, + 'maxItems' => 21, + ], + ], + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'DOMAIN', + 'enum' => [ + 'DOMAIN', + ], + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '34AB41F1-04A5-496F-8C8D-634BDBE6A9FB', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 401 => [ + [ + 'errorCode' => 'InvalidResourceType', + 'errorMessage' => 'The resourceType is invalid.', + ], + [ + 'errorCode' => 'QuotaExceed.TagsPerResource', + 'errorMessage' => 'The maximum number of tags for each resource is exceeded.', + ], + [ + 'errorCode' => 'InvalidTagKey', + 'errorMessage' => 'The tag key is invalid, %s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Duplicate.TagKey', + 'errorMessage' => 'The tags should not contain duplicate keys.', + ], + [ + 'errorCode' => 'InvalidResourcesCount', + 'errorMessage' => 'The count of resources is invalid, %s.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"34AB41F1-04A5-496F-8C8D-634BDBE6A9FB\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 34AB41F1-04A5-496F-8C8D-634BDBE6A9FB\\r\\n","errorExample":""}]', + 'title' => 'TagLiveResources', + 'description' => 'The key of the tag. Valid values of N: **1 to 20**.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => 'The value of the tag. Valid values of N: **1 to 20**.'."\n", + ], + 'UnTagLiveResources' => [ + 'summary' => 'Deletes tags of domain names.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'type' => 'string', + 'required' => false, + ], + 'required' => true, + 'example' => 'example.com', + 'maxItems' => 51, + ], + ], + [ + 'name' => 'TagKey', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'type' => 'string', + 'required' => false, + ], + 'required' => false, + 'example' => 'env', + 'maxItems' => 21, + ], + ], + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'DOMAIN', + 'enum' => [ + 'DOMAIN', + ], + ], + ], + [ + 'name' => 'All', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '97C68796-EB7F-4D41-9D5B-12B909D76508', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 401 => [ + [ + 'errorCode' => 'InvalidResourceType', + 'errorMessage' => 'The resourceType is invalid.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Duplicate.TagKey', + 'errorMessage' => 'The tags should not contain duplicate keys.', + ], + [ + 'errorCode' => 'InvalidResourcesCount', + 'errorMessage' => 'The count of resources is invalid, %s.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"97C68796-EB7F-4D41-9D5B-12B909D76508\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 97C68796-EB7F-4D41-9D5B-12B909D76508\\r\\n","errorExample":""}]', + 'title' => 'UnTagLiveResources', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + ], + 'ListLiveTagResources' => [ + 'summary' => '查询符合条件的资源和标签', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREliveG4SX14', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-shanghai', + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'my-resource-id', + ], + 'required' => false, + 'maxItems' => 51, + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'env', + ], + 'Value' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'dev', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 21, + ], + ], + [ + 'name' => 'TagOwnerUid', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'xxx1234xxx', + ], + ], + [ + 'name' => 'TagOwnerBid', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '26842', + ], + ], + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'DOMAIN', + 'enum' => [ + 'DOMAIN', + ], + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'q2j8bLtBdhONLRkgaPBa6A==', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'NextToken' => [ + 'description' => '', + 'type' => 'string', + 'example' => '6a5e8f4fae643e70d1a2ff1827cd91bd', + ], + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '******3B-0E1A-586A-AC29-742247******', + ], + 'TagResources' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'TagResource' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'ResourceId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'my-resource-id', + ], + 'ResourceType' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'DOMAIN', + ], + 'TagKey' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'env', + ], + 'TagValue' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'dev', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 401 => [ + [ + 'errorCode' => 'InvalidResourceType', + 'errorMessage' => 'The resourceType is invalid.', + ], + [ + 'errorCode' => 'InvalidTagKey', + 'errorMessage' => 'The tag key is invalid, %s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'InvalidResourcesCount', + 'errorMessage' => 'The count of resources is invalid, %s.', + ], + [ + 'errorCode' => 'Duplicate.TagKey', + 'errorMessage' => 'The tags should not contain duplicate keys.', + ], + ], + ], + '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"}]', + ], + 'DescribeLiveTagResources' => [ + 'summary' => 'Queries the tags of domain names.', + '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', + ], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The N resources. The resources are domain names in this operation. Valid values of N: **1 to 50**.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The resource.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'example.com', + ], + 'required' => true, + 'example' => 'example.com', + 'maxItems' => 50, + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The N tags.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The key of the tag. Valid values of N: **1 to 20**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'env', + ], + 'Value' => [ + 'description' => 'The value of the tag. Valid values of N: **1 to 20**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'product', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 20, + ], + ], + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the resources. Set the value to **DOMAIN**.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'DOMAIN', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '34AB41F1-04A5-496F-8C8D-634BDBE6A9FB', + ], + 'TagResources' => [ + 'description' => 'The tags of the resource.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ResourceId' => [ + 'description' => 'The resource.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'Tag' => [ + 'description' => 'The key-value pair of the tag.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The key of the tag.'."\n", + 'type' => 'string', + 'example' => 'env', + ], + 'Value' => [ + 'description' => 'The value of the tag.'."\n", + 'type' => 'string', + 'example' => 'product', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"****41F1-04A5-496F-8C8D-634BDBE6****\\",\\n \\"TagResources\\": [\\n {\\n \\"ResourceId\\": \\"example.com\\",\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"env\\",\\n \\"Value\\": \\"product\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 34AB41F1-04A5-496F-8C8D-634BDBE6A9FB\\n \\n example.com\\n \\n product\\n env\\n \\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveTagResources', + 'description' => 'You can call this operation up to 10 times per second per account.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'AddLiveCenterTransfer' => [ + 'summary' => 'Adds a configuration of live center stream relay.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + '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 for the live stream that you want to relay. Otherwise, the configuration does not take effect. You can view the application name on the [Stream Management](~~197397~~) page of the ApsaraVideo Live console.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'testapp', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'teststream', + ], + ], + [ + 'name' => 'DstUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The third-party URL to which the live stream is relayed. You can add only one URL.'."\n" + ."\n" + .'> The protocol that the URL uses must be the same as the protocol of the live stream. Only URLs over RTMP and SRT are supported.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'rtmp://push.example2.aliyunlive.com/testapp1/teststream2', + ], + ], + [ + 'name' => 'TransferArgs', + 'in' => 'query', + 'schema' => [ + 'description' => 'The validity period of stream relay. Valid values:'."\n" + ."\n" + .'* **always**: The stream can always be relayed.'."\n" + .'* **time**: The stream can be relayed in a specified time period.'."\n" + ."\n" + .'> If you set this parameter to **time**, **StartTime** and **EndTime** are required.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'always', + 'enum' => [ + 'always', + 'time', + ], + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The start time of stream relay. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2017-12-21T10:00:00Z', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end time of stream relay. 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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2017-12-22T08:00:00Z', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '7908F2FF-44F8-120F-9FD6-85AE4B6C19EC', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => 'Parameter invalid.', + ], + [ + 'errorCode' => 'CenterTransfersStreamOverLimit', + 'errorMessage' => 'CenterTransfers stream is over limit for this domainName.', + ], + [ + 'errorCode' => 'ConfigAlreadyExists', + 'errorMessage' => 'Config has already exist.', + ], + [ + 'errorCode' => 'CodeIllegalDuration', + 'errorMessage' => 'param end_time is before start_time', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7908F2FF-44F8-120F-9FD6-85AE4B6C19EC\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7908F2FF-44F8-120F-9FD6-85AE4B6C19EC\\n","errorExample":""}]', + 'title' => 'AddLiveCenterTransfer', + 'description' => '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", + ], + 'UpdateLiveCenterTransfer' => [ + 'summary' => 'Modifies the configurations of live center stream relay.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + '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 for the live stream that you want to relay. Otherwise, the configuration does not take effect. You can view the application name on the [Stream Management](~~197397~~) page of the ApsaraVideo Live console.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'testapp', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'teststream', + ], + ], + [ + 'name' => 'DstUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The third-party URL to which the live stream is relayed. You can add only one URL.'."\n" + ."\n" + .'> The protocol that the URL uses must be the same as the protocol of the live stream. Only URLs over RTMP and SRT are supported.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'rtmp://push.example2.aliyunlive.com/testapp1/teststream2', + ], + ], + [ + 'name' => 'TransferArgs', + 'in' => 'query', + 'schema' => [ + 'description' => 'The validity period of stream relay. Valid values:'."\n" + ."\n" + .'* **always**: The stream can always be relayed.'."\n" + .'* **time**: The stream can be relayed in a specified time period.'."\n" + ."\n" + .'> If the value is **time**, **StartTime** and **EndTime** are required.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'always', + 'enum' => [ + 'always', + 'time', + ], + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The start time of stream relay. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2017-12-21T10:00:00Z', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end time of stream relay. 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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2017-12-22T08:00:00Z', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '7908F2FF-44F8-120F-9FD6-85AE4B6C19EC', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => 'Parameter invalid.', + ], + [ + 'errorCode' => 'CodeIllegalDuration', + 'errorMessage' => 'param end_time is before start_time', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7908F2FF-44F8-120F-9FD6-85AE4B6C19EC\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7908F2FF-44F8-120F-9FD6-85AE4B6C19EC\\n","errorExample":""}]', + 'title' => 'UpdateLiveCenterTransfer', + 'description' => 'You can call this operation to modify only the **time-related** parameters, including TransferArgs, StartTime, and EndTime.'."\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", + ], + 'DescribeLiveCenterTransfer' => [ + 'summary' => 'Queries the information about a configuration of live center 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', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + '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 for the live stream that you want to relay. Otherwise, the configuration does not take effect. You can view the application name on the [Stream Management](~~197397~~) page of the ApsaraVideo Live console.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'testapp', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'teststream', + ], + ], + [ + 'name' => 'DstUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The third-party URL to which the live stream is relayed.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rtmp://push.example2.aliyunlive.com/testapp1/teststream2', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'LiveCenterTransferInfoList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LiveCenterTransferInfo' => [ + 'description' => 'The stream relay information.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'AppName' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'example' => 'teststream', + ], + 'DomainName' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'DstUrl' => [ + 'description' => 'The third-party URL to which the live stream is relayed.'."\n", + 'type' => 'string', + 'example' => 'rtmp://push.example2.aliyunlive.com/testapp1/teststream2', + ], + 'EndTime' => [ + 'description' => 'The end time of stream relay.'."\n", + 'type' => 'string', + 'example' => '2022-04-29T15:16:00Z', + ], + 'StartTime' => [ + 'description' => 'The start time of stream relay.'."\n", + 'type' => 'string', + 'example' => '2022-04-28T15:16:00Z', + ], + 'StreamName' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'example' => 'teststream', + ], + 'TransferArgs' => [ + 'description' => 'The validity period of stream relay. Valid values:'."\n" + ."\n" + .'* **always**: The stream can always be relayed.'."\n" + .'* **time**: The stream can be relayed in a specified time period.'."\n", + 'type' => 'string', + 'example' => 'time', + ], + ], + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'C4865B85-664B-19D3-BB16-C62FB83C8226', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => 'Parameter invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"LiveCenterTransferInfoList\\": {\\n \\"LiveCenterTransferInfo\\": [\\n {\\n \\"AppName\\": \\"teststream\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DstUrl\\": \\"rtmp://push.example2.aliyunlive.com/testapp1/teststream2\\",\\n \\"EndTime\\": \\"2022-04-29T15:16:00Z\\",\\n \\"StartTime\\": \\"2022-04-28T15:16:00Z\\",\\n \\"StreamName\\": \\"teststream\\",\\n \\"TransferArgs\\": \\"time\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"C4865B85-664B-19D3-BB16-C62FB83C8226\\"\\n}","errorExample":""},{"type":"xml","example":"\\n C4865B85-664B-19D3-BB16-C62FB83C8226\\n \\n 2022-04-29T15:16:00Z\\n teststream\\n 2022-04-28T15:16:00Z\\n time\\n teststream\\n rtmp://push.example2.aliyunlive.com/testapp1/teststream2\\n example.com\\n \\n","errorExample":""}]', + 'title' => 'DescribeLiveCenterTransfer', + 'description' => '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", + ], + 'DeleteLiveCenterTransfer' => [ + 'summary' => 'Deletes a configuration of live center stream relay.', + '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', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + '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 for the live stream that you want to relay. Otherwise, the configuration does not take effect. You can view the application name on the [Stream Management](~~197397~~) page of the ApsaraVideo Live console.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'testapp', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'teststream', + ], + ], + [ + 'name' => 'DstUrl', + 'in' => 'query', + 'schema' => [ + 'description' => 'The third-party URL to which the live stream is relayed.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rtmp://push.example2.aliyundoc.com/testapp1/teststream2', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '7908F2FF-44F8-120F-9FD6-85A******', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => 'Parameter invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7908F2FF-44F8-120F-9FD6-85A******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7908F2FF-44F8-120F-9FD6-85AE4B6C19EC\\n","errorExample":""}]', + 'title' => 'DeleteLiveCenterTransfer', + 'description' => '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", + ], + 'DescribeLiveEdgeTransfer' => [ + 'summary' => 'Queries 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', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ingest domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo.aliyundoc.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'HttpDns' => [ + 'description' => 'The HTTPDNS API that is used to obtain the destination URLs.'."\n", + 'type' => 'string', + 'example' => 'http://developer.aliyundoc.com/****', + ], + 'AppName' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'example' => 'liveApp****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '53FCB985-C67C-467B-B2B3-398430A21E14', + ], + 'TransferArgs' => [ + 'description' => 'Indicates whether stream ingest parameters are passed through. Valid values:'."\n" + ."\n" + .'* **yes**: Stream ingest parameters are passed through.'."\n" + .'* **no**: Stream ingest parameters are not passed through.'."\n", + 'type' => 'string', + 'example' => 'yes', + ], + 'StreamName' => [ + 'description' => 'The name of the ingested stream.'."\n", + 'type' => 'string', + 'example' => 'liveStream****', + ], + 'TargetDomainList' => [ + 'description' => 'The destination domain names to which the ingested stream is relayed. Multiple domain names are separated by commas (,).'."\n", + 'type' => 'string', + 'example' => 'learn.aliyundoc.com,guide.aliyundoc.com', + ], + 'DomainName' => [ + 'description' => 'The ingest domain.'."\n", + 'type' => 'string', + 'example' => 'demo.aliyundoc.com', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => 'Parameter invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"HttpDns\\": \\"http://developer.aliyundoc.com/****\\",\\n \\"AppName\\": \\"liveApp****\\",\\n \\"RequestId\\": \\"53FCB985-C67C-467B-B2B3-398430A21E14\\",\\n \\"TransferArgs\\": \\"yes\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"TargetDomainList\\": \\"learn.aliyundoc.com,guide.aliyundoc.com\\",\\n \\"DomainName\\": \\"demo.aliyundoc.com\\"\\n}","errorExample":""},{"type":"xml","example":"\\n http://developer.aliyundoc.com/****\\n liveApp****\\n 53FCB985-C67C-467B-B2B3-398430A21E14\\n yes\\n liveStream****\\n learn.aliyundoc.com,guide.aliyundoc.com\\n demo.aliyundoc.com\\n","errorExample":""}]', + 'title' => 'DescribeLiveEdgeTransfer', + 'description' => 'Obtain the ingest domain, and then call this operation to query the configuration of edge stream relay.'."\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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteLiveEdgeTransfer' => [ + 'summary' => 'Deletes the configuration of edge stream relay.', + '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', + ], + ], + [ + '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', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => 'Parameter invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + 'title' => 'DeleteLiveEdgeTransfer', + 'description' => 'You can call the DeleteLiveEdgeTransfer operation to delete the configuration of edge stream relay for a specific domain name. Ingested streams that are already relayed based on the configuration are not affected. The following table describes the scenarios in which edge stream relay takes effect or not.'."\n" + ."\n" + .'|Scenario|Analysis|Result|'."\n" + .'|---|---|---|'."\n" + .'|1\\. You ingest a stream after you call the SetLiveEdgeTransfer operation to configure edge stream relay. Then, you call the DeleteLiveEdgeTransfer operation to delete the configuration.|The configuration of edge stream relay is available when you ingest the stream.|The ingested stream is not affected, and stream relay is not interrupted.|'."\n" + .'|2\\. You call the DeleteLiveEdgeTransfer operation to delete the configuration of edge stream relay after you ingest a stream. Then, you disconnect and resume the ingested stream.|The configuration of edge stream relay is not available after you resume the ingested stream.|Edge stream relay does not take effect.|'."\n" + .'|3\\. You call the DeleteLiveEdgeTransfer operation before you ingest a stream.|The configuration of edge stream relay is not available.|Edge stream relay does not take effect.|'."\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. We recommend that you take note of this limit when you call this operation.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'SetLiveEdgeTransfer' => [ + 'summary' => 'Sets the configuration of edge stream relay.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ingest domain. Stream relay is configured based on the ingest domain. Only one stream relay configuration can be set for an ingest domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo.aliyundoc.com', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs. Regular expressions are supported, with a few limits. For more information, see the **Description about the AppName and StreamName parameters** section. For example, a value of **liveApp\\*\\*\\*\\*\\[1,2,3]** specifies that stream relay is configured for three applications: liveApp\\*\\*\\*\\*1, liveApp\\*\\*\\*\\*2, and liveApp\\*\\*\\*\\*3.****'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* This parameter takes effect for only destination domain names that are specified by the TargetDomainList parameter.'."\n" + ."\n" + .'* You cannot use a caret (^) or a dollar sign ($) in a regular expression to configure the `AppName` parameter. Otherwise, stream relay fails.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveApp****', + ], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the ingested stream. Regular expressions are supported, with a few limits. For more information, see the **Description about the AppName and StreamName parameters** section. For example, a value of **liveStream\\*\\*\\*\\*\\[1,2,3]** specifies that stream relay is configured for three streams: liveStream\\*\\*\\*\\*1, liveStream\\*\\*\\*\\*2, and liveStream\\*\\*\\*\\*3.****'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* This parameter takes effect for only destination domain names that are specified by the TargetDomainList parameter.'."\n" + ."\n" + .'* You cannot use a caret (^) or a dollar sign ($) in a regular expression to configure the `StreamName` parameter. Otherwise, stream relay fails.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'liveStream****', + ], + ], + [ + 'name' => 'TargetDomainList', + 'in' => 'query', + 'schema' => [ + 'description' => 'The destination domain names to which you want to relay the ingested stream. Separate multiple domain names with commas (,). The request must contain the `TargetDomainList` parameter or the `HttpDns` parameter. The two parameters are mutually exclusive.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* The `AppName` and `StreamName` parameters take effect only when the `TargetDomainList` parameter is configured.'."\n" + ."\n" + .'* If the `TargetDomainList` parameter is configured, you cannot configure the `HttpDns` parameter.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'learn.aliyundoc.com,guide.aliyundoc.com', + ], + ], + [ + 'name' => 'HttpDns', + 'in' => 'query', + 'schema' => [ + 'description' => 'The HTTPDNS API that is used to obtain the destination URLs. The request must contain the `TargetDomainList` parameter or the `HttpDns` parameter. The two parameters are mutually exclusive.'."\n" + ."\n" + .'> If the `HttpDns` parameter is configured, you cannot configure the `TargetDomainList` parameter, and the `AppName` and `StreamName` parameters do not take effect.'."\n" + ."\n" + .'For information about the requirements on the structure of messages that are returned by the HTTPDNS API, see the **Description about the HTTPDNS API** section.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'http://developer.aliyundoc.com', + ], + ], + [ + 'name' => 'TransferArgs', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to pass through stream ingest parameters. Valid values:'."\n" + ."\n" + .'* **yes**: passes through stream ingest parameters.'."\n" + .'* **no**: does not pass through stream ingest parameters.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'yes', + 'default' => 'no', + 'enum' => [ + 'yes', + 'no', + ], + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam', + 'errorMessage' => 'Parameter invalid.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\n","errorExample":""}]', + 'title' => 'SetLiveEdgeTransfer', + 'description' => 'You can call the SetLiveEdgeTransfer operation to configure edge stream relay. The configuration takes effect for ingested streams that start after edge stream relay is configured. The following table describes the scenarios in which edge stream relay takes effect or not.'."\n" + ."\n" + .'|Scenario|Analysis|Result|'."\n" + .'|---|---|---|'."\n" + .'|1\\. You ingest a stream before you call the SetLiveEdgeTransfer operation.|The configuration of edge stream relay is not available.|The ingested stream is not affected by your call of the SetLiveEdgeTransfer operation. Edge stream relay does not take effect.|'."\n" + .'|2\\. You disconnect an ingested stream that started before you called the SetLiveEdgeTransfer operation, and then resume the ingested stream.|The configuration of edge stream relay is available.|Edge stream relay takes effect for the resumed ingested stream based on the configuration.|'."\n" + .'|3\\. You ingest a stream after you call the SetLiveEdgeTransfer operation.|The configuration of edge stream relay is available.|Edge stream relay takes effect for the ingested stream based on the 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. We recommend that you take note of this limit when you call this operation.', + 'requestParamsDescription' => '### Description about the AppName and StreamName parameters'."\n" + ."\n" + .'The AppName and StreamName parameters do not support carets (`^`) and dollar signs (`$`). If a caret (`^`) or a dollar sign (`$`) exists in the parameter values, stream relay fails.'."\n" + ."\n" + .'### Description about the HTTPDNS API'."\n" + ."\n" + .'If the `HttpDns` parameter is configured, the destination domain names are obtained by accessing the HTTPDNS API that is specified by the `HttpDns` parameter.'."\n" + ."\n" + .'Example: http://developer.aliyundoc.com/?host={}&app={}&name={}{<\\_ali\\_user\\_args>} '."\n" + .'Note: When the HTTPDNS API is accessed, the following parameters are replaced with the actual values in the ingest URL.'."\n" + ."\n" + .'* {}: The ingest domain.'."\n" + .'* {}: The name of the application to which the live stream belongs.'."\n" + .'* {}: The name of the stream.'."\n" + .'* {<\\_ali\\_user\\_args>}: The custom parameters that are carried in the ingest URL.'."\n" + ."\n" + .'The following HTTP status codes and results are returned.'."\n" + ."\n" + .'* If HTTP status code 403 is returned, the access to the HTTPDNS API fails. Stream relay is not required.'."\n" + .'* If HTTP status code 200 is returned, the access to the HTTPDNS API is successful. The returned result is in the JSON format. The following sample code provides an example of the message structure and parameters.'."\n" + ."\n" + .'```'."\n" + .'{'."\n" + .' "cdn_types": ['."\n" + .' {'."\n" + .' "name": "cdnA****",'."\n" + .' "upstream_url": "rtmp://developer.aliyundoc.com/live/testedge****"'."\n" + .' },'."\n" + .' {'."\n" + .' "name": "cdnB****",'."\n" + .' "upstream_url": "rtmp://developer.aliyundoc.com/live/testedge****"'."\n" + .' }'."\n" + .' ]'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'|Parameter|Description|Example|'."\n" + .'|---|---|---|'."\n" + .'|name|The name of the CDN point of presence (POP). You can specify a custom name. Duplicate names are not allowed.|cdnA\\*\\*\\*\\*|'."\n" + .'|upstream\\_url|The destination URL to which the ingested stream is relayed.|rtmp://developer.aliyundoc.com/live/testedge\\*\\*\\*\\*|'."\n" + ."\n" + .'**Note** You can obtain the destination domain name from the JSON-formatted result. If multiple destination domain names are obtained, the ingested stream is relayed to multiple domain names.'."\n" + ."\n" + .'* If the structure of the returned data does not meet the requirements, stream relay fails.', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLiveUserBillPrediction' => [ + 'summary' => 'Queries the estimated bills of ApsaraVideo Live in your Alibaba Cloud account.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The start time. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd**THH:mm:ssZ* format. The time must be in UTC.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2015-12-01T05:40:00Z', + ], + ], + [ + '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", + 'type' => 'string', + 'required' => false, + 'example' => '2015-12-01T05:45:00Z', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'EndTime' => [ + 'description' => 'The end time. If you do not specify the request parameter EndTime, the end time is the current time by default. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n", + 'type' => 'string', + 'example' => '2018-10-25T10:00:00Z', + ], + 'StartTime' => [ + 'description' => 'The start time. If you do not specify the request parameter StartTime, the start time is 00:00 on the first day of the month by default. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n", + 'type' => 'string', + 'example' => '2018-09-30T16:00:00Z', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'B95BE680-5A6A-1CAD-8AB1-09DFF5D6****', + ], + 'BillType' => [ + 'description' => 'The metering method. Valid values:'."\n" + ."\n" + .'* hour_flow: pay by hourly data transfer'."\n" + .'* day_bandwidth: pay by daily bandwidth'."\n" + .'* month\\_95: pay by monthly 95th percentile bandwidth'."\n" + .'* month_avg_day_bandwidth: pay by average daily peak bandwidth per month'."\n" + .'* month\\_4th_day_bandwidth: pay by 4th peak bandwidth per month'."\n" + .'* month_avg_day\\_95: pay by average daily 95th percentile bandwidth per month'."\n" + .'* month\\_95\\_night_half: pay by 95th percentile bandwidth with 50% off from 00:00 to 08:00'."\n" + .'* hour_vas: pay by value-added services per hour'."\n" + .'* day_count: pay by daily requests'."\n", + 'type' => 'string', + 'enumValueTitles' => [], + 'example' => 'day_bandwidth', + ], + 'BillPredictionData' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'BillPredictionDataItem' => [ + 'description' => 'The estimated bill data.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The estimated bill data.'."\n", + 'type' => 'object', + 'properties' => [ + 'Value' => [ + 'description' => 'The estimated value.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '10000', + ], + 'TimeStp' => [ + 'description' => 'The time at which the estimated value occurs. This parameter is returned only if the metering method is pay by 95th percentile bandwidth, pay by 95th percentile bandwidth with 50% off from 00:00 to 08:00, or pay by 4th peak bandwidth per month.'."\n", + 'type' => 'string', + 'example' => '2018-10-15T16:00:00Z', + ], + 'Area' => [ + 'description' => 'The billable region. Valid values:'."\n" + ."\n" + .'* CN: Chinese mainland'."\n" + .'* OverSeas: countries and regions outside the Chinese mainland'."\n" + .'* AP1: Asia Pacific 1, including Hong Kong (China), Macao (China), Taiwan (China), Japan, and other Southeast Asia countries and regions 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 US and Canada'."\n" + .'* SA: South America, specifically meaning Brazil'."\n" + .'* EU: Europe, including Ukraine, UK, France, Netherlands, Spain, Italy, Sweden, and Germany'."\n" + .'* MEAA: Middle East and Africa, including South Africa, Oman, UAE, and Kuwait'."\n" + ."\n" + .'By default, data of all regions is aggregated and returned.'."\n", + 'type' => 'string', + 'example' => 'CN', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'InvalidParameter.', + ], + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'The specified StartTime parameter is invalid.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'The specified EndTime is invalid.', + ], + [ + 'errorCode' => 'InvalidStartTime.ValueNotSupported', + 'errorMessage' => 'The StartTime cannot exceed 31 days before the current time.', + ], + [ + 'errorCode' => 'InvalidTime.Malformed', + 'errorMessage' => 'Specified Time is malformed.', + ], + [ + 'errorCode' => 'InvalidEndTime.Mismatch', + 'errorMessage' => 'Specified end time does not math the specified start time.', + ], + [ + 'errorCode' => 'InvalidTimeSpan', + 'errorMessage' => 'The time span exceeds the limit.', + ], + [ + 'errorCode' => 'BillTypeNotFound', + 'errorMessage' => 'User bill type not found or is not monthly bill type.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"EndTime\\": \\"2018-10-25T10:00:00Z\\",\\n \\"StartTime\\": \\"2018-09-30T16:00:00Z\\",\\n \\"RequestId\\": \\"B95BE680-5A6A-1CAD-8AB1-09DFF5D6****\\",\\n \\"BillType\\": \\"day_bandwidth\\",\\n \\"BillPredictionData\\": {\\n \\"BillPredictionDataItem\\": [\\n {\\n \\"Value\\": 10000,\\n \\"TimeStp\\": \\"2018-10-15T16:00:00Z\\",\\n \\"Area\\": \\"CN\\"\\n }\\n ]\\n }\\n}","type":"json"}]', + 'title' => 'DescribeLiveUserBillPrediction', + 'description' => 'You can call this operation to estimate resource usage of the current month based on the metering method that is specified on the first day of the month. You can call this operation to estimate resource usage of only the current month within your Alibaba Cloud account. The time range used for the estimation starts at 00:00 on the first day of the month and ends 2 hours earlier than the current time.'."\n" + ."\n" + .'* Pay by monthly 95th percentile bandwidth: The top 5% values between the start time and end time are excluded. The highest value among the remaining values is the estimated value.'."\n" + .'* Pay by average daily peak bandwidth per month: Estimated value = Sum of daily peak bandwidth values/Number of days. The current day is excluded.'."\n" + .'* Pay by 4th peak bandwidth per month: The estimated value is the 4th peak bandwidth value between the start time and end time. If the time range is less than four days, the estimated value is 0.'."\n" + .'* Pay by average daily 95th percentile bandwidth per month: Estimated value = Sum of daily 95th percentile bandwidth values/Number of days. The current day is excluded.'."\n" + .'* Pay by 95th percentile bandwidth with 50% off from 00:00 to 08:00: The top 5% values between the start time and end time are excluded. The highest value among the remaining values is the estimated value.'."\n" + ."\n" + .'## [](#qps-)QPS limit'."\n" + ."\n" + .'You can call this operation once 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", + ], + 'DescribeRTSNativeSDKFirstFrameCost' => [ + 'summary' => 'Queries the information about the factors that cause latency of first frames within a specified period of time.', + '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 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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2021-12-10T20:00:00Z', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2021-12-10T21:00:00Z', + ], + ], + [ + 'name' => 'DataInterval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time granularity. Valid values: 300, 3600, 14400, 28800, and 86400. Unit: seconds. The default value is 300. If you specify an invalid value or do not specify this parameter, the default value is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '300', + ], + ], + [ + 'name' => 'DomainNameList', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'From V2.1.0, all domain names are queried by default. You can also specify specific domain names that you want to query. In this case, separate the domain names with commas (,). You can specify up to 500 domain names in each call.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The domain name.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'a.example.com', + ], + 'required' => false, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'DataInterval' => [ + 'description' => 'The time granularity.'."\n", + 'type' => 'string', + 'example' => '300', + ], + 'EndTime' => [ + 'description' => 'The end of the time range for which the data was queried.'."\n", + 'type' => 'string', + 'example' => '2021-12-10T21:00:00Z', + ], + 'FirstFrameCostData' => [ + 'description' => 'The average latency of first frames at each interval. Unit: milliseconds.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Connected' => [ + 'description' => 'The time elapsed from initialization to connection establishment.'."\n", + 'type' => 'string', + 'example' => '100', + ], + 'FinishGetStreamInfo' => [ + 'description' => 'The time elapsed from connection establishment to subscription.'."\n", + 'type' => 'string', + 'example' => '89', + ], + 'FirstFrameComplete' => [ + 'description' => 'The time elapsed from first packet processing to display of the first frame.'."\n", + 'type' => 'string', + 'example' => '32', + ], + 'FirstPacket' => [ + 'description' => 'The time elapsed from subscription to first packet processing.'."\n", + 'type' => 'string', + 'example' => '132', + ], + 'Initialized' => [ + 'description' => 'The time consumed by initialization.'."\n", + 'type' => 'string', + 'example' => '1100', + ], + 'TimeStamp' => [ + 'description' => 'The timestamp of the returned data.'."\n", + 'type' => 'string', + 'example' => '2021-12-10T20:00:00Z', + ], + ], + ], + ], + 'RequestId' => [ + 'title' => 'Id', + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'BC858082-736F-4A25-867B-E5B67C85ACF7', + ], + 'StartTime' => [ + 'description' => 'The beginning of the time range for which the data was queried.'."\n", + 'type' => 'string', + 'example' => '2021-12-10T20:00:00Z', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Meter.ParamError', + 'errorMessage' => 'Param Error:%s,Please Check Again.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Meter.AuthError', + 'errorMessage' => 'Authentication Failed,Please Try Again.', + ], + ], + 500 => [ + [ + 'errorCode' => 'Meter.ServerInternalError', + 'errorMessage' => 'The Request Processing Has Failed Due To Some Unknown Error.', + ], + [ + 'errorCode' => 'Meter.DataSourceQueryError', + 'errorMessage' => 'Data Source Error:%s,Please Try Again.', + ], + ], + 502 => [ + [ + 'errorCode' => 'Meter.ReadyTsError', + 'errorMessage' => 'Get ReadyTs Failed,Please Try Again.', + ], + ], + ], + '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' => 'DescribeRTSNativeSDKFirstFrameCost', + 'description' => 'You can call this operation to query the information about the factors that cause latency of first frames within a specified period of time. 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. For more information, see QPS limit.'."\n", + ], + 'DescribeRTSNativeSDKPlayTime' => [ + 'summary' => 'Queries the playback duration within a specified period of time.', + '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 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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2021-12-10T20:00:00Z', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2021-12-10T21:00:00Z', + ], + ], + [ + 'name' => 'DataInterval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time granularity. Valid values: 300, 3600, 14400, 28800, and 86400. Unit: seconds. The default value is 300. If you specify an invalid value or do not specify this parameter, the default value is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '300', + ], + ], + [ + 'name' => 'DomainNameList', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'From V2.1.0, all domain names are queried by default. You can also specify specific domain names that you want to query. In this case, separate the domain names with commas (,). You can specify up to 500 domain names in each call.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The domain name.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'a.example.com', + ], + 'required' => false, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'DataInterval' => [ + 'description' => 'The time granularity.'."\n", + 'type' => 'string', + 'example' => '300', + ], + 'EndTime' => [ + 'description' => 'The end of the time range for which the data was queried.'."\n", + 'type' => 'string', + 'example' => '2021-12-10T21:00:00Z', + ], + 'PlayTimeData' => [ + 'description' => 'The average playback duration and average stuttering duration at each interval. Unit: milliseconds.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'PlayTime' => [ + 'description' => 'The average playback duration within the period of time.'."\n", + 'type' => 'string', + 'example' => '1000', + ], + 'StallTime' => [ + 'description' => 'The average stuttering duration within the period of time.'."\n", + 'type' => 'string', + 'example' => '100', + ], + 'TimeStamp' => [ + 'description' => 'The timestamp of the returned data.'."\n", + 'type' => 'string', + 'example' => '2021-12-10T20:00:00Z', + ], + ], + ], + ], + 'RequestId' => [ + 'title' => 'Id', + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '7BF95F2A-3B24-4CDE-9346-7F6FA86697A1', + ], + 'StartTime' => [ + 'description' => 'The beginning of the time range for which the data was queried.'."\n", + 'type' => 'string', + 'example' => '2021-12-10T20:00:00Z', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Meter.ParamError', + 'errorMessage' => 'Param Error:%s,Please Check Again.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Meter.AuthError', + 'errorMessage' => 'Authentication Failed,Please Try Again.', + ], + ], + 500 => [ + [ + 'errorCode' => 'Meter.ServerInternalError', + 'errorMessage' => 'The Request Processing Has Failed Due To Some Unknown Error.', + ], + [ + 'errorCode' => 'Meter.DataSourceQueryError', + 'errorMessage' => 'Data Source Error:%s,Please Try Again.', + ], + ], + 502 => [ + [ + 'errorCode' => 'Meter.ReadyTsError', + 'errorMessage' => 'Get ReadyTs Failed,Please Try Again.', + ], + ], + ], + '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' => 'DescribeRTSNativeSDKPlayTime', + 'description' => 'You can query the playback duration within a specified period of time. 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. For more information, see QPS limit.'."\n", + ], + 'DescribeRTSNativeSDKPlayFailStatus' => [ + 'summary' => 'Queries the causes of playback failures that occurred within a specified period of time. The causes are returned in the form of status codes.', + '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 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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2021-12-10T20:00:00Z', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2021-12-10T21:00:00Z', + ], + ], + [ + 'name' => 'DataInterval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time granularity. Valid values: 300, 3600, 14400, 28800, and 86400. Unit: seconds. The default value is 300. If you specify an invalid value or do not specify this parameter, the default value is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '300', + ], + ], + [ + 'name' => 'DomainNameList', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'From V2.1.0, all domain names are queried by default. You can also specify specific domain names that you want to query. In this case, separate the domain names with commas (,). You can specify up to 500 domain names in each call.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The domain name.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'a.example.com', + ], + 'required' => false, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'DataInterval' => [ + 'description' => 'The time granularity.'."\n", + 'type' => 'string', + 'example' => '300', + ], + 'EndTime' => [ + 'description' => 'The end of the time range for which the data was queried.'."\n", + 'type' => 'string', + 'example' => '2021-12-10T21:00:00Z', + ], + 'PlayFailStatus' => [ + 'description' => 'The number of error status codes at each interval.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TimeStamp' => [ + 'description' => 'The timestamp of the returned data.'."\n", + 'type' => 'string', + 'example' => '2021-12-10T20:00:00Z', + ], + 'V20001' => [ + 'description' => 'The status code that indicates failed DNS resolution.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'V20002' => [ + 'description' => 'The status code that indicates failed authentication.'."\n", + 'type' => 'string', + 'example' => '2', + ], + 'V20011' => [ + 'description' => 'The status code that indicates a connection signaling timeout.'."\n", + 'type' => 'string', + 'example' => '3', + ], + 'V20012' => [ + 'description' => 'The status code that indicates a subscription signaling error.'."\n", + 'type' => 'string', + 'example' => '4', + ], + 'V20013' => [ + 'description' => 'The status code indicating that the stream to subscribe to does not exist.'."\n", + 'type' => 'string', + 'example' => '5', + ], + 'V20052' => [ + 'description' => 'The status code that indicates a media packet collection timeout.'."\n", + 'type' => 'string', + 'example' => '6', + ], + ], + ], + ], + 'RequestId' => [ + 'title' => 'Id', + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + 'StartTime' => [ + 'description' => 'The beginning of the time range for which the data was queried.'."\n", + 'type' => 'string', + 'example' => '2021-12-10T20:00:00Z'."\n", + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Meter.ParamError', + 'errorMessage' => 'Param Error:%s,Please Check Again.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Meter.AuthError', + 'errorMessage' => 'Authentication Failed,Please Try Again.', + ], + ], + 500 => [ + [ + 'errorCode' => 'Meter.ServerInternalError', + 'errorMessage' => 'The Request Processing Has Failed Due To Some Unknown Error.', + ], + [ + 'errorCode' => 'Meter.DataSourceQueryError', + 'errorMessage' => 'Data Source Error:%s,Please Try Again.', + ], + ], + 502 => [ + [ + 'errorCode' => 'Meter.ReadyTsError', + 'errorMessage' => 'Get ReadyTs Failed,Please Try Again.', + ], + ], + ], + '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' => 'DescribeRTSNativeSDKPlayFailStatus', + 'description' => 'You can call this operation to query the causes of playback failures that occurred within a specified period of time. The causes are returned in the form of status codes. 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. For more information, see QPS limit.'."\n", + ], + 'DescribeRTSNativeSDKFirstFrameDelay' => [ + 'summary' => 'Queries the average latency of first frames within a specified period of time.', + '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 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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2021-12-10T20:00:00Z', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2021-12-10T21:00:00Z', + ], + ], + [ + 'name' => 'DataInterval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time granularity. Valid values: 300, 3600, 14400, 28800, and 86400. Unit: seconds. The default value is 300. If you specify an invalid value or do not specify this parameter, the default value is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '300', + ], + ], + [ + 'name' => 'DomainNameList', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'From V2.1.0, all domain names are queried by default. You can also specify specific domain names that you want to query. In this case, separate the domain names with commas (,). You can specify up to 500 domain names in each call.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The domain name.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'a.example.com', + ], + 'required' => false, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'DataInterval' => [ + 'description' => 'The time granularity.'."\n", + 'type' => 'string', + 'example' => '300', + ], + 'EndTime' => [ + 'description' => 'The end of the time range for which the data was queried.'."\n", + 'type' => 'string', + 'example' => '2021-12-10T21:00:00Z', + ], + 'FrameDelayData' => [ + 'description' => 'The average latency of first frames at each interval. Unit: milliseconds.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'FrameDelay' => [ + 'description' => 'The average latency of first frames within the period of time.'."\n", + 'type' => 'string', + 'example' => '400', + ], + 'TimeStamp' => [ + 'description' => 'The timestamp of the returned data.'."\n", + 'type' => 'string', + 'example' => '2021-12-10T20:00:00Z', + ], + ], + ], + ], + 'RequestId' => [ + 'title' => 'Id', + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + 'StartTime' => [ + 'description' => 'The beginning of the time range for which the data was queried.'."\n", + 'type' => 'string', + 'example' => '2021-12-10T20:00:00Z', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Meter.ParamError', + 'errorMessage' => 'Param Error:%s,Please Check Again.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Meter.AuthError', + 'errorMessage' => 'Authentication Failed,Please Try Again.', + ], + ], + 500 => [ + [ + 'errorCode' => 'Meter.ServerInternalError', + 'errorMessage' => 'The Request Processing Has Failed Due To Some Unknown Error.', + ], + [ + 'errorCode' => 'Meter.DataSourceQueryError', + 'errorMessage' => 'Data Source Error:%s,Please Try Again.', + ], + ], + 502 => [ + [ + 'errorCode' => 'Meter.ReadyTsError', + 'errorMessage' => 'Get ReadyTs Failed,Please Try Again.', + ], + ], + ], + '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' => 'DescribeRTSNativeSDKFirstFrameDelay', + 'description' => 'You can call this operation to query the average latency of first frames within a specified period of time. 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. For more information, see QPS limit.'."\n", + ], + 'DescribeRTSNativeSDKVvData' => [ + 'summary' => 'Queries the total number of playbacks and the number of successful playbacks within a specified period of time.', + '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 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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2021-12-10T20:00:00Z', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2021-12-10T21:00:00Z', + ], + ], + [ + 'name' => 'DataInterval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time granularity. Valid values: 300, 3600, 14400, 28800, and 86400. Unit: seconds. The default value is 300. If you specify an invalid value or do not specify this parameter, the default value is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '300', + ], + ], + [ + 'name' => 'DomainNameList', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'The array of domain names.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'From V2.1.0, all domain names are queried by default. You can also specify specific domain names that you want to query. In this case, separate the domain names with commas (,). You can specify up to 500 domain names in each call.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'a.example.com', + ], + 'required' => false, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'DataInterval' => [ + 'description' => 'The time granularity.'."\n", + 'type' => 'string', + 'example' => '300', + ], + 'EndTime' => [ + 'description' => 'The end of the time range for which the data was queried.'."\n", + 'type' => 'string', + 'example' => '2021-12-10T21:00:00Z', + ], + 'RequestId' => [ + 'title' => 'Id', + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + ], + 'StartTime' => [ + 'description' => 'The beginning of the time range for which the data was queried.'."\n", + 'type' => 'string', + 'example' => '2021-12-10T20:00:00Z', + ], + 'VvData' => [ + 'description' => 'The total number of playbacks and the number of successful playbacks at each interval.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TimeStamp' => [ + 'description' => 'The timestamp of the returned data.'."\n", + 'type' => 'string', + 'example' => '2021-12-10T20:00:00Z', + ], + 'VvSuccess' => [ + 'description' => 'The number of successful playbacks within the period of time.'."\n", + 'type' => 'string', + 'example' => '99', + ], + 'VvTotal' => [ + 'description' => 'The total number of playbacks within the period of time.'."\n", + 'type' => 'string', + 'example' => '100', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Meter.ParamError', + 'errorMessage' => 'Param Error:%s,Please Check Again.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Meter.AuthError', + 'errorMessage' => 'Authentication Failed,Please Try Again.', + ], + ], + 500 => [ + [ + 'errorCode' => 'Meter.ServerInternalError', + 'errorMessage' => 'The Request Processing Has Failed Due To Some Unknown Error.', + ], + [ + 'errorCode' => 'Meter.DataSourceQueryError', + 'errorMessage' => 'Data Source Error:%s,Please Try Again.', + ], + ], + 502 => [ + [ + 'errorCode' => 'Meter.ReadyTsError', + 'errorMessage' => 'Get ReadyTs Failed,Please Try Again.', + ], + ], + ], + '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' => 'DescribeRTSNativeSDKVvData', + 'description' => 'QPS limit 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. For more information, see QPS limit.'."\n", + ], + 'DescribeLiveRealtimeLogAuthorized' => [ + 'summary' => 'Queries the status of authorization 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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'LiveOpenapiReserve', + 'in' => 'query', + 'schema' => [ + 'description' => 'This parameter has no practical significance.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'none', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'AuthorizedStatus' => [ + 'description' => 'The authorization status. **true**: authorized **false**: not authorized'."\n", + 'type' => 'string', + 'example' => 'true', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5c6a2a0df228-4a64- af62-20e91b******'."\n", + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"AuthorizedStatus\\": \\"true\\",\\n \\"RequestId\\": \\"5c6a2a0df228-4a64- af62-20e91b******\\\\n\\"\\n}","type":"json"}]', + 'title' => 'DescribeLiveRealtimeLogAuthorized', + 'description' => 'You can call this operation to query the status of authorization for real-time log delivery.'."\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", + ], + 'DescribeUpBpsPeakData' => [ + 'summary' => 'Queries the daily peak inbound bandwidth.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The start time of stream pulling. The time must be in UTC. The maximum time range that can be specified by StartTime and EndTime is 30 days.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2017-10-10T20:00:00Z', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end time of stream pulling. The time must be in UTC. The end time must be later than the start time. The maximum time range that can be specified by StartTime and EndTime is 30 days.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2017-10-10T21:00:00Z', + ], + ], + [ + 'name' => 'DomainSwitch', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to collect statistics at the domain name level. Valid values:'."\n" + ."\n" + .'* on: collects statistics at the domain name level.'."\n" + .'* off: collects statistics at the user level. This is the default value.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + 'enum' => [ + 'on', + 'off', + ], + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The accelerated domain name.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'example.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The bandwidth information.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', + ], + 'DescribeUpPeakTraffics' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DescribeUpPeakTraffic' => [ + 'description' => 'The information about peak inbound bandwidth on each day.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about peak inbound bandwidth on each day.'."\n", + 'type' => 'object', + 'properties' => [ + 'QueryTime' => [ + 'description' => 'The time queried on the day.'."\n", + 'type' => 'string', + 'example' => '1522080000000', + ], + 'BandWidth' => [ + 'description' => 'The daily peak inbound bandwidth.'."\n", + 'type' => 'string', + 'example' => '777.2727083333333', + ], + 'StatName' => [ + 'description' => 'The category of the statistical data. If the DomainSwitch parameter is set to on, the value of this parameter is the domain name. If the DomainSwitch parameter is set to off or not specified, the value of this parameter is the user ID.'."\n", + 'type' => 'string', + 'example' => 'push-live.aliyuncs.com', + ], + 'PeakTime' => [ + 'description' => 'The time when the daily peak bandwidth is reached.'."\n", + 'type' => 'string', + 'example' => '1522180000000', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'The specified StartTime is invalid.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\",\\n \\"DescribeUpPeakTraffics\\": {\\n \\"DescribeUpPeakTraffic\\": [\\n {\\n \\"QueryTime\\": \\"1522080000000\\",\\n \\"BandWidth\\": \\"777.2727083333333\\",\\n \\"StatName\\": \\"push-live.aliyuncs.com\\",\\n \\"PeakTime\\": \\"1522180000000\\"\\n }\\n ]\\n }\\n}","type":"json"}]', + 'title' => 'DescribeUpBpsPeakData', + 'description' => 'You can call this operation to query the daily peak inbound bandwidth.'."\n" + ."\n" + .'## [](#qps-)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 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", + ], + 'DescribeUpBpsPeakOfLine' => [ + 'summary' => 'Queries the daily peak inbound bandwidth of a leased line.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The start time of stream pulling. The time must be in UTC. The maximum time range that can be specified by StartTime and EndTime is 30 days.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2017-10-10T20:00:00Z'."\n", + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end time of stream pulling. The time must be in UTC. The end time must be later than the start time. The maximum time range that can be specified by StartTime and EndTime is 30 days.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2017-10-10T21:00:00Z'."\n", + ], + ], + [ + 'name' => 'Line', + 'in' => 'query', + 'schema' => [ + 'description' => 'The leased line. Valid values: integers from 0 to 9.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '3', + 'enum' => [ + '0', + '1', + '2', + '3', + '4', + '5', + '6', + '7', + '8', + '9', + ], + ], + ], + [ + 'name' => 'DomainSwitch', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to collect statistics at the domain name level. Valid values:'."\n" + ."\n" + .'* on: collects statistics at the domain name level.'."\n" + .'* off (default): collects statistics at the user level.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + 'enum' => [ + 'on', + 'off', + ], + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The accelerated domain name.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'example.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The bandwidth information.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '6CFDE7AB-571A-14EA-B072-989FF753****', + ], + 'DescribeUpBpsPeakOfLines' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DescribeUpBpsPeakOfLine' => [ + 'description' => 'The information about peak inbound bandwidth of the leased line on each day.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about peak inbound bandwidth of the leased line on each day.'."\n", + 'type' => 'object', + 'properties' => [ + 'QueryTime' => [ + 'description' => 'The time queried on the day.'."\n", + 'type' => 'string', + 'example' => '1522080000000'."\n", + ], + 'StatName' => [ + 'description' => 'The category of the statistical data. If the DomainSwitch parameter is set to on, the value of this parameter is the domain name. If the DomainSwitch parameter is set to off or not specified, the value of this parameter is the user ID.'."\n", + 'type' => 'string', + 'example' => 'push-live.aliyuncs.com'."\n", + ], + 'BandWidth' => [ + 'description' => 'The daily peak inbound bandwidth of the leased line.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '777.2727083333333'."\n", + ], + 'PeakTime' => [ + 'description' => 'The time when the daily peak bandwidth of the leased line is reached.'."\n", + 'type' => 'string', + 'example' => '1522180000000', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 401 => [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6CFDE7AB-571A-14EA-B072-989FF753****\\",\\n \\"DescribeUpBpsPeakOfLines\\": {\\n \\"DescribeUpBpsPeakOfLine\\": [\\n {\\n \\"QueryTime\\": \\"1522080000000\\\\n\\",\\n \\"StatName\\": \\"push-live.aliyuncs.com\\",\\n \\"BandWidth\\": 777.2727083333333,\\n \\"PeakTime\\": \\"1522180000000\\"\\n }\\n ]\\n }\\n}","type":"json"}]', + 'title' => 'DescribeUpBpsPeakOfLine', + 'description' => 'You can call this operation to query the daily peak inbound bandwidth of a leased line.'."\n" + ."\n" + .'## [](#qps-)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 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", + ], + 'DescribeUpPeakPublishStreamData' => [ + 'summary' => 'Queries the daily peak number of concurrently ingested streams.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The start time of stream pulling. The time must be in UTC. The maximum time range that can be specified by StartTime and EndTime is 30 days.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2017-10-10T20:00:00Z'."\n", + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end time of stream pulling. The time must be in UTC. The end time must be later than the start time. The maximum time range that can be specified by StartTime and EndTime is 30 days.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2017-10-10T21:00:00Z'."\n", + ], + ], + [ + 'name' => 'DomainSwitch', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to collect statistics at the domain name level. Valid values:'."\n" + ."\n" + .'* on: collects statistics at the domain name level.'."\n" + .'* off (default): collects statistics at the user level.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + 'enum' => [ + 'on', + 'off', + ], + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The accelerated domain name.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'example.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The stream ingest information.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '6CFDE7AB-571A-14EA-B072-989FF753****'."\n", + ], + 'DescribeUpPeakPublishStreamDatas' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DescribeUpPeakPublishStreamData' => [ + 'description' => 'The information about the peak number of concurrently ingested streams on each day.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the peak number of concurrently ingested streams on each day.'."\n", + 'type' => 'object', + 'properties' => [ + 'QueryTime' => [ + 'description' => 'The time queried on the day.'."\n", + 'type' => 'string', + 'example' => '1522080000000'."\n", + ], + 'BandWidth' => [ + 'description' => 'The daily peak inbound bandwidth.'."\n", + 'type' => 'string', + 'example' => '777.2727083333333', + ], + 'StatName' => [ + 'description' => 'The category of the statistical data. If the DomainSwitch parameter is set to on, the value of this parameter is the domain name. If the DomainSwitch parameter is set to off or not specified, the value of this parameter is the user ID.'."\n", + 'type' => 'string', + 'example' => 'push-live.aliyuncs.com', + ], + 'PeakTime' => [ + 'description' => 'The time when the daily peak number of concurrently ingested streams is reached.'."\n", + 'type' => 'string', + 'example' => '1522180000000'."\n", + ], + 'PublishStreamNum' => [ + 'description' => 'The daily peak number of concurrently ingested streams.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '36', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidStartTime.Malformed', + 'errorMessage' => 'The specified StartTime is invalid.', + ], + [ + 'errorCode' => 'InvalidEndTime.Malformed', + 'errorMessage' => 'Specified EndTime is malformed.', + ], + ], + [ + [ + 'errorCode' => 'IllegalOperation', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 404 => [ + [ + 'errorCode' => 'InvalidCaster.NotFound', + 'errorMessage' => '%s, please check and try again later.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6CFDE7AB-571A-14EA-B072-989FF753****\\\\n\\",\\n \\"DescribeUpPeakPublishStreamDatas\\": {\\n \\"DescribeUpPeakPublishStreamData\\": [\\n {\\n \\"QueryTime\\": \\"1522080000000\\\\n\\",\\n \\"BandWidth\\": \\"777.2727083333333\\",\\n \\"StatName\\": \\"push-live.aliyuncs.com\\",\\n \\"PeakTime\\": \\"1522180000000\\\\n\\",\\n \\"PublishStreamNum\\": 36\\n }\\n ]\\n }\\n}","type":"json"}]', + 'title' => 'DescribeUpPeakPublishStreamData', + 'description' => 'You can call this operation to query the daily peak number of concurrently ingested streams.'."\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. For more information, see [QPS limits](~~343507~~).'."\n", + ], + 'DescribeDomainWithIntegrity' => [ + 'summary' => 'Obtains domain integrity.', + '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' => [ + 'type' => 'string', + 'required' => false, + 'default' => 'cn-shanghai', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard. The time must be in UTC.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2017-10-10T20:00:00Z', + ], + ], + [ + '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. The time must be in UTC.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2017-10-10T20:00:00Z', + ], + ], + [ + 'name' => 'Integrity', + 'in' => 'query', + 'schema' => [ + 'description' => 'The integrity.'."\n", + 'type' => 'number', + 'format' => 'float', + 'required' => true, + 'example' => '0.95', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', + ], + 'Content' => [ + 'description' => 'The verification information.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The verification information.'."\n", + 'type' => 'object', + 'properties' => [ + 'Name' => [ + 'description' => 'The table name.'."\n", + 'type' => 'string', + 'example' => '1637825700000', + ], + 'Points' => [ + 'description' => 'The subpoints.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The value of the column.'."\n", + 'type' => 'string', + 'example' => '1637825700000', + ], + ], + 'Columns' => [ + 'description' => 'The column names.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The column name.'."\n", + 'type' => 'string', + 'example' => 'time', + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\",\\n \\"Content\\": [\\n {\\n \\"Name\\": \\"1637825700000\\",\\n \\"Points\\": [\\n \\"1637825700000\\"\\n ],\\n \\"Columns\\": [\\n \\"time\\"\\n ]\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeDomainWithIntegrity', + 'description' => 'You can call this operation to obtain domain integrity.'."\n" + ."\n" + .'## [](#qps-)QPS limits'."\n" + ."\n" + .'You can call this API 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. For more information, see [QPS limits](~~343507~~).'."\n", + ], + 'DescribeToutiaoLivePlay' => [ + 'summary' => 'Queries the stream pulling information about a live stream of a headline.', + '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', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard. The time must be in UTC.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2017-10-10T20:00:00Z', + ], + ], + [ + '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 be greater than 10 hours. If you do not configure StartTime and EndTime, the data within the previous hour is queried. Specify the time in the ISO 8601 standard. The time must be in UTC.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2017-10-10T20:00:00Z', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'Stream', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveStream****', + ], + ], + [ + 'name' => 'App', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Description' => [ + 'description' => 'The description of the response status.'."\n", + 'type' => 'string', + 'example' => 'OK', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', + ], + 'Content' => [ + 'description' => 'The information about the live stream.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the live stream.'."\n", + 'type' => 'object', + 'properties' => [ + 'Domain' => [ + 'description' => 'The streaming domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'Bandwidth' => [ + 'description' => 'The bandwidth. Unit: Mbit/s.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '0.0801239013671875', + ], + 'StreamName' => [ + 'description' => 'The name of the live stream.'."\n", + 'type' => 'string', + 'example' => 'liveStream****', + ], + 'App' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'example' => 'liveApp****'."\n", + ], + 'PlayNum' => [ + 'description' => 'The number of viewers.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '452', + ], + 'Timestamp' => [ + 'description' => 'The timestamp.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1625484600', + ], + 'CdnName' => [ + 'description' => 'The Content Delivery Network (CDN) name.'."\n", + 'type' => 'string', + 'example' => 'ali', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Description\\": \\"OK\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\",\\n \\"Content\\": [\\n {\\n \\"Domain\\": \\"example.com\\",\\n \\"Bandwidth\\": 0.0801239013671875,\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"App\\": \\"liveApp****\\\\n\\",\\n \\"PlayNum\\": 452,\\n \\"Timestamp\\": 1625484600,\\n \\"CdnName\\": \\"ali\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeToutiaoLivePlay', + 'description' => 'You can call this operation to query the stream pulling information about a live stream of a headline.'."\n" + ."\n" + .'## [](#qps-)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 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", + ], + 'DescribeToutiaoLivePublish' => [ + 'summary' => 'Queries the ingest information of a specified live stream that is ingested to Toutiao.', + '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', + ], + ], + [ + '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.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2017-10-10T20:00:00Z'."\n", + ], + ], + [ + '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. The end time must be later than the start time. The maximum time range that can be specified is 10 hours. If you specify neither StartTime nor EndTime, the data of the last hour is queried by default.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2017-10-10T21:00:00Z'."\n", + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ingest domain.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'Stream', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the ingested stream.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveStream****', + ], + ], + [ + 'name' => 'App', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'liveApp****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Description' => [ + 'description' => 'The description of the response status.'."\n", + 'type' => 'string', + 'example' => 'OK'."\n", + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', + ], + 'Content' => [ + 'description' => 'The stream ingest details.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The stream ingest details.'."\n", + 'type' => 'object', + 'properties' => [ + 'Domain' => [ + 'description' => 'The ingest domain.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'StreamName' => [ + 'description' => 'The name of the ingested stream.'."\n", + 'type' => 'string', + 'example' => 'liveStream****', + ], + 'App' => [ + 'description' => 'The name of the application to which the live stream belongs.'."\n", + 'type' => 'string', + 'example' => 'liveApp****'."\n", + ], + 'Fps' => [ + 'description' => 'The frame rate.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '74.4', + ], + 'Flr' => [ + 'description' => 'The number of dropped frames.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '0', + ], + 'Timestamp' => [ + 'description' => 'The timestamp.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1624358970', + ], + 'Bitrate' => [ + 'description' => 'The bitrate. Unit: bit/s.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '261587', + ], + 'BwDiff' => [ + 'description' => 'The bitrate difference.'."\n", + 'type' => 'number', + 'format' => 'float', + 'example' => '0', + ], + 'CdnName' => [ + 'description' => 'The name of the content delivery network (CDN) service.'."\n", + 'type' => 'string', + 'example' => 'ali', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Description\\": \\"OK\\\\n\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\",\\n \\"Content\\": [\\n {\\n \\"Domain\\": \\"example.com\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"App\\": \\"liveApp****\\\\n\\",\\n \\"Fps\\": 74.4,\\n \\"Flr\\": 0,\\n \\"Timestamp\\": 1624358970,\\n \\"Bitrate\\": 261587,\\n \\"BwDiff\\": 0,\\n \\"CdnName\\": \\"ali\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeToutiaoLivePublish', + 'description' => 'You can call this operation to query the ingest information of a specified live stream that is ingested to Toutiao.'."\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", + ], + 'DescribeRtcCloudTranscode' => [ + 'summary' => '查询云端转码任务', + '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' => '', + 'type' => 'string', + 'required' => true, + 'example' => '********-7074-****-9ef5-85c19a4*****', + ], + ], + [ + 'name' => 'TaskId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => '******73-8501-****-8ac1-72295a******', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => '', + 'type' => 'string', + 'example' => '******3B-0E1A-586A-AC29-742247******', + ], + 'TaskInfo' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'AppId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '********-7074-****-9ef5-85c19a4*****', + ], + 'ChannelId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'myChannel', + ], + 'TaskId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '******73-8501-****-8ac1-72295a******', + ], + 'Status' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'RUNNING', + ], + 'InputParam' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'SingleSubUserParam' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'UserId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'userA', + ], + 'StreamType' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + ], + 'SourceType' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + ], + ], + ], + ], + ], + 'OutputParams' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'ChannelId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'myChannel', + ], + 'UserId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'userA_360p', + ], + 'UserToken' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'eyJhcHBpZCI********', + ], + 'TranscodeTemplate' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'lhd', + ], + ], + ], + ], + 'MaxIdleTime' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '600', + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter%s', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'MissingParameter%s', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'TooManyRequests', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'NotFound%s', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + '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"}]', + ], + 'StartRtcCloudTranscode' => [ + 'summary' => '创建云端转码任务', + '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' => '', + 'type' => 'string', + 'required' => true, + 'example' => '********-7074-****-9ef5-85c19a4*****', + ], + ], + [ + 'name' => 'ChannelId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'myChannel', + ], + ], + [ + 'name' => 'InputParam', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'SingleSubUserParam' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'UserId' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'userA', + ], + 'StreamType' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '0', + ], + 'SourceType' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '0', + ], + ], + 'required' => true, + ], + ], + 'required' => true, + ], + ], + [ + 'name' => 'OutputParams', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'ChannelId' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'myChannel', + ], + 'UserId' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'userA_360p', + ], + 'UserToken' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'eyJhcHBpZCI********', + ], + 'TranscodeTemplate' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'lhd', + ], + ], + 'required' => false, + ], + 'required' => true, + ], + ], + [ + 'name' => 'MaxIdleTime', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '600', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => '', + 'type' => 'string', + 'example' => '******3B-0E1A-586A-AC29-742247******', + ], + 'TaskId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '******73-8501-****-8ac1-72295a******', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter%s', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'MissingParameter%s', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'TooManyRequests', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'NotFound%s', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\",\\n \\"TaskId\\": \\"******73-8501-****-8ac1-72295a******\\"\\n}","type":"json"}]', + ], + 'StopRtcCloudTranscode' => [ + 'summary' => '停止云端转码任务', + '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' => '', + 'type' => 'string', + 'required' => true, + 'example' => '********-7074-****-9ef5-85c19a4*****', + ], + ], + [ + 'name' => 'TaskId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => '******73-8501-****-8ac1-72295a******', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => '', + 'type' => 'string', + 'example' => '******3B-0E1A-586A-AC29-742247******', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter%s', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'MissingParameter%s', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'TooManyRequests', + 'errorMessage' => '%s.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => '%s.', + ], + ], + [ + [ + 'errorCode' => 'NotFound%s', + 'errorMessage' => '%s.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => '%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","type":"json"}]', + ], + ], + 'endpoints' => [ + [ + 'regionId' => 'cn-qingdao', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'cn-beijing', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'cn-shanghai', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'cn-shenzhen', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'ap-southeast-5', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'ap-northeast-1', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'ap-northeast-2-pop', + 'endpoint' => 'live.ap-southeast-1.aliyuncs.com', + ], + [ + 'regionId' => 'cn-beijing-finance-pop', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'cn-beijing-gov-1', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'cn-beijing-nu16-b01', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'cn-edge-1', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'cn-fujian', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'cn-haidian-cm12-c01', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'cn-hangzhou-bj-b01', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'cn-hangzhou-internal-prod-1', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'cn-hangzhou-internal-test-1', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'cn-hangzhou-internal-test-2', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'cn-hangzhou-internal-test-3', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'cn-hangzhou-test-306', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'cn-hongkong-finance-pop', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'cn-huhehaote-nebula-1', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'cn-north-2-gov-1', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'cn-qingdao-nebula', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'cn-shanghai-et15-b01', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'cn-shanghai-et2-b01', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'cn-shanghai-inner', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'cn-shanghai-internal-test-1', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'cn-shenzhen-inner', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'cn-shenzhen-st4-d01', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'cn-shenzhen-su18-b01', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'cn-wuhan', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'cn-yushanfang', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'cn-zhangbei', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'cn-zhangbei-na61-b01', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'cn-zhangjiakou-na62-a01', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'cn-zhengzhou-nebula-1', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'eu-west-1-oxs', + 'endpoint' => 'live.ap-southeast-1.aliyuncs.com', + ], + [ + 'regionId' => 'rus-west-1-pop', + 'endpoint' => 'live.ap-southeast-1.aliyuncs.com', + ], + [ + 'regionId' => 'me-central-1', + 'endpoint' => 'live.aliyuncs.com', + ], + [ + 'regionId' => 'ap-southeast-1', + 'endpoint' => 'live.ap-southeast-1.aliyuncs.com', + ], + [ + 'regionId' => 'eu-central-1', + 'endpoint' => 'live.eu-central-1.aliyuncs.com', + ], + ], +]; -- cgit v1.2.3