'1.0',
'info' => ['style' => 'RPC', 'product' => 'rtc', 'version' => '2018-01-11'],
'directories' => [
[
'children' => ['DescribeAppKey'],
'type' => 'directory',
'title' => 'Application management',
],
[
'children' => ['CreateAppLayout', 'ModifyAppLayout', 'DeleteAppLayout', 'DescribeAppLayouts', 'DescribeSystemLayoutList'],
'type' => 'directory',
'title' => 'Layout',
],
[
'children' => ['DescribeAppCallStatus', 'ModifyAppCallbackStatus', 'DescribeAllCallback', 'DescribeCallbacks', 'DescribeAppCallbackSecretKey', 'ModifyCallbackMeta', 'StartCategoryCallback', 'StopCategoryCallback'],
'type' => 'directory',
'title' => 'Callback management',
],
[
'children' => ['DescribeChannels', 'DescribeChannelAllUsers', 'DescribeChannelUser', 'DescribeChannel'],
'type' => 'directory',
'title' => 'Channel management',
],
[
'children' => [
[
'children' => ['DescribeAppRecordStatus', 'ModifyAppRecordStatus', 'CreateAppRecordTemplate', 'ModifyAppRecordTemplate', 'DeleteAppRecordTemplate', 'DescribeAppRecordTemplates'],
'type' => 'directory',
'title' => 'Recording template management',
],
[
'children' => ['DescribeCloudRecordStatus', 'DescribeAppRecordingFiles', 'StartCloudRecord', 'UpdateCloudRecord', 'StopCloudRecord'],
'type' => 'directory',
'title' => 'Cloud recording operations',
],
],
'type' => 'directory',
'title' => 'Cloud recording',
],
[
'children' => [
[
'children' => ['DescribeAppLiveStreamStatus', 'ModifyAppLiveStreamStatus', 'CreateAppStreamingOutTemplate', 'ModifyAppStreamingOutTemplate', 'DeleteAppStreamingOutTemplate', 'DescribeAppStreamingOutTemplates'],
'type' => 'directory',
'title' => 'Streaming template management',
],
[
'children' => ['DescribeStreamingOutStatus', 'StartStreamingOut', 'UpdateStreamingOut', 'StopStreamingOut'],
'type' => 'directory',
'title' => 'Relay streaming operations',
],
],
'type' => 'directory',
'title' => 'Relay streaming',
],
[
'children' => [
[
'children' => ['CreateCloudNotePhrases', 'ModifyCloudNotePhrases', 'DescribeCloudNotePhrases', 'DeleteCloudNotePhrases'],
'type' => 'directory',
'title' => 'Hot word list',
],
'StartCloudNote',
'StopCloudNote',
'DescribeCloudNotes',
],
'type' => 'directory',
'title' => 'Minutes',
],
[
'children' => [
[
'children' => ['DescribeAppAgentFunctionStatus', 'ModifyAppAgentFunctionStatus', 'ModifyAppAgentTemplate', 'DescribeAppAgentTemplates', 'DeleteAppAgentTemplate', 'CreateAppAgentTemplate'],
'type' => 'directory',
'title' => 'Agent template management',
],
[
'children' => ['StartAgent', 'NotifyAgent', 'StopAgent'],
'type' => 'directory',
'title' => 'Agent operations',
],
],
'type' => 'directory',
'title' => 'Agent',
],
[
'children' => [
[
'children' => ['DescribeAppViewStatus', 'ModifyAppViewStatus', 'CreateAppViewTemplate', 'ModifyAppViewTemplate', 'DescribeAppViewTemplates', 'DeleteAppViewTemplate'],
'type' => 'directory',
'title' => 'Stream mixing template management',
],
[
'children' => ['RtcSipInviteMember', 'RtcCancelSipInvite', 'StartView', 'StopView', 'RtcSipMute', 'ModifyViewLayout', 'ModifyStreamingProperty'],
'type' => 'directory',
'title' => 'Task operations',
],
],
'type' => 'directory',
'title' => 'SIP',
],
[
'children' => [
[
'children' => ['DescribeCallList', 'DescribeCall', 'DescribePubUserListBySubUser', 'DescribeEndPointEventList', 'DescribeEndPointMetricData', 'DescribeQoeMetricData'],
'type' => 'directory',
'title' => 'Communication monitoring',
],
[
'children' => ['DescribeChannelOverallData', 'DescribeChannelDistributionStatData', 'DescribeChannelAreaDistributionStatData', 'DescribeChannelTopPubUserList', 'DescribeChannelUserMetrics'],
'type' => 'directory',
'title' => 'Channel data',
],
[
'children' => ['DescribeUsageOverallData', 'DescribeUsageDistributionStatData', 'DescribeUsageAreaDistributionStatData', 'DescribeUsageOsSdkVersionDistributionStatData'],
'type' => 'directory',
'title' => 'Usage statistics',
],
[
'children' => ['DescribeQualityOverallData', 'DescribeQualityDistributionStatData', 'DescribeQualityAreaDistributionStatData', 'DescribeQualityOsSdkVersionDistributionStatData'],
'type' => 'directory',
'title' => 'Quality statistics',
],
[
'children' => ['DescribeFaultDiagnosisOverallData', 'DescribeFaultDiagnosisFactorDistributionStat', 'DescribeFaultDiagnosisUserList', 'DescribeFaultDiagnosisUserDetail'],
'type' => 'directory',
'title' => 'Anomaly diagnostics',
],
],
'type' => 'directory',
'title' => 'Data service',
],
[
'children' => [
[
'children' => ['CreateEventSubscribe', 'DeleteEventSubscribe'],
'type' => 'directory',
'title' => 'Event callback (legacy)',
],
[
'children' => ['CreateAutoLiveStreamRule', 'DeleteAutoLiveStreamRule', 'DisableAutoLiveStreamRule', 'EnableAutoLiveStreamRule', 'UpdateAutoLiveStreamRule', 'DescribeAutoLiveStreamRule'],
'type' => 'directory',
'title' => 'Automatic relay single-stream forwarding rules (legacy)',
],
[
'children' => ['DescribeUserInfoInChannel'],
'type' => 'directory',
'title' => 'Channel management (legacy)',
],
[
'children' => ['AddRecordTemplate', 'DeleteRecordTemplate', 'UpdateRecordTemplate', 'StartRecordTask', 'StopRecordTask', 'UpdateRecordTask', 'DescribeRecordTemplates', 'DescribeRecordFiles'],
'type' => 'directory',
'title' => 'Cloud recording (legacy)',
],
[
'children' => ['StartMPUTask', 'StopMPUTask', 'UpdateMPUTask'],
'type' => 'directory',
'title' => 'Relay streaming (legacy)',
],
[
'children' => ['CreateMPULayout', 'DeleteMPULayout', 'ModifyMPULayout', 'DescribeMPULayoutInfoList'],
'type' => 'directory',
'title' => 'Layout management (legacy)',
],
[
'children' => ['DescribeRtcDurationData', 'DescribeRtcUserCntData', 'DescribeRtcPeakChannelCntData', 'DescribeRtcChannelList', 'DescribeRtcChannelMetric'],
'type' => 'directory',
'title' => 'Data service (legacy)',
],
],
'type' => 'directory',
'title' => 'RTC (legacy)',
],
[
'children' => ['DeleteChannel', 'DescribeApps', 'DescribeChannelParticipants', 'DescribeChannelUsers', 'GetAgent', 'GetMPUTaskStatus', 'ModifyApp', 'RemoveTerminals', 'RemoveUsers', 'StopChannel', 'UpdateAgent'],
'title' => 'Others',
'type' => 'directory',
],
],
'components' => [
'schemas' => [],
],
'apis' => [
'AddRecordTemplate' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => ['operationType' => 'create'],
'parameters' => [
[
'name' => 'LayoutIds',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'List of layout ID data.',
'type' => 'array',
'items' => ['description' => 'Layout ID data. You can specify multiple layouts in a single task, and the system will switch among them based on the number of users in the channel at the time. N denotes the array index, ranging from 1 to 16, meaning that up to 16 layouts can be set simultaneously in a single bypass task. For details, see [Layout Description](~~109587~~).'."\n"
.'> - N must start from 1 and increase sequentially without gaps.'."\n"
.'- The number of panes for the configured layouts must not be the same. For example, layout IDs 2 and 3 on the official website cannot be set at the same time, because both have the same number of panes (2).', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '2', 'title' => ''],
'required' => true,
'example' => '2',
'maxItems' => 64,
'title' => '',
],
],
[
'name' => 'Formats',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'List of recording file formats.',
'type' => 'array',
'items' => ['description' => 'Recording file format. Currently, only the following file formats are supported: **m3u8, mp4, flv**.'."\n"
."\n"
.'> File formats only support lowercase.', 'type' => 'string', 'required' => false, 'example' => 'mp4', 'title' => ''],
'required' => true,
'example' => 'mp4',
'maxItems' => 3,
'title' => '',
],
],
[
'name' => 'Backgrounds',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'List of background images.',
'type' => 'array',
'items' => [
'description' => 'Background image details.',
'type' => 'object',
'properties' => [
'Width' => ['description' => 'Width of the background image pane, as a normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.2456', 'title' => ''],
'Height' => ['description' => 'Height of the background image pane, as a normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.2456', 'title' => ''],
'Y' => ['description' => 'Y coordinate of the background image, as a normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
'Url' => ['description' => 'HTTP or HTTPS address of the background image.', 'type' => 'string', 'required' => false, 'example' => 'https://www.example.com/image.jpg', 'title' => ''],
'Display' => ['description' => 'Background image display. Values:'."\n"
."\n"
.'- **0** (None): Not displayed.'."\n"
.'- **1** (Always): Always displayed.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'ZOrder' => ['description' => 'Z-order of the background image. 0 is the bottom layer, layer 1 is above layer 0, and so on.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'X' => ['description' => 'X coordinate of the background image, as a normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 1,
'title' => '',
'example' => '',
],
],
[
'name' => 'Watermarks',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'List of watermarks.',
'type' => 'array',
'items' => [
'description' => 'Watermark details.',
'type' => 'object',
'properties' => [
'Alpha' => ['description' => 'Watermark transparency. 0.0 means transparent, 1.0 means fully opaque.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0', 'title' => ''],
'Width' => ['description' => 'Width of the watermark pane, as a normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.2456', 'title' => ''],
'Height' => ['description' => 'Height of the watermark pane, as a normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.2456', 'title' => ''],
'Y' => ['description' => 'Y coordinate of the watermark, as a normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
'Url' => ['description' => 'HTTP or HTTPS address of the watermark.', 'type' => 'string', 'required' => false, 'example' => 'https://www.example.com/image.jpg', 'title' => ''],
'Display' => ['description' => 'Watermark display. Values:'."\n"
."\n"
.'- **0** (None): Not displayed.'."\n"
.'- **1** (Always): Always displayed.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'ZOrder' => ['description' => 'Z-order of the watermark. 0 is the bottom layer, layer 1 is above layer 0, and so on.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'X' => ['description' => 'X coordinate of the watermark, as a normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 1,
'title' => '',
'example' => '',
],
],
[
'name' => 'ClockWidgets',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'List of clocks.',
'type' => 'array',
'items' => [
'description' => 'Clock details.',
'type' => 'object',
'properties' => [
'FontType' => ['description' => 'Clock font type. Values:'."\n"
."\n"
.'- **0** (default): NOTO_SERIF_CJKSC_REGULAR'."\n"
.'- **1**: ALIBABA_PUHUITI_REGULAR'."\n"
.'- **2**: ALIBABA_PUHUITI_BOLD'."\n"
.'- **3**: ALIBABA_PUHUITI_Heavy'."\n"
.'- **4**: ALIBABA_PUHUITI_LIGHT'."\n"
.'- **5**: ALIBABA_PUHUITI_MEDIUM', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'FontColor' => ['description' => 'Clock text color (RGB).'."\n"
."\n"
.'The calculation formula is `R + G × 256 + B × 65536`. R (red), G (green), and B (blue) each range from **0** to **255**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'Y' => ['description' => 'Y coordinate of the clock, as a normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
'ZOrder' => ['description' => 'Z-order of the clock. 0 is the bottom layer, layer 1 is above layer 0, and so on.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'X' => ['description' => 'X coordinate of the clock, as a normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
'FontSize' => ['description' => 'Clock font size. Valid range: **(0, 72]**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 1,
'title' => '',
'example' => '',
],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'Application ID. Created and queried via the console. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'yourAppId', 'title' => ''],
],
[
'name' => 'Name',
'in' => 'query',
'schema' => ['description' => 'Recording configuration template name.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '录制模板', 'title' => ''],
],
[
'name' => 'TaskProfile',
'in' => 'query',
'schema' => ['description' => 'Task billing configuration. Charges vary based on your settings. See the TaskProfile enumeration values below.'."\n"
."\n"
.'> - The resolution of the encoding option MediaEncode must be less than or equal to the resolution of TaskProfile.'."\n"
.'- The maximum number of panes in a layout must be less than or equal to the number of input streams of TaskProfile.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '4IN_1080P', 'title' => ''],
],
[
'name' => 'MediaEncode',
'in' => 'query',
'schema' => ['description' => 'Encoding option. See the MediaEncode enumeration values below.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'example' => '20', 'title' => ''],
],
[
'name' => 'BackgroundColor',
'in' => 'query',
'schema' => ['description' => 'Background color RGB. The default is 0 (black). The calculation formula is R + G × 256 + B × 65536. R (red), G (green), and B (blue) each range from **0 to 255**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
],
[
'name' => 'OssBucket',
'in' => 'query',
'schema' => ['description' => 'OSS bucket where the recording files are stored.'."\n"
."\n"
.'> Currently, only OSS buckets in the Shanghai region are supported.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'rtc-record-oss', 'title' => ''],
],
[
'name' => 'OssFilePrefix',
'in' => 'query',
'schema' => ['description' => 'Naming rule for recording files.'."\n"
."\n"
.'> To ensure that recording file names are unique, the current naming rule is record/{AppId}/{ChannelId_TaskId}/{EscapedStartTime}_{EscapedEndTime}.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'record/{AppId}/{ChannelId_TaskId}/{EscapedStartTime}_{EscapedEndTime}', 'title' => ''],
],
[
'name' => 'FileSplitInterval',
'in' => 'query',
'schema' => ['description' => 'Recording file split duration (greater than or equal to 1800). Unit: seconds.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'example' => '1800', 'title' => ''],
],
[
'name' => 'DelayStopTime',
'in' => 'query',
'schema' => ['description' => 'Delay time before stopping recording. Unit: seconds. Default value: **180** seconds.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '86400', 'minimum' => '5', 'default' => '180', 'example' => '180', 'title' => ''],
],
[
'name' => 'MnsQueue',
'in' => 'query',
'schema' => ['description' => 'Message queue for recording event callbacks.'."\n"
."\n"
.'> One and only one of this parameter and HttpCallbackUrl must be provided; you cannot provide both or neither.', 'type' => 'string', 'required' => false, 'example' => 'record-callback-queue', 'title' => ''],
],
[
'name' => 'HttpCallbackUrl',
'in' => 'query',
'schema' => ['description' => 'HTTP callback URL for recording events.'."\n"
.'> One and only one of this parameter and MnsQueue must be provided; you cannot provide both or neither.', 'type' => 'string', 'required' => false, 'example' => 'http://example.com/callback', 'title' => ''],
],
[
'name' => 'EnableM3u8DateTime',
'in' => 'query',
'schema' => ['description' => 'Whether the recorded m3u8 file needs to include the timestamp of the ts file.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
],
[
'name' => 'OssEndpoint',
'in' => 'query',
'schema' => ['type' => 'string', 'description' => '', 'required' => false, 'title' => '', 'example' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'Returned result.',
'type' => 'object',
'properties' => [
'TemplateId' => ['description' => 'Recording configuration template ID.'."\n", 'type' => 'string', 'example' => '76dasgb****', 'title' => ''],
'RequestId' => ['description' => 'The request ID for this task.', 'type' => 'string', 'example' => '760bad53276431c499e30dc36f6b26be', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'SLR.NoPermission', 'errorMessage' => '%s', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TemplateId\\": \\"76dasgb****\\",\\n \\"RequestId\\": \\"760bad53276431c499e30dc36f6b26be\\"\\n}","type":"json"}]',
'title' => 'Add Recording Configuration Template',
'summary' => 'Calls AddRecordTemplate to add a recording configuration template.',
'description' => '# Usage Notes'."\n"
.'This interface is used to add a recording configuration template. For example, when adding a recording configuration template, you can configure parameters such as recording specifications and encoding options.'."\n"
.'# QPS Limits'."\n"
.'The single-user QPS limit for this interface is 100 calls per second. Exceeding this limit will result in throttling, which may affect your business. Please call the interface reasonably. For more information, see [QPS Limits](~~341645~~).',
'requestParamsDescription' => ' The **MediaEncode** enumeration values are as follows.'."\n"
."\n"
.'| ID | Width | Height | Bitrate (Kbps) | Frame Rate (FPS) '."\n"
.'| ----------- | ----- | ------ | ----------- | --- '."\n"
.'| 0 | 0 | 0 | 64 | 0 '."\n"
.'| 1 | 640 | 360 | 500 | 15 '."\n"
.'| 54 | 360 | 640 | 500 | 30 '."\n"
.'| 53 | 360 | 640 | 500 | 15 '."\n"
.'| 52 | 640 | 360 | 500 | 30 '."\n"
.'| 10 | 960 | 540 | 700 | 24 '."\n"
.'| 20 | 1280 | 720 | 1024 | 25 '."\n"
.'| 22 | 720 | 1280 | 1024 | 30 '."\n"
.'| 23 | 800 | 600 | 1024 | 30 '."\n"
.'| 30 | 1920 | 1080 | 2048 | 30 '."\n"
.'| 31 | 1080 | 1920 | 2048 | 30 '."\n"
.'| 24 | 750 | 780 | 1024 | 30 '."\n"
.'| 25 | 750 | 540 | 700 | 30 '."\n"
.'| 26 | 720 | 1280 | 2048 | 30 '."\n"
.'| 27 | 1280 | 720 | 2048 | 30 '."\n"
.'| 28 | 1280 | 720 | 3096 | 30 '."\n"
.'| 32 | 1024 | 768 | 1024 | 24 '."\n"
.'| 33 | 1280 | 960 | 1024 | 24 '."\n"
.'| 34 | 1024 | 768 | 2048 | 24 '."\n"
.'| 35 | 1280 | 960 | 2048 | 24 '."\n"
.'| 36 | 1280 | 720 | 1024 | 24 '."\n"
.'| 37 | 1280 | 720 | 2048 | 24 '."\n"
.'| 38 | 540 | 960 | 750 | 15 '."\n"
.'| 39 | 540 | 960 | 1500 | 30 '."\n"
.'| 40 | 1280 | 720 | 1200 | 15 '."\n"
.'| 41 | 720 | 1280 | 1200 | 15 '."\n"
.'| 42 | 720 | 1280 | 1500 | 15 '."\n"
.'| 43 | 540 | 960 | 1200 | 15 '."\n"
."\n\n"
.'**TaskProfile** enumeration values:'."\n"
."\n"
.'> Mixed_Audio (audio only) does not limit the maximum number of input streams. For other specifications, the maximum number of input streams is determined by the first digit. For example, 4IN_720P means a maximum of 4 input streams is supported.'."\n"
."\n"
.'| - | 1080P | 720P | 360P | Audio '."\n"
.'| ----- | ------- | ----- | ------ | ------ '."\n"
.'| 1IN | 1IN_1080P | 1IN_720P | 1IN_360P | None'."\n"
.'| 2IN | 2IN_1080P | 2IN_720P | 2IN_360P | None '."\n"
.'| 4IN | 4IN_1080P | 4IN_720P | 4IN_360P | None'."\n"
.'| 9IN | 9IN_1080P | 9IN_720P | 9IN_360P | None'."\n"
.'| 12IN | 12IN_1080P | 12IN_720P | 12IN_360P | None'."\n"
.'| 16IN | 16IN_1080P | 16IN_720P | 16IN_360P | None'."\n"
.'| Mixed| None | None | None | Mixed_Audio'."\n",
'responseParamsDescription' => ' ',
'extraInfo' => '## Special Error Codes'."\n"
."\n"
.'|Error ID|Error Code|Description|HTTP Status Code|'."\n"
.'|-----|-------|---|----------|'."\n"
.'| InternalError | The request processing has failed due to some unknown error, exception or failure. | 500 | Internal error |',
'changeSet' => [
['createdAt' => '2022-06-21T06:53:43.000Z', 'description' => 'Request parameters changed'],
],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [],
],
'CreateAppAgentTemplate' => [
'summary' => 'Create an application agent template',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', 'tenantRelevance' => 'tenant'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. You can find this ID in the console. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'ac7N****', 'title' => ''],
],
[
'name' => 'Name',
'in' => 'query',
'schema' => ['description' => 'The template name.', 'type' => 'string', 'required' => true, 'example' => '智能体模版', 'maxLength' => 128, 'minLength' => 1, 'title' => ''],
],
[
'name' => 'Type',
'in' => 'query',
'schema' => [
'description' => 'The agent type.'."\n"
."\n"
.'- `1`: Voice call (default)',
'type' => 'integer',
'format' => 'int32',
'required' => false,
'example' => '1',
'default' => '1',
'enum' => ['1'],
'title' => '',
],
],
[
'name' => 'ChatMode',
'in' => 'query',
'schema' => [
'description' => 'The chat mode.'."\n"
."\n"
.'- `1`: Natural Conversation Mode (default)'."\n"
."\n"
.'- `2`: Walkie-talkie Mode',
'type' => 'integer',
'format' => 'int32',
'required' => false,
'example' => '2',
'default' => '1',
'enum' => ['1', '2'],
'title' => '',
],
],
[
'name' => 'InterruptMode',
'in' => 'query',
'schema' => [
'description' => 'The interrupt mode.'."\n"
."\n"
.'- `1`: Allows interruption (default)'."\n"
."\n"
.'- `2`: Disallows interruption',
'type' => 'integer',
'format' => 'int32',
'required' => false,
'example' => '2',
'default' => '1',
'enum' => ['1', '2'],
'title' => '',
],
],
[
'name' => 'Greeting',
'in' => 'query',
'schema' => ['description' => 'The greeting message. Maximum length: 500 characters.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '早上好,我的朋友!'],
],
[
'name' => 'AsrConfig',
'in' => 'query',
'style' => 'json',
'schema' => [
'title' => '',
'description' => 'The speech-to-text settings.',
'type' => 'object',
'properties' => [
'Name' => ['description' => 'The configuration name.', 'type' => 'string', 'required' => true, 'example' => 'STT', 'maxLength' => 128, 'minLength' => 1, 'title' => ''],
'MaxSentenceSilence' => ['description' => 'The silence duration threshold, in milliseconds (ms), for detecting the end of a sentence. Valid range: \\[200, 6000]. Default: 500.', 'type' => 'integer', 'format' => 'int32', 'example' => '300', 'default' => '500', 'title' => '', 'required' => false],
'WordWeights' => [
'title' => '',
'description' => 'A list of up to 500 hotword objects to improve recognition accuracy.',
'type' => 'array',
'items' => [
'title' => '',
'description' => 'A hotword object.',
'type' => 'object',
'properties' => [
'Word' => ['description' => 'The hotword. It must be UTF-8 encoded, contain no punctuation or special characters, and be at most 10 Chinese characters or 10 English words long. The hotword is ignored if these requirements are not met.', 'type' => 'string', 'required' => true, 'example' => '苹果', 'title' => ''],
'Lang' => ['description' => 'The language code. If not specified, the large language model (LLM) automatically detects the language.'."\n"
."\n"
.'- `zh`: Chinese'."\n"
."\n"
.'- `en`: English', 'type' => 'string', 'example' => 'zh', 'title' => '', 'required' => false],
'Weight' => ['description' => 'The weight of the hotword. Must be an integer from 1 to 5. A common value is 4. A higher weight boosts the recognition probability of the hotword but may reduce the accuracy for other words.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '4', 'default' => '4', 'title' => ''],
],
'required' => true,
'example' => '',
],
'required' => false,
'example' => '',
],
'VadConfig' => [
'description' => 'The voice activity detection (VAD) settings.',
'title' => '',
'type' => 'object',
'properties' => [
'InterruptSpeechDuration' => ['title' => '', 'description' => 'The minimum duration of human speech in milliseconds (ms) that triggers an interruption. This helps prevent accidental interruptions. Valid range: \\[0, 3000]. Default: 300.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '3000', 'minimum' => '0', 'example' => '1000', 'default' => '300', 'required' => false],
],
'required' => false,
'example' => '',
],
],
'required' => false,
'example' => '',
],
],
[
'name' => 'LlmConfig',
'in' => 'query',
'style' => 'json',
'schema' => [
'title' => '',
'description' => 'The large language model (LLM) settings.',
'type' => 'object',
'properties' => [
'Name' => ['description' => 'The configuration name.', 'type' => 'string', 'required' => true, 'example' => 'llm', 'maxLength' => 128, 'minLength' => 1, 'title' => ''],
'Vendor' => [
'description' => 'The LLM vendor. Supported vendors include Alibaba Cloud\'s Model Studio and third-party models compatible with the OpenAI API specification.',
'type' => 'string',
'required' => true,
'example' => 'thirdparty',
'default' => 'aliyun',
'enum' => ['aliyun', 'thirdparty', 'dingtalk'],
'title' => '',
],
'Url' => ['description' => 'The endpoint URL for a third-party LLM.', 'type' => 'string', 'required' => false, 'example' => 'https://llm.example.aliyuns.com', 'maxLength' => 100, 'title' => ''],
'ApiKey' => ['description' => 'The API key required by the LLM vendor.', 'type' => 'string', 'required' => true, 'example' => 'ak-1213123123132123131', 'maxLength' => 200, 'minLength' => 1, 'title' => ''],
'Temperature' => ['description' => 'The sampling temperature. A higher value makes the output more random, while a lower value makes it more deterministic. Valid range: \\[0, 2). Default: 0.7.', 'type' => 'number', 'format' => 'float', 'default' => '0.7', 'title' => '', 'required' => false, 'example' => '0.9'],
'TopP' => ['description' => 'The nucleus sampling probability. The model considers the smallest set of tokens whose cumulative probability exceeds this value. Valid range: (0, 1]. Default: 0.8.', 'type' => 'number', 'format' => 'float', 'example' => '0.8', 'default' => '0.8', 'title' => '', 'required' => false],
'MaxToken' => ['description' => 'The maximum number of tokens to generate in the output. Default: 8192.', 'type' => 'integer', 'format' => 'int32', 'default' => '8192', 'title' => '', 'required' => false, 'example' => '1024'],
'HistoryDepth' => ['description' => 'The number of previous conversation turns to provide as context for the LLM. Maximum: 100. Default: 50.', 'type' => 'integer', 'format' => 'int32', 'default' => '50', 'title' => '', 'required' => false, 'example' => '5'],
'Prompt' => ['description' => 'The system prompt for the LLM. Maximum length: 5000 characters.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '你是一个高级心理医生。'],
'AgentAppId' => ['title' => '', 'description' => 'The ID of the Model Studio agent.', 'type' => 'string', 'maxLength' => 500, 'required' => false, 'example' => ''],
],
'required' => false,
'example' => '',
],
],
[
'name' => 'TtsConfig',
'in' => 'query',
'style' => 'json',
'schema' => [
'title' => '',
'description' => 'The text-to-speech settings.',
'type' => 'object',
'properties' => [
'Name' => ['description' => 'The configuration name.', 'type' => 'string', 'required' => true, 'example' => 'Tts', 'maxLength' => 128, 'minLength' => 1, 'title' => ''],
'Vendor' => [
'description' => 'The text-to-speech vendor. Currently, only Alibaba Cloud (`aliyun`) is supported.',
'type' => 'string',
'required' => false,
'example' => 'aliyun',
'default' => 'aliyun',
'enum' => ['aliyun', 'customized', 'dingmaas'],
'title' => '',
],
'ApiKey' => ['description' => 'The API key required by the text-to-speech service vendor.', 'type' => 'string', 'required' => true, 'example' => 'ak-1213123123132123131', 'maxLength' => 200, 'minLength' => 1, 'title' => ''],
'Voice' => ['description' => 'The voice for the text-to-speech output. The default voice is `longxiaoxia`. Valid values include:'."\n"
."\n"
.'- `longwan`'."\n"
."\n"
.'- `longcheng`'."\n"
."\n"
.'- `longhua`'."\n"
."\n"
.'- `longxiaochun`'."\n"
."\n"
.'- `longxiaoxia`'."\n"
."\n"
.'- `longxiaocheng`'."\n"
."\n"
.'- `longxiaobai`'."\n"
."\n"
.'- `longlaotie`'."\n"
."\n"
.'- `longshu`'."\n"
."\n"
.'- `longshuo`'."\n"
."\n"
.'- `longjing`'."\n"
."\n"
.'- `longmiao`'."\n"
."\n"
.'- `longyue`'."\n"
."\n"
.'- `longyuan`'."\n"
."\n"
.'- `longfei`'."\n"
."\n"
.'- `longjielidou`'."\n"
."\n"
.'- `longtong`'."\n"
."\n"
.'- `longxiang`'."\n"
."\n"
.'- `loongstella`'."\n"
."\n"
.'- `loongbella`', 'type' => 'string', 'required' => false, 'example' => 'longcheng', 'default' => 'longxiaoxia', 'title' => ''],
'Volume' => ['description' => 'The volume of the speech output. Valid range: \\[0, 100]. Default: 50.', 'type' => 'integer', 'format' => 'int32', 'default' => '50', 'title' => '', 'required' => false, 'example' => '70'],
'Rate' => ['description' => 'The speech rate. Valid range: \\[0.5, 2.0]. Default: 1.0.', 'type' => 'number', 'format' => 'float', 'default' => '1.0', 'title' => '', 'required' => false, 'example' => '0.8'],
'Pitch' => ['description' => 'The pitch of the speech. Valid range: \\[0.5, 2.0]. Default: 1.0.', 'type' => 'number', 'format' => 'float', 'default' => '1.0', 'title' => '', 'required' => false, 'example' => '0.8'],
'FilterBrackets' => [
'title' => '',
'description' => 'Specifies which types of brackets to filter from the text before synthesis.'."\n"
."\n"
.'- `1`: Chinese parentheses (`(` `)`)'."\n"
."\n"
.'- `2`: English parentheses (`(` `)`)'."\n"
."\n"
.'- `3`: Chinese square brackets (`【` `】`)'."\n"
."\n"
.'- `4`: English square brackets (`[` `]`)'."\n"
."\n"
.'- `5`: English curly braces (`{` `}`)',
'type' => 'array',
'items' => [
'description' => 'The type of bracket to filter.',
'type' => 'integer',
'format' => 'int32',
'example' => '1',
'enum' => ['1', '2', '3', '4', '5'],
'title' => '',
'required' => false,
],
'required' => false,
'example' => '',
],
],
'required' => false,
'example' => '',
],
],
[
'name' => 'AgentSilenceConfig',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The configuration for handling agent silence.',
'title' => '',
'type' => 'object',
'properties' => [
'AlertTimeout' => ['title' => '', 'description' => 'The timeout in seconds for triggering a silence alert. The alert is recurring: if the agent remains silent, it will trigger again after each timeout period. Valid range: \\[5, 600]. A value of `0` (the default) disables this feature.', 'type' => 'integer', 'format' => 'int32', 'example' => '30', 'default' => '0', 'required' => false],
'WebhookTriggerTimeout' => ['title' => '', 'description' => 'The timeout in seconds for triggering a silence webhook. The trigger is recurring: if the agent remains silent, the webhook will trigger again after each timeout period. Valid range: \\[10, 600]. A value of `0` (the default) disables this feature.', 'type' => 'integer', 'format' => 'int32', 'example' => '30', 'default' => '0', 'required' => false],
'Strategy' => ['title' => '', 'description' => 'The strategy for handling silence timeouts. Valid values:
`1`: Plays the prompt from `Content` for the user. (Default)
`2`: Sends the prompt from `Content` and the conversation history to the LLM, and plays the generated response.
', 'type' => 'integer', 'format' => 'int32', 'maximum' => '2', 'minimum' => '1', 'example' => '2', 'default' => '1', 'required' => false],
'Content' => ['title' => '', 'description' => 'The text of the silence prompt.', 'type' => 'string', 'maxLength' => 2500, 'required' => false, 'example' => ''],
],
'required' => false,
'example' => '',
],
],
[
'name' => 'AmbientSoundConfig',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The configuration for ambient sound. This feature is disabled by default.',
'title' => '',
'type' => 'object',
'properties' => [
'SoundId' => ['title' => '', 'description' => 'The ID of the ambient sound. Available built-in sounds include:
- `white_noise`
- `office`
', 'type' => 'string', 'example' => 'white_noise', 'maxLength' => 30, 'required' => false],
'Volume' => ['title' => '', 'description' => 'The volume of the ambient sound.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '100', 'minimum' => '0', 'example' => '100', 'required' => false],
],
'required' => false,
'example' => '',
],
],
[
'name' => 'InterruptConfig',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The configuration for agent interruption.',
'title' => '',
'type' => 'object',
'properties' => [
'SemanticsInterrupt' => ['title' => '', 'description' => 'Specifies whether to enable semantic interruption.', 'type' => 'boolean', 'required' => false, 'example' => ''],
],
'required' => false,
'example' => '',
],
],
[
'name' => 'BackChannelConfig',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The configuration for agent backchannel.',
'title' => '',
'type' => 'object',
'properties' => [
'UserTurnEnd' => ['title' => '', 'description' => 'Specifies whether to enable the backchannel feature.', 'type' => 'boolean', 'required' => false, 'example' => ''],
],
'required' => false,
'example' => '',
],
],
[
'name' => 'EnableVideoUnderstanding',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to enable video understanding. If enabled, the LLM must support multimodal input.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => ''],
],
[
'name' => 'PreferVideo',
'in' => 'query',
'schema' => ['description' => 'If video understanding is enabled, this parameter specifies which video stream the agent processes. Since the agent can only process one stream at a time, this setting determines the priority when both the camera and screen sharing streams are active.'."\n"
."\n"
.'`1`: The agent prioritizes the camera stream.'."\n"
."\n"
.'`2`: The agent prioritizes the screen sharing stream.'."\n"
."\n"
.'By default, the camera stream is prioritized.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'The response data.',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'The request ID that uniquely identifies this request.', 'type' => 'string', 'example' => '6159ba01-6687-4fb2-a831-f0cd8d188648'],
'Id' => ['description' => 'The unique template ID.', 'type' => 'string', 'example' => '1223131213231313213', 'title' => ''],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6159ba01-6687-4fb2-a831-f0cd8d188648\\",\\n \\"Id\\": \\"1223131213231313213\\"\\n}","type":"json"}]',
'title' => 'Create Agent Template',
'description' => '### QPS limit'."\n"
."\n"
.'The limit for this API is 10 queries per second (QPS) per user. Exceeding this limit triggers API call throttling, which can impact your business.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateAppAgentTemplate'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:CreateAppAgentTemplate',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
],
],
'CreateAppLayout' => [
'summary' => 'Create a custom app layout.',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'deprecated' => false,
'systemTags' => ['operationType' => 'none'],
'parameters' => [
[
'name' => 'ClientToken',
'in' => 'query',
'allowEmptyValue' => false,
'schema' => ['description' => 'Idempotency token.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '53200b81-b761-4c10-842a-a0726d97xxxx'],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'Application ID. Find or create this ID in the console. You can specify only one ID.', 'type' => 'string', 'required' => true, 'example' => 'ac7N****', 'title' => ''],
],
[
'name' => 'Layout',
'in' => 'query',
'style' => 'json',
'schema' => [
'title' => '',
'description' => 'Layout configuration.',
'type' => 'object',
'properties' => [
'Name' => ['description' => 'Layout name.', 'type' => 'string', 'required' => true, 'example' => '布局', 'maxLength' => 100, 'title' => ''],
'Panes' => [
'title' => '',
'description' => 'List of panes.',
'type' => 'array',
'items' => [
'title' => '',
'description' => 'Details of a pane.',
'type' => 'object',
'properties' => [
'ZOrder' => ['description' => 'Stacking order. Zero is the bottom layer. One is above zero, and so on.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '2', 'minimum' => '0', 'example' => '0', 'default' => '0', 'title' => '', 'required' => false],
'X' => ['description' => 'X coordinate, normalized as a percentage. Valid values: 0.0 to 1.0, inclusive.', 'type' => 'number', 'format' => 'double', 'maximum' => '1', 'minimum' => '0', 'example' => '0.25', 'default' => '0.25', 'title' => '', 'required' => false],
'Y' => ['description' => 'Y coordinate, normalized as a percentage. Valid values: 0.0 to 1.0, inclusive.', 'type' => 'number', 'format' => 'double', 'maximum' => '1', 'minimum' => '0', 'example' => '0.25', 'default' => '0.25', 'title' => '', 'required' => false],
'Height' => ['description' => 'Pane height, normalized as a percentage. Valid values: greater than 0.0 and up to 1.0, inclusive.', 'type' => 'number', 'format' => 'double', 'maximum' => '1', 'minimum' => '0', 'example' => '0.25', 'default' => '0.25', 'title' => '', 'required' => false],
'Width' => ['description' => 'Pane width, normalized as a percentage. Valid values: greater than 0.0 and up to 1.0, inclusive.', 'type' => 'number', 'format' => 'double', 'maximum' => '1', 'minimum' => '0', 'example' => '0.25', 'default' => '0.25', 'title' => '', 'required' => false],
'PaneId' => ['description' => 'Pane ID. Starts from zero.', 'type' => 'integer', 'format' => 'int64', 'maximum' => '15', 'minimum' => '0', 'example' => '0', 'title' => '', 'required' => false],
],
'required' => false,
'example' => '',
],
'required' => true,
'maxItems' => 16,
'minItems' => 1,
'example' => '',
],
],
'required' => true,
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Response schema',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'ID of the request', 'type' => 'string', 'example' => '20A6D1E3-1F5F-5440-A4F1-EC7831646FE4'],
'LayoutId' => ['description' => 'Layout ID', 'type' => 'string', 'example' => '167466539798442****', 'title' => ''],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
['errorCode' => 'Quota.Invalid', 'errorMessage' => '%s.', 'description' => 'Resource quota is insufficient, please submit a work order to increase the quota'],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"20A6D1E3-1F5F-5440-A4F1-EC7831646FE4\\",\\n \\"LayoutId\\": \\"167466539798442****\\"\\n}","type":"json"}]',
'title' => 'Create a custom layout ',
'description' => '### QPS limit'."\n"
."\n"
.'The per-user query-per-second (QPS) limit for this API is 10 calls per second. Exceeding this limit triggers rate limiting, which may affect your business operations. Call this API only when necessary.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateAppLayout'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:CreateAppLayout',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'CreateAppRecordTemplate' => [
'summary' => 'Adds an application recording template.',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => ['operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
'name' => 'ClientToken',
'in' => 'query',
'allowEmptyValue' => false,
'schema' => ['description' => 'Idempotency token.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****'],
],
[
'name' => 'RecordTemplate',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'Recording template.',
'type' => 'object',
'properties' => [
'Name' => ['description' => 'Template name.', 'type' => 'string', 'required' => true, 'example' => '模版', 'title' => ''],
'FilePrefix' => ['description' => 'Recording naming convention.'."\n"
."\n"
.'> To ensure unique recording file names, the current naming convention for recording files is record/{AppId}/{ChannelId}{TaskId}/{EscapedStartTime}{EscapedEndTime}.', 'type' => 'string', 'required' => true, 'example' => 'record/{AppId}/{ChannelId}_{TaskId}/{EscapedStartTime}_{EscapedEndTime}', 'default' => 'record/{AppId}/{ChannelId}_{TaskId}/{EscapedStartTime}_{EscapedEndTime}', 'title' => ''],
'FileSplitInterval' => ['description' => 'Recording file split duration. Minimum value: 1800. Unit: seconds.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '20000', 'minimum' => '1800', 'example' => '1800', 'default' => '1800', 'title' => ''],
'DelayStopTime' => ['description' => 'Delay before stopping recording. Unit: seconds.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '300', 'minimum' => '180', 'example' => '180', 'default' => '180', 'title' => '', 'required' => false],
'MediaEncode' => [
'description' => 'Encoding option.',
'type' => 'integer',
'format' => 'int32',
'required' => true,
'example' => '1',
'default' => '1',
'enum' => [
'1', '54', '53', '52', '10', '20', '22', '23', '30', '31', '24', '25', '26', '27', '28', '32', '33', '34', '35', '36',
'37', '38', '39', '40', '41', '42', '43', '0', '60', '61',
],
'title' => '',
],
'Formats' => [
'title' => '',
'description' => 'Recording file formats. Supported formats: .m3u8, .mp4, and .flv.',
'type' => 'array',
'items' => ['description' => 'Specific format.', 'type' => 'string', 'required' => false, 'example' => 'mp4', 'title' => ''],
'required' => true,
'maxItems' => 1,
'minItems' => 1,
'example' => '',
],
'LayoutIds' => [
'title' => '',
'description' => 'List of layout IDs. Maximum: 16.'."\n"
."\n"
.'Note: The number of data sources for each layout in the list must be different.',
'type' => 'array',
'items' => ['description' => 'Specific layout ID.', 'type' => 'string', 'required' => false, 'example' => '1', 'title' => ''],
'required' => false,
'maxItems' => 16,
'minItems' => 1,
'example' => '',
],
],
'required' => true,
'title' => '',
'example' => '',
],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'Application ID. Create and view this ID in the console. Only one ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'ac7N****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Response schema',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'Request ID', 'type' => 'string', 'example' => '231470C1-ACFB-4C9F-844F-4CFE1E3804C5'],
'TemplateId' => ['description' => 'Template ID', 'type' => 'string', 'title' => '', 'example' => 'lD7muaxx'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
['errorCode' => 'Function.Disable', 'errorMessage' => '%s.', 'description' => 'Function status is invalid, please request in function enabled state.'],
['errorCode' => 'Quota.Invalid', 'errorMessage' => '%s.', 'description' => 'Resource quota is insufficient, please submit a work order to increase the quota'],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"231470C1-ACFB-4C9F-844F-4CFE1E3804C5\\",\\n \\"TemplateId\\": \\"lD7muaxx\\"\\n}","type":"json"}]',
'title' => 'Create a recording template ',
'description' => '### QPS limit'."\n"
."\n"
.'The per-user query-per-second (QPS) limit for this operation is 10 calls per second. Exceeding this limit triggers rate limiting, which may affect your business. Call this API responsibly.',
'requestParamsDescription' => '**MediaEncode** values are listed below.'."\n"
."\n"
.'| ID | Width | Height | Bitrate (Kbps) | Frame rate (FPS) | Notes |'."\n"
.'| -- | ----- | ------ | -------------- | ---------------- | ---------- |'."\n"
.'| 0 | 0 | 0 | 64 | 0 | Audio-only |'."\n"
.'| 1 | 640 | 360 | 500 | 15 | |'."\n"
.'| 10 | 960 | 540 | 700 | 24 | |'."\n"
.'| 20 | 1280 | 720 | 1024 | 24 | |'."\n"
.'| 22 | 720 | 1280 | 1024 | 30 | |'."\n"
.'| 23 | 800 | 600 | 1024 | 30 | |'."\n"
.'| 24 | 750 | 780 | 1024 | 30 | |'."\n"
.'| 25 | 750 | 540 | 700 | 30 | |'."\n"
.'| 26 | 720 | 1280 | 2048 | 30 | |'."\n"
.'| 27 | 1280 | 720 | 2048 | 30 | |'."\n"
.'| 28 | 1280 | 720 | 3096 | 30 | |'."\n"
.'| 30 | 1920 | 1080 | 2048 | 30 | |'."\n"
.'| 31 | 1080 | 1920 | 2048 | 30 | |'."\n"
.'| 32 | 1024 | 768 | 1024 | 24 | |'."\n"
.'| 33 | 1280 | 960 | 1024 | 24 | |'."\n"
.'| 34 | 1024 | 768 | 2048 | 24 | |'."\n"
.'| 35 | 1280 | 960 | 2048 | 24 | |'."\n"
.'| 36 | 1280 | 720 | 1024 | 24 | |'."\n"
.'| 37 | 1280 | 720 | 2048 | 24 | |'."\n"
.'| 38 | 540 | 960 | 750 | 15 | |'."\n"
.'| 39 | 540 | 960 | 1500 | 30 | |'."\n"
.'| 40 | 1280 | 720 | 1200 | 15 | |'."\n"
.'| 41 | 720 | 1280 | 1200 | 15 | |'."\n"
.'| 42 | 720 | 1280 | 1500 | 15 | |'."\n"
.'| 43 | 540 | 960 | 1200 | 15 | |'."\n"
.'| 52 | 640 | 360 | 500 | 30 | |'."\n"
.'| 53 | 360 | 640 | 500 | 15 | |'."\n"
.'| 54 | 360 | 640 | 500 | 30 | |'."\n"
.'| 60 | 1920 | 1080 | 4096 | 30 | |'."\n"
.'| 61 | 1080 | 1920 | 4096 | 30 | |',
'changeSet' => [
['createdAt' => '2025-04-29T01:36:44.000Z', 'description' => 'Request parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateAppRecordTemplate'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:CreateAppRecordTemplate',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'CreateAppStreamingOutTemplate' => [
'summary' => 'Create an RTC 3.0 application stream ingest template. ',
'methods' => ['post', 'get'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => ['operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Application ID. You can create and query it in the console. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'ac7N****'],
],
[
'name' => 'StreamingOutTemplate',
'in' => 'query',
'style' => 'json',
'schema' => [
'title' => '',
'description' => 'Template.',
'type' => 'object',
'properties' => [
'Name' => ['title' => '', 'description' => 'Template Name.', 'type' => 'string', 'required' => true, 'example' => '模板'],
'LayoutIds' => [
'title' => '',
'description' => 'List of layout IDs. A maximum of 16 IDs are allowed.'."\n"
."\n"
.'Note: The data sources corresponding to the layouts in the list must not have the same quantity.',
'type' => 'array',
'items' => ['title' => '', 'description' => 'Specific layout ID.', 'type' => 'string', 'required' => false, 'example' => '22', 'pattern' => '^\\d+$'],
'required' => true,
'maxItems' => 16,
'minItems' => 1,
'example' => '',
],
'MediaEncode' => [
'title' => '',
'description' => 'Encoding options.',
'type' => 'integer',
'format' => 'int32',
'required' => true,
'example' => '1',
'enum' => [
'1', '54', '53', '52', '10', '20', '22', '23', '30', '31', '24', '25', '26', '27', '28', '32', '33', '34', '35', '36',
'37', '38', '39', '40', '41', '42', '43', '0', '60', '61',
],
'default' => '1',
],
],
'required' => true,
'example' => 'ac7N****',
],
],
],
'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' => '30D41049-D02D-1C21-86AE-B3E5FD805C27'],
'TemplateId' => ['title' => '', 'description' => 'Template ID.', 'type' => 'string', 'example' => 'bc5v****'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
['errorCode' => 'Function.Disable', 'errorMessage' => '%s.', 'description' => 'Function status is invalid, please request in function enabled state.'],
['errorCode' => 'Quota.Invalid', 'errorMessage' => '%s.', 'description' => 'Resource quota is insufficient, please submit a work order to increase the quota'],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"30D41049-D02D-1C21-86AE-B3E5FD805C27\\",\\n \\"TemplateId\\": \\"bc5v****\\"\\n}","type":"json"}]',
'title' => 'Create a stream ingest template',
'description' => '### How-To '."\n"
.'This API is used to create a stream ingest template for RTC 3.0 applications. '."\n"
.'### QPS Limit '."\n"
.'The queries per second (QPS) limit for this API is 10 per user. If the limit is exceeded, API calls will be subject to rate limiting, which may impact your business. Please invoke the API appropriately. ',
'requestParamsDescription' => 'The enumeration values for **MediaEncode** are as follows.'."\n"
."\n"
.'| ID | Width | Height | Bitrate (Kbps) | Frame Rate (FPS) | Remarks'."\n"
.'| ----------- | ----- | ------ | ----------- | --- |---'."\n"
.'| 0 | 0 | 0 | 64 | 0 | audio-only'."\n"
.'| 1 | 640 | 360 | 500 | 15 '."\n"
.'| 10 | 960 | 540 | 700 | 24 '."\n"
.'| 20 | 1280 | 720 | 1024 | 24 '."\n"
.'| 22 | 720 | 1280 | 1024 | 30 '."\n"
.'| 23 | 800 | 600 | 1024 | 30 '."\n"
.'| 24 | 750 | 780 | 1024 | 30 '."\n"
.'| 25 | 750 | 540 | 700 | 30 '."\n"
.'| 26 | 720 | 1280 | 2048 | 30 '."\n"
.'| 27 | 1280 | 720 | 2048 | 30 '."\n"
.'| 28 | 1280 | 720 | 3096 | 30 '."\n"
.'| 30 | 1920 | 1080 | 2048 | 30 '."\n"
.'| 31 | 1080 | 1920 | 2048 | 30 '."\n"
.'| 32 | 1024 | 768 | 1024 | 24 '."\n"
.'| 33 | 1280 | 960 | 1024 | 24 '."\n"
.'| 34 | 1024 | 768 | 2048 | 24 '."\n"
.'| 35 | 1280 | 960 | 2048 | 24 '."\n"
.'| 36 | 1280 | 720 | 1024 | 24 '."\n"
.'| 37 | 1280 | 720 | 2048 | 24 '."\n"
.'| 38 | 540 | 960 | 750 | 15 '."\n"
.'| 39 | 540 | 960 | 1500 | 30 '."\n"
.'| 40 | 1280 | 720 | 1200 | 15 '."\n"
.'| 41 | 720 | 1280 | 1200 | 15 '."\n"
.'| 42 | 720 | 1280 | 1500 | 15 '."\n"
.'| 43 | 540 | 960 | 1200 | 15'."\n"
.'| 52 | 640 | 360 | 500 | 30 '."\n"
.'| 53 | 360 | 640 | 500 | 15 '."\n"
.'| 54 | 360 | 640 | 500 | 30 '."\n"
.'| 60 | 1920 | 1080 | 4096 | 30'."\n"
.'| 61 | 1080 | 1920 | 4096 | 30',
'changeSet' => [
['createdAt' => '2025-04-29T01:36:44.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2024-06-21T07:42:38.000Z', 'description' => 'Request parameters changed, Response parameters changed'],
['createdAt' => '2024-03-07T06:45:10.000Z', 'description' => 'Request parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateAppStreamingOutTemplate'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:CreateAppStreamingOutTemplate',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'CreateAppViewTemplate' => [
'summary' => 'Create an application composite streaming template.',
'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. You can create and view this ID in the console. Only one ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'ac7N****', 'title' => ''],
],
[
'name' => 'Template',
'in' => 'query',
'style' => 'json',
'schema' => [
'title' => '',
'description' => 'The template.',
'type' => 'object',
'properties' => [
'Name' => ['description' => 'The template name.', 'type' => 'string', 'required' => true, 'example' => '模板', 'title' => ''],
'LayoutIds' => [
'title' => '',
'description' => 'A list of layout IDs. Maximum: 16.',
'type' => 'array',
'items' => ['description' => 'A layout ID.', 'type' => 'string', 'example' => '22', 'pattern' => '^\\d+$', 'title' => '', 'required' => false],
'required' => true,
'pattern' => '^\\d+$',
'maxItems' => 16,
'minItems' => 1,
'example' => '',
],
'MediaEncode' => [
'description' => 'The encoding option.',
'type' => 'integer',
'format' => 'int32',
'required' => true,
'example' => '1',
'default' => '1',
'enum' => [
'1', '54', '53', '52', '10', '20', '22', '23', '30', '31', '24', '25', '26', '27', '28', '32', '33', '34', '35', '36',
'37', '38', '39', '40', '41', '42', '43', '0', '60', '61',
],
'title' => '',
],
],
'required' => true,
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Response schema',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '30D41049-D02D-1C21-86AE-B3E5FD805C27'],
'TemplateId' => ['description' => 'The template ID.', 'type' => 'string', 'example' => 'bc5v****', 'title' => ''],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
['errorCode' => 'Function.Disable', 'errorMessage' => '%s.', 'description' => 'Function status is invalid, please request in function enabled state.'],
['errorCode' => 'Quota.Invalid', 'errorMessage' => '%s.', 'description' => 'Resource quota is insufficient, please submit a work order to increase the quota'],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"30D41049-D02D-1C21-86AE-B3E5FD805C27\\",\\n \\"TemplateId\\": \\"bc5v****\\"\\n}","type":"json"}]',
'title' => 'Create a stream merging template ',
'description' => '### QPS limit'."\n"
."\n"
.'The per-user query-per-second (QPS) limit for this operation is 10 calls per second. Exceeding this limit triggers rate limiting, which may affect your business. Call this operation only as needed.',
'requestParamsDescription' => 'The **MediaEncode** parameter accepts the following values.'."\n"
."\n"
.'| ID | Width | Height | Bitrate (Kbps) | Frame rate (FPS) | Notes |'."\n"
.'| -- | ----- | ------ | -------------- | ---------------- | ---------- |'."\n"
.'| 0 | 0 | 0 | 64 | 0 | Audio-only |'."\n"
.'| 1 | 640 | 360 | 500 | 15 | |'."\n"
.'| 10 | 960 | 540 | 700 | 24 | |'."\n"
.'| 20 | 1280 | 720 | 1024 | 24 | |'."\n"
.'| 22 | 720 | 1280 | 1024 | 30 | |'."\n"
.'| 23 | 800 | 600 | 1024 | 30 | |'."\n"
.'| 24 | 750 | 780 | 1024 | 30 | |'."\n"
.'| 25 | 750 | 540 | 700 | 30 | |'."\n"
.'| 26 | 720 | 1280 | 2048 | 30 | |'."\n"
.'| 27 | 1280 | 720 | 2048 | 30 | |'."\n"
.'| 28 | 1280 | 720 | 3096 | 30 | |'."\n"
.'| 30 | 1920 | 1080 | 2048 | 30 | |'."\n"
.'| 31 | 1080 | 1920 | 2048 | 30 | |'."\n"
.'| 32 | 1024 | 768 | 1024 | 24 | |'."\n"
.'| 33 | 1280 | 960 | 1024 | 24 | |'."\n"
.'| 34 | 1024 | 768 | 2048 | 24 | |'."\n"
.'| 35 | 1280 | 960 | 2048 | 24 | |'."\n"
.'| 36 | 1280 | 720 | 1024 | 24 | |'."\n"
.'| 37 | 1280 | 720 | 2048 | 24 | |'."\n"
.'| 38 | 540 | 960 | 750 | 15 | |'."\n"
.'| 39 | 540 | 960 | 1500 | 30 | |'."\n"
.'| 40 | 1280 | 720 | 1200 | 15 | |'."\n"
.'| 41 | 720 | 1280 | 1200 | 15 | |'."\n"
.'| 42 | 720 | 1280 | 1500 | 15 | |'."\n"
.'| 43 | 540 | 960 | 1200 | 15 | |'."\n"
.'| 52 | 640 | 360 | 500 | 30 | |'."\n"
.'| 53 | 360 | 640 | 500 | 15 | |'."\n"
.'| 54 | 360 | 640 | 500 | 30 | |'."\n"
.'| 60 | 1920 | 1080 | 4096 | 30 | |'."\n"
.'| 61 | 1080 | 1920 | 4096 | 30 | |',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateAppViewTemplate'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'rtc:CreateAppViewTemplate',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
],
],
'CreateAutoLiveStreamRule' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => ['operationType' => 'create'],
'parameters' => [
[
'name' => 'ChannelIds',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The list of channel IDs that are exactly matched.',
'type' => 'array',
'items' => ['description' => 'The channel ID that is exactly matched.'."\n"
."\n"
.'> You can specify only one of the ChannelIds and ChannelIdPrefixes parameters, or leave both empty. If both are empty, the automatic single-stream relay is performed at the application ID level.', 'type' => 'string', 'required' => false, 'example' => '12333', 'title' => ''],
'required' => false,
'maxItems' => 64,
'title' => '',
'example' => '',
],
],
[
'name' => 'ChannelIdPrefixes',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The list of channel ID prefixes that are fuzzy matched.',
'type' => 'array',
'items' => ['description' => 'The channel ID prefix that is fuzzy matched.'."\n"
.'> You can specify only one of the ChannelIds and ChannelIdPrefixes parameters, or leave both empty. If both are empty, the automatic single-stream relay is performed at the application ID level.', 'type' => 'string', 'required' => false, 'example' => '12', 'title' => ''],
'required' => false,
'maxItems' => 64,
'title' => '',
'example' => '',
],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID, which can be created and queried in the console.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'eo85****', 'title' => ''],
],
[
'name' => 'PlayDomain',
'in' => 'query',
'schema' => ['description' => 'The streaming domain name for automatic relay. The streaming URL of an automatic relay task is in the format rtmp://${domain}/${app}/${stream}.'."\n"
."\n"
.'- domain: your live streaming domain name.'."\n"
.'- app: live.'."\n"
.'- stream: urlencode(${AppId}_${ChannelId}_${UserId}_${SourceType}), where SourceType indicates the type of the input source.'."\n"
."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'rtmp://${domain}/${app}/${stream}', 'title' => ''],
],
[
'name' => 'RuleName',
'in' => 'query',
'schema' => ['description' => 'The name of the relay rule.', 'type' => 'string', 'required' => false, 'example' => 'testRule', 'title' => ''],
],
[
'name' => 'CallBack',
'in' => 'query',
'schema' => ['description' => 'The callback URL used to notify the start and end of the relay. For details about the callback content, see the CallBack callback example below.', 'type' => 'string', 'required' => false, 'example' => 'http://example.com/callback', 'title' => ''],
],
[
'name' => 'MediaEncode',
'in' => 'query',
'schema' => ['description' => 'The encoding option. For more information, see the MediaEncode enumeration values below.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned result.',
'type' => 'object',
'properties' => [
'RuleId' => ['description' => 'The ID of the relay rule.', 'type' => 'integer', 'format' => 'int64', 'example' => '12', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '760bad53276431c499e30dc36f6b26be', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ErrorAPIInvalidAppID', 'errorMessage' => 'The AppID API request is invalid: %s', 'description' => ''],
['errorCode' => 'ErrorAPIQueryRow', 'errorMessage' => 'The QueryRow request is invalid: %s', 'description' => ''],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.%s', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RuleId\\": 12,\\n \\"RequestId\\": \\"760bad53276431c499e30dc36f6b26be\\"\\n}","type":"json"}]',
'title' => 'Create an automatic single-stream relay rule',
'summary' => 'Calls CreateAutoLiveStreamRule to create an automatic single-stream relay rule.',
'description' => '# Usage notes'."\n"
.'This operation is used to create a relay rule.'."\n"
.'# QPS limit'."\n"
.'The per-user QPS limit of this operation is 1,000 calls per minute. If the limit is exceeded, API calls will be throttled, which may affect your business. Call the operation properly. For more information, see [QPS limits](~~341645~~).',
'requestParamsDescription' => '### CallBack callback example'."\n"
."\n"
.'```'."\n"
.'{'."\n"
.' "RequestId": "udie-jfieu89-34jfi-7jjifk",'."\n"
.' "AppId": "pdtkb2qy",'."\n"
.' "ChannelId": "0122",'."\n"
.' "TaskId": "AL-1f43957a8e58fedef9b568b9c9ebddc0-1613618364",'."\n"
.' "UserId": "2d0069089df36b22",'."\n"
.' "SourceType": "camera",'."\n"
.' "RuleId": 40,'."\n"
.' "Event": "StartAutoLiveStreamTask",'."\n"
.' "Description": "success"'."\n"
.'}'."\n"
.'```'."\n"
.'| Parameter | Type | Required | Description'."\n"
.'| ----------- | ----- | ------ | -----------'."\n"
.'| RequestId | String | Yes | The request ID. '."\n"
.'| AppId| String | Yes | The application ID. '."\n"
.'| ChannelId| String | Yes | The channel ID. '."\n"
.'| TaskId| String | Yes | The task ID. The generation rule is AL-MD5(rtmp://${domain}/${app}/${stream}).'."\n"
.'| UserId| String | Yes | The user ID.'."\n"
.'| SourceType| String | Yes | The type of the input source. Valid values:
- camera: camera video stream.
- shareScreen: screen sharing video stream.'."\n"
.'| RuleId| Long| Yes | The ID of the relay rule. '."\n"
.'| Event| String | Yes | The event type. Valid values:
- StartAutoLiveStreamTask: starts an automatic single-stream relay task.
- StopAutoLiveStreamTask: stops an automatic single-stream relay task.'."\n"
.'| Description| String | Yes | The event description. '."\n"
."\n"
.'### MediaEncode enumeration values'."\n"
.'| ID | Width | Height | Bitrate (Kbps) | Frame rate (FPS) '."\n"
.'| ----------- | ----- | ------ | ----------- | --- '."\n"
.'| 0 | 0 | 0 | 64 | 0 '."\n"
.'| 1 | 640 | 360 | 500 | 15 '."\n"
.'| 54 | 360 | 640 | 500 | 30 '."\n"
.'| 53 | 360 | 640 | 500 | 15 '."\n"
.'| 52 | 640 | 360 | 500 | 30 '."\n"
.'| 10 | 960 | 540 | 700 | 24 '."\n"
.'| 20 | 1280 | 720 | 1024 | 25 '."\n"
.'| 22 | 720 | 1280 | 1024 | 30 '."\n"
.'| 23 | 800 | 600 | 1024 | 30 '."\n"
.'| 30 | 1920 | 1080 | 2048 | 30 '."\n"
.'| 31 | 1080 | 1920 | 2048 | 30 '."\n"
.'| 24 | 750 | 780 | 1024 | 30 '."\n"
.'| 25 | 750 | 540 | 700 | 30 '."\n"
.'| 26 | 720 | 1280 | 2048 | 30 '."\n"
.'| 27 | 1280 | 720 | 2048 | 30 '."\n"
.'| 28 | 1280 | 720 | 3096 | 30 '."\n"
.'| 32 | 1024 | 768 | 1024 | 24 '."\n"
.'| 33 | 1280 | 960 | 1024 | 24 '."\n"
.'| 34 | 1024 | 768 | 2048 | 24 '."\n"
.'| 35 | 1280 | 960 | 2048 | 24 '."\n"
.'| 36 | 1280 | 720 | 1024 | 24 '."\n"
.'| 37 | 1280 | 720 | 2048 | 24 '."\n"
.'| 38 | 540 | 960 | 750 | 15 '."\n"
.'| 39 | 540 | 960 | 1500 | 30 '."\n"
.'| 40 | 1280 | 720 | 1200 | 15 '."\n"
.'| 41 | 720 | 1280 | 1200 | 15 '."\n"
.'| 42 | 720 | 1280 | 1500 | 15 '."\n"
.'| 43 | 540 | 960 | 1200 | 15 '."\n",
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '1000', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateAutoLiveStreamRule'],
],
],
'ramActions' => [],
],
'CreateCloudNotePhrases' => [
'summary' => 'Add a keyword list to the meeting minutes.',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'paid'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. Create and view this ID in the console. Only one ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'ac7N****', 'title' => ''],
],
[
'name' => 'Phrase',
'in' => 'query',
'style' => 'json',
'schema' => [
'title' => '',
'description' => 'The hotword parameters.',
'type' => 'object',
'properties' => [
'Name' => ['description' => 'The name of the hotword list. It must be UTF-8 encoded and 1 to 30 characters long.', 'type' => 'string', 'required' => true, 'example' => '水果', 'maxLength' => 30, 'minLength' => 1, 'title' => ''],
'Description' => ['description' => 'The description. It must be UTF-8 encoded and 1 to 200 characters long.', 'type' => 'string', 'required' => false, 'example' => '水果描述', 'maxLength' => 200, 'minLength' => 1, 'title' => ''],
'WordWeights' => [
'title' => '',
'description' => 'Each word list can contain up to 300 hot words, and each hot word can be no longer than 10 Chinese characters.'."\n"
."\n"
.'Hot words must use UTF-8 encoding and cannot contain punctuation or special characters. If they do, the hot words have no effect.'."\n"
."\n"
.'The weight for each hot word must be an integer between -6 and 5, inclusive.'."\n"
."\n"
.'Numbers in text must be replaced with their spoken forms in Chinese characters. For example, replace “59.9 元” with “五十九点九元”.',
'type' => 'array',
'items' => [
'title' => '',
'description' => 'The weight of the hotword.',
'type' => 'object',
'properties' => [
'Word' => ['description' => 'The hotword.', 'type' => 'string', 'required' => true, 'example' => '苹果', 'title' => ''],
'Weight' => ['description' => 'The weight must be an integer from -6 to 5.'."\n"
."\n"
.'- A value greater than 0 increases the chance the word is detected. A value less than 0 decreases this chance.'."\n"
."\n"
.'- A value of -6 means the system will try to avoid detecting the word.'."\n"
."\n"
.'- A value of 2 is common. If the effect is not noticeable, increase the weight. Note that a large weight can reduce recognition accuracy for other words.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '0', 'title' => ''],
],
'required' => true,
'example' => '',
],
'required' => true,
'maxItems' => 300,
'minItems' => 1,
'example' => '',
],
],
'required' => true,
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The ID of the request.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'],
'Id' => ['description' => 'The ID of the hotword list.', 'type' => 'string', 'title' => '', 'example' => '21088b2617489486958531017d0b19'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
['errorCode' => 'Function.Disable', 'errorMessage' => '%s.', 'description' => 'Function status is invalid, please request in function enabled state.'],
['errorCode' => 'Quota.Invalid', 'errorMessage' => '%s.', 'description' => 'Resource quota is insufficient, please submit a work order to increase the quota'],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"Id\\": \\"21088b2617489486958531017d0b19\\"\\n}","type":"json"}]',
'title' => 'Create a hotword list',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateCloudNotePhrases'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'rtc:CreateCloudNotePhrases',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
],
],
'CreateEventSubscribe' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => ['operationType' => 'create'],
'parameters' => [
[
'name' => 'Users',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The subscribed users.',
'type' => 'array',
'items' => ['description' => 'The users whose messages you want to subscribe to. If this parameter is empty, all users (including hosts and audience members) in the room are subscribed. The format is as follows:'."\n"
."\n"
.'```'."\n"
.'Users.1=****'."\n"
.'Users.2=****'."\n"
.'......'."\n"
.'```', 'type' => 'string', 'required' => false, 'example' => 'user1', 'title' => ''],
'required' => false,
'example' => 'user1',
'maxItems' => 64,
'title' => '',
],
],
[
'name' => 'Events',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The subscribed events.',
'type' => 'array',
'items' => ['description' => 'The subscribed event. Valid values:'."\n"
."\n"
.'- **ChannelEvent**: channel event.'."\n"
.'- **UserEvent**: in-channel user event.'."\n"
."\n"
.'For more information, see the following table.', 'type' => 'string', 'required' => false, 'example' => 'ChannelEvent', 'title' => ''],
'required' => true,
'example' => 'ChannelEvent',
'maxItems' => 16,
'title' => '',
],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the subscribed application.', 'type' => 'string', 'required' => true, 'example' => '9qb1****', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'The ID of the subscribed channel.'."\n"
."\n"
.'> This parameter is required if the Users.N parameter is not empty.', 'type' => 'string', 'required' => false, 'example' => '123333', 'title' => ''],
],
[
'name' => 'CallbackUrl',
'in' => 'query',
'schema' => ['description' => 'The callback URL. For information about the callback content, see the following callback content example.', 'type' => 'string', 'required' => true, 'example' => 'http://****.com/callback', 'title' => ''],
],
[
'name' => 'ClientToken',
'in' => 'query',
'schema' => ['description' => 'The idempotence identifier used by the client to create the subscription.', 'type' => 'string', 'required' => true, 'example' => '123e4567-e89b-12d3-a456-42665544****', 'title' => ''],
],
[
'name' => 'NeedCallbackAuth',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to enable callback authentication. Valid values:'."\n"
."\n"
.'- **true**: enables callback authentication.'."\n"
.'- **fasle** (default): disables callback authentication.'."\n"
."\n"
.'For more information, see the following callback authentication description.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
],
[
'name' => 'Role',
'in' => 'query',
'schema' => ['description' => 'The user role. Valid values:'."\n"
."\n"
.'- **1**: subscribes to host messages in the channel.'."\n"
.'- **2**: subscribes to audience messages in the channel.'."\n"
.'- **Empty or other values**: subscribes to messages from all roles in the channel without role filtering.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned result.',
'type' => 'object',
'properties' => [
'SubscribeId' => ['description' => 'The ID of the created subscription.', 'type' => 'string', 'example' => 'ad53276431c****', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '760bad53276431c499e30dc36f6b26be', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
200 => [
['errorCode' => 'ErrorIdempotent', 'errorMessage' => '%s', 'description' => ''],
],
400 => [
['errorCode' => 'ErrorAPIQueryRow', 'errorMessage' => '%s', 'description' => ''],
['errorCode' => 'ErrorAPINoAppId', 'errorMessage' => '%s', 'description' => ''],
['errorCode' => 'ErrorInvalidCallBackURL', 'errorMessage' => '%s', 'description' => ''],
['errorCode' => 'ErrorIdempotentParameterMismatch', 'errorMessage' => '%s', 'description' => ''],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"SubscribeId\\": \\"ad53276431c****\\",\\n \\"RequestId\\": \\"760bad53276431c499e30dc36f6b26be\\"\\n}","type":"json"}]',
'title' => 'Create an event subscription',
'summary' => 'Calls CreateEventSubscribe to create a callback for subscribing to room messages.',
'description' => '# Usage notes'."\n"
.'This operation is used to create a callback for subscribing to room messages. For example, when you create a callback, you can configure parameters such as the callback URL and event type.'."\n"
.'# QPS limit'."\n"
.'The per-user QPS limit of this operation is 1,000 calls per minute. If the limit is exceeded, API calls are throttled, which may affect your business. Make sure that you call this operation at a reasonable frequency. For more information, see [QPS limits](~~341645~~).',
'requestParamsDescription' => '## CallBack'."\n"
.'RTC calls back the content to the user through the CallbackUrl provided by the user. An example is shown below:'."\n"
.'```'."\n"
.'Request:'."\n"
."\n"
.'POST /callbackURL'."\n"
."\n"
.'Body'."\n"
.'(x-www-form-urlencoded)'."\n"
."\n"
.'{'."\n"
.' "MsgId": "Message ID",'."\n"
.' "MsgTimestamp": 12312324, // The Unix timestamp when the message was sent'."\n"
.' "SubscribeID": "Subscription ID",'."\n"
.' "AppId":"", // The AppId that generated the message '."\n"
.' "ChannelID":"", // The channel in which the message was generated'."\n"
.' "Contents": ['."\n"
.' {'."\n"
.' "Event": "UserEvent",// The subscribed event: in-channel user event'."\n"
.' "UserEvent": {'."\n"
.' "UserId": "80331631628db0d1", // User ID'."\n"
.' "EventTag": "Publish", // Event, including Join, Leave, Publish, Unpublish, Roleupdate'."\n"
.' "SessionId": "0dr15rrnhkz0jnvz6o8sxo01hoondhu1", // The SessionID that generated this event'."\n"
.' "Timestamp": 1609854786, // The Unix timestamp when the event occurred'."\n"
.' "Reason": 1, // The reason for joining or leaving the channel. This field is available only for the Join event.'."\n"
.' "Role": 1, // Role type, host or audience'."\n"
.' "TerminalType": 1, // Terminal type, win, android'."\n"
.' "UserType":1, // User type, native sdk, applete, webrtc'."\n"
.' "Medias":[1,2,3] // Stream publishing types: which streams the user has published'."\n"
.' }'."\n"
.' },'."\n"
.' {'."\n"
.' "Event": "ChannelEvent",// The subscribed event: channel event'."\n"
.' "ChannelEvent": {'."\n"
.' "ChannelId": "8888889999",'."\n"
.' "EventTag": "Open", // Channel events, including 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"
.'## UserEvent'."\n"
.'|Parameter|Type|Required|Description|'."\n"
.'|---|---|---|---|'."\n"
.'|UserId | string | Yes | The user ID. |'."\n"
.'|SessionId | string | Yes | The user SessionID. |'."\n"
.'|EventTag | string | Yes | The event type. Valid values:
- **Join**: joins the channel.
- **Leave**: leaves the channel.
- **PublishVideo**: starts publishing the video stream.
- **PublishAudio**: starts publishing the audio stream.
- **PublishScreen**: starts screen sharing.
- **UnpublishVideo**: stops publishing the video stream.
- **UnpublishAudio**: stops publishing the audio stream.
- **UnpublishScreen**: stops screen sharing.
- **Roleupdate**: switches the role. |'."\n"
.'|Timestamp | number | Yes | The timestamp when the event occurred. |'."\n"
.'|Reason | integer | Yes | The reason for joining or leaving the channel (available only for the Join event). Valid values:
- **1**: normal join or leave.
- **2**: rejoin (an instance of the user already exists in the current session, and the user joins again).
- **3**: cross-channel relay.
- **4**: timeout leave.
- **5**: the user starts a new session, and the current session is kicked offline.
- **6**: kicked out.
- **7**: channel dismissed. |'."\n"
.'|Role | integer | Yes | The role type. Valid values:
- **1**: host.
- **2**: audience. |'."\n"
.'|TerminalType | integer | Yes | The terminal type. Valid values:
- **1**: Windows device.
- **2**: Android device.
- **3**: Mac device.
- **4**: iOS device.
- **5**: Linux device.
- **6**: other (only Native SDK joins can parse the terminal type). |'."\n"
.'|UserType | integer | Yes | The user type. Valid values:
- **1**: Native SDK.
- **2**: WebRTC (non-mini program and non-Native are classified as WebRTC).
- **3**: mini program. |'."\n"
.'|Medias | integer | Yes | The stream publishing type. Valid values:
- **1**: audio.
- **2**: video.
- **3**: screen sharing. |'."\n"
."\n"
.'## ChannelEvent'."\n"
.'|Parameter|Type|Required|Description|'."\n"
.'|---|---|---|---|'."\n"
.'|EventTag | string | Yes | The event type. Valid values:
- **Open**: the meeting starts.
- **Close**: the meeting ends. |'."\n"
.'|Timestamp | number | Yes | The timestamp when the event occurred. |'."\n"
."\n"
.'## Callback authentication description'."\n"
.'The event callback authentication feature is disabled by default. You can enable authentication when you create an event callback. After authentication is enabled, the authentication logic is as follows:'."\n"
."\n"
.'- When Alibaba Cloud Real-Time Communication initiates a callback request, it includes the `Ali-Rtc-Timestamp` and `Ali-Rtc-Signature` fields in the HTTP(S) request header for the callback message receiver server to perform signature authentication. The `Ali-Rtc-Timestamp` value is calculated as follows: Ali-Rtc-Signature=MD5SUM(MD5CONTENT). Here, MD5CONTENT=callback domain|Ali-Rtc-Timestamp value|authentication key. The callback domain refers to the domain configured for the callback URL, and the authentication key refers to the AppKey generated when the user creates the AppId.'."\n"
.'- When the callback message receiver server receives a callback message, it concatenates the callback domain, `Ali-Rtc-Timestamp` value, and authentication key, and then calculates the MD5 value to obtain an encrypted string. The server then compares the calculated encrypted string with the value of the `Ali-Rtc-Signature` field in the HTTP(S) request header initiated by Real-Time Communication. If they are inconsistent, the request is illegal.',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '1000', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateEventSubscribe'],
],
],
'ramActions' => [],
],
'CreateMPULayout' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => ['operationType' => 'create'],
'parameters' => [
[
'name' => 'Panes',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The list of panes in the layout.',
'type' => 'array',
'items' => [
'description' => 'The parameters of the panes in the layout.',
'type' => 'object',
'properties' => [
'MajorPane' => ['description' => 'Specifies the major pane. Each layout can have only one major pane.'."\n"
."\n"
.'- **0**: minor pane.'."\n"
.' '."\n"
.'- **1**: major pane.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
'Width' => ['description' => 'The width of the pane as a normalized percentage. Valid values of Width: **0.0 'number', 'format' => 'float', 'required' => false, 'example' => '0.25', 'title' => ''],
'Height' => ['description' => 'The height of the pane as a normalized percentage. Valid values of Height: **0.0 'number', 'format' => 'float', 'required' => false, 'example' => '0.25', 'title' => ''],
'Y' => ['description' => 'The Y coordinate as a normalized percentage. Valid values of Y: **0.0≤Y≤1.0**.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.25', 'title' => ''],
'PaneId' => ['description' => 'The layout ID, which is sorted from the upper left to the lower right and starts from 0.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'ZOrder' => ['description' => 'The stacking order. 0 indicates the bottom layer, 1 indicates the layer above layer 0, and so on.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'X' => ['description' => 'The X coordinate as a normalized percentage. Valid values of X: **0.0≤X≤1.0**.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.25', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => true,
'maxItems' => 16,
'title' => '',
'example' => '',
],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. Only a single ID can be passed.'."\n"
.'You can create and query the application ID in the console.', 'type' => 'string', 'required' => true, 'example' => 'yourAppId', 'title' => ''],
],
[
'name' => 'Name',
'in' => 'query',
'schema' => ['description' => 'The name of the layout.', 'type' => 'string', 'required' => false, 'example' => 'LayoutName', 'title' => ''],
],
[
'name' => 'AudioMixCount',
'in' => 'query',
'schema' => ['description' => 'The maximum number of audio mixes. Valid values: **0** to **6**.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '3', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned result.',
'type' => 'object',
'properties' => [
'LayoutId' => ['description' => 'The layout ID.', 'type' => 'integer', 'format' => 'int64', 'example' => '2', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '760bad53276431c499e30dc36f6b26be', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidCropMode.Malformed', 'errorMessage' => '%s', 'description' => ''],
['errorCode' => 'InvalidAudioMixCount.Malformed', 'errorMessage' => '%s', 'description' => ''],
['errorCode' => 'InvalidPane.Malformed', 'errorMessage' => '%s', 'description' => ''],
['errorCode' => 'IllegalAliUId', 'errorMessage' => '%s', 'description' => ''],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"LayoutId\\": 2,\\n \\"RequestId\\": \\"760bad53276431c499e30dc36f6b26be\\"\\n}","type":"json"}]',
'title' => 'Creates a stream relay layout',
'summary' => 'Calls CreateMPULayout to create a stream relay layout.',
'description' => '# Usage notes'."\n"
.'This operation is used to create a stream relay layout. For example, you can configure parameters such as the number of audio mixes and the major pane.'."\n"
.'# QPS limit'."\n"
.'The per-user QPS limit for this operation is 10 calls per second. If the limit is exceeded, API calls are throttled, which may affect your business. Make sure that you call the operation in a reasonable manner. For more information, see [QPS limit](~~341645~~).',
'requestParamsDescription' => ' > N starts from 1.',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateMPULayout'],
],
],
'ramActions' => [],
],
'DeleteAppAgentTemplate' => [
'summary' => 'Deletes an application agent template.',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', 'tenantRelevance' => 'tenant'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'Application ID. Create and query using the console. Pass only a single ID.', 'type' => 'string', 'required' => true, 'example' => 'ac7N****', 'title' => ''],
],
[
'name' => 'Id',
'in' => 'query',
'schema' => ['description' => 'Template ID.', 'type' => 'string', 'required' => true, 'example' => '1213123142124124124214', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'Id of the request', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8'],
'Id' => ['description' => 'Template ID.', 'type' => 'string', 'example' => '1223131213231313213', 'title' => ''],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\",\\n \\"Id\\": \\"1223131213231313213\\"\\n}","type":"json"}]',
'title' => 'Delete agent template ',
'description' => '### QPS Limits'."\n"
."\n"
.'This API has a single-user queries-per-second (QPS) limit of 10 calls per second. Exceeding this limit triggers rate limiting, which may affect your business. Manage your API calls carefully.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteAppAgentTemplate'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:DeleteAppAgentTemplate',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
],
],
'DeleteAppLayout' => [
'summary' => 'Delete a custom application layout.',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'deprecated' => false,
'systemTags' => ['operationType' => 'none'],
'parameters' => [
[
'name' => 'ClientToken',
'in' => 'query',
'allowEmptyValue' => false,
'schema' => ['description' => 'An idempotency token.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****'],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. Create and query this ID in the console. Only one ID is supported per request.', 'type' => 'string', 'required' => true, 'example' => 'ac7N****', 'title' => ''],
],
[
'name' => 'Layout',
'in' => 'query',
'style' => 'json',
'schema' => [
'title' => '',
'description' => 'Layout information.',
'type' => 'object',
'properties' => [
'LayoutId' => ['description' => 'The layout ID.', 'type' => 'string', 'required' => true, 'example' => '167466539798442****', 'title' => ''],
],
'required' => false,
'example' => '',
],
],
],
'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' => '2DCE8D7E-BE3B-54AB-8DAC-32F34BED0763'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"2DCE8D7E-BE3B-54AB-8DAC-32F34BED0763\\"\\n}","type":"json"}]',
'title' => 'Delete a custom layout ',
'description' => '### QPS limit'."\n"
."\n"
.'This API operation supports up to 10 requests per second per user. If you exceed this limit, rate limiting is triggered, which may affect your application. Call the API only as needed.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteAppLayout'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:DeleteAppLayout',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'DeleteAppRecordTemplate' => [
'summary' => 'Delete an application recording template.',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'deprecated' => false,
'systemTags' => ['operationType' => 'none'],
'parameters' => [
[
'name' => 'ClientToken',
'in' => 'query',
'allowEmptyValue' => false,
'schema' => ['description' => 'Idempotency token.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '53200b81-b761-4c10-842a-a0726d97xxxx'],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'Application ID. Create and view this ID in the console. Only one ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'ac7N****', 'title' => ''],
],
[
'name' => 'Template',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'Template information.',
'type' => 'object',
'properties' => [
'TemplateId' => ['description' => 'Template ID.', 'type' => 'string', 'required' => true, 'example' => '2xh6****', 'title' => ''],
],
'required' => true,
'title' => '',
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Response schema.',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'Request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
['errorCode' => 'Function.Disable', 'errorMessage' => '%s.', 'description' => 'Function status is invalid, please request in function enabled state.'],
['errorCode' => 'Quota.Invalid', 'errorMessage' => '%s.', 'description' => 'Resource quota is insufficient, please submit a work order to increase the quota'],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]',
'title' => 'Delete recording template ',
'description' => '### QPS limit'."\n"
."\n"
.'The per-user query-per-second (QPS) limit for this operation is 10 calls per second. Exceeding this limit triggers rate limiting, which may affect your business. Call this operation only as needed.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteAppRecordTemplate'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:DeleteAppRecordTemplate',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'DeleteAppStreamingOutTemplate' => [
'summary' => 'Delete an RTC 3.0 application stream ingest template.',
'methods' => ['post', 'get'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'deprecated' => false,
'systemTags' => ['operationType' => 'none'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Application ID. You can create and query it in the console. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'wv7N****'],
],
[
'name' => 'StreamingOutTemplate',
'in' => 'query',
'style' => 'json',
'schema' => [
'title' => '',
'description' => 'Template information.',
'type' => 'object',
'properties' => [
'TemplateId' => ['title' => '', 'description' => 'Template ID.', 'type' => 'string', 'required' => true, 'example' => 'xd4c****'],
],
'required' => true,
'example' => '',
],
],
],
'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' => '30D41049-D02D-1C21-86AE-B3E5FD825C17'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
['errorCode' => 'Function.Disable', 'errorMessage' => '%s.', 'description' => 'Function status is invalid, please request in function enabled state.'],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"30D41049-D02D-1C21-86AE-B3E5FD825C17\\"\\n}","type":"json"}]',
'title' => 'Delete Stream Ingest Template',
'description' => '### How-To '."\n"
.'This API is used to delete a stream ingest template for an RTC 3.0 application. '."\n"
.'### Queries per second (QPS) limit '."\n"
.'The QPS limit for this API is 10 requests per second per user. If the limit is exceeded, API calls will be subject to rate limiting, which may impact your business. Please invoke the API appropriately.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteAppStreamingOutTemplate'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:DeleteAppStreamingOutTemplate',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'DeleteAppViewTemplate' => [
'summary' => 'Deletes an application\'s composite stream template.',
'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. You can create and query the ID in the console. Only a single ID can be specified.', 'type' => 'string', 'required' => true, 'example' => 'wv7N****', 'title' => ''],
],
[
'name' => 'Template',
'in' => 'query',
'style' => 'json',
'schema' => [
'title' => '',
'description' => 'The template information.',
'type' => 'object',
'properties' => [
'TemplateId' => ['description' => 'The template ID.', 'type' => 'string', 'required' => true, 'example' => 'xd4c****', 'title' => ''],
],
'required' => true,
'example' => '',
],
],
],
'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' => '30D41049-D02D-1C21-86AE-B3E5FD825C17'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
['errorCode' => 'Function.Disable', 'errorMessage' => '%s.', 'description' => 'Function status is invalid, please request in function enabled state.'],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"30D41049-D02D-1C21-86AE-B3E5FD825C17\\"\\n}","type":"json"}]',
'title' => 'Delete stream merging template ',
'description' => '### QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for this API is 10 calls per second for each user. If you exceed this limit, rate limiting is triggered. This may affect your business. Call this API at a reasonable rate.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteAppViewTemplate'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'rtc:DeleteAppViewTemplate',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
],
],
'DeleteAutoLiveStreamRule' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => ['operationType' => 'delete'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID, which can be created and queried in the console.', 'type' => 'string', 'required' => true, 'example' => 'eo85****', 'title' => ''],
],
[
'name' => 'RuleId',
'in' => 'query',
'schema' => ['description' => 'The bypass rule ID. You can query it in the console or obtain it by calling the [DescribeAutoLiveStreamRule](~~353198~~) operation.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '12', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned result.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '760bad53276431c499e30dc36f6b26be', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ErrorAPIInvalidAppID', 'errorMessage' => '%s', 'description' => ''],
['errorCode' => 'ErrorAPINoRuleId', 'errorMessage' => '%s', 'description' => ''],
['errorCode' => 'ErrorNotMatchRuleId', 'errorMessage' => '%s', 'description' => ''],
['errorCode' => 'ErrorAPINoSignature', 'errorMessage' => '%s', 'description' => ''],
],
[
['errorCode' => 'ErrorAPIIllegalSignature', 'errorMessage' => '%s', 'description' => ''],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"760bad53276431c499e30dc36f6b26be\\"\\n}","type":"json"}]',
'title' => 'Delete an automatic single-stream relay rule',
'summary' => 'Calls DeleteAutoLiveStreamRule to delete an automatic single-stream relay rule.',
'description' => '# Usage notes'."\n"
.'Before you call this operation, you must have called [CreateAutoLiveStreamRule](~~353179~~) to create a bypass rule.'."\n"
.'# QPS limit'."\n"
.'The per-user QPS limit for this operation is 1,000 calls per minute. If you exceed this limit, API calls are throttled, which may affect your business. Call this operation at a reasonable frequency. For more information, see [QPS limit](~~341645~~).',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '1000', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteAutoLiveStreamRule'],
],
],
'ramActions' => [],
],
'DeleteChannel' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => ['operationType' => 'delete'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID, which is created and queried in the console. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'eo85****', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'The ID of the channel that has been joined. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'testid', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned result.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
200 => [
['errorCode' => 'App.Stop', 'errorMessage' => 'App stopped', 'description' => ''],
],
404 => [
['errorCode' => 'App.NotExist', 'errorMessage' => 'App not existed', 'description' => ''],
['errorCode' => 'Channel.NotExist', 'errorMessage' => 'Channel not existed', 'description' => ''],
['errorCode' => 'Service.NoSignaling', 'errorMessage' => 'service no signaling', 'description' => ''],
],
500 => [
['errorCode' => 'App.InternalError', 'errorMessage' => 'App operate internal error', 'description' => ''],
['errorCode' => 'Channel.InternalError', 'errorMessage' => 'Channel operate internal error', 'description' => ''],
['errorCode' => 'Service.InternalError', 'errorMessage' => 'service internal error', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\"\\n}","type":"json"}]',
'title' => 'Delete a channel',
'summary' => 'Calls DeleteChannel to delete a channel.',
'description' => '# Usage notes'."\n"
.'This operation is used to delete a channel.'."\n"
.'# QPS limits'."\n"
.'No single-user QPS limit is imposed on this operation. Call this operation in a reasonable manner based on your actual needs. For more information, see [QPS limits](~~341645~~).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [],
],
'DeleteCloudNotePhrases' => [
'summary' => 'Delete the hot words list for meeting minutes.',
'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. Create and view it in the console. You can specify only one ID.', 'type' => 'string', 'required' => true, 'example' => 'ac7N****', 'title' => ''],
],
[
'name' => 'Phrase',
'in' => 'query',
'style' => 'json',
'schema' => [
'title' => '',
'description' => 'The keywords list parameters.',
'type' => 'object',
'properties' => [
'Id' => ['description' => 'The keywords list ID.', 'type' => 'string', 'required' => true, 'example' => '1qasw23ezcsrfsawq', 'title' => ''],
],
'required' => true,
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Response schema',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'],
'Id' => ['description' => 'The keywords list ID.', 'type' => 'string', 'title' => '', 'example' => '21088b2617489486958531017d0b19'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
['errorCode' => 'Function.Disable', 'errorMessage' => '%s.', 'description' => 'Function status is invalid, please request in function enabled state.'],
['errorCode' => 'Quota.Invalid', 'errorMessage' => '%s.', 'description' => 'Resource quota is insufficient, please submit a work order to increase the quota'],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"Id\\": \\"21088b2617489486958531017d0b19\\"\\n}","type":"json"}]',
'title' => 'Delete hotword table',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'rtc:DeleteCloudNotePhrases',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
],
],
'DeleteEventSubscribe' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => ['operationType' => 'delete'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. You can create and query applications in the console.', 'type' => 'string', 'required' => true, 'example' => '9qb1****', 'title' => ''],
],
[
'name' => 'SubscribeId',
'in' => 'query',
'schema' => ['description' => 'The subscription ID. For more information, see [CreateEventSubscribe](~~274447~~).', 'type' => 'string', 'required' => true, 'example' => 'ad53276431c****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '760bad53276431c499e30dc36f6b26be', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ErrorAPIQueryRow', 'errorMessage' => '%s', 'description' => ''],
['errorCode' => 'ErrorAPIInvalidSubscribeId', 'errorMessage' => '%s', 'description' => ''],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"760bad53276431c499e30dc36f6b26be\\"\\n}","type":"json"}]',
'title' => 'Delete an event subscription',
'summary' => 'Deletes a callback for subscribing to room messages by calling DeleteEventSubscribe.',
'description' => '# 使用说明'."\n"
.'调用本接口前,您必须已经调用[CreateEventSubscribe](~~274447~~)创建订阅房间消息的回调。'."\n"
.'# QPS限制'."\n"
.'本接口的单用户QPS限制为1000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~341645~~)。',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '1000', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteEventSubscribe'],
],
],
'ramActions' => [],
],
'DeleteMPULayout' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => ['operationType' => 'delete'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. Only a single ID can be passed. You can create and query the ID in the console.', 'type' => 'string', 'required' => true, 'example' => 'yourAppId', 'title' => ''],
],
[
'name' => 'LayoutId',
'in' => 'query',
'schema' => ['description' => 'The layout ID. Only a single ID can be passed. To obtain the layout ID, see [CreateMPULayout](~~162192~~).', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '2', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '760bad53276431c499e30dc36f6b26be', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'IllegalLayoutID', 'errorMessage' => '%s', 'description' => ''],
['errorCode' => 'ErrorNoSuchLayout', 'errorMessage' => '%s', 'description' => ''],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"760bad53276431c499e30dc36f6b26be\\"\\n}","type":"json"}]',
'title' => 'Delete an MPU layout',
'summary' => 'Calls DeleteMPULayout to delete an MPU (Mixed Push Unit) layout for stream relay to CDN.',
'description' => '# Usage notes'."\n"
.'Before you call this operation, you must have called [CreateMPULayout](~~162192~~) to create an MPU layout.'."\n"
.'# QPS limits'."\n"
.'The per-user QPS limit for this operation is 10 calls per second. If the limit is exceeded, API calls are throttled, which may affect your business. Call this operation at a reasonable rate. For more information, see [QPS limits](~~341645~~).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteMPULayout'],
],
],
'ramActions' => [],
],
'DeleteRecordTemplate' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => ['operationType' => 'delete'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID, which is created and queried in the console. Only a single ID can be specified.', 'type' => 'string', 'required' => true, 'example' => 'yourAppId', 'title' => ''],
],
[
'name' => 'TemplateId',
'in' => 'query',
'schema' => ['description' => 'The configuration template ID. To obtain the template ID, see [AddRecordTemplate](~~193625~~).', 'type' => 'string', 'required' => true, 'example' => '76dasgb****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID of the task.'."\n", 'type' => 'string', 'example' => '760bad53276431c499e30dc36f6b26be', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
200 => [
['errorCode' => 'TaskExisted', 'errorMessage' => 'the task is existed', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"760bad53276431c499e30dc36f6b26be\\"\\n}","type":"json"}]',
'title' => 'Delete a recording configuration template',
'summary' => 'Calls the DeleteRecordTemplate operation to delete a recording configuration template.',
'description' => '# Usage notes'."\n"
.'Before you call this operation, you must call [AddRecordTemplate](~~193625~~) to add a recording configuration template.'."\n"
.'# QPS limit'."\n"
.'The per-user QPS limit for this operation is 10 calls per second. If the limit is exceeded, API calls are throttled, which may affect your business. Call the operation reasonably. For more information, see [QPS limits](~~341645~~).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Special error codes'."\n"
."\n"
.'|Error ID|Error code|Description|HTTP status code|Meaning|'."\n"
.'|-----|-------|---|----------|'."\n"
.'| InternalError | InternalError|The request processing has failed due to some unknown error, exception or failure. | 500 |Internal error |'."\n",
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteRecordTemplate'],
],
],
'ramActions' => [],
],
'DescribeAllCallback' => [
'summary' => 'Lists the event callbacks supported by the system.',
'methods' => ['get', 'post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'deprecated' => false,
'systemTags' => ['operationType' => 'none'],
'parameters' => [],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'Id of the request', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'],
'Callbacks' => [
'title' => '',
'description' => 'List of callback events.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Name' => ['description' => 'Event name.', 'type' => 'string', 'example' => '录制回调', 'title' => ''],
'Category' => ['description' => 'Event code.', 'type' => 'string', 'example' => 'RecordEvent', 'title' => ''],
'SubEvent' => [
'title' => '',
'description' => 'List of subscribed sub-events.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Event' => ['description' => 'Subscribed sub-event code.', 'type' => 'integer', 'format' => 'int32', 'example' => '2000', 'title' => ''],
'Type' => ['description' => 'Subscription event type: 0 for system, 1 for custom.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'EventName' => ['description' => 'Subscribed sub-event name.', 'type' => 'string', 'example' => '录制开始', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"Callbacks\\": [\\n {\\n \\"Name\\": \\"录制回调\\",\\n \\"Category\\": \\"RecordEvent\\",\\n \\"SubEvent\\": [\\n {\\n \\"Event\\": 2000,\\n \\"Type\\": 0,\\n \\"EventName\\": \\"录制开始\\"\\n }\\n ]\\n }\\n ]\\n}","type":"json"}]',
'title' => 'All management events supported by system callbacks',
'description' => '### QPS limit'."\n"
."\n"
.'This API supports a maximum of 10 calls per second per user. If you exceed this limit, rate limiting is applied to your API calls, which may affect your business operations. Use this API judiciously.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeAllCallback'],
],
],
'ramActions' => [],
],
'DescribeAppAgentFunctionStatus' => [
'summary' => 'Query the status of the application agent feature.',
'methods' => ['get', 'post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', 'tenantRelevance' => 'tenant'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. Create and query it in the console. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'ac7N****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'Id of the request', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8'],
'Result' => ['description' => 'Switch status. Valid values: enable (on) and disable (off).', 'type' => 'string', 'example' => 'disable', 'title' => ''],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\",\\n \\"Result\\": \\"disable\\"\\n}","type":"json"}]',
'title' => 'Query the agent feature toggle',
'description' => '### QPS limit'."\n"
."\n"
.'This API operation supports a maximum of 10 queries per second per user. If you exceed this limit, rate limiting is triggered, which may affect your application. Call this API only as needed.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeAppAgentFunctionStatus'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:DescribeAppAgentFunctionStatus',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
],
],
'DescribeAppAgentTemplates' => [
'summary' => 'Application agent templates',
'methods' => ['get', 'post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', 'tenantRelevance' => 'tenant'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. You can find this ID in the console. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'ac7N****', 'title' => ''],
],
[
'name' => 'Name',
'in' => 'query',
'schema' => ['description' => 'The template name.', 'type' => 'string', 'required' => false, 'example' => '智能体模版', 'maxLength' => 128, 'minLength' => 1, 'title' => ''],
],
[
'name' => 'Id',
'in' => 'query',
'schema' => ['description' => 'The template ID.', 'type' => 'string', 'required' => false, 'example' => '123121414122313121313', 'maxLength' => 128, 'minLength' => 1, 'title' => ''],
],
[
'name' => 'PageNum',
'in' => 'query',
'schema' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int32', 'default' => '1', 'title' => '', 'required' => false, 'example' => '1'],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The page size.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '100', 'default' => '10', 'title' => '', 'required' => false, 'example' => '10'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'The response schema.',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'The ID of the request.', 'type' => 'string', 'example' => '30D41049-D02D-1C21-86AE-B3E5FD805C27'],
'TotalNum' => ['description' => 'The total number of records.', 'type' => 'integer', 'format' => 'int64', 'example' => '10', 'title' => ''],
'TotalPage' => ['description' => 'The total number of pages.', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
'Templates' => [
'title' => '',
'description' => 'The list of templates.',
'type' => 'array',
'items' => [
'title' => '',
'description' => '',
'type' => 'object',
'properties' => [
'Greeting' => ['description' => 'The greeting message.', 'type' => 'string', 'example' => '你好,机器人。', 'title' => ''],
'CreateTime' => ['description' => 'The time when the template was created. The format is `yyyy-MM-ddTHH:mm:ssZ` (UTC).', 'type' => 'string', 'example' => '2020-09-04T06:22:15Z', 'title' => ''],
'AgentSilenceConfig' => [
'description' => 'The agent silence configuration.',
'title' => '',
'type' => 'object',
'properties' => [
'Content' => ['title' => '', 'description' => 'The silence alert message.', 'type' => 'string', 'example' => '你好,还在吗?'],
'WebhookTriggerTimeout' => ['title' => '', 'description' => 'The timeout, in seconds, to trigger the agent silence webhook. The webhook can be triggered multiple times. If the agent remains silent, it is triggered again after each timeout.', 'type' => 'integer', 'format' => 'int32', 'example' => '50'],
'Strategy' => ['title' => '', 'description' => 'The strategy for handling silence timeouts. Valid values:
1: Plays the alert message specified in `Content`.
2: Sends the `Content` message and conversation history to the LLM, and then plays the generated response.
', 'type' => 'integer', 'format' => 'int32', 'example' => '1'],
'AlertTimeout' => ['title' => '', 'description' => 'The timeout, in seconds, for the silence alert. The alert can be triggered multiple times. If the agent remains silent, it is triggered again after each timeout.', 'type' => 'integer', 'format' => 'int32', 'example' => '60'],
],
'example' => '',
],
'AmbientSoundConfig' => [
'description' => 'The ambient sound configuration.',
'title' => '',
'type' => 'object',
'properties' => [
'SoundId' => ['title' => '', 'description' => 'The ID of the ambient sound.', 'type' => 'string', 'example' => 'office'],
'Volume' => ['title' => '', 'description' => 'The volume of the ambient sound.', 'type' => 'integer', 'format' => 'int32', 'example' => '50'],
],
'example' => '',
],
'InterruptConfig' => [
'description' => 'The interrupt configuration.',
'title' => '',
'type' => 'object',
'properties' => [
'SemanticsInterrupt' => ['title' => '', 'description' => 'Enables or disables semantic interrupt.', 'type' => 'boolean', 'example' => ''],
],
'example' => '',
],
'BackChannelConfig' => [
'description' => 'The back-channeling configuration.',
'title' => '',
'type' => 'object',
'properties' => [
'UserTurnEnd' => ['title' => '', 'description' => 'Enables or disables back-channeling after the user finishes speaking.', 'type' => 'boolean', 'example' => ''],
],
'example' => '',
],
'InterruptMode' => ['description' => 'The interrupt mode. Valid values:'."\n"
."\n"
.'- 1: Allows interrupts (Default)'."\n"
."\n"
.'- 2: Disables interrupts', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'Name' => ['description' => 'The name of the template.', 'type' => 'string', 'example' => '测试', 'title' => ''],
'AsrConfig' => [
'title' => '',
'description' => 'The ASR configuration.',
'type' => 'object',
'properties' => [
'VocabularyId' => ['description' => 'The ID of the hotword vocabulary.', 'type' => 'string', 'title' => '', 'example' => 'ecfadace11114cf08a7f07aceee798ad'],
'MaxSentenceSilence' => ['description' => 'The maximum duration of silence, in milliseconds, to detect the end of a sentence. The value must be between 200 and 6,000. Default: 500.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '300'],
'VadConfig' => [
'description' => 'The VAD configuration.',
'title' => '',
'type' => 'object',
'properties' => [
'InterruptSpeechDuration' => ['title' => '', 'description' => 'The minimum duration of continuous speech, in milliseconds, that qualifies as a valid interrupt. This setting helps prevent false triggers. The value must be between 0 and 3,000.', 'type' => 'integer', 'format' => 'int32', 'example' => '1200'],
],
'example' => '',
],
'WordWeights' => [
'title' => '',
'description' => 'A list of hotwords and their corresponding weights. You can specify up to 500 hotwords.',
'type' => 'array',
'items' => [
'title' => '',
'description' => 'A hotword and its weight.',
'type' => 'object',
'properties' => [
'Word' => ['description' => 'The hotword. Each hotword must be UTF-8 encoded, contain no more than 10 characters, and have no punctuation or special characters. Invalid hotwords are ignored.', 'type' => 'string', 'title' => '', 'example' => '德州'],
'Lang' => ['description' => 'The language code.', 'type' => 'string', 'title' => '', 'example' => 'zh'],
'Weight' => ['description' => 'The weight of the hotword. The value must be an integer from 1 to 5. A higher weight increases recognition probability, but an excessively high weight may decrease the recognition accuracy of other words. A common value is 4.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '1'],
],
'required' => true,
'example' => '',
],
'example' => '',
],
'Name' => ['description' => 'The name of the configuration.', 'type' => 'string', 'title' => '', 'example' => 'Asr配置'],
],
'example' => '',
],
'Type' => ['description' => 'The type of the agent. Valid values:'."\n"
."\n"
.'- 1: Voice call (Default)', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'LlmConfig' => [
'title' => '',
'description' => 'The LLM configuration.',
'type' => 'object',
'properties' => [
'Temperature' => ['description' => 'The sampling temperature. Valid range: \\[0, 2). Default: 0.7.', 'type' => 'number', 'format' => 'float', 'title' => '', 'example' => '0.8'],
'ApiKey' => ['description' => 'The API key for the LLM service vendor.', 'type' => 'string', 'title' => '', 'example' => 'qW8GpBOdHK/pv9gdUSVLvQ=='],
'MaxToken' => ['description' => 'The maximum number of tokens to generate in the output. Default: 8192.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '1024'],
'Model' => ['description' => 'The model to use. For Model Studio, supported models include `qwen-plus` and `deepseek-r1`.', 'type' => 'string', 'title' => '', 'example' => 'deepseek-r1'],
'HistoryDepth' => ['description' => 'The depth of the conversation history to provide to the LLM, measured in turns. Maximum: 100. Default: 3.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '8'],
'Prompt' => ['description' => 'The prompt for the LLM. Maximum length: 5000 characters.', 'type' => 'string', 'title' => '', 'example' => '你是一个高级心理医生'],
'AgentAppId' => ['title' => '', 'description' => 'The AppId of the agent from Model Studio. This parameter is used when the `Vendor` is set to `aliyun`.', 'type' => 'string', 'example' => '1233312'],
'Vendor' => ['description' => 'The service vendor. Supported values: `aliyun` for Model Studio, and custom values for third-party services that are compliant with the OpenAI API specification.', 'type' => 'string', 'title' => '', 'example' => 'aliyun'],
'TopP' => ['description' => 'The probability threshold for Top-p sampling. Valid range: (0, 1]. Default: 0.8.', 'type' => 'number', 'format' => 'float', 'title' => '', 'example' => '0.8'],
'Url' => ['description' => 'The service endpoint URL, required when using a third-party LLM.', 'type' => 'string', 'title' => '', 'example' => 'https://test.com'],
'Name' => ['description' => 'The name of the configuration.', 'type' => 'string', 'title' => '', 'example' => 'llm'],
],
'example' => '',
],
'TtsConfig' => [
'title' => '',
'description' => 'The TTS configuration.',
'type' => 'object',
'properties' => [
'ApiKey' => ['description' => 'The API key for the TTS service vendor.', 'type' => 'string', 'title' => '', 'example' => 'N5448VFGI2mXJU8a/A03VQ=='],
'FilterBrackets' => [
'title' => '',
'description' => 'Specifies which types of brackets to filter from the text before synthesis.'."\n"
."\n"
.'- 1: Chinese parentheses `()`'."\n"
."\n"
.'- 2: English parentheses `()`'."\n"
."\n"
.'- 3: Chinese square brackets `【】`'."\n"
."\n"
.'- 4: English square brackets `[]`'."\n"
."\n"
.'- 5: English curly braces `{}`',
'type' => 'array',
'items' => ['description' => 'An integer representing a bracket type to filter.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '1'],
'example' => '',
],
'Volume' => ['description' => 'The volume of the synthesized speech. The value must be between 0 and 100. Default: 50.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '50'],
'Rate' => ['description' => 'The speech rate. The value must be between 0.5 and 2.0. Default: 1.0.', 'type' => 'number', 'format' => 'float', 'title' => '', 'example' => '50'],
'Model' => ['description' => 'The model to use. For Model Studio, the supported model is `cosyvoice-v1`.', 'type' => 'string', 'title' => '', 'example' => 'cosyvoice-v1'],
'Pitch' => ['description' => 'The pitch of the synthesized speech. The value must be between 0.5 and 2.0. Default: 1.0.', 'type' => 'number', 'format' => 'float', 'title' => '', 'example' => '0.8'],
'Vendor' => ['description' => 'The service vendor. Currently, only Model Studio (`aliyun`) is supported.', 'type' => 'string', 'title' => '', 'example' => 'aliyun'],
'Voice' => ['description' => 'The voice for synthesis. The default voice is `longxiaoxia`. Supported voices include:'."\n"
."\n"
.'- longwan'."\n"
."\n"
.'- longcheng'."\n"
."\n"
.'- longhua'."\n"
."\n"
.'- longxiaochun'."\n"
."\n"
.'- longxiaoxia'."\n"
."\n"
.'- longxiaocheng'."\n"
."\n"
.'- longxiaobai'."\n"
."\n"
.'- longlaotie'."\n"
."\n"
.'- longshu'."\n"
."\n"
.'- longshuo'."\n"
."\n"
.'- longjing'."\n"
."\n"
.'- longmiao'."\n"
."\n"
.'- longyue'."\n"
."\n"
.'- longyuan'."\n"
."\n"
.'- longfei'."\n"
."\n"
.'- longjielidou'."\n"
."\n"
.'- longtong'."\n"
."\n"
.'- longxiang'."\n"
."\n"
.'- loongstella'."\n"
."\n"
.'- loongbella', 'type' => 'string', 'title' => '', 'example' => 'longwan'],
'Name' => ['description' => 'The name of the configuration.', 'type' => 'string', 'title' => '', 'example' => 'Tts'],
],
'example' => '',
],
'Id' => ['description' => 'The ID of the template.', 'type' => 'string', 'example' => 'wv7N****', 'title' => ''],
'ChatMode' => ['description' => 'The chat mode. Valid values:'."\n"
."\n"
.'- 1: Natural conversation mode (Default)'."\n"
."\n"
.'- 2: Walkie-talkie mode', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'EnableVideoUnderstanding' => ['description' => 'Enables or disables video understanding. If enabled, the configured LLM must support multimodal data.', 'type' => 'boolean', 'title' => '', 'example' => ''],
'PreferVideo' => ['description' => 'Specifies which video stream the agent prioritizes when video understanding is enabled and both camera and screen sharing streams are active.'."\n"
."\n"
.'1: Prioritize the camera stream.'."\n"
."\n"
.'2: Prioritize the screen sharing stream.'."\n"
."\n"
.'By default, the camera stream is prioritized.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => ''],
],
'example' => '',
],
'example' => '',
],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"30D41049-D02D-1C21-86AE-B3E5FD805C27\\",\\n \\"TotalNum\\": 10,\\n \\"TotalPage\\": 1,\\n \\"Templates\\": [\\n {\\n \\"Greeting\\": \\"你好,机器人。\\",\\n \\"CreateTime\\": \\"2020-09-04T06:22:15Z\\",\\n \\"AgentSilenceConfig\\": {\\n \\"Content\\": \\"你好,还在吗?\\",\\n \\"WebhookTriggerTimeout\\": 50,\\n \\"Strategy\\": 1,\\n \\"AlertTimeout\\": 60\\n },\\n \\"AmbientSoundConfig\\": {\\n \\"SoundId\\": \\"office\\",\\n \\"Volume\\": 50\\n },\\n \\"InterruptConfig\\": {\\n \\"SemanticsInterrupt\\": false\\n },\\n \\"BackChannelConfig\\": {\\n \\"UserTurnEnd\\": false\\n },\\n \\"InterruptMode\\": 1,\\n \\"Name\\": \\"测试\\",\\n \\"AsrConfig\\": {\\n \\"VocabularyId\\": \\"ecfadace11114cf08a7f07aceee798ad\\",\\n \\"MaxSentenceSilence\\": 300,\\n \\"VadConfig\\": {\\n \\"InterruptSpeechDuration\\": 1200\\n },\\n \\"WordWeights\\": [\\n {\\n \\"Word\\": \\"德州\\",\\n \\"Lang\\": \\"zh\\",\\n \\"Weight\\": 1\\n }\\n ],\\n \\"Name\\": \\"Asr配置\\"\\n },\\n \\"Type\\": 1,\\n \\"LlmConfig\\": {\\n \\"Temperature\\": 0.8,\\n \\"ApiKey\\": \\"qW8GpBOdHK/pv9gdUSVLvQ==\\",\\n \\"MaxToken\\": 1024,\\n \\"Model\\": \\"deepseek-r1\\",\\n \\"HistoryDepth\\": 8,\\n \\"Prompt\\": \\"你是一个高级心理医生\\",\\n \\"AgentAppId\\": \\"1233312\\",\\n \\"Vendor\\": \\"aliyun\\",\\n \\"TopP\\": 0.8,\\n \\"Url\\": \\"https://test.com\\",\\n \\"Name\\": \\"llm\\"\\n },\\n \\"TtsConfig\\": {\\n \\"ApiKey\\": \\"N5448VFGI2mXJU8a/A03VQ==\\",\\n \\"FilterBrackets\\": [\\n 1\\n ],\\n \\"Volume\\": 50,\\n \\"Rate\\": 50,\\n \\"Model\\": \\"cosyvoice-v1\\",\\n \\"Pitch\\": 0.8,\\n \\"Vendor\\": \\"aliyun\\",\\n \\"Voice\\": \\"longwan\\",\\n \\"Name\\": \\"Tts\\"\\n },\\n \\"Id\\": \\"wv7N****\\",\\n \\"ChatMode\\": 1,\\n \\"EnableVideoUnderstanding\\": false,\\n \\"PreferVideo\\": 0\\n }\\n ]\\n}","type":"json"}]',
'title' => 'Query agent template list ',
'description' => '### QPS limit'."\n"
."\n"
.'The single-user QPS limit for this interface is 10. To avoid API call throttling and potential business disruptions, plan your calls accordingly.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeAppAgentTemplates'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:DescribeAppAgentTemplates',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
],
],
'DescribeAppCallStatus' => [
'summary' => 'View application callback toggle',
'methods' => ['get', 'post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'deprecated' => false,
'systemTags' => ['operationType' => 'none'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Application ID.', 'type' => 'string', 'required' => true, 'example' => '223***JQb'],
],
],
'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' => '20A6D1E3-1F5F-5440-A4F1-EC7831646FE4'],
'Result' => [
'title' => '',
'description' => 'Callback status: enable – Enabled, disable – shutdown.',
'type' => 'string',
'example' => 'enable',
'enum' => [],
],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"20A6D1E3-1F5F-5440-A4F1-EC7831646FE4\\",\\n \\"Result\\": \\"enable\\"\\n}","type":"json"}]',
'title' => 'Query application callback status',
'description' => '### Queries per second (QPS) limit '."\n"
.'This API has a per-user QPS limit of 10 queries per second. If this limit is exceeded, API calls will be subject to rate limiting, which may impact your business. Please invoke the API appropriately.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeAppCallStatus'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:DescribeAppCallStatus',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'DescribeAppCallbackSecretKey' => [
'summary' => 'Obtain the application callback key ',
'methods' => ['get', 'post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'deprecated' => false,
'systemTags' => ['operationType' => 'none'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Application ID. You can create and query it in the console. Only a single ID is supported. ', 'type' => 'string', 'required' => true, 'example' => '9qb1****'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'Id of the request', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'],
'CallbackSecretKey' => ['title' => '', 'description' => 'Callback key. ', 'type' => 'string', 'example' => 'a656b296a30xxxxxxxxxx1cd4'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"CallbackSecretKey\\": \\"a656b296a30xxxxxxxxxx1cd4\\"\\n}","type":"json"}]',
'title' => 'Query callback key ',
'description' => '### Queries per second (QPS) limit '."\n"
.'The queries per second (QPS) limit for this API is 10 requests per second per user. If the limit is exceeded, API calls will be subject to rate limiting, which may impact your business. Please invoke the API appropriately. ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeAppCallbackSecretKey'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:DescribeAppCallbackSecretKey',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'DescribeAppKey' => [
'summary' => 'Invoke DescribeAppKey to query the AppKey of a specified application. ',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'Application ID. You can create and query this ID in the console. Only a single ID is supported. ', 'type' => 'string', 'required' => true, 'example' => '0cho****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'Return Result. ',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'Request ID. ', 'type' => 'string', 'example' => '154EF5DE-3D08-1F2C-A482-281F78D74B7C', 'title' => ''],
'AppKey' => ['description' => 'AppKey。', 'type' => 'string', 'example' => 'ba133b2cee4ab9be424674892c33****', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
404 => [
['errorCode' => 'InvalidAppId.NotFound', 'errorMessage' => '%s', 'description' => ''],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"154EF5DE-3D08-1F2C-A482-281F78D74B7C\\",\\n \\"AppKey\\": \\"ba133b2cee4ab9be424674892c33****\\"\\n}","type":"json"}]',
'title' => 'Query the AppKey of a specified application ',
'description' => '### How-To '."\n"
.'Before invoking this API, you must have already created an application in the RTC console. '."\n"
.'### queries per second (QPS) limit '."\n"
.'The QPS limit for this API is 200 requests per minute per user. If the limit is exceeded, API calls will be subject to Rate Limiting, which may Impact your business. Please invoke the API appropriately. ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeAppKey'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'rtc:DescribeAppKey',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'DescribeAppLayouts' => [
'summary' => 'Query custom application layouts.',
'methods' => ['get'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'deprecated' => false,
'systemTags' => ['operationType' => 'none'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. Create and query it using the console. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'ac7N****', 'title' => ''],
],
[
'name' => 'PageNum',
'in' => 'query',
'schema' => ['description' => 'The page number. Default value: 1.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'default' => '1', 'title' => '', 'required' => false],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries per page. Default value: 10.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'default' => '10', 'title' => '', 'required' => false],
],
[
'name' => 'Condition',
'in' => 'query',
'style' => 'json',
'schema' => [
'title' => '',
'description' => 'The query conditions.',
'type' => 'object',
'properties' => [
'LayoutId' => ['description' => 'The layout ID.', 'type' => 'string', 'example' => '167466539798442****', 'title' => '', 'required' => false],
'Name' => ['description' => 'The layout name.', 'type' => 'string', 'example' => '测试', 'title' => '', 'required' => false],
],
'required' => false,
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'TotalPage' => ['description' => 'The total number of pages.', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
'RequestId' => ['description' => 'The ID of this request.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
'TotalNum' => ['description' => 'The total number of entries.', 'type' => 'integer', 'format' => 'int64', 'example' => '10', 'title' => ''],
'Layouts' => [
'title' => '',
'description' => 'The list of layouts.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'LayoutId' => ['description' => 'The layout ID.', 'type' => 'string', 'example' => '167466539798442****', 'title' => ''],
'Name' => ['description' => 'The layout name.', 'type' => 'string', 'example' => '测试', 'title' => ''],
'Panes' => [
'title' => '',
'description' => 'The list of panes.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Width' => ['description' => 'The pane width, as a normalized percentage. The value range for Width is 0.0 < Width ≤ 1.0.', 'type' => 'number', 'format' => 'float', 'example' => '0.25', 'title' => ''],
'Height' => ['description' => 'The pane height, as a normalized percentage. The value range for Height is 0.0 < Height ≤ 1.0.', 'type' => 'number', 'format' => 'float', 'example' => '0.25', 'title' => ''],
'Y' => ['description' => 'The Y coordinate, as a normalized percentage. The value range for Y is 0.0 ≤ Y ≤ 1.0.', 'type' => 'number', 'format' => 'float', 'example' => '0.25', 'title' => ''],
'PaneId' => ['description' => 'The pane ID.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'ZOrder' => ['description' => 'The Z-order. 0 is the bottom layer, 1 is above 0, and so on.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'X' => ['description' => 'The X coordinate, as a normalized percentage. The value range for X is 0.0 ≤ X ≤ 1.0.', 'type' => 'number', 'format' => 'float', 'example' => '0.25', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalPage\\": 1,\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"TotalNum\\": 10,\\n \\"Layouts\\": [\\n {\\n \\"LayoutId\\": \\"167466539798442****\\",\\n \\"Name\\": \\"测试\\",\\n \\"Panes\\": [\\n {\\n \\"Width\\": 0.25,\\n \\"Height\\": 0.25,\\n \\"Y\\": 0.25,\\n \\"PaneId\\": 0,\\n \\"ZOrder\\": 0,\\n \\"X\\": 0.25\\n }\\n ]\\n }\\n ]\\n}","type":"json"}]',
'title' => 'Query Custom layout List',
'description' => '### QPS limit'."\n"
."\n"
.'This API supports up to 10 queries per second (QPS) per user. Exceeding this limit triggers rate limiting, which may affect your business operations. Use the API judiciously.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeAppLayouts'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:DescribeAppLayouts',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'DescribeAppLiveStreamStatus' => [
'summary' => 'View the application bypass switch.',
'methods' => ['get'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'deprecated' => false,
'systemTags' => ['operationType' => 'none'],
'parameters' => [
[
'name' => 'ClientToken',
'in' => 'query',
'allowEmptyValue' => false,
'schema' => ['description' => 'A parameter that ensures the idempotence of the request.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****'],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the application. You can create and query the application ID in the console. You can specify only one application ID.', 'type' => 'string', 'required' => true, 'example' => 'ac7N****', 'title' => ''],
],
],
'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' => '231470C1-ACFB-4C9F-844F-4CFE1E3804C5'],
'Result' => ['description' => 'The status of the switch. enable indicates that the feature is enabled. disable indicates that the feature is disabled.', 'type' => 'string', 'example' => 'disable', 'title' => ''],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"231470C1-ACFB-4C9F-844F-4CFE1E3804C5\\",\\n \\"Result\\": \\"disable\\"\\n}","type":"json"}]',
'title' => 'Query the status of the bypass stream ingest feature',
'description' => '### QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for this API is 10 for each user. API calls that exceed this limit are subject to rate limiting, which may impact your business. We recommend that you call this API at a reasonable rate.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeAppLiveStreamStatus'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:DescribeAppLiveStreamStatus',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'DescribeAppRecordStatus' => [
'summary' => 'Queries the recording status of an application.',
'methods' => ['get'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'deprecated' => false,
'systemTags' => ['operationType' => 'none'],
'parameters' => [
[
'name' => 'ClientToken',
'in' => 'query',
'allowEmptyValue' => false,
'schema' => ['description' => 'Idempotency token', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****'],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'Application ID. You can create and view this ID in the console. Only one ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'ac7N****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Response schema',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'Request ID', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'],
'Result' => ['description' => 'Recording status. Valid values: enable or disable.', 'type' => 'string', 'example' => 'disable', 'title' => ''],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"Result\\": \\"disable\\"\\n}","type":"json"}]',
'title' => 'Query the status of the recording feature ',
'description' => '### QPS limit'."\n"
."\n"
.'The QPS limit for this operation is 10 calls per second per user. Exceeding this limit triggers rate limiting, which may affect your business. Call this operation only as needed.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeAppRecordStatus'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:DescribeAppRecordStatus',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'DescribeAppRecordTemplates' => [
'summary' => 'Lists application recording templates.',
'methods' => ['get'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'deprecated' => false,
'systemTags' => ['operationType' => 'none'],
'parameters' => [
[
'name' => 'ClientToken',
'in' => 'query',
'allowEmptyValue' => false,
'schema' => ['description' => 'Idempotency token', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****'],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'Application ID. Find or create this ID in the console. You can specify only one ID.', 'type' => 'string', 'required' => true, 'example' => 'ac7N****', 'title' => ''],
],
[
'name' => 'PageNum',
'in' => 'query',
'schema' => ['description' => 'Page number. Default is 1.', 'type' => 'integer', 'format' => 'int32', 'minimum' => '1', 'example' => '1', 'default' => '1', 'title' => '', 'required' => false],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'Number of items per page. Default is 10.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'default' => '10', 'title' => '', 'required' => false],
],
[
'name' => 'Condition',
'in' => 'query',
'style' => 'json',
'schema' => [
'title' => '',
'description' => 'Query conditions.',
'type' => 'object',
'properties' => [
'TemplateId' => ['description' => 'Template ID.', 'type' => 'string', 'example' => 'ac7N****', 'title' => '', 'required' => false],
'Name' => ['description' => 'Template name.', 'type' => 'string', 'example' => '测试', 'title' => '', 'required' => false],
],
'required' => false,
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Response schema',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'Request ID', 'type' => 'string', 'example' => '2A7497D0-BEAE-58E7-B13A-751BD8EAE4C6'],
'TotalNum' => ['description' => 'Total number of records', 'type' => 'integer', 'format' => 'int64', 'example' => '10', 'title' => ''],
'TotalPage' => ['description' => 'Total number of pages', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
'Templates' => [
'title' => '',
'description' => 'List of templates',
'type' => 'array',
'items' => [
'title' => '',
'description' => '',
'type' => 'object',
'properties' => [
'TemplateId' => ['description' => 'Template ID', 'type' => 'string', 'example' => 'wv7N****', 'title' => ''],
'Name' => ['description' => 'Template name', 'type' => 'string', 'example' => '测试', 'title' => ''],
'FilePrefix' => ['description' => 'Naming convention for recording files'."\n"
."\n"
.'> To ensure unique file names, recordings use this naming convention: record/{AppId}/{ChannelId}*{TaskId}/{EscapedStartTime}*{EscapedEndTime}.', 'type' => 'string', 'example' => 'record/{AppId}/{ChannelId_TaskId}/{EscapedStartTime}_{EscapedEndTime}', 'title' => ''],
'FileSplitInterval' => ['description' => 'Recording file split duration in seconds. Minimum value is 1800.', 'type' => 'integer', 'format' => 'int64', 'example' => '1800', 'title' => ''],
'DelayStopTime' => ['description' => 'Delay before stopping recording, in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '180', 'default' => '180', 'title' => ''],
'CreateTime' => ['description' => 'Creation time in UTC. Format: yyyy-MM-ddTHH:mm:ssZ.', 'type' => 'string', 'example' => '2020-09-04T06:22:15Z', 'title' => ''],
'MediaEncode' => ['description' => 'Encoding option', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'LayoutIds' => [
'title' => '',
'description' => 'List of layout IDs',
'type' => 'array',
'items' => ['description' => 'Layout ID', 'type' => 'string', 'example' => '22', 'title' => ''],
'example' => '',
],
'Formats' => [
'title' => '',
'description' => 'Recording file formats. Supported formats are .m3u8, .mp4, and .flv.'."\n"
."\n"
.'> File formats must be lowercase.',
'type' => 'array',
'items' => ['description' => 'File format', 'type' => 'string', 'example' => 'mp4', 'title' => ''],
'minItems' => 1,
'example' => '',
],
],
'example' => '',
],
'example' => '',
],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"2A7497D0-BEAE-58E7-B13A-751BD8EAE4C6\\",\\n \\"TotalNum\\": 10,\\n \\"TotalPage\\": 1,\\n \\"Templates\\": [\\n {\\n \\"TemplateId\\": \\"wv7N****\\",\\n \\"Name\\": \\"测试\\",\\n \\"FilePrefix\\": \\"record/{AppId}/{ChannelId_TaskId}/{EscapedStartTime}_{EscapedEndTime}\\",\\n \\"FileSplitInterval\\": 1800,\\n \\"DelayStopTime\\": 180,\\n \\"CreateTime\\": \\"2020-09-04T06:22:15Z\\",\\n \\"MediaEncode\\": 1,\\n \\"LayoutIds\\": [\\n \\"22\\"\\n ],\\n \\"Formats\\": [\\n \\"mp4\\"\\n ]\\n }\\n ]\\n}","type":"json"}]',
'title' => 'Query recording template list ',
'description' => '### QPS limit'."\n"
."\n"
.'The per-user query per second (QPS) limit for this operation is 10 calls per second. Exceeding this limit triggers rate limiting, which may affect your business. Call this operation only as needed.',
'changeSet' => [
['createdAt' => '2025-01-06T06:49:44.000Z', 'description' => 'Response parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeAppRecordTemplates'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:DescribeAppRecordTemplates',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'DescribeAppRecordingFiles' => [
'summary' => 'Lists recording files.',
'methods' => ['get'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'deprecated' => false,
'systemTags' => ['operationType' => 'none'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => 'APP ID。', 'description' => 'App ID.', 'type' => 'string', 'required' => true, 'example' => 'testappid'],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'Channel ID.', 'type' => 'string', 'example' => '311', 'title' => '', 'required' => false],
],
[
'name' => 'PageNo',
'in' => 'query',
'schema' => ['description' => 'Page number.', 'type' => 'integer', 'format' => 'int32', 'minimum' => '1', 'example' => '1', 'default' => '1', 'title' => '', 'required' => false],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'Number of entries per page.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '100', 'example' => '10', 'default' => '10', 'title' => '', 'required' => false],
],
[
'name' => 'StartTs',
'in' => 'query',
'schema' => ['description' => 'Query range start time (open interval) for recording tasks, in milliseconds. If not specified, defaults to the past 3 days. You can query recordings up to one year old.', 'type' => 'integer', 'format' => 'int64', 'example' => '1712376032000', 'title' => '', 'required' => false],
],
[
'name' => 'EndTs',
'in' => 'query',
'schema' => ['description' => 'The query range specifies the start time of the recording task. It is defined as a closed interval and measured in milliseconds (ms).', 'type' => 'integer', 'format' => 'int64', 'example' => '1712376532000', 'title' => '', 'required' => false],
],
[
'name' => 'TaskIds',
'in' => 'query',
'style' => 'json',
'schema' => [
'title' => '',
'description' => 'List of recording task IDs.',
'type' => 'array',
'items' => ['description' => 'Specific task ID.', 'type' => 'string', 'required' => false, 'example' => 'task001', 'title' => ''],
'required' => false,
'minItems' => 1,
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'Id of the request', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8'],
'PageNo' => ['description' => 'Page number.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'PageSize' => ['description' => 'Number of entries per page.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '100', 'example' => '10', 'default' => '10', 'title' => ''],
'TotalCnt' => ['description' => 'Total count.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''],
'Items' => [
'title' => '',
'description' => 'List of recording files.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'ChannelId' => ['description' => 'Channel ID.', 'type' => 'string', 'example' => 'testchannelId', 'title' => ''],
'TaskId' => ['description' => 'Recording task ID.', 'type' => 'string', 'example' => 'test001', 'title' => ''],
'FilePath' => ['description' => 'Path where the recording file is stored. Use the SDK of your cloud provider\'s Object Storage Service to access the file. For Alibaba Cloud OSS, see [here](https://help.aliyun.com/zh/oss/user-guide/how-to-obtain-the-url-of-a-single-object-or-the-urls-of-multiple-objects).', 'type' => 'string', 'example' => 'record/appid/12_task_local1/1712279809158_1712279844691/playlist.mp4', 'title' => ''],
'FileSize' => ['description' => 'Recording file size, in bytes.', 'type' => 'integer', 'format' => 'int32', 'example' => '10000', 'title' => ''],
'FileDuration' => ['description' => 'Recording file duration, in milliseconds.', 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''],
'Vendor' => ['description' => 'See vendor used when starting the recording task.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '1'],
'Region' => ['description' => 'See region used in the recording task.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '1'],
'Bucket' => ['description' => 'User-defined bucket.', 'type' => 'string', 'title' => '', 'example' => 'rtc-bucket'],
'StartTs' => ['description' => 'Recording task start timestamp, in milliseconds.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '1712376012000'],
'FileCreateTs' => ['description' => 'Recording file creation timestamp, in milliseconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1712376032000', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ApiParamError', 'errorMessage' => 'API %s.', 'description' => 'API parameter error'],
],
403 => [
['errorCode' => 'BizAppError', 'errorMessage' => 'A business application permission error occurred.', 'description' => 'Business application permission error'],
['errorCode' => 'BizUidError', 'errorMessage' => 'A business UID error occurred.', 'description' => 'Business primary account error'],
],
500 => [
['errorCode' => 'ServerInternalError', 'errorMessage' => 'An internal error occurred.', 'description' => 'Server Internal Error'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\",\\n \\"PageNo\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCnt\\": 10,\\n \\"Items\\": [\\n {\\n \\"ChannelId\\": \\"testchannelId\\",\\n \\"TaskId\\": \\"test001\\",\\n \\"FilePath\\": \\"record/appid/12_task_local1/1712279809158_1712279844691/playlist.mp4\\",\\n \\"FileSize\\": 10000,\\n \\"FileDuration\\": 200,\\n \\"Vendor\\": 1,\\n \\"Region\\": 1,\\n \\"Bucket\\": \\"rtc-bucket\\",\\n \\"StartTs\\": 1712376012000,\\n \\"FileCreateTs\\": 1712376032000\\n }\\n ]\\n}","type":"json"}]',
'title' => 'Recording List',
'description' => '### QPS limit'."\n"
."\n"
.'The QPS limit for this API is 10 requests per second per user. Exceeding this limit triggers rate limiting, which may affect your service. Call this API only when necessary.',
'changeSet' => [
['createdAt' => '2024-11-07T08:36:20.000Z', 'description' => 'Response parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeAppRecordingFiles'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:DescribeAppRecordingFiles',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeAppStreamingOutTemplates' => [
'summary' => 'Query the list of stream ingest templates under an RTC 3.0 application. ',
'methods' => ['get', 'post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'deprecated' => false,
'systemTags' => ['operationType' => 'none'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Application ID, created and queried through the console. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'ioeh****'],
],
[
'name' => 'PageNum',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Page number. By default, page 1 is queried.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'example' => '1', 'default' => '1'],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Number of entries per page. The default value is 10.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'default' => '10'],
],
[
'name' => 'Condition',
'in' => 'query',
'style' => 'json',
'schema' => [
'title' => '',
'description' => 'Search condition.',
'type' => 'object',
'properties' => [
'TemplateId' => ['title' => '', 'description' => 'Template ID.', 'type' => 'string', 'required' => false, 'example' => 'Bj6D****'],
'Name' => ['title' => '', 'description' => 'Template Name.', 'type' => 'string', 'required' => false, 'example' => '测试'],
],
'required' => false,
'example' => '',
],
],
],
'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' => 'B0A2FCBC-43A4-428F-BC1D-3F4F85837F76'],
'TotalNum' => ['title' => '', 'description' => 'Number of records. ', 'type' => 'integer', 'format' => 'int64', 'example' => '10'],
'TotalPage' => ['title' => '', 'description' => 'Number of pages. ', 'type' => 'integer', 'format' => 'int64', 'example' => '1'],
'Templates' => [
'title' => '',
'description' => 'List of templates. ',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'TemplateId' => ['title' => '', 'description' => 'Template ID.', 'type' => 'string', 'example' => 'Bj6D****'],
'Name' => ['title' => '', 'description' => 'Template Name.', 'type' => 'string', 'example' => '模板名称'],
'CreateTime' => ['title' => '', 'description' => 'Creation Time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC). ', 'type' => 'string', 'example' => '2020-09-04T06:22:15Z'],
'MediaEncode' => ['title' => '', 'description' => 'Encoding options. ', 'type' => 'integer', 'format' => 'int32', 'example' => '1'],
'LayoutIds' => [
'title' => '',
'description' => 'List of layout IDs. ',
'type' => 'array',
'items' => ['title' => '', 'description' => 'Specific layout ID.', 'type' => 'string', 'example' => '22'],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
],
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"B0A2FCBC-43A4-428F-BC1D-3F4F85837F76\\",\\n \\"TotalNum\\": 10,\\n \\"TotalPage\\": 1,\\n \\"Templates\\": [\\n {\\n \\"TemplateId\\": \\"Bj6D****\\",\\n \\"Name\\": \\"模板名称\\",\\n \\"CreateTime\\": \\"2020-09-04T06:22:15Z\\",\\n \\"MediaEncode\\": 1,\\n \\"LayoutIds\\": [\\n \\"22\\"\\n ]\\n }\\n ]\\n}","type":"json"}]',
'title' => 'Query stream ingest template list',
'description' => '### How-To '."\n"
.'This API is used to view the list of stream ingest templates for an RTC 3.0 application. '."\n"
.'### Queries per second (QPS) limit '."\n"
.'The QPS limit for this API is 10 queries per second per user. If this limit is exceeded, API calls will be rate-limited, which may impact your business. Please invoke the API appropriately. ',
'changeSet' => [
['createdAt' => '2024-03-07T06:45:09.000Z', 'description' => 'Response parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeAppStreamingOutTemplates'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:DescribeAppStreamingOutTemplates',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'DescribeAppViewStatus' => [
'summary' => 'View the stream merging switch',
'methods' => ['get', 'post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the application. You can create and find the application ID in the console. Only one ID can be specified.', 'type' => 'string', 'required' => true, 'example' => 'ac7N****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'Id of the request', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8'],
'Result' => ['description' => 'The status of the switch. Valid values: enable (on) and disable (off).', 'type' => 'string', 'example' => 'disable', 'title' => ''],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\",\\n \\"Result\\": \\"disable\\"\\n}","type":"json"}]',
'title' => 'Query stream merging feature status',
'description' => '### QPS limits'."\n"
."\n"
.'This API has a QPS limit of 10 queries per second (QPS) per user. If you exceed this limit, rate limiting is triggered, which can affect your business operations. Call the API at a reasonable rate.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeAppViewStatus'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'rtc:DescribeAppViewStatus',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
],
],
'DescribeAppViewTemplates' => [
'summary' => 'Lists application compositing templates.',
'methods' => ['get', 'post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'Application ID. Create and view it in the console. You can specify only one ID.', 'type' => 'string', 'required' => true, 'example' => 'ioeh****', 'title' => ''],
],
[
'name' => 'PageNum',
'in' => 'query',
'schema' => ['description' => 'Page number. Default value: 1.', 'type' => 'integer', 'format' => 'int32', 'minimum' => '1', 'example' => '1', 'default' => '1', 'title' => '', 'required' => false],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'Number of entries per page. Default value: 10.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'default' => '10', 'title' => '', 'required' => false],
],
[
'name' => 'Condition',
'in' => 'query',
'style' => 'json',
'schema' => [
'title' => '',
'description' => 'Search condition.',
'type' => 'object',
'properties' => [
'TemplateId' => ['description' => 'Template ID.', 'type' => 'string', 'example' => 'Bj6D****', 'title' => '', 'required' => false],
'Name' => ['description' => 'Template name.', 'type' => 'string', 'example' => '测试', 'title' => '', 'required' => false],
],
'required' => false,
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Response schema',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'Request ID', 'type' => 'string', 'example' => 'B0A2FCBC-43A4-428F-BC1D-3F4F85837F76'],
'TotalNum' => ['description' => 'Total number of records', 'type' => 'integer', 'format' => 'int64', 'example' => '10', 'title' => ''],
'TotalPage' => ['description' => 'Total number of pages', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
'Templates' => [
'title' => '',
'description' => 'Template list',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'CreateTime' => ['description' => 'Creation time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC).', 'type' => 'string', 'example' => '2020-09-04T06:22:15Z', 'title' => ''],
'MediaEncode' => ['description' => 'Encoding option', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'LayoutIds' => [
'title' => '',
'description' => 'List of layout IDs',
'type' => 'array',
'items' => ['description' => 'Layout ID', 'type' => 'string', 'example' => '22', 'title' => ''],
'example' => '',
],
'TemplateId' => ['description' => 'Template ID', 'type' => 'string', 'example' => 'Bj6D****', 'title' => ''],
'Name' => ['description' => 'Template name', 'type' => 'string', 'example' => '模板名称', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
],
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"B0A2FCBC-43A4-428F-BC1D-3F4F85837F76\\",\\n \\"TotalNum\\": 10,\\n \\"TotalPage\\": 1,\\n \\"Templates\\": [\\n {\\n \\"CreateTime\\": \\"2020-09-04T06:22:15Z\\",\\n \\"MediaEncode\\": 1,\\n \\"LayoutIds\\": [\\n \\"22\\"\\n ],\\n \\"TemplateId\\": \\"Bj6D****\\",\\n \\"Name\\": \\"模板名称\\"\\n }\\n ]\\n}","type":"json"}]',
'title' => 'Stream Mixing Template List',
'description' => '### QPS limit'."\n"
."\n"
.'The per-user QPS limit for this operation is 10 calls per second. Exceeding this limit triggers rate limiting, which may affect your business. You should call this operation only as needed.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeAppViewTemplates'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'rtc:DescribeAppViewTemplates',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
],
],
'DescribeApps' => [
'summary' => 'Invoke DescribeApps to query the application list.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'Application ID, created and queried via the console. Only a single ID is supported.'."\n"
."\n"
.'An empty parameter indicates querying all application IDs.', 'type' => 'string', 'required' => false, 'example' => 'yourAppId', 'title' => ''],
],
[
'name' => 'Status',
'in' => 'query',
'schema' => ['description' => 'Application status. An empty parameter indicates querying applications in all statuses. Valid values:'."\n"
.'- **1**: Active.'."\n"
."\n"
.'- **2**: Disabled.'."\n"
."\n"
.'- **3**: Disabled due to overdue payment.', 'type' => 'string', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'Order',
'in' => 'query',
'schema' => ['description' => 'Sorting method. Valid values:'."\n"
."\n"
.'- **asc**: Increment.'."\n"
."\n"
.'- **desc** (default): Decrement.', 'type' => 'string', 'required' => false, 'example' => 'asc', 'title' => ''],
],
[
'name' => 'PageNum',
'in' => 'query',
'schema' => ['description' => 'Page number. By default, page **1** is queried.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'example' => '1', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'Number of entries per page. Default value is **10**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'example' => '2', 'title' => ''],
],
[
'name' => 'AppVersion',
'in' => 'query',
'schema' => [
'description' => 'Application Version.',
'title' => 'Application Version.',
'type' => 'string',
'example' => '3.0',
'enum' => ['2.0', '3.0'],
'required' => false,
],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'TotalPage' => ['description' => 'Number of returned pages.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'RequestId' => ['description' => 'Request ID.', 'type' => 'string', 'example' => '231470C1-ACFB-4C9F-844F-4CFE1E3804C6', 'title' => ''],
'TotalNum' => ['description' => 'Number of returned results.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'AppList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'App' => [
'description' => 'Application list.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Status' => ['description' => 'Application status. Valid values:'."\n"
.'- **1**: active. '."\n"
.' '."\n"
.'- **2**: disabled.'."\n"
."\n"
.'- **3**: disabled due to overdue payment. ', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'AppName' => ['description' => 'Application name.', 'type' => 'string', 'example' => 'Default AppName', 'title' => ''],
'AppId' => ['description' => 'Application ID.', 'type' => 'string', 'example' => 'rgf1****"', 'title' => ''],
'CreateTime' => ['description' => 'Creation Time', 'type' => 'string', 'example' => '2020-01-09T02:02:29Z', 'title' => ''],
'BillType' => ['description' => 'Billing type.', 'type' => 'string', 'example' => 'PayByCR', 'title' => ''],
'AppType' => ['description' => 'Application type. Valid values:'."\n"
."\n"
.'- **conference**: Conference.'."\n"
."\n"
.'- **universal**: Universal.', 'type' => 'string', 'example' => 'universal', 'title' => ''],
'ServiceAreas' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'ServiceArea' => [
'description' => 'Area where the endpoint is deployed: CN (China).',
'type' => 'array',
'items' => ['description' => 'Area where the endpoint is deployed: CN (China).', 'type' => 'string', 'example' => 'CN', 'title' => ''],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'Version' => ['description' => 'Version.', 'type' => 'string', 'example' => '3.0', 'title' => ''],
],
'description' => 'Application',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
404 => [
['errorCode' => 'InvalidAppId.NotFound', 'errorMessage' => '%s', 'description' => ''],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalPage\\": 1,\\n \\"RequestId\\": \\"231470C1-ACFB-4C9F-844F-4CFE1E3804C6\\",\\n \\"TotalNum\\": 1,\\n \\"AppList\\": {\\n \\"App\\": [\\n {\\n \\"Status\\": 1,\\n \\"AppName\\": \\"Default AppName\\",\\n \\"AppId\\": \\"rgf1****\\\\\\"\\",\\n \\"CreateTime\\": \\"2020-01-09T02:02:29Z\\",\\n \\"BillType\\": \\"PayByCR\\",\\n \\"AppType\\": \\"universal\\",\\n \\"ServiceAreas\\": {\\n \\"ServiceArea\\": [\\n \\"CN\\"\\n ]\\n },\\n \\"Version\\": \\"3.0\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
'title' => 'Query application list',
'description' => '### How-To'."\n"
.'This API is used to query the application list. For example, you can obtain data such as the application ID, application name, and application type from the query result.'."\n"
.'### Queries per second (QPS) limit'."\n"
.'The QPS limit for this API is 200 queries per minute per user. If this limit is exceeded, API calls will be subject to rate limiting, which may impact your business. Call this API appropriately.',
'changeSet' => [
['createdAt' => '2024-05-22T02:11:28.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2024-01-31T10:05:24.000Z', 'description' => 'Response parameters changed'],
['createdAt' => '2024-01-31T02:40:56.000Z', 'description' => 'Response parameters changed'],
['createdAt' => '2021-11-25T06:04:30.000Z', 'description' => 'Response parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeApps'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'rtc:DescribeApps',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeAutoLiveStreamRule' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. You can create and query it in the console.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'eo85****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned result.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '069BCB66-CD80-11E8-A82B-A70F78BBDC00', 'title' => ''],
'Rules' => [
'description' => 'The rule details.',
'type' => 'array',
'items' => [
'description' => 'The rule details.',
'type' => 'object',
'properties' => [
'Status' => ['description' => 'The rule status. Valid values:'."\n"
."\n"
.'- enable: enabled.'."\n"
.'- disable: disabled.', 'type' => 'string', 'example' => 'disable', 'title' => ''],
'MediaEncode' => ['description' => 'The encoding option.', 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''],
'PlayDomain' => ['description' => 'The streaming domain for the automatic relay.', 'type' => 'string', 'example' => 'rtmp://${domain}/${app}/${stream}', 'title' => ''],
'CallBack' => ['description' => 'The callback URL.', 'type' => 'string', 'example' => 'http://example.com/callBack', 'title' => ''],
'CreateTime' => ['description' => 'The time when the rule was created.', 'type' => 'string', 'example' => '2021-08-19T02:53:07Z', 'title' => ''],
'RuleId' => ['description' => 'The rule ID.', 'type' => 'integer', 'format' => 'int64', 'example' => '12', 'title' => ''],
'RuleName' => ['description' => 'The rule name.', 'type' => 'string', 'example' => 'testRule', 'title' => ''],
'ChannelIds' => [
'description' => 'The list of channel IDs that are matched exactly.',
'type' => 'array',
'items' => ['description' => 'The channel ID that is matched exactly.', 'type' => 'string', 'example' => '12333', 'title' => ''],
'title' => '',
'example' => '',
],
'ChannelIdPrefixes' => [
'description' => 'The list of channel ID prefixes that are matched by fuzzy match.',
'type' => 'array',
'items' => ['description' => 'The channel ID prefix that is matched by fuzzy match.', 'type' => 'string', 'example' => '12', 'title' => ''],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ErrorAPIInvalidAppID', 'errorMessage' => 'The AppID API request is invalid: %s', 'description' => ''],
['errorCode' => 'ErrorAPIQueryRow', 'errorMessage' => 'The QueryRow request is invalid: %s', 'description' => ''],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.%s', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"069BCB66-CD80-11E8-A82B-A70F78BBDC00\\",\\n \\"Rules\\": [\\n {\\n \\"Status\\": \\"disable\\",\\n \\"MediaEncode\\": 20,\\n \\"PlayDomain\\": \\"rtmp://${domain}/${app}/${stream}\\",\\n \\"CallBack\\": \\"http://example.com/callBack\\",\\n \\"CreateTime\\": \\"2021-08-19T02:53:07Z\\",\\n \\"RuleId\\": 12,\\n \\"RuleName\\": \\"testRule\\",\\n \\"ChannelIds\\": [\\n \\"12333\\"\\n ],\\n \\"ChannelIdPrefixes\\": [\\n \\"12\\"\\n ]\\n }\\n ]\\n}","type":"json"}]',
'title' => 'Query an automatic live stream relay rule',
'summary' => 'Calls the DescribeAutoLiveStreamRule operation to query an automatic live stream relay rule.',
'description' => '# Usage notes'."\n"
.'Before you call this operation, you must have called the [CreateAutoLiveStreamRule](~~353179~~) operation to create a relay rule.'."\n"
.'# QPS limits'."\n"
.'The per-user QPS limit on this operation is 1,000 calls per minute. If you exceed this limit, API calls are throttled, which may affect your business. Call the operation appropriately. For more information, see [QPS limits](~~341645~~).',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [],
],
'DescribeCall' => [
'summary' => 'This API is used to query the details of a single communication session. For example, you can query the communication status, user details, and other information.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => 'APP ID。', 'description' => 'APP ID。', 'type' => 'string', 'required' => true, 'example' => 'testappid'],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Channel ID.', 'type' => 'string', 'required' => true, 'example' => 'testid'],
],
[
'name' => 'CreatedTs',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Channel creation time. Supports querying data from the last 30 days, represented as a UNIX timestamp, in seconds. '."\n"
.'> The channel creation time must exactly match the actual creation time (accurate to the second). You can obtain the channel creation time by invoking the [DescribeCallList](~~2655884~~) API (see the returned CreatedTS parameter).', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1614936817'],
],
[
'name' => 'DestroyedTs',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Channel release time, represented as a UNIX timestamp, in seconds. If the parameter is empty, the current time is used. '."\n"
.'> If the provided channel release time exceeds the actual release time, data from the creation time to the actual release time will be returned.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1614936817'],
],
[
'name' => 'ExtDataType',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The extension to query. Valid value: USER_DURATION_STAT: user duration statistics data type.', 'type' => 'string', 'required' => false, 'example' => 'USER_DURATION_STAT'],
],
[
'name' => 'QueryExpInfo',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Specifies whether to query communication experience information. If this parameter is not specified, the default value is true. ', 'type' => 'boolean', 'required' => false, 'example' => 'false'],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'Return Result.',
'type' => 'object',
'properties' => [
'CallInfo' => [
'title' => '',
'description' => 'Basic communication information.',
'type' => 'object',
'properties' => [
'AppId' => ['title' => 'App ID。', 'description' => 'App ID。', 'type' => 'string', 'example' => 'testappid'],
'ChannelId' => ['title' => '', 'description' => 'channel ID.', 'type' => 'string', 'example' => '123456'],
'CallStatus' => ['title' => '', 'description' => 'Communication status. Valid values: '."\n"
.'- **IN**: In progress. '."\n"
.'- **OUT**: Ended.', 'type' => 'string', 'example' => 'IN'],
'CreatedTs' => ['title' => '', 'description' => 'The time when the channel was created, represented as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1615860711'],
'DestroyedTs' => ['title' => '', 'description' => 'The time when the channel was released, represented as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1615860811'],
'Duration' => ['title' => '', 'description' => 'Channel duration, in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '100'],
],
'example' => '',
],
'UserDetailList' => [
'title' => '',
'description' => 'List of user details.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'UserId' => ['title' => '', 'description' => 'User ID.', 'type' => 'string', 'example' => 'testuserid'],
'Roles' => [
'title' => '',
'description' => 'User role.',
'type' => 'array',
'items' => ['description' => 'User role. Valid values:'."\n"
.'- **SENDER**: publishing end.'."\n"
.'- **RECEIVER**: subscribing end.', 'type' => 'string', 'example' => 'SENDER', 'title' => ''],
'example' => '',
],
'Location' => ['title' => '', 'description' => 'Geographic location information, such as: Beijing City - Beijing. ', 'type' => 'string', 'example' => '浙江省-杭州市'],
'OnlinePeriods' => [
'title' => '',
'description' => 'Online period information. ',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'JoinTs' => ['title' => '', 'description' => 'The time when the user joined the channel, represented as a UNIX timestamp in seconds. ', 'type' => 'integer', 'format' => 'int64', 'example' => '1614936817'],
'LeaveTs' => ['title' => '', 'description' => 'The time when the user left the channel, represented as a UNIX timestamp in seconds. ', 'type' => 'integer', 'format' => 'int64', 'example' => '1614936817'],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
'CreatedTs' => ['title' => '', 'description' => 'The time when the user first joined the channel, represented as a UNIX timestamp in seconds. ', 'type' => 'integer', 'format' => 'int64', 'example' => '1614936817'],
'DestroyedTs' => ['title' => '', 'description' => 'The time of the user\'s last departure from the channel, represented as a UNIX timestamp in seconds. The value is empty if the communication has not ended.', 'type' => 'integer', 'format' => 'int64', 'example' => '1614936817'],
'OnlineDuration' => ['title' => '', 'description' => 'Online duration, in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '0'],
'Duration' => ['title' => '', 'description' => 'Communication duration, from the first entry to the final exit, in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '0'],
'SdkVersion' => ['title' => '', 'description' => 'SDK Version, such as 1.0.0, 1.1.1, etc.', 'type' => 'string', 'example' => '1.0.0'],
'SdkVersionList' => [
'title' => '',
'description' => 'List of SDK versions, such as 1.0.0, 1.1.1, etc.',
'type' => 'array',
'items' => [
'description' => 'List of SDK versions, for example, 1.0.0, 1.1.1, etc.',
'type' => 'string',
'example' => '1.0.0',
'enumValueTitles' => [],
'title' => '',
],
'example' => '',
],
'Os' => ['title' => '', 'description' => 'Platform Type: If the user client is WEB, this field indicates the type of the browser. If the client is NATIVE, this field indicates the operating system type.', 'type' => 'string', 'example' => 'iOS'],
'OsList' => [
'title' => '',
'description' => 'Platform Type: If the user client is WEB, this field indicates the type of the browser. If the client is NATIVE, this field indicates the operating system type.',
'type' => 'array',
'items' => ['description' => 'Type of browser or operating system, such as Chrome, iOS, Android, etc.', 'type' => 'string', 'example' => 'iOS', 'title' => ''],
'example' => '',
],
'Network' => ['title' => '', 'description' => 'Network type, such as WiFi, 4G, etc. ', 'type' => 'string', 'example' => '4G'],
'NetworkList' => [
'title' => '',
'description' => 'Network type, such as WiFi, 4G, etc. ',
'type' => 'array',
'items' => ['description' => 'Network type, such as WiFi, 4G, etc. ', 'type' => 'string', 'example' => '4G', 'title' => ''],
'example' => '',
],
'CallExp' => ['title' => '', 'description' => 'Call experience. Valid values: '."\n"
.'- **GOOD**: Good. '."\n"
.'- **BAD**: Poor.', 'type' => 'string', 'example' => 'GOOD'],
'DurMetricStatData' => [
'title' => '',
'description' => 'Duration statistics. ',
'type' => 'object',
'properties' => [
'PubAudio' => ['title' => '', 'description' => 'Duration of published Audio, in seconds. ', 'type' => 'integer', 'format' => 'int64', 'example' => '0'],
'SubAudio' => ['title' => '', 'description' => 'Duration of subscribed Audio, in seconds. ', 'type' => 'integer', 'format' => 'int64', 'example' => '0'],
'PubVideo360' => ['title' => '', 'description' => 'Duration of published 360p Video, in seconds. ', 'type' => 'integer', 'format' => 'int64', 'example' => '0'],
'SubVideo360' => ['title' => '', 'description' => 'Duration of subscribed 360P video, in seconds. ', 'type' => 'integer', 'format' => 'int64', 'example' => '0'],
'PubVideo720' => ['title' => '', 'description' => 'Duration of published 720P video, in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '0'],
'SubVideo720' => ['title' => '', 'description' => 'Duration of subscribed 720p Video, in seconds. ', 'type' => 'integer', 'format' => 'int64', 'example' => '0'],
'PubVideo1080' => ['title' => '', 'description' => 'Duration of published 1080P video, in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '0'],
'SubVideo1080' => ['title' => '', 'description' => 'Duration of subscribed 1080p Video, in seconds. ', 'type' => 'integer', 'format' => 'int64', 'example' => '0'],
'PubVideoScreenShare' => ['title' => '', 'description' => 'Duration of published screen sharing, in seconds. ', 'type' => 'integer', 'format' => 'int64', 'example' => '0'],
'SubVideoScreenShare' => ['title' => '', 'description' => 'Duration of subscribed screen sharing, in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '0'],
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
'RequestId' => ['title' => '', 'description' => 'Request ID.', 'type' => 'string', 'example' => '231470C1-ACFB-4C9F-844F-4CFE1E3804C5'],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ApiParamError', 'errorMessage' => 'API %s.', 'description' => 'API parameter error'],
],
403 => [
['errorCode' => 'BizCreatedTsError', 'errorMessage' => 'A business CreatedTs error occurred.', 'description' => 'Parameter meeting creation time is inaccurate.'],
['errorCode' => 'BizAppError', 'errorMessage' => 'A business application permission error occurred.', 'description' => 'Business application permission error'],
['errorCode' => 'BizUidError', 'errorMessage' => 'A business UID error occurred.', 'description' => 'Business primary account error'],
],
500 => [
['errorCode' => 'ServerInternalError', 'errorMessage' => 'An internal error occurred.', 'description' => 'Server Internal Error'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"CallInfo\\": {\\n \\"AppId\\": \\"testappid\\",\\n \\"ChannelId\\": \\"123456\\",\\n \\"CallStatus\\": \\"IN\\",\\n \\"CreatedTs\\": 1615860711,\\n \\"DestroyedTs\\": 1615860811,\\n \\"Duration\\": 100\\n },\\n \\"UserDetailList\\": [\\n {\\n \\"UserId\\": \\"testuserid\\",\\n \\"Roles\\": [\\n \\"SENDER\\"\\n ],\\n \\"Location\\": \\"浙江省-杭州市\\",\\n \\"OnlinePeriods\\": [\\n {\\n \\"JoinTs\\": 1614936817,\\n \\"LeaveTs\\": 1614936817\\n }\\n ],\\n \\"CreatedTs\\": 1614936817,\\n \\"DestroyedTs\\": 1614936817,\\n \\"OnlineDuration\\": 0,\\n \\"Duration\\": 0,\\n \\"SdkVersion\\": \\"1.0.0\\",\\n \\"SdkVersionList\\": [\\n \\"1.0.0\\"\\n ],\\n \\"Os\\": \\"iOS\\",\\n \\"OsList\\": [\\n \\"iOS\\"\\n ],\\n \\"Network\\": \\"4G\\",\\n \\"NetworkList\\": [\\n \\"4G\\"\\n ],\\n \\"CallExp\\": \\"GOOD\\",\\n \\"DurMetricStatData\\": {\\n \\"PubAudio\\": 0,\\n \\"SubAudio\\": 0,\\n \\"PubVideo360\\": 0,\\n \\"SubVideo360\\": 0,\\n \\"PubVideo720\\": 0,\\n \\"SubVideo720\\": 0,\\n \\"PubVideo1080\\": 0,\\n \\"SubVideo1080\\": 0,\\n \\"PubVideoScreenShare\\": 0,\\n \\"SubVideoScreenShare\\": 0\\n }\\n }\\n ],\\n \\"RequestId\\": \\"231470C1-ACFB-4C9F-844F-4CFE1E3804C5\\"\\n}","type":"json"}]',
'title' => 'Query details of a single communication session',
'description' => '### How-To '."\n"
.'This API is used to query the details of a single communication session. For example, you can query the communication status, user details, and other information. '."\n"
.'### queries per second (QPS) Limit '."\n"
.'The QPS limit for this API is 10 queries per second per user. If this limit is exceeded, API calls will be subject to rate limiting, which may impact your business. Invoke the API appropriately.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeCall'],
],
],
'ramActions' => [
[
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeCall',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeCallList' => [
'summary' => 'Invoke DescribeCallList to perform a paged query of communication records created within a specified time range. ',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => 'APP ID。', 'description' => 'APP ID。', 'type' => 'string', 'required' => true, 'example' => 'testappid'],
],
[
'name' => 'StartTs',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Start Time of the query, represented as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1615806196'],
],
[
'name' => 'EndTs',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The end time of the query, expressed as a UNIX timestamp. Unit: seconds.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1615892596'],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Channel ID.', 'type' => 'string', 'required' => false, 'example' => '311'],
],
[
'name' => 'UserId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'User ID.', 'type' => 'string', 'required' => false, 'example' => 'c906531af5f9****'],
],
[
'name' => 'CallStatus',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Call status. Valid values:'."\n"
.'- **IN**: In progress.'."\n"
.'- **OUT**: Ended.', 'type' => 'string', 'required' => false, 'example' => 'OUT'],
],
[
'name' => 'OrderBy',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Sorting field. Valid values:'."\n"
.'- **BAD_EXP_USER_COUNT_DESC**: Sort by the number of users with poor experience in descending order.'."\n"
.'- **BAD_EXP_USER_COUNT_ASC**: Sort by the number of users with poor experience in ascending order.', 'type' => 'string', 'required' => false, 'example' => 'BAD_EXP_USER_COUNT_DESC'],
],
[
'name' => 'QueryMode',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Query mode. Valid values:'."\n"
.'- **ALL**: All calls.'."\n"
.'- **FOLLOW**: Followed calls.', 'type' => 'string', 'required' => false, 'example' => 'ALL'],
],
[
'name' => 'PageNo',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Page number. Minimum value: 1. Maximum value: 200.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Quantity per page, minimum value is 1, maximum value is 200.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '10'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'PageNo' => ['title' => '', 'description' => 'Page number.', 'type' => 'integer', 'format' => 'int32', 'example' => '1'],
'PageSize' => ['title' => '', 'description' => 'Quantity per page.', 'type' => 'integer', 'format' => 'int32', 'example' => '10'],
'TotalCnt' => ['title' => '', 'description' => 'Total Quantity.', 'type' => 'integer', 'format' => 'int32', 'example' => '1'],
'CallList' => [
'title' => '',
'description' => 'List of communications. ',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'AppId' => ['title' => 'App ID。', 'description' => 'App ID。', 'type' => 'string', 'example' => 'testappid'],
'ChannelId' => ['title' => '', 'description' => 'Channel ID.', 'type' => 'string', 'example' => '311'],
'CallStatus' => ['title' => '', 'description' => 'Communication status. Valid values: '."\n"
.'- **IN**: In progress. '."\n"
.'- **OUT**: Ended. ', 'type' => 'string', 'example' => 'OUT'],
'CreatedTs' => ['title' => '', 'description' => 'The UNIX timestamp indicating when the communication was created, in seconds. ', 'type' => 'integer', 'format' => 'int64', 'example' => '1615806196'],
'DestroyedTs' => ['title' => '', 'description' => 'The UNIX timestamp indicating when the communication was released, in seconds. ', 'type' => 'integer', 'format' => 'int64', 'example' => '1615806296'],
'Duration' => ['title' => '', 'description' => 'Duration of the communication, in seconds. ', 'type' => 'integer', 'format' => 'int64', 'example' => '100'],
'UserCnt' => ['title' => '', 'description' => 'User Count.', 'type' => 'integer', 'format' => 'int32', 'example' => '5'],
'BadExpUserCnt' => ['title' => '', 'description' => 'Number of users with poor communication experience. ', 'type' => 'integer', 'format' => 'int32', 'example' => '0'],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
'RequestId' => ['title' => '', 'description' => 'Request ID.', 'type' => 'string', 'example' => '231470C1-ACFB-4C9F-844F-4CFE1E3804C5'],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ApiParamError', 'errorMessage' => 'API %s.', 'description' => 'API parameter error'],
],
403 => [
['errorCode' => 'BizAppError', 'errorMessage' => 'A business application permission error occurred.', 'description' => 'Business application permission error'],
['errorCode' => 'BizUidError', 'errorMessage' => 'A business UID error occurred.', 'description' => 'Business primary account error'],
],
500 => [
['errorCode' => 'ServerInternalError', 'errorMessage' => 'An internal error occurred.', 'description' => 'Server Internal Error'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PageNo\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCnt\\": 1,\\n \\"CallList\\": [\\n {\\n \\"AppId\\": \\"testappid\\",\\n \\"ChannelId\\": \\"311\\",\\n \\"CallStatus\\": \\"OUT\\",\\n \\"CreatedTs\\": 1615806196,\\n \\"DestroyedTs\\": 1615806296,\\n \\"Duration\\": 100,\\n \\"UserCnt\\": 5,\\n \\"BadExpUserCnt\\": 0\\n }\\n ],\\n \\"RequestId\\": \\"231470C1-ACFB-4C9F-844F-4CFE1E3804C5\\"\\n}","type":"json"}]',
'title' => 'Paged query of communication information within a time range',
'description' => '### How-To '."\n"
.'This API is used to query communication records created within a specified time range. For example, you can query information such as call duration, status, and user count. '."\n"
.'### Rate Limiting '."\n"
.'The queries per second (QPS) limit for this API is 10 calls per second per user. If this limit is exceeded, API calls will be rate-limited, which may impact your business. Please invoke the API appropriately. ',
'changeSet' => [
['createdAt' => '2023-12-28T03:40:22.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeCallList'],
],
],
'ramActions' => [
[
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeCallList',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeCallbacks' => [
'summary' => 'Lists the event callbacks configured for an application.',
'methods' => ['get', 'post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'deprecated' => false,
'systemTags' => ['operationType' => 'none'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID.', 'type' => 'string', 'required' => true, 'example' => '223***JQb', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'Id of the request', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'],
'Callbacks' => [
'title' => '',
'description' => 'A list of subscribed events for the application.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Conf' => ['description' => 'The webhook address.', 'type' => 'string', 'example' => 'https://www.aliyun.com', 'title' => ''],
'Status' => [
'description' => 'The callback status. 0 indicates enabled. 1 indicates disabled.',
'type' => 'integer',
'format' => 'int32',
'example' => '1',
'enum' => [],
'title' => '',
],
'Category' => ['description' => 'The callback code.', 'type' => 'string', 'example' => 'RecordEvent', 'title' => ''],
'Code' => ['description' => 'The callback validation code.', 'type' => 'string', 'title' => '', 'example' => 'RESPONSE_INVALID'],
'Msg' => ['description' => 'The callback validation message.', 'type' => 'string', 'title' => '', 'example' => 'Success'],
'CheckStatus' => [
'description' => 'The callback validation status. 0 indicates validating. 1 indicates validation successful. 2 indicates validation failed.',
'type' => 'string',
'example' => '1',
'enum' => [],
'title' => '',
],
'SubEvent' => [
'title' => '',
'description' => 'The sub-events. For more information, see Callback overview.'."\n"
.'Recording events:'."\n"
."\n"
.'- **2010**: The service status of the recording changes.'."\n"
."\n"
.'- **2011**: The status of the recording audio stream changes.'."\n"
."\n"
.'- **2012**: The status of the recording video stream changes.',
'type' => 'array',
'items' => ['description' => 'A specific sub-event.', 'type' => 'integer', 'format' => 'int32', 'example' => '2010', 'title' => ''],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"Callbacks\\": [\\n {\\n \\"Conf\\": \\"https://www.aliyun.com\\",\\n \\"Status\\": 1,\\n \\"Category\\": \\"RecordEvent\\",\\n \\"Code\\": \\"RESPONSE_INVALID\\",\\n \\"Msg\\": \\"Success\\",\\n \\"CheckStatus\\": \\"1\\",\\n \\"SubEvent\\": [\\n 2010\\n ]\\n }\\n ]\\n}","type":"json"}]',
'title' => 'Query application webhook List ',
'description' => '### QPS limit'."\n"
."\n"
.'This API supports up to 10 queries per second (QPS) per user. If you exceed this limit, the system applies rate limiting to your API calls, which may affect your business operations. Plan your API calls accordingly.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeCallbacks'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:DescribeCallbacks',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'DescribeChannel' => [
'summary' => 'DescribeChannel',
'methods' => ['get', 'post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'deprecated' => false,
'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The application ID. You can create and query this ID in the console. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'eo85****'],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The channel ID to query. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'testid'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Return Result.',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'Request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8'],
'Channel' => [
'title' => 'channel',
'description' => 'channel',
'type' => 'object',
'properties' => [
'StartTime' => ['title' => '', 'description' => 'The UNIX timestamp (in seconds) indicating when the channel started (UTC).', 'type' => 'integer', 'format' => 'int64', 'example' => '1557909133'],
'ChannelId' => ['title' => '', 'description' => 'channel ID.', 'type' => 'string', 'example' => 'testid'],
],
'example' => '',
],
'ChannelExist' => ['title' => '', 'description' => 'Indicates whether the channel exists. Valid values: '."\n"
.'- **true**: The channel exists. '."\n"
.'- **false**: The channel does not exist.', 'type' => 'boolean', 'example' => ''],
],
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\",\\n \\"Channel\\": {\\n \\"StartTime\\": 1557909133,\\n \\"ChannelId\\": \\"testid\\"\\n },\\n \\"ChannelExist\\": false\\n}","type":"json"}]',
'title' => 'Query Online Channel Information',
'description' => '### How-To '."\n"
.'This API is used to query online channel information. '."\n"
.'### queries per second (QPS) Limit '."\n"
.'The QPS limit for this API is 10 queries per second per user. If the limit is exceeded, Rate Limiting will be applied to your API Call, which may Impact your business. Please invoke the API reasonably.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeChannel'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'rtc:DescribeChannel',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'DescribeChannelAllUsers' => [
'summary' => 'This API is used to query the user list in a channel. ',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'deprecated' => false,
'systemTags' => ['operationType' => 'list'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Application ID. You can create and query this ID in the console. Only a single ID is supported. ', 'type' => 'string', 'required' => true, 'example' => 'eo85****'],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Channel ID to query. Only a single ID is supported. ', 'type' => 'string', 'required' => true, 'example' => 'testid'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'result',
'description' => 'result',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'Request ID. ', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8'],
'Users' => [
'title' => '',
'description' => 'List of online users in the channel. ',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'UserId' => ['title' => '', 'description' => 'User ID. ', 'type' => 'string', 'example' => '1811****'],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
'ChannelExist' => ['title' => '', 'description' => 'Indicates whether the channel exists. Valid values: '."\n"
.'- **true**: The channel exists. '."\n"
.'- **false**: The channel does not exist. ', 'type' => 'boolean', 'example' => ''],
],
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\",\\n \\"Users\\": [\\n {\\n \\"UserId\\": \\"1811****\\"\\n }\\n ],\\n \\"ChannelExist\\": false\\n}","type":"json"}]',
'title' => 'Query Online Users in a Channel ',
'description' => '### How-To '."\n"
.'This API is used to query the list of users in an online channel. '."\n"
.'### QPS Limit '."\n"
.'The queries per second (QPS) limit for this API is 10 requests per second per user. If the limit is exceeded, API calls will be subject to rate limiting, which may impact your business. Invoke this API appropriately. ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeChannelAllUsers'],
],
],
'ramActions' => [
[
'operationType' => 'list',
'ramAction' => [
'action' => 'rtc:DescribeChannelAllUsers',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'DescribeChannelAreaDistributionStatData' => [
'summary' => 'This API is used to obtain the statistics on the regional distribution of channels.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => 'APP ID。', 'description' => 'APP ID。', 'type' => 'string', 'required' => true, 'example' => 'testappid'],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'channel ID ', 'type' => 'string', 'required' => true, 'example' => 'testid'],
],
[
'name' => 'CreatedTs',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Timestamp of channel creation. Supports querying data from the last 30 days. Represented as a UNIX timestamp in seconds. ', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1614936817'],
],
[
'name' => 'DestroyedTs',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Channel release time, represented as a UNIX timestamp in seconds. If the parameter is empty, the current time is used. '."\n"
.'> If the provided channel release time exceeds the actual release time, data from the creation time to the actual release time will be returned. ', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1614936817'],
],
[
'name' => 'ParentArea',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Parent region name. For example, the parent of Shenzhen City is Guangdong Province. If the parameter is empty, statistics are returned at the global level (country dimension), such as China or the United Kingdom. ', 'type' => 'string', 'required' => false, 'example' => '中国_浙江省'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'AreaStatList' => [
'title' => '',
'description' => 'List of regional statistics.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'AreaName' => ['title' => '', 'description' => 'Region Name, for example: China_Zhejiang_Hangzhou.', 'type' => 'string', 'example' => '中国_浙江省_杭州市'],
'CallUserCount' => ['title' => '', 'description' => 'Number of users in communication.', 'type' => 'integer', 'format' => 'int32', 'example' => '1'],
'PubUserCount' => ['title' => '', 'description' => 'Number of publish-side users.', 'type' => 'integer', 'format' => 'int32', 'example' => '1'],
'SubUserCount' => ['title' => '', 'description' => 'Number of subscribe-side users.', 'type' => 'integer', 'format' => 'int32', 'example' => '1'],
'HighQualityTransmissionRate' => ['title' => '', 'description' => 'High-quality transmission rate, represented as a decimal. For example, 0.9999 indicates a high-quality transmission rate of 99.99%.', 'type' => 'string', 'example' => '0.9999'],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
'RequestId' => ['title' => '', 'description' => 'Request ID.', 'type' => 'string', 'example' => '231470C1-ACFB-4C9F-844F-4CFE1E3804C5'],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ApiParamError', 'errorMessage' => 'API %s.', 'description' => 'API parameter error'],
],
403 => [
['errorCode' => 'BizCreatedTsError', 'errorMessage' => 'A business CreatedTs error occurred.', 'description' => 'Parameter meeting creation time is inaccurate.'],
['errorCode' => 'BizAppError', 'errorMessage' => 'A business application permission error occurred.', 'description' => 'Business application permission error'],
['errorCode' => 'BizUidError', 'errorMessage' => 'A business UID error occurred.', 'description' => 'Business primary account error'],
],
500 => [
['errorCode' => 'ServerInternalError', 'errorMessage' => 'An internal error occurred.', 'description' => 'Server Internal Error'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"AreaStatList\\": [\\n {\\n \\"AreaName\\": \\"中国_浙江省_杭州市\\",\\n \\"CallUserCount\\": 1,\\n \\"PubUserCount\\": 1,\\n \\"SubUserCount\\": 1,\\n \\"HighQualityTransmissionRate\\": \\"0.9999\\"\\n }\\n ],\\n \\"RequestId\\": \\"231470C1-ACFB-4C9F-844F-4CFE1E3804C5\\"\\n}","type":"json"}]',
'title' => 'Obtain channel geographical distribution statistics ',
'description' => '### How-To '."\n"
.'This API is used to obtain the statistics on the regional distribution of channels. '."\n"
.'### queries per second (QPS) limit '."\n"
.'The QPS limit for this API is 10 queries per second (QPS) per User. If the limit is exceeded, Rate Limiting will be applied to your API Calls, which may Impact your business. Invoke this API appropriately.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeChannelAreaDistributionStatData'],
],
],
'ramActions' => [
[
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeChannelAreaDistributionStatData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeChannelDistributionStatData' => [
'summary' => 'This API is used to obtain channel distribution statistics.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => 'APP ID。', 'description' => 'APP ID。', 'type' => 'string', 'required' => true, 'example' => 'testappid'],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'channel ID', 'type' => 'string', 'required' => true, 'example' => 'testid'],
],
[
'name' => 'CreatedTs',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The UNIX timestamp indicating when the channel was created. Data from the last 30 days can be queried. The value is expressed as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1614936817'],
],
[
'name' => 'DestroyedTs',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Channel release time, represented as a UNIX timestamp in seconds. If this parameter is empty, the current time is used.'."\n"
.'> If the provided channel release time exceeds the actual release time, data from the creation time to the actual release time will be returned.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1614936817'],
],
[
'name' => 'StatDim',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Statistical dimension. Valid values:'."\n"
.'- **OS**: Statistics by operating system.'."\n"
.'- **SDK_VERSION**: Statistics by SDK version.', 'type' => 'string', 'required' => true, 'example' => 'OS'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'StatList' => [
'title' => '',
'description' => 'List of channel distribution statistics.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Name' => ['title' => '', 'description' => 'Statistical dimension.', 'type' => 'string', 'example' => 'OS'],
'CallUserCount' => ['title' => '', 'description' => 'Number of users involved in communication.', 'type' => 'integer', 'format' => 'int32', 'example' => '1'],
'CallUserRatio' => ['title' => '', 'description' => 'Ratio of users involved in communication, represented as a decimal. For example, 1.0000 indicates 100%.', 'type' => 'string', 'example' => '1.0000'],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
'RequestId' => ['title' => '', 'description' => 'Request ID.', 'type' => 'string', 'example' => '231470C1-ACFB-4C9F-844F-4CFE1E3804C5'],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ApiParamError', 'errorMessage' => 'API %s.', 'description' => 'API parameter error'],
],
403 => [
['errorCode' => 'BizCreatedTsError', 'errorMessage' => 'A business CreatedTs error occurred.', 'description' => 'Parameter meeting creation time is inaccurate.'],
['errorCode' => 'BizAppError', 'errorMessage' => 'A business application permission error occurred.', 'description' => 'Business application permission error'],
['errorCode' => 'BizUidError', 'errorMessage' => 'A business UID error occurred.', 'description' => 'Business primary account error'],
],
500 => [
['errorCode' => 'ServerInternalError', 'errorMessage' => 'An internal error occurred.', 'description' => 'Server Internal Error'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"StatList\\": [\\n {\\n \\"Name\\": \\"OS\\",\\n \\"CallUserCount\\": 1,\\n \\"CallUserRatio\\": \\"1.0000\\"\\n }\\n ],\\n \\"RequestId\\": \\"231470C1-ACFB-4C9F-844F-4CFE1E3804C5\\"\\n}","type":"json"}]',
'title' => 'Obtain Channel Distribution Statistics',
'description' => '### How-To'."\n"
.'This API is used to obtain channel distribution statistics. You can collect statistics by dimension, such as system type or SDK version.'."\n"
.'### Queries per second (QPS) limit'."\n"
.'The QPS limit for this API is 10 queries per second per user. If the limit is exceeded, API calls will be rate-limited, which may impact your business. Please invoke the API appropriately.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeChannelDistributionStatData'],
],
],
'ramActions' => [
[
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeChannelDistributionStatData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeChannelOverallData' => [
'summary' => 'This API is used to query channel overview data.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => 'APP ID。', 'description' => 'APP ID。', 'type' => 'string', 'required' => true, 'example' => 'testappid'],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Channel ID.', 'type' => 'string', 'required' => true, 'example' => 'testid'],
],
[
'name' => 'CreatedTs',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'UNIX timestamp indicating the channel creation time. Supports querying data from the last 30 days. Expressed as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1615860711'],
],
[
'name' => 'DestroyedTs',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Channel release time, represented as a UNIX timestamp in seconds. If this parameter is empty, the current time is used.'."\n"
.'> If the provided channel release time exceeds the actual release time, data from the Creation Time to the actual release time is returned.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1615860811'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'MetricDatas' => [
'title' => '',
'description' => 'List of metric data.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Type' => ['title' => '', 'description' => 'Metric Type. Valid values:'."\n"
.'- **CALL_QUALITY**: Call quality.'."\n"
.'- **CONN_NUM**: Distribution of time intervals for successful channel joins.', 'type' => 'string', 'example' => 'CALL_QUALITY'],
'Nodes' => [
'title' => '',
'description' => 'List of coordinate points for the Trend Indicator.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'X' => ['title' => '', 'description' => 'X-axis coordinate in the Trend Indicator.', 'type' => 'string', 'example' => '1612418625'],
'Y' => ['title' => '', 'description' => 'Y-axis coordinate in the Trend Indicator.', 'type' => 'string', 'example' => '123'],
'Ext' => ['title' => '', 'description' => 'Extension data.', 'type' => 'object', 'example' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
'OverallData' => [
'title' => '',
'description' => 'Overview data.',
'type' => 'object',
'properties' => [
'ConnAvgTime' => ['title' => '', 'description' => 'Average communication connection time, in seconds.', 'type' => 'number', 'format' => 'float', 'example' => '0.5'],
'FiveSecJoinRate' => ['title' => '', 'description' => 'Connection success rate within 5 seconds, represented as a decimal. For example, 1.0 indicates a 100% connection success rate.', 'type' => 'number', 'format' => 'float', 'example' => '0.91'],
'TotalAudioStuckRate' => ['title' => '', 'description' => 'Overall audio stuttering rate, represented as a decimal. For example, 0.02 indicates an audio stuttering rate of 2%.', 'type' => 'number', 'format' => 'float', 'example' => '0.02'],
'TotalVideoStuckRate' => ['title' => '', 'description' => 'Overall video stuttering rate, represented as a decimal. For example, 0.02 indicates a video stuttering rate of 2%.', 'type' => 'number', 'format' => 'float', 'example' => '0.02'],
'TotalVideoVagueRate' => ['title' => '', 'description' => 'Overall video blur rate, represented as a decimal. For example, 0.02 indicates a video blur rate of 2%.', 'type' => 'number', 'format' => 'float', 'example' => '0.02'],
],
'example' => '',
],
'CallInfo' => [
'title' => '',
'description' => 'Basic communication information.',
'type' => 'object',
'properties' => [
'AppId' => ['title' => '', 'description' => 'Application ID.', 'type' => 'string', 'example' => 'testappid'],
'ChannelId' => ['title' => '', 'description' => 'Channel ID.', 'type' => 'string', 'example' => 'testid'],
'CallStatus' => ['title' => '', 'description' => 'Communication status. Valid values: '."\n"
."\n"
.'- **IN**: In progress. '."\n"
."\n"
.'- **OUT**: Ended. ', 'type' => 'string', 'example' => 'IN'],
'CreatedTs' => ['title' => '', 'description' => 'The UNIX timestamp when the channel was created, in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1615860711'],
'DestroyedTs' => ['title' => '', 'description' => 'The UNIX timestamp when the channel was released, in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1615860811'],
'Duration' => ['title' => '', 'description' => 'Channel duration, in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '100'],
],
'example' => '',
],
'RequestId' => ['title' => '', 'description' => 'Request ID.', 'type' => 'string', 'example' => '231470C1-ACFB-4C9F-844F-4CFE1E3804C5'],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ApiParamError', 'errorMessage' => 'API %s.', 'description' => 'API parameter error'],
],
403 => [
['errorCode' => 'BizCreatedTsError', 'errorMessage' => 'A business CreatedTs error occurred.', 'description' => 'Parameter meeting creation time is inaccurate.'],
['errorCode' => 'BizAppError', 'errorMessage' => 'A business application permission error occurred.', 'description' => 'Business application permission error'],
['errorCode' => 'BizUidError', 'errorMessage' => 'A business UID error occurred.', 'description' => 'Business primary account error'],
],
500 => [
['errorCode' => 'ServerInternalError', 'errorMessage' => 'An internal error occurred.', 'description' => 'Server Internal Error'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"MetricDatas\\": [\\n {\\n \\"Type\\": \\"CALL_QUALITY\\",\\n \\"Nodes\\": [\\n {\\n \\"X\\": \\"1612418625\\",\\n \\"Y\\": \\"123\\",\\n \\"Ext\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n }\\n }\\n ]\\n }\\n ],\\n \\"OverallData\\": {\\n \\"ConnAvgTime\\": 0.5,\\n \\"FiveSecJoinRate\\": 0.91,\\n \\"TotalAudioStuckRate\\": 0.02,\\n \\"TotalVideoStuckRate\\": 0.02,\\n \\"TotalVideoVagueRate\\": 0.02\\n },\\n \\"CallInfo\\": {\\n \\"AppId\\": \\"testappid\\",\\n \\"ChannelId\\": \\"testid\\",\\n \\"CallStatus\\": \\"IN\\",\\n \\"CreatedTs\\": 1615860711,\\n \\"DestroyedTs\\": 1615860811,\\n \\"Duration\\": 100\\n },\\n \\"RequestId\\": \\"231470C1-ACFB-4C9F-844F-4CFE1E3804C5\\"\\n}","type":"json"}]',
'title' => 'Query channel overview data',
'description' => '### How-To '."\n"
.'This API is used to query channel overview data. For example, you can query basic communication information, Trend Indicators, and other information. '."\n"
."\n"
.'### queries per second (QPS) Limit '."\n"
.'The QPS limit for this API is 10 queries per second per User. If the limit is exceeded, Rate Limiting will be applied to API Calls, which may Impact your business. Invoke the API appropriately. ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeChannelOverallData'],
],
],
'ramActions' => [
[
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeChannelOverallData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeChannelParticipants' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. You can create and view this ID in the Alibaba Cloud console. Only one ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'aec****', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'The channel ID. Only one ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'testId', 'title' => ''],
],
[
'name' => 'Order',
'in' => 'query',
'schema' => ['description' => 'The sort order. Valid values:'."\n"
."\n"
.'- **asc**: ascending.'."\n"
."\n"
.'- **desc** (default): descending.', 'type' => 'string', 'required' => false, 'example' => 'asc', 'title' => ''],
],
[
'name' => 'PageNum',
'in' => 'query',
'schema' => ['description' => 'The page number. Default value: 1.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'example' => '1', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of users per page. Default value: 10.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'example' => '10', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'TotalPage' => ['description' => 'The total number of pages returned.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '6159ba01-6687-4fb2-a831-f0cd8d188648', 'title' => ''],
'Timestamp' => ['description' => 'The time when the result was returned. This is a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int32', 'example' => '1557909133', 'title' => ''],
'TotalNum' => ['description' => 'The total number of results.', 'type' => 'integer', 'format' => 'int32', 'example' => '3', 'title' => ''],
'UserList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'User' => [
'description' => '',
'type' => 'array',
'items' => ['description' => 'A comma-separated list of user IDs.', 'type' => 'string', 'example' => '27f9****,bb87****,df82****', 'title' => ''],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
404 => [
['errorCode' => 'Channel.NotExist', 'errorMessage' => 'Channel not existed', 'description' => ''],
['errorCode' => 'Service.NoSignaling', 'errorMessage' => 'service no signaling', 'description' => ''],
],
500 => [
['errorCode' => 'Channel.InternalError', 'errorMessage' => 'Channel operate internal error', 'description' => ''],
['errorCode' => 'Service.InternalError', 'errorMessage' => 'service internal error', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalPage\\": 1,\\n \\"RequestId\\": \\"6159ba01-6687-4fb2-a831-f0cd8d188648\\",\\n \\"Timestamp\\": 1557909133,\\n \\"TotalNum\\": 3,\\n \\"UserList\\": {\\n \\"User\\": [\\n \\"27f9****,bb87****,df82****\\"\\n ]\\n }\\n}","type":"json"}]',
'title' => 'Query the List of Online Users in a Channel ',
'summary' => 'Queries the list of online users in a channel. The response does not include detailed user information.',
'description' => '# Usage notes'."\n"
."\n"
.'This operation lists the users who are currently in a channel. The response does not include detailed user information.'."\n"
."\n"
.'# QPS limit'."\n"
."\n"
.'The rate limit for this operation is 1,000 calls per minute per user. Exceeding this limit triggers rate limiting, which may affect your service. Call this operation at a reasonable frequency. For more information, see [QPS limits](~~341645~~).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '1000', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeChannelParticipants'],
],
],
'ramActions' => [],
],
'DescribeChannelTopPubUserList' => [
'summary' => 'This API is used to retrieve the list of publishing users in a channel, sorted in descending order by their online duration.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => 'APP ID。', 'description' => 'APP ID。', 'type' => 'string', 'required' => true, 'example' => 'testappid'],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Channel ID.', 'type' => 'string', 'required' => true, 'example' => 'testid'],
],
[
'name' => 'CreatedTs',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The UNIX timestamp of channel creation. Supports querying data from the last 30 days, expressed as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1615893133'],
],
[
'name' => 'DestroyedTs',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The UNIX timestamp indicating when the channel was released, in seconds. If this parameter is empty, data up to the current time will be retrieved. '."\n"
.'> If the provided channel release time exceeds the actual release time, the system returns data from the Creation Time to the actual release time.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1615893757'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'TopPubUserDetailList' => [
'title' => '',
'description' => 'List of top publishing user details',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'UserId' => ['title' => '', 'description' => 'User ID.', 'type' => 'string', 'example' => 'testuserid'],
'Location' => ['title' => '', 'description' => 'Geographic location, for example: Beijing City - Beijing City', 'type' => 'string', 'example' => '浙江省-杭州市'],
'OnlinePeriods' => [
'title' => '',
'description' => 'User List during online periods.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'JoinTs' => ['title' => '', 'description' => 'Time when the user joined the channel, represented as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1615893327'],
'LeaveTs' => ['title' => '', 'description' => 'Time when the user left the channel, represented as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1615893442'],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
'CreatedTs' => ['title' => '', 'description' => 'The time when the user first joined the channel, represented as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1615893327'],
'DestroyedTs' => ['title' => '', 'description' => 'The time when the user last left the channel, represented as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1615893442'],
'OnlineDuration' => ['title' => '', 'description' => 'Communication duration, in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '115'],
'Duration' => ['title' => '', 'description' => 'Total duration, in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '115'],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
'RequestId' => ['title' => '', 'description' => 'Request ID.', 'type' => 'string', 'example' => '231470C1-ACFB-4C9F-844F-4CFE1E3804C5'],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ApiParamError', 'errorMessage' => 'API %s.', 'description' => 'API parameter error'],
],
403 => [
['errorCode' => 'BizCreatedTsError', 'errorMessage' => 'A business CreatedTs error occurred.', 'description' => 'Parameter meeting creation time is inaccurate.'],
['errorCode' => 'BizAppError', 'errorMessage' => 'A business application permission error occurred.', 'description' => 'Business application permission error'],
['errorCode' => 'BizUidError', 'errorMessage' => 'A business UID error occurred.', 'description' => 'Business primary account error'],
],
500 => [
['errorCode' => 'ServerInternalError', 'errorMessage' => 'An internal error occurred.', 'description' => 'Server Internal Error'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TopPubUserDetailList\\": [\\n {\\n \\"UserId\\": \\"testuserid\\",\\n \\"Location\\": \\"浙江省-杭州市\\",\\n \\"OnlinePeriods\\": [\\n {\\n \\"JoinTs\\": 1615893327,\\n \\"LeaveTs\\": 1615893442\\n }\\n ],\\n \\"CreatedTs\\": 1615893327,\\n \\"DestroyedTs\\": 1615893442,\\n \\"OnlineDuration\\": 115,\\n \\"Duration\\": 115\\n }\\n ],\\n \\"RequestId\\": \\"231470C1-ACFB-4C9F-844F-4CFE1E3804C5\\"\\n}","type":"json"}]',
'title' => 'Obtain the list of publishing users in the channel',
'description' => '### How-To '."\n"
.'This API is used to retrieve the list of publishing users in a channel, sorted in descending order by their online duration. For example, in the User List, you can query information such as the time when a user joined the call and the communication duration. '."\n"
.'### queries per second (QPS) Limit '."\n"
.'The QPS limit for this API is 10 queries per second per User. If the limit is exceeded, Rate Limiting will be applied to the API Call, which may Impact your business. Please invoke the API appropriately.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeChannelTopPubUserList'],
],
],
'ramActions' => [
[
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeChannelTopPubUserList',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeChannelUser' => [
'summary' => 'DescribeChannelUser',
'methods' => ['get', 'post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'deprecated' => false,
'systemTags' => ['operationType' => 'list'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Application ID. You can create and query this ID in the console. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'eo85****'],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Channel ID to query. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'testid'],
],
[
'name' => 'UserId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'User ID.', 'type' => 'string', 'required' => true, 'example' => '1811****'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'result',
'description' => 'result',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'Request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8'],
'InChannel' => ['title' => '', 'description' => 'Indicates whether the user is currently in the channel. Valid values: '."\n"
.'- **true**: The user is in the channel. '."\n"
.'- **false**: The user is not in the channel.', 'type' => 'boolean', 'example' => ''],
'Sessions' => [
'title' => '',
'description' => 'List of session information.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'UserId' => ['title' => '', 'description' => 'User ID.', 'type' => 'string', 'example' => '1811****'],
'SessionId' => ['title' => '', 'description' => 'Session ID.', 'type' => 'string', 'example' => 'xa744sxx8rtobgj****'],
'Joined' => ['title' => '', 'description' => 'The UNIX timestamp (in seconds, UTC) when the user joined the channel.', 'type' => 'integer', 'format' => 'int64', 'example' => '1557909133'],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
'ChannelExist' => ['title' => '', 'description' => 'Indicates whether the channel exists. Valid values: '."\n"
.'- **true**: The channel exists. '."\n"
.'- **false**: The channel does not exist.', 'type' => 'boolean', 'example' => ''],
],
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\",\\n \\"InChannel\\": false,\\n \\"Sessions\\": [\\n {\\n \\"UserId\\": \\"1811****\\",\\n \\"SessionId\\": \\"xa744sxx8rtobgj****\\",\\n \\"Joined\\": 1557909133\\n }\\n ],\\n \\"ChannelExist\\": false\\n}","type":"json"}]',
'title' => 'Query User Information Within a Channel',
'description' => '### How-To '."\n"
.'This API is used to query user information within an online channel. '."\n"
.'### QPS Limit '."\n"
.'The queries per second (QPS) limit for this API is 10 requests per second per user. If this limit is exceeded, the API call will be subject to rate limiting, which may impact your business. Please invoke the API appropriately.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeChannelUser'],
],
],
'ramActions' => [
[
'operationType' => 'list',
'ramAction' => [
'action' => 'rtc:DescribeChannelUser',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'DescribeChannelUserMetrics' => [
'summary' => '[responses_200_schema_properties_MetricDatas_description]List of metric data.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => 'APP ID。', 'description' => 'APP ID。', 'type' => 'string', 'required' => true, 'example' => 'testappid'],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Channel ID. ', 'type' => 'string', 'required' => true, 'example' => 'testid'],
],
[
'name' => 'CreatedTs',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The UNIX timestamp indicating when the channel was created. Data from the last 30 days is supported. The timestamp is expressed in seconds. ', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1614936817'],
],
[
'name' => 'DestroyedTs',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The UNIX timestamp indicating when the channel was released, in seconds. If this parameter is empty, the current time is used. '."\n"
.'> If the provided channel release timestamp exceeds the actual release time, data from the creation time to the actual release time will be returned. ', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1614936817'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'MetricDatas' => [
'title' => '',
'description' => 'List of metric data.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Type' => ['title' => '', 'description' => 'Metric type. Valid values:'."\n"
.'- **ALL_NUM**: User count within a unit of time.'."\n"
.'- **PUB_NUM**: Publisher user count within a unit of time.'."\n"
.'- **SUB_NUM**: Subscriber user count within a unit of time.'."\n"
.'- **JOIN_FAIL_NUM**: User count with abnormal channel join events within a unit of time.'."\n"
.'- **BAD_EXP_NUM**: User count with abnormal communication experience within a unit of time.', 'type' => 'string', 'example' => 'ALL_NUM'],
'Nodes' => [
'title' => '',
'description' => 'List of coordinate points for the trend indicator.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'X' => ['title' => '', 'description' => 'X-axis coordinate in the trend indicator.', 'type' => 'string', 'example' => '1612418625'],
'Y' => ['title' => '', 'description' => 'Y-axis coordinate in the trend indicator.', 'type' => 'string', 'example' => '123'],
'Ext' => ['title' => '', 'description' => 'Extended properties.', 'type' => 'object', 'example' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
'OverallData' => [
'title' => '',
'description' => '[responses_200_schema_properties_MetricDatas_items_properties_Nodes_title]List of coordinate points for the trend indicator.',
'type' => 'object',
'properties' => [
'TotalUserNum' => ['title' => '', 'description' => '[title]Query user data in channel overview ', 'type' => 'integer', 'format' => 'int64', 'example' => '5'],
'TotalPubUserNum' => ['title' => '', 'description' => '[responses_200_schema_properties_MetricDatas_items_properties_Nodes_items_properties_Ext_description]Extended properties.', 'type' => 'integer', 'format' => 'int64', 'example' => '1'],
'TotalSubUserNum' => ['title' => '', 'description' => '[parameters_DestroyedTs_schema_type]integer ', 'type' => 'integer', 'format' => 'int64', 'example' => '3'],
'TotalJoinFailNum' => ['title' => '', 'description' => '[responses_200_schema_properties_MetricDatas_items_properties_Nodes_items_properties_Y_description]Y-axis coordinate in the trend indicator.', 'type' => 'integer', 'format' => 'int64', 'example' => '0'],
'TotalBadExpNum' => ['title' => '', 'description' => '[responses_200_schema_properties_MetricDatas_items_properties_Nodes_items_properties_X_description]X-axis coordinate in the trend indicator.', 'type' => 'integer', 'format' => 'int64', 'example' => '0'],
],
'example' => '',
],
'RequestId' => ['title' => '', 'description' => '[responses_200_schema_properties_MetricDatas_items_properties_Type_title]Metric type. Valid values: ALL_NUM: Cumulative user count. PUB_NUM: Cumulative publisher user count. SUB_NUM: Cumulative subscriber user count. JOIN_FAIL_NUM: Cumulative user count with abnormal channel join events. BAD_EXP_NUM: Cumulative user count with abnormal communication experience.', 'type' => 'string', 'example' => '231470C1-ACFB-4C9F-844F-4CFE1E3804C5'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ApiParamError', 'errorMessage' => 'API %s.', 'description' => 'API parameter error'],
],
403 => [
['errorCode' => 'BizCreatedTsError', 'errorMessage' => 'A business CreatedTs error occurred.', 'description' => 'Parameter meeting creation time is inaccurate.'],
['errorCode' => 'BizAppError', 'errorMessage' => 'A business application permission error occurred.', 'description' => 'Business application permission error'],
['errorCode' => 'BizUidError', 'errorMessage' => 'A business UID error occurred.', 'description' => 'Business primary account error'],
],
500 => [
['errorCode' => 'ServerInternalError', 'errorMessage' => 'An internal error occurred.', 'description' => 'Server Internal Error'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"MetricDatas\\": [\\n {\\n \\"Type\\": \\"ALL_NUM\\",\\n \\"Nodes\\": [\\n {\\n \\"X\\": \\"1612418625\\",\\n \\"Y\\": \\"123\\",\\n \\"Ext\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n }\\n }\\n ]\\n }\\n ],\\n \\"OverallData\\": {\\n \\"TotalUserNum\\": 5,\\n \\"TotalPubUserNum\\": 1,\\n \\"TotalSubUserNum\\": 3,\\n \\"TotalJoinFailNum\\": 0,\\n \\"TotalBadExpNum\\": 0\\n },\\n \\"RequestId\\": \\"231470C1-ACFB-4C9F-844F-4CFE1E3804C5\\"\\n}","type":"json"}]',
'title' => 'Query user data in channel overview ',
'description' => '[responses_200_schema_properties_MetricDatas_title]List of metric data.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeChannelUserMetrics'],
],
],
'ramActions' => [
[
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeChannelUserMetrics',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeChannelUsers' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. You can create and query the ID in the console. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'a2hz****', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'The ID of the channel to query. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'testId', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'CommTotalNum' => ['description' => '通信模式下频道内的用户总数,如果频道为非通信模式,该参数为0。'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => ''],
'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '6159ba01-6687-4fb2-a831-f0cd8d188648', 'title' => ''],
'IsChannelExist' => ['description' => '频道是否存在,取值:'."\n"
.'- **true**:存在。'."\n"
."\n"
.'- **false**:不存在。', 'type' => 'boolean', 'example' => 'true', 'title' => ''],
'LiveUserNum' => ['description' => '直播模式下频道内的观众总数,如果频道为非直播模式,该参数为0。', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'Timestamp' => ['description' => '当前时刻的时间戳(UTC时间)。', 'type' => 'integer', 'format' => 'int32', 'example' => '1557909133', 'title' => ''],
'ChannelProfile' => ['description' => '频道模式,取值:'."\n"
."\n"
.'- **1**:Communication(通信模式)。'."\n"
."\n"
.'- **2**:Interactive_live(直播模式)。'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'InteractiveUserNum' => ['description' => '直播模式下频道内的互动者用户总数,如果频道为非直播模式,该参数为0。', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'UserList' => [
'type' => 'array',
'items' => ['description' => '通信模式下频道的用户列表,如果频道为非通信模式,该参数为空。'."\n", 'type' => 'string', 'example' => '[]', 'title' => ''],
'description' => '',
'title' => '',
'example' => '',
],
'InteractiveUserList' => [
'type' => 'array',
'items' => ['description' => '直播模式下频道内的互动用户列表,如果频道为非直播模式,该参数为空。'."\n", 'type' => 'string', 'example' => '["4455****", "3267****", "efbc****"]', 'title' => ''],
'description' => '',
'title' => '',
'example' => '',
],
'LiveUserList' => [
'type' => 'array',
'items' => ['description' => '直播模式下频道内的观众列表,只返回前1000人,如果频道为非直播模式,该参数为空。'."\n", 'type' => 'string', 'example' => '["4455****", "3267****", "efbc****"]', 'title' => ''],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'request.norequestid', 'errorMessage' => 'no request', 'description' => ''],
['errorCode' => 'request.noaliuid', 'errorMessage' => 'no aliuid', 'description' => ''],
['errorCode' => 'request.noappid', 'errorMessage' => 'no appid', 'description' => ''],
['errorCode' => 'request.nochannelid', 'errorMessage' => 'no channelid', 'description' => ''],
['errorCode' => 'service.signalrequesterror', 'errorMessage' => 'signal request error', 'description' => ''],
],
[
['errorCode' => 'request.illegalauth', 'errorMessage' => 'illegal auth', 'description' => ''],
['errorCode' => 'request.authinvalid', 'errorMessage' => 'auth invalid', 'description' => ''],
],
500 => [
['errorCode' => 'service.signalrequesterror', 'errorMessage' => 'signal send msg error', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"CommTotalNum\\": 100,\\n \\"RequestId\\": \\"6159ba01-6687-4fb2-a831-f0cd8d188648\\",\\n \\"IsChannelExist\\": true,\\n \\"LiveUserNum\\": 0,\\n \\"Timestamp\\": 1557909133,\\n \\"ChannelProfile\\": 1,\\n \\"InteractiveUserNum\\": 0,\\n \\"UserList\\": [\\n \\"[]\\"\\n ],\\n \\"InteractiveUserList\\": [\\n \\"[\\\\\\"4455****\\\\\\", \\\\\\"3267****\\\\\\", \\\\\\"efbc****\\\\\\"]\\"\\n ],\\n \\"LiveUserList\\": [\\n \\"[\\\\\\"4455****\\\\\\", \\\\\\"3267****\\\\\\", \\\\\\"efbc****\\\\\\"]\\"\\n ]\\n}","type":"json"}]',
'title' => 'Query real-time online users',
'summary' => 'Queries the list of real-time online users in a channel.',
'description' => '# 使用说明'."\n"
.'本接口用于查询频道内在线用户列表的详细信息。例如:您可以查询通信模式和直播模式下的用户总数。'."\n"
.'# QPS限制'."\n"
.'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~341645~~)。',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeChannelUsers'],
],
],
'ramActions' => [],
],
'DescribeChannels' => [
'summary' => 'This operation retrieves a list of all active channels for a single AppId.',
'methods' => ['get'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'deprecated' => false,
'systemTags' => ['operationType' => 'none'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. You create and view this ID in the console. Only one ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'eo85****', 'maxLength' => 11, 'minLength' => 8, 'title' => ''],
],
[
'name' => 'PageNo',
'in' => 'query',
'schema' => ['title' => 'Page number.', 'description' => 'The page number.', 'type' => 'integer', 'format' => 'int32', 'minimum' => '1', 'example' => '1', 'default' => '1', 'required' => false],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['title' => 'Quantity per page.', 'description' => 'The number of entries per page.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '100', 'minimum' => '1', 'example' => '10', 'default' => '10', 'required' => false],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'result',
'description' => 'The response.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8'],
'PageNo' => ['title' => 'Page number.', 'description' => 'The page number.', 'type' => 'integer', 'format' => 'int32', 'minimum' => '1', 'example' => '1', 'default' => '1'],
'PageSize' => ['title' => 'Quantity per page.', 'description' => 'The number of entries per page.', 'type' => 'integer', 'format' => 'int32', 'minimum' => '1', 'example' => '10', 'default' => '10'],
'TotalCnt' => ['title' => 'Total quantity.', 'description' => 'The total number of entries.', 'type' => 'integer', 'format' => 'int32', 'example' => '1'],
'Records' => [
'description' => 'The list of active channels.',
'title' => 'List of online channels.',
'type' => 'array',
'items' => ['title' => 'Specific list of online channels.', 'description' => 'The list of active channel names.', 'type' => 'string', 'example' => 'test'],
'example' => '',
],
],
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\",\\n \\"PageNo\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCnt\\": 1,\\n \\"Records\\": [\\n \\"test\\"\\n ]\\n}","type":"json"}]',
'title' => 'Query Online Channel List',
'description' => '### Usage notes'."\n"
."\n"
.'You can use this operation to retrieve a list of all active channels for a single AppId.'."\n"
."\n"
.'### QPS limit'."\n"
."\n"
.'The per-user QPS limit for this operation is 10 calls per second. If you exceed this limit, rate limiting is triggered, which may affect your business. Call this operation only as needed.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:DescribeChannels',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'DescribeCloudNotePhrases' => [
'summary' => 'Summary of trending terms',
'methods' => ['get', '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. Obtain the ID from the console. Only a single ID can be specified.', 'type' => 'string', 'required' => true, 'example' => 'ac7N****', 'title' => ''],
],
[
'name' => 'PageNum',
'in' => 'query',
'schema' => ['description' => 'The page number. The default value is 1.', 'type' => 'integer', 'format' => 'int32', 'minimum' => '1', 'example' => '1', 'default' => '1', 'title' => '', 'required' => false],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries to return on each page. The default value is 10.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '100', 'example' => '10', 'default' => '10', 'title' => '', 'required' => false],
],
[
'name' => 'Condition',
'in' => 'query',
'style' => 'json',
'schema' => [
'title' => '',
'description' => 'The query condition.',
'type' => 'object',
'properties' => [
'Id' => ['description' => 'The ID of the phrase list.', 'type' => 'string', 'example' => 'ac7N****112121', 'title' => '', 'required' => false],
'Name' => ['description' => 'The name of the phrase list.', 'type' => 'string', 'example' => '测试', 'maxLength' => 30, 'minLength' => 1, 'title' => '', 'required' => false],
],
'required' => false,
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response。',
'description' => 'Schema of Response.',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request。', 'description' => 'The ID of the request.', 'type' => 'string', 'example' => '3A26E1E3-3CBB-599E-AD68-CB78F5A42FA1'],
'TotalNum' => ['description' => 'The number of records.', 'type' => 'integer', 'format' => 'int64', 'example' => '10', 'title' => ''],
'TotalPage' => ['description' => 'The number of pages.', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
'Phrases' => [
'title' => '',
'description' => 'The list of phrases.',
'type' => 'array',
'items' => [
'title' => '',
'description' => 'The phrase configuration.',
'type' => 'object',
'properties' => [
'Description' => ['description' => 'The description.', 'type' => 'string', 'example' => '水果描述', 'maxLength' => 200, 'minLength' => 1, 'title' => ''],
'CreateTime' => ['description' => 'The time when the phrase list was created. The format is yyyy-MM-ddTHH:mm:ssZ in UTC.', 'type' => 'string', 'example' => '2025-03-04T06:22:15Z', 'title' => ''],
'Id' => ['description' => 'The ID of the phrase list.', 'type' => 'string', 'example' => '1qweadca332121212', 'title' => ''],
'WordWeights' => [
'title' => '',
'description' => 'The weight of the phrase.',
'type' => 'array',
'items' => [
'title' => '',
'description' => 'The weight of the phrase.',
'type' => 'object',
'properties' => [
'Word' => ['description' => 'The hotword.', 'type' => 'string', 'example' => '苹果', 'maxLength' => 10, 'minLength' => 1, 'title' => ''],
'Weight' => ['description' => 'The weight value.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '5', 'minimum' => '-6', 'example' => '0', 'title' => ''],
],
'required' => true,
'example' => '',
],
'required' => true,
'maxItems' => 300,
'minItems' => 1,
'example' => '',
],
'Name' => ['description' => 'The name of the phrase list.', 'type' => 'string', 'example' => '水果', 'maxLength' => 30, 'minLength' => 1, 'title' => ''],
],
'example' => '',
],
'example' => '',
],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
['errorCode' => 'Function.Disable', 'errorMessage' => '%s.', 'description' => 'Function status is invalid, please request in function enabled state.'],
['errorCode' => 'Quota.Invalid', 'errorMessage' => '%s.', 'description' => 'Resource quota is insufficient, please submit a work order to increase the quota'],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"3A26E1E3-3CBB-599E-AD68-CB78F5A42FA1\\",\\n \\"TotalNum\\": 10,\\n \\"TotalPage\\": 1,\\n \\"Phrases\\": [\\n {\\n \\"Description\\": \\"水果描述\\",\\n \\"CreateTime\\": \\"2025-03-04T06:22:15Z\\",\\n \\"Id\\": \\"1qweadca332121212\\",\\n \\"WordWeights\\": [\\n {\\n \\"Word\\": \\"苹果\\",\\n \\"Weight\\": 0\\n }\\n ],\\n \\"Name\\": \\"水果\\"\\n }\\n ]\\n}","type":"json"}]',
'title' => 'Hot word List ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeCloudNotePhrases'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'rtc:DescribeCloudNotePhrases',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
],
],
'DescribeCloudNotes' => [
'summary' => 'Meeting Summary List ',
'methods' => ['get'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'deprecated' => false,
'systemTags' => ['operationType' => 'none'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => 'APP ID。', 'description' => 'APP ID。', 'type' => 'string', 'required' => true, 'example' => 'testappid'],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Channel ID.', 'type' => 'string', 'required' => false, 'example' => '311'],
],
[
'name' => 'PageNo',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Page number. ', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'example' => '1', 'default' => '1'],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Number of items per page. ', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'example' => '10', 'default' => '10'],
],
[
'name' => 'StartTs',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Query range, open interval of job start time, in milliseconds. If not specified, defaults to querying recordings from the last 3 days, with a maximum range of one year in the past. ', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1712376032000'],
],
[
'name' => 'EndTs',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Query range, closed interval of job start time, in milliseconds. ', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1712376532000'],
],
[
'name' => 'TaskIds',
'in' => 'query',
'style' => 'json',
'schema' => [
'title' => '',
'description' => 'List of job TaskIds. ',
'type' => 'array',
'items' => ['title' => '', 'description' => 'Specific task ID. ', 'type' => 'string', 'required' => false, 'example' => 'task001', 'maxLength' => 55, 'minLength' => 1, 'pattern' => '^[\\w.-]+$'],
'required' => false,
'maxItems' => 10,
'minItems' => 1,
'example' => '',
],
],
],
'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' => '154EF5DE-3D08-1F2C-A482-281F78D74B7C'],
'PageNo' => ['title' => '', 'description' => 'Page number. ', 'type' => 'integer', 'format' => 'int32', 'example' => '1'],
'PageSize' => ['title' => '', 'description' => 'Quantity per page. ', 'type' => 'integer', 'format' => 'int32', 'maximum' => '100', 'example' => '10', 'default' => '10'],
'TotalCnt' => ['title' => '', 'description' => 'Total quantity. ', 'type' => 'integer', 'format' => 'int32', 'example' => '10'],
'Items' => [
'title' => '',
'description' => 'List of meeting summary results. ',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'ChannelId' => ['title' => '', 'description' => 'Channel ID.', 'type' => 'string', 'example' => 'testchannelId'],
'TaskId' => ['title' => '', 'description' => 'Job ID. ', 'type' => 'string', 'example' => 'test001'],
'TranscriptionFilePath' => ['title' => '', 'description' => 'Path where the transcription result file is stored. ', 'type' => 'string', 'example' => 'cloudNote/ksvxxppi/88_12/transcription_1724914365173.json'],
'AutoChaptersFilePath' => ['title' => '', 'description' => 'Path where the chapter overview result file is stored. ', 'type' => 'string', 'example' => 'cloudNote/ksvxxppi/88_12/autoChapters_1724914365173.json'],
'MeetingAssistanceFilePath' => ['title' => '', 'description' => 'The path where the key points extraction result file is stored.', 'type' => 'string', 'example' => 'cloudNote/ksvxxppi/88_12/meetingAssistance_1724914365173.json'],
'SummarizationFilePath' => ['title' => '', 'description' => 'Path where the summary result file is stored. ', 'type' => 'string', 'example' => 'cloudNote/ksvxxppi/88_12/summarization_1724914365173.json'],
'TextPolishFilePath' => ['title' => '', 'description' => 'The path where the spoken-to-written text result file is stored.', 'type' => 'string', 'example' => 'cloudNote/ksvxxppi/88_12/textPolish_1724914365173.json'],
'ServiceInspectionFilePath' => ['title' => '', 'description' => 'The path where the service quality inspection result file is stored.', 'type' => 'string', 'example' => 'cloudNote/ksvxxppi/88_12/serviceInspection_1724914365173.json'],
'CustomPromptFilePath' => ['title' => '', 'description' => 'The path where the custom prompt result file is stored.', 'type' => 'string', 'example' => 'cloudNote/ksvxxppi/88_12/customPrompt_1724914365173.json'],
'Vendor' => ['title' => '', 'description' => 'The vendor referenced when enabling the job.', 'type' => 'integer', 'format' => 'int32', 'example' => '1'],
'Region' => ['title' => '', 'description' => 'Reference job region. ', 'type' => 'integer', 'format' => 'int32', 'example' => '1'],
'Bucket' => ['title' => '', 'description' => 'The user-defined bucket.', 'type' => 'string', 'example' => 'sample-bucket'],
'StartTs' => ['title' => '', 'description' => 'Start Time of the meeting summary job. ', 'type' => 'integer', 'format' => 'int64', 'example' => '1731939816837'],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ApiParamError', 'errorMessage' => 'API %s.', 'description' => 'API parameter error'],
],
403 => [
['errorCode' => 'BizAppError', 'errorMessage' => 'A business application permission error occurred.', 'description' => 'Business application permission error'],
['errorCode' => 'BizUidError', 'errorMessage' => 'A business UID error occurred.', 'description' => 'Business primary account error'],
],
500 => [
['errorCode' => 'ServerInternalError', 'errorMessage' => 'An internal error occurred.', 'description' => 'Server Internal Error'],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"154EF5DE-3D08-1F2C-A482-281F78D74B7C\\",\\n \\"PageNo\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCnt\\": 10,\\n \\"Items\\": [\\n {\\n \\"ChannelId\\": \\"testchannelId\\",\\n \\"TaskId\\": \\"test001\\",\\n \\"TranscriptionFilePath\\": \\"cloudNote/ksvxxppi/88_12/transcription_1724914365173.json\\",\\n \\"AutoChaptersFilePath\\": \\"cloudNote/ksvxxppi/88_12/autoChapters_1724914365173.json\\",\\n \\"MeetingAssistanceFilePath\\": \\"cloudNote/ksvxxppi/88_12/meetingAssistance_1724914365173.json\\",\\n \\"SummarizationFilePath\\": \\"cloudNote/ksvxxppi/88_12/summarization_1724914365173.json\\",\\n \\"TextPolishFilePath\\": \\"cloudNote/ksvxxppi/88_12/textPolish_1724914365173.json\\",\\n \\"ServiceInspectionFilePath\\": \\"cloudNote/ksvxxppi/88_12/serviceInspection_1724914365173.json\\",\\n \\"CustomPromptFilePath\\": \\"cloudNote/ksvxxppi/88_12/customPrompt_1724914365173.json\\",\\n \\"Vendor\\": 1,\\n \\"Region\\": 1,\\n \\"Bucket\\": \\"sample-bucket\\",\\n \\"StartTs\\": 1731939816837\\n }\\n ]\\n}","type":"json"}]',
'title' => 'Summary File List ',
'description' => '### How-To '."\n"
.'This API is used to query the list of meeting summary job files that have generated summary results. '."\n"
.'### Queries Per Second (QPS) Limit '."\n"
.'The QPS limit for this API is 10 queries per second (QPS) per user. If this limit is exceeded, API calls will be subject to Rate Limiting, which may Impact your business. Please invoke the API appropriately. ',
'responseParamsDescription' => 'For the file format of the meeting summary results, see [Callback Page](https://help.aliyun.com/document_detail/2709168.html#e1a04a3879sbk). ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeCloudNotes'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:DescribeCloudNotes',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeCloudRecordStatus' => [
'summary' => 'Query the status of a recording task.',
'methods' => ['get', '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.', 'type' => 'string', 'required' => true, 'example' => '1qaz***x', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'The channel name.', 'type' => 'string', 'required' => true, 'example' => 'testChannel', 'title' => ''],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'The task ID.', 'type' => 'string', 'required' => true, 'example' => 'taskId', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Response schema',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8'],
'Status' => ['description' => '- 0: The task has started and is waiting for users to join.'."\n"
."\n"
.'- 100: The task has not started yet.'."\n"
."\n"
.'- 101: Recording in progress.'."\n"
."\n"
.'- 102: Uploading the recording file.'."\n"
."\n"
.'- 200: Recording completed because the channel ended.'."\n"
."\n"
.'- 201: Recording completed because the user stopped it.'."\n"
."\n"
.'- 400: Recording failed due to an internal server error.'."\n"
."\n"
.'- 401: Recording failed because writing to the user\'s storage failed.'."\n"
."\n"
.'- 402: Recording failed because starting the user\'s storage failed.'."\n"
."\n"
.'- 403: Recording failed because the recording duration was too short.'."\n"
."\n"
.'- 404: Recording failed because the user\'s storage key was invalid.'."\n"
."\n"
.'- 405: Recording failed because the bucket does not exist.'."\n"
."\n"
.'- 406: Recording failed because access to the user\'s storage was denied.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ApiParamError', 'errorMessage' => 'API %s.', 'description' => 'API parameter error'],
],
403 => [
['errorCode' => 'BizAppError', 'errorMessage' => 'A business application permission error occurred.', 'description' => 'Business application permission error'],
['errorCode' => 'BizUidError', 'errorMessage' => 'A business UID error occurred.', 'description' => 'Business primary account error'],
],
[
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
500 => [
['errorCode' => 'ServerInternalError', 'errorMessage' => 'An internal error occurred.', 'description' => 'Server Internal Error'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\",\\n \\"Status\\": 1\\n}","type":"json"}]',
'title' => 'Query recording status ',
'description' => '### QPS limit'."\n"
."\n"
.'The per-user QPS limit for this operation is 10 calls per second. Exceeding this limit triggers rate limiting, which may affect your business. Call this operation only as needed.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'rtc:DescribeCloudRecordStatus',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
],
],
'DescribeEndPointEventList' => [
'summary' => 'This API is used to retrieve the end-to-end user management event List.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => 'APP ID。', 'description' => 'APP ID。', 'type' => 'string', 'required' => true, 'example' => 'testappid'],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'channel ID.', 'type' => 'string', 'required' => true, 'example' => 'testid'],
],
[
'name' => 'CreatedTs',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Start Time of the event query time range. This time must not be earlier than the actual channel Creation Time and must not be earlier than 30 days ago. It is represented as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1614936817'],
],
[
'name' => 'DestroyedTs',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'End time of the event query time range. This time must not be later than the channel release time. It is represented as a UNIX timestamp in seconds. If this parameter is empty, the current time is used.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1614936817'],
],
[
'name' => 'UserIdList',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'List of User IDs, separated by commas (,).', 'type' => 'string', 'required' => true, 'example' => 'testuserid1,testuserid2'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'Nodes' => [
'title' => '',
'description' => 'List of basic user information.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'UserId' => ['title' => '', 'description' => 'User ID.', 'type' => 'string', 'example' => 'testuserid'],
'EventDataItems' => [
'title' => '',
'description' => 'List of event Data.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Ts' => ['title' => '', 'description' => 'Time of the first occurrence, represented as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1614936817'],
'EventList' => [
'title' => '',
'description' => 'Event List.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'EventName' => ['title' => '', 'description' => 'Event Name.', 'type' => 'string', 'example' => '开始发布'],
'EventType' => ['title' => '', 'description' => 'Event type. Valid values:'."\n"
.'- **USER**: User event.'."\n"
.'- **SYSTEM**: System event.', 'type' => 'string', 'example' => 'USER'],
'Ts' => ['title' => '', 'description' => 'Time of the occurrence, represented as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1614936817'],
'TsInMs' => ['title' => '', 'description' => 'Time of occurrence, represented as a UNIX timestamp in milliseconds.', 'type' => 'string', 'example' => '1614936817123'],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
'RequestId' => ['title' => '', 'description' => 'Request ID.', 'type' => 'string', 'example' => '231470C1-ACFB-4C9F-844F-4CFE1E3804C5'],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ApiParamError', 'errorMessage' => 'API %s.', 'description' => 'API parameter error'],
],
403 => [
['errorCode' => 'BizAppError', 'errorMessage' => 'A business application permission error occurred.', 'description' => 'Business application permission error'],
['errorCode' => 'BizUidError', 'errorMessage' => 'A business UID error occurred.', 'description' => 'Business primary account error'],
['errorCode' => 'BizCreatedTsError', 'errorMessage' => 'A business CreatedTs error occurred.', 'description' => 'Parameter meeting creation time is inaccurate.'],
],
500 => [
['errorCode' => 'ServerInternalError', 'errorMessage' => 'An internal error occurred.', 'description' => 'Server Internal Error'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Nodes\\": [\\n {\\n \\"UserId\\": \\"testuserid\\",\\n \\"EventDataItems\\": [\\n {\\n \\"Ts\\": 1614936817,\\n \\"EventList\\": [\\n {\\n \\"EventName\\": \\"开始发布\\",\\n \\"EventType\\": \\"USER\\",\\n \\"Ts\\": 1614936817,\\n \\"TsInMs\\": \\"1614936817123\\"\\n }\\n ]\\n }\\n ]\\n }\\n ],\\n \\"RequestId\\": \\"231470C1-ACFB-4C9F-844F-4CFE1E3804C5\\"\\n}","type":"json"}]',
'title' => 'Obtain End-to-End User Event List',
'description' => '### How-To '."\n"
.'This API is used to retrieve the end-to-end user management event List. For example, in the Event List, you can obtain information such as Event Name and Type. '."\n"
."\n"
.'### queries per second (QPS) Limit '."\n"
.'The per-user QPS limit for this API is 10 queries per second. If this limit is exceeded, API Calls will be subject to Rate Limiting, which may Impact your business. Please invoke the API appropriately. ',
'changeSet' => [
['createdAt' => '2024-05-09T03:18:37.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeEndPointEventList'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'rtc:DescribeEndPointEventList',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeEndPointMetricData' => [
'summary' => 'This API is used to obtain end-to-end metric data. ',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => 'APP ID。', 'description' => 'APP ID。', 'type' => 'string', 'required' => true, 'example' => 'testappid'],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Channel ID', 'type' => 'string', 'required' => true, 'example' => 'testid'],
],
[
'name' => 'CreatedTs',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Start Time of the query time range. This time must not be earlier than the actual Creation Time of the channel and must not be more than 30 days ago. It is represented as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1614936817'],
],
[
'name' => 'DestroyedTs',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'End Time of the query time range. This time must not be later than the channel release time. It is represented as a UNIX timestamp, in seconds. If the parameter is empty, the current time is used.'."\n"
."\n"
.'> If the provided End Time exceeds the channel release time, data from the Start Time to the channel release time will be returned, with a maximum duration of the most recent 3 hours.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1614936817'],
],
[
'name' => 'SubUserId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Subscriber User ID.', 'type' => 'string', 'required' => false, 'example' => 'testuserid'],
],
[
'name' => 'PubUserId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'User ID of the publisher. '."\n"
.'> You can specify either the PubUserId parameter or the PubCallIdList parameter, but not both.', 'type' => 'string', 'required' => false, 'example' => 'testuserid2'],
],
[
'name' => 'PubCallIdList',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Call IDs of the publisher\'s communication streams, separated by English commas (,). '."\n"
.'> You must specify either PubUserId or PubCallIdList, but not both.', 'type' => 'string', 'required' => false, 'example' => 'testcall1,testcall2'],
],
[
'name' => 'Metrics',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Enumeration list of Metrics, separated by commas (,).', 'type' => 'string', 'required' => true, 'example' => 'VIDEO_STUCK_CAMERA'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'SubMetrics' => [
'title' => '',
'description' => 'Subscriber-side User Metric Data. ',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Type' => ['title' => '', 'description' => 'The Type corresponding to the input parameter Metrics. ', 'type' => 'string', 'example' => 'VIDEO_STUCK_CAMERA'],
'UserId' => ['title' => '', 'description' => 'User ID. ', 'type' => 'string', 'example' => 'testuserid'],
'Nodes' => [
'title' => '',
'description' => 'List of coordinate points in the subscriber-side Trend Indicator.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'X' => ['title' => '', 'description' => 'X-axis coordinate in the subscriber-side Metric Trend graph.', 'type' => 'string', 'example' => '1548670257'],
'Y' => ['title' => '', 'description' => 'Y-axis coordinate in the subscriber-side Metric Trend graph.', 'type' => 'string', 'example' => '230100'],
'Ext' => ['title' => '', 'description' => 'Extended properties.', 'type' => 'object', 'example' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
'PubMetrics' => [
'title' => '',
'description' => 'Metric data of users on the publishing side. ',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Type' => ['title' => '', 'description' => 'Type corresponding to the input parameter Metrics. ', 'type' => 'string', 'example' => 'VIDEO_STUCK_CAMERA'],
'UserId' => ['title' => '', 'description' => 'User ID. ', 'type' => 'string', 'example' => 'testuserid'],
'Nodes' => [
'title' => '',
'description' => 'List of coordinate points. ',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'X' => ['title' => '', 'description' => 'The x-axis coordinate in the publisher-side Trend Indicator. ', 'type' => 'string', 'example' => '1548670257'],
'Y' => ['title' => '', 'description' => 'The y-axis coordinate in the publisher-side Trend Indicator. ', 'type' => 'string', 'example' => '230100'],
'Ext' => ['title' => '', 'description' => 'Extended properties. ', 'type' => 'object', 'example' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
'RequestId' => ['title' => '', 'description' => 'Request ID. ', 'type' => 'string', 'example' => '231470C1-ACFB-4C9F-844F-4CFE1E3804C5'],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ApiParamError', 'errorMessage' => 'API %s.', 'description' => 'API parameter error'],
],
403 => [
['errorCode' => 'BizAppError', 'errorMessage' => 'A business application permission error occurred.', 'description' => 'Business application permission error'],
['errorCode' => 'BizUidError', 'errorMessage' => 'A business UID error occurred.', 'description' => 'Business primary account error'],
['errorCode' => 'BizCreatedTsError', 'errorMessage' => 'A business CreatedTs error occurred.', 'description' => 'Parameter meeting creation time is inaccurate.'],
],
500 => [
['errorCode' => 'ServerInternalError', 'errorMessage' => 'An internal error occurred.', 'description' => 'Server Internal Error'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"SubMetrics\\": [\\n {\\n \\"Type\\": \\"VIDEO_STUCK_CAMERA\\",\\n \\"UserId\\": \\"testuserid\\",\\n \\"Nodes\\": [\\n {\\n \\"X\\": \\"1548670257\\",\\n \\"Y\\": \\"230100\\",\\n \\"Ext\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n }\\n }\\n ]\\n }\\n ],\\n \\"PubMetrics\\": [\\n {\\n \\"Type\\": \\"VIDEO_STUCK_CAMERA\\",\\n \\"UserId\\": \\"testuserid\\",\\n \\"Nodes\\": [\\n {\\n \\"X\\": \\"1548670257\\",\\n \\"Y\\": \\"230100\\",\\n \\"Ext\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n }\\n }\\n ]\\n }\\n ],\\n \\"RequestId\\": \\"231470C1-ACFB-4C9F-844F-4CFE1E3804C5\\"\\n}","type":"json"}]',
'title' => 'Obtain end-to-end Metric Data',
'description' => '### How-To '."\n"
.'This API is used to obtain end-to-end metric data. For example, you can retrieve metric information from both the subscriber side and the publisher side. '."\n"
."\n"
.'### QPS Limit '."\n"
.'The queries per second (QPS) limit for this API is 10 requests per second per user. If this limit is exceeded, API calls will be subject to Rate Limiting, which may impact your business. Please invoke the API appropriately. '."\n",
'requestParamsDescription' => 'The metrics are as follows:'."\n"
."\n"
.'| Name | Description |'."\n"
.'|------|-------------|'."\n"
.'| APP_CPU | CPU usage by the app. |'."\n"
.'| SYSTEM_CPU | CPU usage by the system. |'."\n"
.'| APP_MEMORY | Memory usage by the app. |'."\n"
.'| SYSTEM_MEMORY | Memory usage by the system. |'."\n"
.'| SYSTEM_TOTAL_MEMORY | Total system memory. |'."\n"
.'| AUDIO_LOST_RATE | Audio packet loss rate. |'."\n"
.'| VIDEO_LOST_RATE | Video packet loss rate. |'."\n"
.'| AUDIO_RTT | Audio round-trip time (RTT). |'."\n"
.'| VIDEO_RTT | Video round-trip time (RTT). |'."\n"
.'| AUDIO_BIT_RATE | Audio bitrate. |'."\n"
.'| AUDIO_STUCK | Audio stuttering. |'."\n"
.'| AUDIO_LEVEL | Audio volume. |'."\n"
.'| VIDEO_BIT_RATE_CAMERA | Video bitrate from the camera. |'."\n"
.'| VIDEO_BIT_RATE_SHARE | Video bitrate (screen sharing). |'."\n"
.'| VIDEO_STUCK_CAMERA | Video stuttering from the camera. |'."\n"
.'| VIDEO_STUCK_SHARE | Video stuttering (screen sharing). |'."\n"
.'| VIDEO_RESOLUTION_CAMERA | Video resolution from the camera. |'."\n"
.'| VIDEO_RESOLUTION_SHARE | Video resolution (screen sharing). |'."\n"
.'| VIDEO_FPS_CAMERA | Video frame rate from the camera. |'."\n"
.'| VIDEO_FPS_SHARE | Video frame rate (screen sharing). |'."\n",
'changeSet' => [
['createdAt' => '2024-05-09T03:18:37.000Z', 'description' => 'Error codes changed'],
],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'rtc:DescribeEndPointMetricData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeFaultDiagnosisFactorDistributionStat' => [
'summary' => 'Invoke the DescribeFaultDiagnosisFactorDistributionStat API to obtain the distribution of factors impacting abnormal diagnosis.'."\n",
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => 'APP ID。', 'description' => 'APP ID。', 'type' => 'string', 'required' => true, 'example' => '0rbd****'."\n"],
],
[
'name' => 'StartTs',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Start Time of the query, expressed as a UNIX timestamp. Unit: seconds.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1615892596'],
],
[
'name' => 'EndTs',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'End Time of the query, expressed as a UNIX timestamp. Unit: seconds.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1615892596****'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'StatList' => [
'title' => '',
'description' => 'Statistics on the distribution of impact factors.'."\n",
'type' => 'array',
'items' => [
'description' => 'Statistics on the distribution of impact factors.'."\n",
'type' => 'object',
'properties' => [
'FactorId' => ['title' => '', 'description' => 'Impact factor ID. For details, see the list of impact factor ID values below.'."\n", 'type' => 'string', 'example' => '1'],
'UserCount' => ['title' => '', 'description' => 'Number of impacted users.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '100'],
'UserRatio' => ['title' => '', 'description' => 'Proportion of impacted users.'."\n", 'type' => 'number', 'format' => 'float', 'example' => '0.9239'],
],
'title' => '',
'example' => '',
],
'example' => '',
],
'RequestId' => ['title' => '', 'description' => 'Request ID.'."\n", 'type' => 'string', 'example' => '231470C1-ACFB-4C9F-844F-4CFE1E3804C5'],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ApiParamError', 'errorMessage' => 'API %s.', 'description' => 'API parameter error'],
],
403 => [
['errorCode' => 'BizAppError', 'errorMessage' => 'A business application permission error occurred.', 'description' => 'Business application permission error'],
['errorCode' => 'BizUidError', 'errorMessage' => 'A business UID error occurred.', 'description' => 'Business primary account error'],
],
500 => [
['errorCode' => 'ServerInternalError', 'errorMessage' => 'An internal error occurred.', 'description' => 'Server Internal Error'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"StatList\\": [\\n {\\n \\"FactorId\\": \\"1\\",\\n \\"UserCount\\": 100,\\n \\"UserRatio\\": 0.9239\\n }\\n ],\\n \\"RequestId\\": \\"231470C1-ACFB-4C9F-844F-4CFE1E3804C5\\"\\n}","type":"json"}]',
'title' => 'Retrieve the distribution of factors impacting abnormal diagnosis',
'description' => '### How-To '."\n"
.'This API is used to retrieve the distribution of factors impacting abnormal diagnosis. When using this API, you can query data from the last 48 hours, with each query covering a time range of no more than 24 hours.'."\n"
."\n"
.'### QPS Limit '."\n"
.'The queries per second (QPS) limit for this API is 10 per user. If this limit is exceeded, API calls will be subject to rate limiting, which may impact your service. Please call the API responsibly.'."\n",
'responseParamsDescription' => 'The values for the impact factor ID are as follows:'."\n"
."\n"
.'| ID | Description |'."\n"
.'|---------------|--------|'."\n"
.'| 1 | Poor network on the publisher side. |'."\n"
.'| 2 | Poor network on the subscriber side. |'."\n"
.'| 3 | Poor device performance on the publisher side. |'."\n"
.'| 4 | Camera disabled on the publisher side. |'."\n"
.'| 5 | Publisher app switched to run in the background. |'."\n"
.'| 6 | Weak Wi-Fi signal on the publisher side. |'."\n"
.'| 7 | Weak Wi-Fi signal on the subscriber side. |'."\n"
.'| 8 | High CPU utilization on the subscriber side. |'."\n"
.'| 9 | High CPU utilization on the subscriber side. |'."\n"
.'| 13 | Network latency jitter on the publisher side. |'."\n"
.'| 14 | Packet loss jitter on the publisher side. |'."\n"
.'| 15 | Low bandwidth on the publisher side. |'."\n"
.'| 16 | Network latency jitter on the subscriber side. |'."\n"
.'| 17 | Packet loss jitter on the subscriber side. |'."\n"
.'| 18 | Low bandwidth on the subscriber side. |'."\n"
.'| 23 | Long first-frame rendering duration. |'."\n"
.'| UNKNOWN | Unknown. |'."\n",
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeFaultDiagnosisFactorDistributionStat'],
],
],
'ramActions' => [
[
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeFaultDiagnosisFactorDistributionStat',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeFaultDiagnosisOverallData' => [
'summary' => 'Invoke DescribeFaultDiagnosisOverallData to obtain the overview data for abnormal diagnosis. ',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => 'APP ID', 'description' => 'APP ID', 'type' => 'string', 'required' => true, 'example' => '4eah****'],
],
[
'name' => 'StartTs',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Start Time of the query, represented as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1615824000'],
],
[
'name' => 'EndTs',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'End Time of the query, represented as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1615910399'],
],
[
'name' => 'StatDim',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Dimension for Data Statistics. Valid values:'."\n"
.'- **JOIN_SLOW_USER**: User Count with slow channel joining.'."\n"
.'- **AUDIO_STUCK_USER**: User Count experiencing Audio stuttering.'."\n"
.'- **VIDEO_STUCK_USER**: User Count experiencing Video stuttering.'."\n"
.'- **VIDEO_VAGUE_USER**: User Count experiencing Video blur.'."\n"
.'- **HIGH_DELAY_USER**: User Count with high call latency.'."\n"
.'- **FIRST_FRAME_SLOW_USER**: User Count with slow first-frame reception.', 'type' => 'string', 'required' => true, 'example' => 'JOIN_SLOW_USER'],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'Return Result. ',
'type' => 'object',
'properties' => [
'OverallData' => [
'title' => '',
'description' => 'List of overview data for abnormal diagnosis. ',
'type' => 'object',
'properties' => [
'FaultUserCount' => ['title' => '', 'description' => 'Number of abnormal user sessions or abnormal user count. ', 'type' => 'integer', 'format' => 'int32', 'example' => '20'],
'TotalUserCount' => ['title' => '', 'description' => 'Total number of user sessions or total user count. ', 'type' => 'integer', 'format' => 'int32', 'example' => '40'],
'FaultUserRatio' => ['title' => '', 'description' => 'Total proportion of abnormal users. ', 'type' => 'number', 'format' => 'float', 'example' => '0.5'],
],
'example' => '',
],
'MetricData' => [
'title' => '',
'description' => 'Abnormal metric data. ',
'type' => 'object',
'properties' => [
'Nodes' => [
'title' => '',
'description' => 'List of coordinate points for the trend indicator graph. ',
'type' => 'array',
'items' => [
'description' => 'Details of a coordinate point on the trend indicator graph. ',
'type' => 'object',
'properties' => [
'X' => ['title' => '', 'description' => 'The x-axis coordinate in the Trend Indicator, with a unit time interval of 1 minute.', 'type' => 'string', 'example' => '1615824000'],
'Y' => ['title' => '', 'description' => 'The y-axis coordinate in the Trend Indicator.', 'type' => 'string', 'example' => '1'],
'Ext' => ['title' => '', 'description' => 'Extended properties. ratio: proportion of abnormal users within a unit time; totalCount: total number of users within a unit time.', 'type' => 'object', 'example' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'example' => '',
],
'RequestId' => ['title' => '', 'description' => 'Request ID. ', 'type' => 'string', 'example' => '231470C1-ACFB-4C9F-844F-4CFE1E3804C5'],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ApiParamError', 'errorMessage' => 'API %s.', 'description' => 'API parameter error'],
],
403 => [
['errorCode' => 'BizAppError', 'errorMessage' => 'A business application permission error occurred.', 'description' => 'Business application permission error'],
['errorCode' => 'BizUidError', 'errorMessage' => 'A business UID error occurred.', 'description' => 'Business primary account error'],
],
500 => [
['errorCode' => 'ServerInternalError', 'errorMessage' => 'An internal error occurred.', 'description' => 'Server Internal Error'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"OverallData\\": {\\n \\"FaultUserCount\\": 20,\\n \\"TotalUserCount\\": 40,\\n \\"FaultUserRatio\\": 0.5\\n },\\n \\"MetricData\\": {\\n \\"Nodes\\": [\\n {\\n \\"X\\": \\"1615824000\\",\\n \\"Y\\": \\"1\\",\\n \\"Ext\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n }\\n }\\n ]\\n },\\n \\"RequestId\\": \\"231470C1-ACFB-4C9F-844F-4CFE1E3804C5\\"\\n}","type":"json"}]',
'title' => 'Obtain overview data for abnormal Diagnosis.',
'description' => '### How-To '."\n"
.'This API is used to retrieve the overview data for abnormal diagnosis. When using this API, you can query data from the last 48 hours, with a maximum query range of 24 hours. '."\n"
.'### queries per second (QPS) Limit '."\n"
.'The QPS limit for this API is 10 queries per second per user. If this limit is exceeded, API calls will be subject to rate limiting, which may impact your business. Please invoke the API appropriately. ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeFaultDiagnosisOverallData'],
],
],
'ramActions' => [
[
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeFaultDiagnosisOverallData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeFaultDiagnosisUserDetail' => [
'summary' => '[responses_200_schema_properties_UserDetail_properties_Duration_type]integer',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => 'APP ID。', 'description' => 'APP ID。', 'type' => 'string', 'required' => true, 'example' => '0rbd****'."\n"],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['title' => '', 'description' => '频道ID', 'type' => 'string', 'required' => true, 'example' => '311'],
],
[
'name' => 'CreatedTs',
'in' => 'query',
'schema' => ['title' => '', 'description' => '频道创建时间,使用UNIX时间戳表示,单位:秒。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1615892596'],
],
[
'name' => 'UserId',
'in' => 'query',
'schema' => ['title' => '', 'description' => '用户ID', 'type' => 'string', 'required' => true, 'example' => 'c906531af5f9****'],
],
[
'name' => 'FaultType',
'in' => 'query',
'schema' => ['title' => '', 'description' => '异常类型。取值:'."\n"
.'- **JOIN_SLOW**:进频道慢 。'."\n"
.'- **AUDIO_STUCK**:音频卡顿。'."\n"
.'- **VIDEO_STUCK**:视频卡顿。'."\n"
.'- **VIDEO_VAGUE**:视频模糊。'."\n"
.'- **HIGH_DELAY**:通话延迟高 。'."\n"
.'- **FIRST_FRAME_SLOW**:接收首屏慢。', 'type' => 'string', 'required' => true, 'example' => 'JOIN_SLOW'],
],
[
'name' => 'QueryCallUserInfo',
'in' => 'query',
'schema' => ['title' => '', 'description' => '是否查询通话用户信息,为空默认是false。', 'type' => 'boolean', 'required' => false, 'example' => 'true'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'CallInfo' => [
'title' => '',
'description' => 'Basic call information, returned when QueryCallUserInfo=false.',
'type' => 'object',
'properties' => [
'AppId' => ['title' => 'App ID。', 'description' => 'App ID。', 'type' => 'string', 'example' => 'testappid'],
'ChannelId' => ['title' => '', 'description' => 'Channel ID.', 'type' => 'string', 'example' => '311'],
'CallStatus' => ['title' => '', 'description' => 'Call status. Valid values:'."\n"
.'- **IN**: In progress.'."\n"
.'- **OUT**: Ended.', 'type' => 'string', 'example' => 'IN'],
'CreatedTs' => ['title' => '', 'description' => 'The time when the call was created, represented as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1620957905'],
'DestroyedTs' => ['title' => '', 'description' => 'The time when the call was released, represented as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1620958150'],
'Duration' => ['title' => '', 'description' => 'Call duration in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '100'],
],
'example' => '',
],
'UserDetail' => [
'title' => '',
'description' => '[responses_200_schema_properties_UserDetail_properties_CreatedTs_type]integer',
'type' => 'object',
'properties' => [
'UserId' => ['title' => '', 'description' => '[responses_200_schema_properties_UserDetail_properties_OnlinePeriods_items_properties_LeaveTs_title]Time of leaving the call, represented as a UNIX timestamp in seconds.', 'type' => 'string', 'example' => 'testuserid'],
'Location' => ['title' => '', 'description' => 'Geographic location information, such as: Beijing City - Beijing Municipality.', 'type' => 'string', 'example' => '浙江省-杭州市'],
'OnlinePeriods' => [
'title' => '',
'description' => 'Online period information.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'JoinTs' => ['title' => '', 'description' => 'Time of joining the call, represented as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1620957919'],
'LeaveTs' => ['title' => '', 'description' => 'Time of leaving the call, represented as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1620958150'],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
'CreatedTs' => ['title' => '', 'description' => 'Call creation time, represented as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1620957919'."\n"],
'DestroyedTs' => ['title' => '', 'description' => '[responses_200_schema_properties_UserDetail_properties_OnlineDuration_type]integer', 'type' => 'integer', 'format' => 'int64', 'example' => '1620958150'],
'OnlineDuration' => ['title' => '', 'description' => 'Online duration, in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '231'],
'Duration' => ['title' => '', 'description' => '[responses_200_schema_properties_FactorList_title]List of impact factors. An empty value indicates that the impact factors are unknown.', 'type' => 'integer', 'format' => 'int64', 'example' => '231'],
'SdkVersion' => ['title' => '', 'description' => '[responses_200_schema_properties_UserDetail_properties_Location_title]Geographic location information, such as: Beijing City - Beijing Municipality', 'type' => 'string', 'example' => '1.0.0'],
'Os' => ['title' => '', 'description' => '[responses_200_schema_properties_UserDetail_properties_OnlinePeriods_type]array', 'type' => 'string', 'example' => 'iOS'],
'Network' => ['title' => '', 'description' => '[responses_200_schema_properties_UserDetail_properties_OnlinePeriods_items_properties_JoinTs_title]Time of joining the call, represented as a UNIX timestamp in seconds.', 'type' => 'string', 'example' => '4G'],
],
'example' => '',
],
'FaultMetricData' => [
'title' => '',
'description' => 'Abnormal metrics.',
'type' => 'object',
'properties' => [
'Nodes' => [
'title' => '',
'description' => 'List of metric coordinate points.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'X' => ['title' => '', 'description' => '指标趋势图中x轴横坐标,单位时间为1分钟。', 'type' => 'string', 'example' => '1620957900'],
'Y' => ['title' => '', 'description' => '指标趋势图中y轴纵坐标。', 'type' => 'string', 'example' => '0.4540'],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
],
'example' => '',
],
'FactorList' => [
'title' => '',
'description' => 'List of impact factors. An empty list indicates that the impact factors are unknown.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'FactorId' => ['title' => '', 'description' => 'The factor ID. For details, see the factor ID values below.', 'type' => 'string', 'example' => '1'],
'FaultSource' => ['title' => '', 'description' => 'Abnormal source: LOCAL indicates the local end; REMOTE indicates the remote end.', 'type' => 'string', 'example' => 'LOCAL'],
'RelatedMetricDatas' => [
'title' => '',
'description' => 'Associated metrics and coordinate data, returned when FaultType is AUDIO_STUCK, VIDEO_STUCK, VIDEO_VAGUE, or HIGH_DELAY.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Role' => ['title' => '', 'description' => 'Source role. Valid values:'."\n"
.'- **SENDER**: Publisher.'."\n"
.'- **RECEIVER**: Subscriber.', 'type' => 'string', 'example' => 'SENDER'],
'UserId' => ['title' => '', 'description' => 'User ID of the publisher from which the data originates.', 'type' => 'string', 'example' => 'testuserid2'],
'Type' => ['title' => '', 'description' => 'Metric type, consistent with the metric types defined in the end-to-end metrics API.', 'type' => 'string', 'example' => 'AUDIO_STUCK'],
'Nodes' => [
'title' => '',
'description' => '[responses_200_schema_properties_FactorList_items_properties_RelatedEventDatas_items_properties_EventDataItems_items_properties_EventList_items_properties_EventName_type]string',
'type' => 'array',
'items' => [
'description' => '[responses_200_schema_properties_FactorList_items_properties_RelatedEventDatas_items_properties_EventDataItems_items_properties_EventList_items_properties_Ts_type]integer',
'type' => 'object',
'properties' => [
'X' => ['title' => '', 'description' => '[responses_200_schema_properties_FactorList_items_properties_FactorId_title]Factor ID: 1: Poor publisher-side Network; 2: Poor subscriber-side Network; 3: Poor publisher-side device Performance; 4: Publisher-side camera shutdown; 5: Publisher-side app moved to background Run', 'type' => 'string', 'example' => '1615892596'],
'Y' => ['title' => '', 'description' => '[responses_200_schema_properties_RequestId_title]The Request ID.', 'type' => 'string', 'example' => '20'],
'Ext' => ['title' => '', 'description' => '[responses_200_schema_properties_FactorList_items_properties_RelatedEventDatas_items_properties_EventDataItems_items_properties_EventList_items_properties_Ts_title]The time of the first management event occurrence, represented as a UNIX timestamp in seconds.', 'type' => 'object', 'example' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
'RelatedEventDatas' => [
'title' => '',
'description' => 'Associated management events, grouped by time. Coordinate data is returned when FaultType is AUDIO_STUCK, VIDEO_STUCK, VIDEO_VAGUE, or HIGH_DELAY.',
'type' => 'array',
'items' => [
'description' => 'Details of the associated management event.',
'type' => 'object',
'properties' => [
'UserId' => ['title' => '', 'description' => 'User ID', 'type' => 'string', 'example' => '0a497933****'],
'Role' => ['title' => '', 'description' => 'Source role. Valid values:'."\n"
.'- **SENDER**: Publisher (upstream).'."\n"
.'- **RECEIVER**: Subscriber (downstream).', 'type' => 'string', 'example' => 'SENDER'],
'EventDataItems' => [
'title' => '',
'description' => 'List of event data.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Ts' => ['title' => '', 'description' => '[responses_200_schema_properties_FaultMetricData_properties_Nodes_description]List of metric coordinate points.', 'type' => 'integer', 'format' => 'int64', 'example' => '1614936817'],
'EventList' => [
'title' => '',
'description' => 'Event List.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'EventName' => ['title' => '', 'description' => 'Event Name.', 'type' => 'string', 'example' => '开始发布'],
'EventType' => ['title' => '', 'description' => 'Event Type. Valid values:'."\n"
.'- **USER**: User event.'."\n"
.'- **SYSTEM**: System event.', 'type' => 'string', 'example' => 'USER'],
'Ts' => ['title' => '', 'description' => 'The time of the first management event occurrence, represented as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1614936817'],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
'NetworkOperators' => [
'title' => '',
'description' => 'List of Network carriers',
'type' => 'array',
'items' => ['description' => 'Network carrier.', 'type' => 'string', 'example' => '移动', 'title' => ''],
'example' => '',
],
'RequestId' => ['title' => '', 'description' => 'The Request ID.', 'type' => 'string', 'example' => '231470C1-ACFB-4C9F-844F-4CFE1E3804C5'],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ApiParamError', 'errorMessage' => 'API %s.', 'description' => 'API parameter error'],
],
403 => [
['errorCode' => 'BizCreatedTsError', 'errorMessage' => 'A business CreatedTs error occurred.', 'description' => 'Parameter meeting creation time is inaccurate.'],
['errorCode' => 'BizAppError', 'errorMessage' => 'A business application permission error occurred.', 'description' => 'Business application permission error'],
['errorCode' => 'BizUidError', 'errorMessage' => 'A business UID error occurred.', 'description' => 'Business primary account error'],
],
500 => [
['errorCode' => 'ServerInternalError', 'errorMessage' => 'An internal error occurred.', 'description' => 'Server Internal Error'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"CallInfo\\": {\\n \\"AppId\\": \\"testappid\\",\\n \\"ChannelId\\": \\"311\\",\\n \\"CallStatus\\": \\"IN\\",\\n \\"CreatedTs\\": 1620957905,\\n \\"DestroyedTs\\": 1620958150,\\n \\"Duration\\": 100\\n },\\n \\"UserDetail\\": {\\n \\"UserId\\": \\"testuserid\\",\\n \\"Location\\": \\"浙江省-杭州市\\",\\n \\"OnlinePeriods\\": [\\n {\\n \\"JoinTs\\": 1620957919,\\n \\"LeaveTs\\": 1620958150\\n }\\n ],\\n \\"CreatedTs\\": 1620957919,\\n \\"DestroyedTs\\": 1620958150,\\n \\"OnlineDuration\\": 231,\\n \\"Duration\\": 231,\\n \\"SdkVersion\\": \\"1.0.0\\",\\n \\"Os\\": \\"iOS\\",\\n \\"Network\\": \\"4G\\"\\n },\\n \\"FaultMetricData\\": {\\n \\"Nodes\\": [\\n {\\n \\"X\\": \\"1620957900\\",\\n \\"Y\\": \\"0.4540\\"\\n }\\n ]\\n },\\n \\"FactorList\\": [\\n {\\n \\"FactorId\\": \\"1\\",\\n \\"FaultSource\\": \\"LOCAL\\",\\n \\"RelatedMetricDatas\\": [\\n {\\n \\"Role\\": \\"SENDER\\",\\n \\"UserId\\": \\"testuserid2\\",\\n \\"Type\\": \\"AUDIO_STUCK\\",\\n \\"Nodes\\": [\\n {\\n \\"X\\": \\"1615892596\\",\\n \\"Y\\": \\"20\\",\\n \\"Ext\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n }\\n }\\n ]\\n }\\n ],\\n \\"RelatedEventDatas\\": [\\n {\\n \\"UserId\\": \\"0a497933****\\",\\n \\"Role\\": \\"SENDER\\",\\n \\"EventDataItems\\": [\\n {\\n \\"Ts\\": 1614936817,\\n \\"EventList\\": [\\n {\\n \\"EventName\\": \\"开始发布\\",\\n \\"EventType\\": \\"USER\\",\\n \\"Ts\\": 1614936817\\n }\\n ]\\n }\\n ]\\n }\\n ]\\n }\\n ],\\n \\"NetworkOperators\\": [\\n \\"移动\\"\\n ],\\n \\"RequestId\\": \\"231470C1-ACFB-4C9F-844F-4CFE1E3804C5\\"\\n}","type":"json"}]',
'title' => '获取异常诊断的用户详情',
'description' => '[responses_200_schema_properties_UserDetail_properties_CreatedTs_description]Call creation time, represented as a UNIX timestamp in seconds.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeFaultDiagnosisUserDetail'],
],
],
'ramActions' => [
[
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeFaultDiagnosisUserDetail',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeFaultDiagnosisUserList' => [
'summary' => 'Invoke DescribeFaultDiagnosisUserList to obtain the list of user details for abnormal diagnosis.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => 'APP ID。', 'description' => 'APP ID。', 'type' => 'string', 'required' => true, 'example' => '0rbd****'."\n"],
],
[
'name' => 'StartTs',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The query start time, represented as a UNIX timestamp in seconds. ', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1615806196'],
],
[
'name' => 'EndTs',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The query end time, represented as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1615892596'],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Channel ID to search for.', 'type' => 'string', 'required' => false, 'example' => '311'],
],
[
'name' => 'UserId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'User ID to search for.', 'type' => 'string', 'required' => false, 'example' => 'c906531af5f9****'],
],
[
'name' => 'FaultTypes',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Abnormal types to filter. Separate multiple values with English commas (,). Valid values:'."\n"
.'- **JOIN_SLOW**: Slow channel joining.'."\n"
.'- **AUDIO_STUCK**: Audio stuttering.'."\n"
.'- **VIDEO_STUCK**: Video stuttering.'."\n"
.'- **VIDEO_VAGUE**: Blurry video.'."\n"
.'- **HIGH_DELAY**: High call latency.'."\n"
.'- **FIRST_FRAME_SLOW**: Slow first-frame reception.'."\n"
."\n"
.'For more information about abnormal types, see [Abnormal Type Description](~~2639494~~).', 'type' => 'string', 'required' => false, 'example' => 'JOIN_SLOW,AUDIO_STUCK'],
],
[
'name' => 'PageNo',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Page number.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Number of entries per page. ', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '10'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'UserList' => [
'title' => '',
'description' => 'List of abnormal user details.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'ChannelId' => ['title' => '', 'description' => 'Channel ID. ', 'type' => 'string', 'example' => '904'],
'UserId' => ['title' => '', 'description' => 'User ID. ', 'type' => 'string', 'example' => 'testuserid'],
'CreatedTs' => ['title' => '', 'description' => 'The time when the user first entered the channel, represented as a UNIX timestamp in seconds. ', 'type' => 'integer', 'format' => 'int64', 'example' => '1614936817'],
'DestroyedTs' => ['title' => '', 'description' => 'The time when the user last left the channel, represented as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1614936817'],
'ChannelCreatedTs' => ['title' => '', 'description' => 'The channel creation time, represented as a UNIX timestamp in seconds. ', 'type' => 'integer', 'format' => 'int64', 'example' => '1614936817'],
'FaultList' => [
'title' => '',
'description' => 'List of abnormalities.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'FaultType' => ['title' => '', 'description' => 'Type of abnormality.', 'type' => 'string', 'example' => 'JOIN_SLOW'],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
'PageNo' => ['title' => '', 'description' => 'Page number.', 'type' => 'integer', 'format' => 'int32', 'example' => '1'],
'PageSize' => ['title' => '', 'description' => 'Quantity per page.', 'type' => 'integer', 'format' => 'int32', 'example' => '10'],
'TotalCnt' => ['title' => '', 'description' => 'Total quantity.', 'type' => 'integer', 'format' => 'int32', 'example' => '1'],
'RequestId' => ['title' => '', 'description' => 'Request ID.', 'type' => 'string', 'example' => '231470C1-ACFB-4C9F-844F-4CFE1E3804C5'],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ApiParamError', 'errorMessage' => 'API %s.', 'description' => 'API parameter error'],
],
403 => [
['errorCode' => 'BizAppError', 'errorMessage' => 'A business application permission error occurred.', 'description' => 'Business application permission error'],
['errorCode' => 'BizUidError', 'errorMessage' => 'A business UID error occurred.', 'description' => 'Business primary account error'],
],
500 => [
['errorCode' => 'ServerInternalError', 'errorMessage' => 'An internal error occurred.', 'description' => 'Server Internal Error'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"UserList\\": [\\n {\\n \\"ChannelId\\": \\"904\\",\\n \\"UserId\\": \\"testuserid\\",\\n \\"CreatedTs\\": 1614936817,\\n \\"DestroyedTs\\": 1614936817,\\n \\"ChannelCreatedTs\\": 1614936817,\\n \\"FaultList\\": [\\n {\\n \\"FaultType\\": \\"JOIN_SLOW\\"\\n }\\n ]\\n }\\n ],\\n \\"PageNo\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCnt\\": 1,\\n \\"RequestId\\": \\"231470C1-ACFB-4C9F-844F-4CFE1E3804C5\\"\\n}","type":"json"}]',
'title' => 'Obtain the detailed user list for abnormal diagnosis ',
'description' => '### How-To '."\n"
.'This API is used to retrieve the list of user details for abnormal diagnosis. When using this API, you can query data from the last 48 hours, with a query range not exceeding 24 hours. '."\n"
."\n"
.'### queries per second (QPS) Limit '."\n"
.'The QPS limit for this API is 10 queries per second (QPS) per user. If this limit is exceeded, API calls will be subject to Rate Limiting, which may Impact your business. Please invoke the API appropriately.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeFaultDiagnosisUserList'],
],
],
'ramActions' => [
[
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeFaultDiagnosisUserList',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeMPULayoutInfoList' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'Application ID. You can specify only one ID. Create or view IDs in the console.', 'type' => 'string', 'required' => true, 'example' => 'yourAppId', 'title' => ''],
],
[
'name' => 'LayoutId',
'in' => 'query',
'schema' => ['description' => 'Layout ID. To get a layout ID, see [CreateMPULayout](~~162192~~).', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'minimum' => '0', 'default' => '0', 'example' => '2', 'title' => ''],
],
[
'name' => 'Name',
'in' => 'query',
'schema' => ['description' => 'Layout name.', 'type' => 'string', 'required' => false, 'example' => 'LayoutName', 'title' => ''],
],
[
'name' => 'PageNum',
'in' => 'query',
'schema' => ['description' => 'Page number. Default value: **1**.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'minimum' => '1', 'default' => '1', 'example' => '1', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'Number of entries per page. Default value: **10**.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'minimum' => '1', 'default' => '10', 'example' => '10', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'TotalPage' => ['description' => 'Total number of pages.', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
'RequestId' => ['description' => 'Request ID.', 'type' => 'string', 'example' => '760bad53276431c499e30dc36f6b26be', 'title' => ''],
'TotalNum' => ['description' => 'Total number of records.', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
'Layouts' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Layout' => [
'description' => 'List of layouts.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'LayoutId' => ['description' => 'Layout ID.', 'type' => 'integer', 'format' => 'int64', 'example' => '2', 'title' => ''],
'Name' => ['description' => 'Layout name.', 'type' => 'string', 'example' => 'LayoutName', 'title' => ''],
'AudioMixCount' => ['description' => 'Maximum number of audio mixes.', 'type' => 'integer', 'format' => 'int32', 'example' => '3', 'title' => ''],
'Panes' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Panes' => [
'description' => 'Pane parameters for the layout.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'MajorPane' => ['description' => 'Specifies the main pane. Each layout supports only one main pane.'."\n"
."\n"
.'- **0**: Secondary pane.'."\n"
."\n"
.'- **1**: Main pane.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'Width' => ['description' => 'Pane width as a normalized percentage.', 'type' => 'number', 'format' => 'float', 'example' => '0.5', 'title' => ''],
'Height' => ['description' => 'Pane height as a normalized percentage.', 'type' => 'number', 'format' => 'float', 'example' => '0.5', 'title' => ''],
'Y' => ['description' => 'Y coordinate as a normalized percentage.', 'type' => 'number', 'format' => 'float', 'example' => '0.5', 'title' => ''],
'PaneId' => ['description' => 'Pane ID. Panes are numbered from top-left to bottom-right, starting from 0.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'ZOrder' => ['description' => 'Stacking order. 0 is the bottom layer. Layer 1 is above layer 0, and so on.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'X' => ['description' => 'X coordinate as a normalized percentage.', 'type' => 'number', 'format' => 'float', 'example' => '0.5', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'IllegalLayoutID', 'errorMessage' => '%s', 'description' => ''],
],
404 => [
['errorCode' => 'InvalidLayout.NotFound', 'errorMessage' => '%s', 'description' => ''],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalPage\\": 1,\\n \\"RequestId\\": \\"760bad53276431c499e30dc36f6b26be\\",\\n \\"TotalNum\\": 1,\\n \\"Layouts\\": {\\n \\"Layout\\": [\\n {\\n \\"LayoutId\\": 2,\\n \\"Name\\": \\"LayoutName\\",\\n \\"AudioMixCount\\": 3,\\n \\"Panes\\": {\\n \\"Panes\\": [\\n {\\n \\"MajorPane\\": 0,\\n \\"Width\\": 0.5,\\n \\"Height\\": 0.5,\\n \\"Y\\": 0.5,\\n \\"PaneId\\": 0,\\n \\"ZOrder\\": 0,\\n \\"X\\": 0.5\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","type":"json"}]',
'title' => 'Obtain layout parameters of a bypass live streaming job',
'summary' => 'Call DescribeMPULayoutInfoList to retrieve layout parameters for a bypass live streaming task.',
'description' => '# Usage notes'."\n"
."\n"
.'Before calling this operation, call [CreateMPULayout](~~162192~~) to create a bypass live streaming layout.'."\n"
."\n"
.'# QPS limit'."\n"
."\n"
.'The per-user QPS limit for this operation is 10 calls per second. Exceeding this limit triggers rate limiting, which may affect your business. Call this operation appropriately. For more information, see [QPS limits](~~341645~~).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeMPULayoutInfoList'],
],
],
'ramActions' => [],
],
'DescribePubUserListBySubUser' => [
'summary' => 'This API is used to obtain the list of publishing users in a communication session based on the subscriber.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => 'APP ID。', 'description' => 'APP ID。', 'type' => 'string', 'required' => true, 'example' => 'testappid'],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Channel ID.', 'type' => 'string', 'required' => true, 'example' => 'testid'],
],
[
'name' => 'CreatedTs',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The channel creation time. You can query data from the last 30 days. The value is represented as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1614936817'],
],
[
'name' => 'DestroyedTs',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The channel release time, represented as a UNIX timestamp in seconds. If this parameter is empty, the current time is used. '."\n"
.'> If the provided channel release time exceeds the actual release time, data from the creation time to the actual release time will be returned.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1614936817'],
],
[
'name' => 'SubUserId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Subscriber User ID.', 'type' => 'string', 'required' => true, 'example' => 'testuserid'],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'Return Result. ',
'type' => 'object',
'properties' => [
'SubUserDetail' => [
'title' => '',
'description' => 'Subscriber user details. ',
'type' => 'object',
'properties' => [
'UserId' => ['title' => '', 'description' => 'User ID.', 'type' => 'string', 'example' => 'testuserid'],
'UserIdAlias' => ['title' => '', 'description' => 'User ID alias.', 'type' => 'string', 'example' => 'yi****'],
'Roles' => [
'title' => '',
'description' => 'User role. ',
'type' => 'array',
'items' => ['description' => 'User role. Valid values:'."\n"
.'- **SENDER**: publish'."\n"
.'- **RECEIVER**: subscribe', 'type' => 'string', 'example' => 'SENDER', 'title' => ''],
'example' => '',
],
'Location' => ['title' => '', 'description' => 'Geographic location information, such as Zhejiang Province-Hangzhou City.', 'type' => 'string', 'example' => '浙江省-杭州市'],
'OnlinePeriods' => [
'title' => '',
'description' => 'Online period information. ',
'type' => 'array',
'items' => [
'description' => 'Online period data. ',
'type' => 'object',
'properties' => [
'JoinTs' => ['title' => '', 'description' => 'The time when the user joined the channel, represented as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1614936817'],
'LeaveTs' => ['title' => '', 'description' => 'The time when the user left the channel, represented as a UNIX timestamp in seconds. ', 'type' => 'integer', 'format' => 'int64', 'example' => '1614936817'],
],
'title' => '',
'example' => '',
],
'example' => '',
],
'CreatedTs' => ['title' => '', 'description' => 'The time when the user first joined the channel, represented as a UNIX timestamp in seconds. ', 'type' => 'integer', 'format' => 'int64', 'example' => '1614936817'],
'DestroyedTs' => ['title' => '', 'description' => 'The time when the user last left the channel, represented as a UNIX timestamp, in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1614936817'],
'OnlineDuration' => ['title' => '', 'description' => 'Online duration, in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '0'],
'Duration' => ['title' => '', 'description' => 'Communication duration, from the first entry to the final exit, in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '0'],
'SdkVersion' => ['title' => '', 'description' => 'SDK Version. ', 'type' => 'string', 'example' => '1.0.0'],
'SdkVersionList' => [
'title' => '',
'description' => 'List of SDK versions, such as 1.0.0, 1.1.1, etc.',
'type' => 'array',
'items' => ['description' => 'List of SDK versions, for example: 1.0.0, 1.1.1, etc.', 'type' => 'string', 'example' => '1.0.0', 'title' => ''],
'example' => '',
],
'Os' => ['title' => '', 'description' => 'Platform Type: If the client type is WEB, this field indicates the type of the browser. If the client type is NATIVE, this field indicates the operating system type. ', 'type' => 'string', 'example' => 'iOS'],
'OsList' => [
'title' => '',
'description' => 'Platform Type: If the client type is WEB, this field indicates the type of the browser. If the client type is NATIVE, this field indicates the operating system type. ',
'type' => 'array',
'items' => ['description' => 'Browser or operating system type, such as Chrome, iOS, or Android. ', 'type' => 'string', 'example' => 'iOS', 'title' => ''],
'example' => '',
],
'Network' => ['title' => '', 'description' => 'Network type, such as WiFi, 4G, etc. ', 'type' => 'string', 'example' => '4G'],
'NetworkList' => [
'title' => '',
'description' => 'Network type, such as WiFi, 4G, etc. ',
'type' => 'array',
'items' => ['description' => 'Network type, such as WiFi, 4G, etc. ', 'type' => 'string', 'example' => '4G', 'title' => ''],
'example' => '',
],
'ClientType' => ['title' => '', 'description' => 'Client type. Valid values: WEB: Web client. NATIVE: Native client. ', 'type' => 'string', 'example' => 'NATIVE'],
],
'example' => '',
],
'PubUserDetailList' => [
'title' => '',
'description' => 'Details of publishing users. ',
'type' => 'array',
'items' => [
'description' => 'Details of a publishing user. ',
'type' => 'object',
'properties' => [
'UserId' => ['title' => '', 'description' => 'User ID. ', 'type' => 'string', 'example' => 'testuserid2'],
'UserIdAlias' => ['title' => '', 'description' => 'User ID alias.', 'type' => 'string', 'example' => 'yi****'],
'Roles' => [
'title' => '',
'description' => 'User roles. Valid values: SENDER: sender. RECEIVER: receiver. ',
'type' => 'array',
'items' => ['description' => 'User role. Valid values: '."\n"
.'- **SENDER**: sender. '."\n"
.'- **RECEIVER**: receiver. ', 'type' => 'string', 'example' => 'SENDER', 'title' => ''],
'example' => '',
],
'Location' => ['title' => '', 'description' => 'Geographical location information, such as Zhejiang Province-Hangzhou City.', 'type' => 'string', 'example' => '浙江省-杭州市'],
'OnlinePeriods' => [
'title' => '',
'description' => 'Online period information.',
'type' => 'array',
'items' => [
'description' => 'Online period information.',
'type' => 'object',
'properties' => [
'JoinTs' => ['title' => '', 'description' => 'The time when the user joined the channel, represented as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1614936817'],
'LeaveTs' => ['title' => '', 'description' => 'The time when the user left the channel, represented as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1614936817'],
],
'title' => '',
'example' => '',
],
'example' => '',
],
'CreatedTs' => ['title' => '', 'description' => 'The time when the user first joined the channel, represented as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1614936817'],
'DestroyedTs' => ['title' => '', 'description' => 'The time when the user last left the channel, represented as a UNIX timestamp in seconds. ', 'type' => 'integer', 'format' => 'int64', 'example' => '1614936817'],
'OnlineDuration' => ['title' => '', 'description' => 'Online duration, in seconds. ', 'type' => 'integer', 'format' => 'int64', 'example' => '0'],
'Duration' => ['title' => '', 'description' => 'Communication duration, measured from the first entry to the final exit, in seconds. ', 'type' => 'integer', 'format' => 'int64', 'example' => '0'],
'SdkVersion' => ['title' => '', 'description' => 'SDK Version. ', 'type' => 'string', 'example' => '1.0.0'],
'SdkVersionList' => [
'title' => '',
'description' => 'List of software development kit (SDK) versions, such as 1.0.0, 1.1.1, etc. ',
'type' => 'array',
'items' => ['description' => 'List of software development kit (SDK) versions, for example: 1.0.0, 1.1.1, etc. ', 'type' => 'string', 'example' => '1.0.0', 'title' => ''],
'example' => '',
],
'Os' => ['title' => '', 'description' => 'Platform Type: If the client type is WEB, this field indicates the type of the browser. If the client type is NATIVE, this field indicates the operating system. ', 'type' => 'string', 'example' => 'iOS'],
'OsList' => [
'title' => '',
'description' => 'Platform Type: If the client type is WEB, this field indicates the type of the browser. If the client type is NATIVE, this field indicates the operating system. ',
'type' => 'array',
'items' => ['description' => 'Type of browser or operating system, such as Chrome, iOS, or Android. ', 'type' => 'string', 'example' => 'iOS', 'title' => ''],
'example' => '',
],
'Network' => ['title' => '', 'description' => 'Network type, such as WiFi, 4G, etc.', 'type' => 'string', 'example' => '4G'],
'NetworkList' => [
'title' => '',
'description' => 'Network types, such as WiFi, 4G, etc. ',
'type' => 'array',
'items' => ['description' => 'Network types, for example: WiFi, 4G, etc. ', 'type' => 'string', 'example' => '4G', 'title' => ''],
'example' => '',
],
'ClientType' => ['title' => '', 'description' => 'Client type. Valid values: WEB: Web client. NATIVE: Native client. ', 'type' => 'string', 'example' => 'NATIVE'],
'CallIdList' => [
'title' => '',
'description' => 'Call IDs of the user\'s communication streams. ',
'type' => 'array',
'items' => ['description' => 'Call ID of the user\'s communication stream. '."\n"
."\n"
.'> This field is returned when a subscriber has subscribed to downstream data but the corresponding upstream data from the publisher is missing. In this case, other fields of the object in PubUserDetailList (such as UserId and Roles) are not returned. ', 'type' => 'string', 'example' => 'testcallid', 'title' => ''],
'example' => '',
],
],
'title' => '',
'example' => '',
],
'example' => '',
],
'CallStatus' => ['title' => '', 'description' => 'Communication status. Valid values: '."\n"
.'- **IN**: In progress. '."\n"
.'- **OUT**: Ended.', 'type' => 'string', 'example' => 'IN'],
'RequestId' => ['title' => '', 'description' => 'Request ID. ', 'type' => 'string', 'example' => '231470C1-ACFB-4C9F-844F-4CFE1E3804C5'],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ApiParamError', 'errorMessage' => 'API %s.', 'description' => 'API parameter error'],
],
403 => [
['errorCode' => 'BizCreatedTsError', 'errorMessage' => 'A business CreatedTs error occurred.', 'description' => 'Parameter meeting creation time is inaccurate.'],
['errorCode' => 'BizAppError', 'errorMessage' => 'A business application permission error occurred.', 'description' => 'Business application permission error'],
['errorCode' => 'BizUidError', 'errorMessage' => 'A business UID error occurred.', 'description' => 'Business primary account error'],
],
500 => [
['errorCode' => 'ServerInternalError', 'errorMessage' => 'An internal error occurred.', 'description' => 'Server Internal Error'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"SubUserDetail\\": {\\n \\"UserId\\": \\"testuserid\\",\\n \\"UserIdAlias\\": \\"yi****\\",\\n \\"Roles\\": [\\n \\"SENDER\\"\\n ],\\n \\"Location\\": \\"浙江省-杭州市\\",\\n \\"OnlinePeriods\\": [\\n {\\n \\"JoinTs\\": 1614936817,\\n \\"LeaveTs\\": 1614936817\\n }\\n ],\\n \\"CreatedTs\\": 1614936817,\\n \\"DestroyedTs\\": 1614936817,\\n \\"OnlineDuration\\": 0,\\n \\"Duration\\": 0,\\n \\"SdkVersion\\": \\"1.0.0\\",\\n \\"SdkVersionList\\": [\\n \\"1.0.0\\"\\n ],\\n \\"Os\\": \\"iOS\\",\\n \\"OsList\\": [\\n \\"iOS\\"\\n ],\\n \\"Network\\": \\"4G\\",\\n \\"NetworkList\\": [\\n \\"4G\\"\\n ],\\n \\"ClientType\\": \\"NATIVE\\"\\n },\\n \\"PubUserDetailList\\": [\\n {\\n \\"UserId\\": \\"testuserid2\\",\\n \\"UserIdAlias\\": \\"yi****\\",\\n \\"Roles\\": [\\n \\"SENDER\\"\\n ],\\n \\"Location\\": \\"浙江省-杭州市\\",\\n \\"OnlinePeriods\\": [\\n {\\n \\"JoinTs\\": 1614936817,\\n \\"LeaveTs\\": 1614936817\\n }\\n ],\\n \\"CreatedTs\\": 1614936817,\\n \\"DestroyedTs\\": 1614936817,\\n \\"OnlineDuration\\": 0,\\n \\"Duration\\": 0,\\n \\"SdkVersion\\": \\"1.0.0\\",\\n \\"SdkVersionList\\": [\\n \\"1.0.0\\"\\n ],\\n \\"Os\\": \\"iOS\\",\\n \\"OsList\\": [\\n \\"iOS\\"\\n ],\\n \\"Network\\": \\"4G\\",\\n \\"NetworkList\\": [\\n \\"4G\\"\\n ],\\n \\"ClientType\\": \\"NATIVE\\",\\n \\"CallIdList\\": [\\n \\"testcallid\\"\\n ]\\n }\\n ],\\n \\"CallStatus\\": \\"IN\\",\\n \\"RequestId\\": \\"231470C1-ACFB-4C9F-844F-4CFE1E3804C5\\"\\n}","type":"json"}]',
'title' => 'Retrieve the list of publishing users during communication from the subscriber side',
'description' => '### How-To '."\n"
.'This API is used to obtain the list of publishing users in a communication session based on the subscriber. For example, you can retrieve detailed information about both the subscriber and the publishing users. '."\n"
."\n"
.'### queries per second (QPS) Limit '."\n"
.'The QPS limit for this API is 10 requests per second per user. If this limit is exceeded, API calls will be subject to rate limiting, which may affect your business. Please invoke the API appropriately. '."\n",
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribePubUserListBySubUser'],
],
],
'ramActions' => [
[
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribePubUserListBySubUser',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeQoeMetricData' => [
'summary' => 'This API is used to obtain the downlink experience quality metrics of a user in a single communication session. ',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => 'APP ID。', 'description' => 'APP ID。', 'type' => 'string', 'required' => true, 'example' => 'testappid'],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Channel ID.', 'type' => 'string', 'required' => true, 'example' => 'testid'],
],
[
'name' => 'CreatedTs',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Channel Creation Time. Supports querying data from the last 30 days. Represented as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1614936817'],
],
[
'name' => 'DestroyedTs',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Channel release time, represented as a UNIX timestamp in seconds. An empty parameter indicates retrieving data up to the current time. '."\n"
.'> If the provided channel release time exceeds the actual release time, data from the Creation Time to the actual release time will be returned.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1614936817'],
],
[
'name' => 'UserId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'User ID.', 'type' => 'string', 'required' => true, 'example' => 'testuserid'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'VideoData' => [
'title' => '',
'description' => 'Video data.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Type' => ['title' => '', 'description' => 'The type of metric that impacts communication experience. Valid values:'."\n"
.'- **VIDEO_CAMERA**: Camera bitrate.'."\n"
.'- **VIDEO_SCREEN_SHARE**: Screen sharing stream bitrate.'."\n"
.'- **VIDEO_STUCK_CAMERA**: Camera stuttering.'."\n"
.'- **VIDEO_STUCK_SCREEN_SHARE**: Screen sharing stuttering.'."\n"
.'- **VIDEO_VAGUE_CAMERA**: Camera blur.'."\n"
.'- **VIDEO_VAGUE_SCREEN_SHARE**: Screen sharing blur.', 'type' => 'string', 'example' => 'VIDEO_CAMERA'],
'UserId' => ['title' => '', 'description' => 'User ID', 'type' => 'string', 'example' => 'testuserid2'],
'Nodes' => [
'title' => '',
'description' => 'List of coordinate points for the video metric trend graph.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'X' => ['title' => '', 'description' => 'The x-axis coordinate in the video metric trend graph.', 'type' => 'string', 'example' => '1548670256'],
'Y' => ['title' => '', 'description' => 'The y-axis coordinate in the Video Trend Indicator.', 'type' => 'string', 'example' => '123'],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
'AudioData' => [
'title' => '',
'description' => 'Audio data. ',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Type' => ['title' => '', 'description' => 'Communication experience. Valid values: '."\n"
.'- **AUDIO**: Audio bitrate. '."\n"
.'- **AUDIO_STUCK**: Audio downlink stuttering. ', 'type' => 'string', 'example' => 'AUDIO'],
'UserId' => ['title' => '', 'description' => 'User ID. ', 'type' => 'string', 'example' => 'testuserid2'],
'Nodes' => [
'title' => '',
'description' => 'List of coordinate points for the audio trend indicator. ',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'X' => ['title' => '', 'description' => 'X-axis coordinate in the audio trend indicator. ', 'type' => 'string', 'example' => '1548670256'],
'Y' => ['title' => '', 'description' => 'Y-axis coordinate in the audio trend indicator. ', 'type' => 'string', 'example' => '123'],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
'RequestId' => ['title' => '', 'description' => 'Request ID.', 'type' => 'string', 'example' => '231470C1-ACFB-4C9F-844F-4CFE1E3804C5'],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ApiParamError', 'errorMessage' => 'API %s.', 'description' => 'API parameter error'],
],
403 => [
['errorCode' => 'BizCreatedTsError', 'errorMessage' => 'A business CreatedTs error occurred.', 'description' => 'Parameter meeting creation time is inaccurate.'],
['errorCode' => 'BizAppError', 'errorMessage' => 'A business application permission error occurred.', 'description' => 'Business application permission error'],
['errorCode' => 'BizUidError', 'errorMessage' => 'A business UID error occurred.', 'description' => 'Business primary account error'],
],
500 => [
['errorCode' => 'ServerInternalError', 'errorMessage' => 'An internal error occurred.', 'description' => 'Server Internal Error'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"VideoData\\": [\\n {\\n \\"Type\\": \\"VIDEO_CAMERA\\",\\n \\"UserId\\": \\"testuserid2\\",\\n \\"Nodes\\": [\\n {\\n \\"X\\": \\"1548670256\\",\\n \\"Y\\": \\"123\\"\\n }\\n ]\\n }\\n ],\\n \\"AudioData\\": [\\n {\\n \\"Type\\": \\"AUDIO\\",\\n \\"UserId\\": \\"testuserid2\\",\\n \\"Nodes\\": [\\n {\\n \\"X\\": \\"1548670256\\",\\n \\"Y\\": \\"123\\"\\n }\\n ]\\n }\\n ],\\n \\"RequestId\\": \\"231470C1-ACFB-4C9F-844F-4CFE1E3804C5\\"\\n}","type":"json"}]',
'title' => 'Downlink Quality of Experience Metrics for a Single Communication Session',
'description' => '### How-To '."\n"
.'This API is used to obtain the downlink experience quality metrics of a user in a single communication session. For example, you can retrieve information such as the metric types that impact communication experience and audio/video trend indicators. '."\n"
.'### QPS Limit '."\n"
.'The queries per second (QPS) limit for this API is 10 per user. If this limit is exceeded, API calls will be subject to rate limiting, which may affect your business. Please invoke the API appropriately. ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeQoeMetricData'],
],
],
'ramActions' => [
[
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeQoeMetricData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeQualityAreaDistributionStatData' => [
'summary' => 'This API is used to obtain the regional distribution data of quality statistics.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [],
'parameters' => [
[
'name' => 'StartDate',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Start Time of the query, represented as a UNIX timestamp in seconds. ', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1615824000'],
],
[
'name' => 'EndDate',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'End Time of the query, represented as a UNIX timestamp in seconds. ', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1615910399'],
],
[
'name' => 'ParentArea',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Parent area name. For example, the parent of Hangzhou City is Zhejiang Province, and the parameter value should be China_Zhejiang Province. If the parameter is empty, statistics are returned at the world level (country dimension), such as China or the United Kingdom. ', 'type' => 'string', 'required' => false, 'example' => '中国_浙江省'."\n"],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => 'APP ID', 'description' => 'APP ID', 'type' => 'string', 'required' => true, 'example' => '0rbd****'."\n"],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'QualityStatDataList' => [
'title' => '',
'description' => 'The list of quality distribution data.',
'type' => 'array',
'items' => [
'description' => 'Details of quality distribution data.',
'type' => 'object',
'properties' => [
'Name' => ['title' => '', 'description' => 'Region name. ', 'type' => 'string', 'example' => '中国_浙江省'],
'CallDurationRatio' => ['title' => '', 'description' => 'The call duration ratio, represented as a four-digit decimal. For example, 1.0000 indicates that the call duration accounts for 100%.', 'type' => 'string', 'example' => '0.6654'],
'JoinChannelSucRate' => ['title' => '', 'description' => 'The channel join success rate, represented as a four-digit decimal.', 'type' => 'string', 'example' => '0.9356'],
'JoinChannelSucFiveSecRate' => ['title' => '', 'description' => 'Five-second channel join success rate, represented as a four-decimal number. ', 'type' => 'string', 'example' => '0.9338'],
'VideoFirstPicDuration' => ['title' => '', 'description' => 'Time to first video frame, in milliseconds. ', 'type' => 'integer', 'format' => 'int64', 'example' => '1363'],
'AudioStuckRate' => ['title' => '', 'description' => 'The audio stuttering rate, represented as a four-digit decimal.', 'type' => 'string', 'example' => '0.0021'],
'VideoStuckRate' => ['title' => '', 'description' => 'The video stuttering rate, represented as a four-digit decimal.', 'type' => 'string', 'example' => '0.0058'],
'AudioDelay' => ['title' => '', 'description' => 'Audio delay, in milliseconds. ', 'type' => 'integer', 'format' => 'int64', 'example' => '347'],
'VideoDelay' => ['title' => '', 'description' => 'Video delay, in milliseconds. ', 'type' => 'integer', 'format' => 'int64', 'example' => '291'],
'AudioHighQualityTransmissionRate' => ['title' => '', 'description' => 'Audio high-quality transmission rate, represented as a decimal number with four decimal places. ', 'type' => 'string', 'example' => '0.9933'],
'VideoHighQualityTransmissionRate' => ['title' => '', 'description' => 'Video high-quality transmission rate, represented as a four-decimal number. ', 'type' => 'string', 'example' => '0.9967'],
],
'title' => '',
'example' => '',
],
'example' => '',
],
'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '231470C1-ACFB-4C9F-844F-4CFE1E3804C5'],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ApiParamError', 'errorMessage' => 'API %s.', 'description' => 'API parameter error'],
],
403 => [
['errorCode' => 'BizAppError', 'errorMessage' => 'A business application permission error occurred.', 'description' => 'Business application permission error'],
['errorCode' => 'BizUidError', 'errorMessage' => 'A business UID error occurred.', 'description' => 'Business primary account error'],
],
500 => [
['errorCode' => 'ServerInternalError', 'errorMessage' => 'An internal error occurred.', 'description' => 'Server Internal Error'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"QualityStatDataList\\": [\\n {\\n \\"Name\\": \\"中国_浙江省\\",\\n \\"CallDurationRatio\\": \\"0.6654\\",\\n \\"JoinChannelSucRate\\": \\"0.9356\\",\\n \\"JoinChannelSucFiveSecRate\\": \\"0.9338\\",\\n \\"VideoFirstPicDuration\\": 1363,\\n \\"AudioStuckRate\\": \\"0.0021\\",\\n \\"VideoStuckRate\\": \\"0.0058\\",\\n \\"AudioDelay\\": 347,\\n \\"VideoDelay\\": 291,\\n \\"AudioHighQualityTransmissionRate\\": \\"0.9933\\",\\n \\"VideoHighQualityTransmissionRate\\": \\"0.9967\\"\\n }\\n ],\\n \\"RequestId\\": \\"231470C1-ACFB-4C9F-844F-4CFE1E3804C5\\"\\n}","type":"json"}]',
'title' => 'Obtain regional distribution data of quality statistics. ',
'description' => '### How-To '."\n"
.'This API is used to obtain the regional distribution data of quality statistics. When using this API, the following restrictions apply: '."\n"
.'- You can query data for any range within the last 365 days (excluding the day of the query). '."\n"
.'- If the query range is less than 24 hours, the data is aggregated by hour. If the query range is greater than or equal to 24 hours, the data is aggregated by day. '."\n"
."\n"
.'### QPS Limit '."\n"
.'The queries per second (QPS) limit for a single user on this API is 10. If you exceed this limit, your API calls will be subject to Rate Limiting, which may Impact your business. Please invoke the API reasonably.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeQualityAreaDistributionStatData'],
],
],
'ramActions' => [
[
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeQualityAreaDistributionStatData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeQualityDistributionStatData' => [
'summary' => 'This API is used to obtain the distribution data of quality statistics.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [],
'parameters' => [
[
'name' => 'StartDate',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Start Time of the query, expressed as a UNIX timestamp in seconds. ', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1615824000'],
],
[
'name' => 'EndDate',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'End Time of the query, expressed as a UNIX timestamp in seconds. ', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1615910399'],
],
[
'name' => 'StatDim',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Statistical dimension. Valid values: '."\n"
.'- **CHANNEL_ONLINE**: Statistics by channel online participant count. '."\n"
.'- **NETWORK**: Statistics by network type. '."\n"
.'- **OS**: Statistics by operating system type. ', 'type' => 'string', 'required' => true, 'example' => 'CHANNEL_ONLINE'],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => 'APP ID', 'description' => 'APP ID', 'type' => 'string', 'required' => true, 'example' => '0rbd****'."\n"],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'QualityStatDataList' => [
'title' => '',
'description' => 'The list of quality statistics data.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Name' => ['title' => '', 'description' => 'Statistical dimension. Valid values: '."\n"
.'- When StatDim is CHANNELONLINE: **ONE_TO_FIVE** (1–5 participants), **SIX_TO_TEN** (6–10 participants), **ELEVEN_TO_TWENTY** (11–20 participants), **TWENTYONE_TO_FIFTY** (21–50 participants), **ABOVE_FIFTY** (more than 50 participants). '."\n"
.'- When StatDim is NETWORK: **WiFi**, **4G**, etc. '."\n"
.'- When StatDim is OS: **iOS**, **Android**, etc. ', 'type' => 'string', 'example' => 'ONE_TO_FIVE'],
'CallDurationRatio' => ['title' => '', 'description' => 'The call duration ratio, represented as a four-digit decimal. For example, 1.0000 indicates that the call duration accounts for 100% of the total usage.', 'type' => 'string', 'example' => '1.0000'],
'JoinChannelSucRate' => ['title' => '', 'description' => 'The channel join success rate, represented as a four-digit decimal.', 'type' => 'string', 'example' => '0.9575'],
'JoinChannelSucFiveSecRate' => ['title' => '', 'description' => 'Five-second channel join success rate, represented as a four-digit decimal. ', 'type' => 'string', 'example' => '0.9560'],
'VideoFirstPicDuration' => ['title' => '', 'description' => 'Time to first video frame, in milliseconds. ', 'type' => 'integer', 'format' => 'int64', 'example' => '1299'],
'AudioStuckRate' => ['title' => '', 'description' => 'The Audio Lag Rate, represented as a four-digit decimal.', 'type' => 'string', 'example' => '0.0014'],
'VideoStuckRate' => ['title' => '', 'description' => 'The Video Lag Rate, represented as a four-digit decimal.', 'type' => 'string', 'example' => '0.0264'],
'AudioDelay' => ['title' => '', 'description' => 'Audio delay, in milliseconds. ', 'type' => 'integer', 'format' => 'int64', 'example' => '554'],
'VideoDelay' => ['title' => '', 'description' => 'Video delay, in milliseconds. ', 'type' => 'integer', 'format' => 'int64', 'example' => '517'],
'AudioHighQualityTransmissionRate' => ['title' => '', 'description' => 'Audio high-quality transmission rate, represented as a four-digit decimal.', 'type' => 'string', 'example' => '0.9953'],
'VideoHighQualityTransmissionRate' => ['title' => '', 'description' => 'Video high-quality transmission rate, represented as a four-digit decimal. ', 'type' => 'string', 'example' => '0.9981'],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '231470C1-ACFB-4C9F-844F-4CFE1E3804C5'],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ApiParamError', 'errorMessage' => 'API %s.', 'description' => 'API parameter error'],
],
403 => [
['errorCode' => 'BizAppError', 'errorMessage' => 'A business application permission error occurred.', 'description' => 'Business application permission error'],
['errorCode' => 'BizUidError', 'errorMessage' => 'A business UID error occurred.', 'description' => 'Business primary account error'],
],
500 => [
['errorCode' => 'ServerInternalError', 'errorMessage' => 'An internal error occurred.', 'description' => 'Server Internal Error'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"QualityStatDataList\\": [\\n {\\n \\"Name\\": \\"ONE_TO_FIVE\\",\\n \\"CallDurationRatio\\": \\"1.0000\\",\\n \\"JoinChannelSucRate\\": \\"0.9575\\",\\n \\"JoinChannelSucFiveSecRate\\": \\"0.9560\\",\\n \\"VideoFirstPicDuration\\": 1299,\\n \\"AudioStuckRate\\": \\"0.0014\\",\\n \\"VideoStuckRate\\": \\"0.0264\\",\\n \\"AudioDelay\\": 554,\\n \\"VideoDelay\\": 517,\\n \\"AudioHighQualityTransmissionRate\\": \\"0.9953\\",\\n \\"VideoHighQualityTransmissionRate\\": \\"0.9981\\"\\n }\\n ],\\n \\"RequestId\\": \\"231470C1-ACFB-4C9F-844F-4CFE1E3804C5\\"\\n}","type":"json"}]',
'title' => 'Obtain distribution data of quality statistics ',
'description' => '### How-To'."\n"
.'This API is used to obtain the distribution data of quality statistics. The following limits apply when using this API:'."\n"
.'- You can query data for any period within the last 365 days (excluding the current day).'."\n"
.'- If the query range is less than 24 hours, the data is aggregated by hour. If the query range is greater than or equal to 24 hours, the data is aggregated by day.'."\n"
.'### Queries per second (QPS) limit'."\n"
.'The QPS limit for this API is 10 queries per second (QPS) per user. If you exceed this limit, your API calls will be subject to Rate Limiting, which may Impact your business. Please invoke the API reasonably.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeQualityDistributionStatData'],
],
],
'ramActions' => [
[
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeQualityDistributionStatData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeQualityOsSdkVersionDistributionStatData' => [
'summary' => 'This API is used to obtain the distribution data of operating systems and SDK versions in quality statistics.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [],
'parameters' => [
[
'name' => 'StartDate',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Start Time of the query, represented as a UNIX timestamp, in seconds. ', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1615824000'],
],
[
'name' => 'EndDate',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'End Time of the query, represented as a UNIX timestamp, in seconds. ', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1615910399'],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => 'APP ID', 'description' => 'APP ID', 'type' => 'string', 'required' => true, 'example' => '0rbd****'."\n"],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'QualityOsSdkVersionStatDataList' => [
'title' => '',
'description' => 'A list of data entries for operating systems and SDK versions in quality statistics.',
'type' => 'array',
'items' => [
'description' => 'Details of operating system and SDK version data in quality statistics.',
'type' => 'object',
'properties' => [
'Name' => ['title' => '', 'description' => 'SDK version name, such as 1.0.0 or 1.1.1. ', 'type' => 'string', 'example' => '2.1.0.210316.dev--release/rtcsdk_v2.1'],
'Os' => ['title' => '', 'description' => 'Operating system name, such as iOS or Android.', 'type' => 'string', 'example' => 'macOS'],
'CallDurationRatio' => ['title' => '', 'description' => 'Call duration ratio, represented as a four-decimal-place string. For example, 1.0000 indicates that the call duration accounts for 100% of the total.', 'type' => 'string', 'example' => '0.0984'],
'JoinChannelSucRate' => ['title' => '', 'description' => 'Channel join success rate, represented as a four-decimal number. ', 'type' => 'string', 'example' => '0.8276'],
'JoinChannelSucFiveSecRate' => ['title' => '', 'description' => 'Five-second channel join success rate, represented as a four-decimal number. ', 'type' => 'string', 'example' => '0.8276'],
'VideoFirstPicDuration' => ['title' => '', 'description' => 'Time to first video frame, in milliseconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '5643'],
'AudioStuckRate' => ['title' => '', 'description' => 'Audio lag rate, represented as a four-decimal-place string.', 'type' => 'string', 'example' => '0.0011'],
'VideoStuckRate' => ['title' => '', 'description' => 'Video lag rate, represented as a four-decimal-place string.', 'type' => 'string', 'example' => '0.0054'],
'AudioDelay' => ['title' => '', 'description' => 'Audio delay, in milliseconds. ', 'type' => 'integer', 'format' => 'int64', 'example' => '248'],
'VideoDelay' => ['title' => '', 'description' => 'Video delay, in milliseconds. ', 'type' => 'integer', 'format' => 'int64', 'example' => '333'],
'AudioHighQualityTransmissionRate' => ['title' => '', 'description' => 'Audio high-quality transmission rate, represented as a four-digit decimal. ', 'type' => 'string', 'example' => '0.9987'],
'VideoHighQualityTransmissionRate' => ['title' => '', 'description' => 'Video high-quality transmission rate, represented as a four-decimal number. ', 'type' => 'string', 'example' => '0.9997'],
],
'title' => '',
'example' => '',
],
'example' => '',
],
'RequestId' => ['title' => '', 'description' => 'Request ID. ', 'type' => 'string', 'example' => '231470C1-ACFB-4C9F-844F-4CFE1E3804C5'],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ApiParamError', 'errorMessage' => 'API %s.', 'description' => 'API parameter error'],
],
403 => [
['errorCode' => 'BizAppError', 'errorMessage' => 'A business application permission error occurred.', 'description' => 'Business application permission error'],
['errorCode' => 'BizUidError', 'errorMessage' => 'A business UID error occurred.', 'description' => 'Business primary account error'],
],
500 => [
['errorCode' => 'ServerInternalError', 'errorMessage' => 'An internal error occurred.', 'description' => 'Server Internal Error'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"QualityOsSdkVersionStatDataList\\": [\\n {\\n \\"Name\\": \\"2.1.0.210316.dev--release/rtcsdk_v2.1\\",\\n \\"Os\\": \\"macOS\\",\\n \\"CallDurationRatio\\": \\"0.0984\\",\\n \\"JoinChannelSucRate\\": \\"0.8276\\",\\n \\"JoinChannelSucFiveSecRate\\": \\"0.8276\\",\\n \\"VideoFirstPicDuration\\": 5643,\\n \\"AudioStuckRate\\": \\"0.0011\\",\\n \\"VideoStuckRate\\": \\"0.0054\\",\\n \\"AudioDelay\\": 248,\\n \\"VideoDelay\\": 333,\\n \\"AudioHighQualityTransmissionRate\\": \\"0.9987\\",\\n \\"VideoHighQualityTransmissionRate\\": \\"0.9997\\"\\n }\\n ],\\n \\"RequestId\\": \\"231470C1-ACFB-4C9F-844F-4CFE1E3804C5\\"\\n}","type":"json"}]',
'title' => 'Version Distribution by Operating System and SDK for Quality Metrics ',
'description' => '### How-To'."\n"
.'This API is used to obtain the distribution data of operating systems and SDK versions in quality statistics. When using this API, the following restrictions apply:'."\n"
.'- You can query data for any period within the last 365 days (excluding the current day).'."\n"
.'- If the query range is less than 24 hours, the data is aggregated by hour. If the query range is greater than or equal to 24 hours, the data is aggregated by day.'."\n"
.'### QPS Limit'."\n"
.'The queries per second (QPS) limit for this API is 10 per user. If you exceed this limit, your API calls will be subject to rate limiting, which may impact your business. Please invoke the API appropriately.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeQualityOsSdkVersionDistributionStatData'],
],
],
'ramActions' => [
[
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeQualityOsSdkVersionDistributionStatData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeQualityOverallData' => [
'summary' => 'This API is used to obtain overview data of quality statistics.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [],
'parameters' => [
[
'name' => 'StartDate',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The Start Time of the query, represented as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1615824000'],
],
[
'name' => 'EndDate',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The End Time of the query, represented as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1615910399'],
],
[
'name' => 'Types',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The Metric Types to query, separated by commas (,). Valid values:'."\n"
.'- **JOIN_CHANNEL_SUC_RATE**: Channel Join Success Rate.'."\n"
.'- **JOIN_CHANNEL_SUC_FIVE_SEC_RATE**: Five-second Channel Join Success Rate.'."\n"
.'- **VIDEO_FIRST_PIC_DUR**: Time to First Video Frame.'."\n"
.'- **AUDIO_STUCK_RATE**: Audio Lag Rate.'."\n"
.'- **VIDEO_STUCK_RATE**: Video Lag Rate.'."\n"
.'- **AUDIO_DELAY**: Audio Delay.'."\n"
.'- **VIDEO_DELAY**: Video Delay.'."\n"
.'- **AUDIO_HIGH_QUALITY_TRANSMISSION_RATE**: Audio High-quality Transmission Rate.'."\n"
.'- **VIDEO_HIGH_QUALITY_TRANSMISSION_RATE**: Video High-quality Transmission Rate.', 'type' => 'string', 'required' => true, 'example' => 'JOIN_CHANNEL_SUC_RATE'],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => 'APP ID', 'description' => 'APP ID', 'type' => 'string', 'required' => true, 'example' => '0rbd****'."\n"],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'QualityOverallData' => [
'title' => '',
'description' => 'List of overview data. ',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Type' => ['title' => '', 'description' => 'The Metric Type queried. ', 'type' => 'string', 'example' => 'JOIN_CHANNEL_SUC_RATE'],
'Nodes' => [
'title' => '',
'description' => 'List of coordinate points for the Trend Indicator. ',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'X' => ['title' => '', 'description' => 'The x-axis coordinate in the Trend Indicator. ', 'type' => 'string', 'example' => '1615831200'],
'Y' => ['title' => '', 'description' => 'The y-axis coordinate in the Trend Indicator.', 'type' => 'string', 'example' => '1.0000'],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
'Average' => ['title' => '', 'description' => 'The average value of the Metric. ', 'type' => 'string', 'example' => '0.9376'],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
'RequestId' => ['title' => '', 'description' => 'Request ID.', 'type' => 'string', 'example' => '231470C1-ACFB-4C9F-844F-4CFE1E3804C5'],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ApiParamError', 'errorMessage' => 'API %s.', 'description' => 'API parameter error'],
],
403 => [
['errorCode' => 'BizAppError', 'errorMessage' => 'A business application permission error occurred.', 'description' => 'Business application permission error'],
['errorCode' => 'BizUidError', 'errorMessage' => 'A business UID error occurred.', 'description' => 'Business primary account error'],
],
500 => [
['errorCode' => 'ServerInternalError', 'errorMessage' => 'An internal error occurred.', 'description' => 'Server Internal Error'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"QualityOverallData\\": [\\n {\\n \\"Type\\": \\"JOIN_CHANNEL_SUC_RATE\\",\\n \\"Nodes\\": [\\n {\\n \\"X\\": \\"1615831200\\",\\n \\"Y\\": \\"1.0000\\"\\n }\\n ],\\n \\"Average\\": \\"0.9376\\"\\n }\\n ],\\n \\"RequestId\\": \\"231470C1-ACFB-4C9F-844F-4CFE1E3804C5\\"\\n}","type":"json"}]',
'title' => 'Obtain overview data of quality statistics',
'description' => '### How-To '."\n"
.'This API is used to obtain overview data of quality statistics. The following restrictions apply when using this API: '."\n"
.'- You can query data for any time range within the last 365 days (excluding the current day). '."\n"
.'- If the query range is less than 24 hours, the data is aggregated by hour. If the query range is greater than or equal to 24 hours, the data is aggregated by day. '."\n"
."\n"
.'### queries per second (QPS) Limit '."\n"
.'The QPS limit for this API is 10 queries per second per user. If you exceed this limit, your API calls will be subject to Rate Limiting, which may Impact your business. Please invoke the API appropriately. ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeQualityOverallData'],
],
],
'ramActions' => [
[
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeQualityOverallData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeRecordFiles' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
'name' => 'TaskIds',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Recording task ID.',
'type' => 'array',
'items' => ['description' => 'Recording task ID (same as the TaskId in the input parameters of [StartRecordTask](~~193528~~)). Up to 10 tasks can be queried in batch. The format is as follows:'."\n"
."\n"
.'```'."\n"
.'TaskIds.1=****'."\n"
.'TaskIds.2=****'."\n"
.'......'."\n"
.'```', 'type' => 'string', 'required' => false, 'example' => 'yourTaskId', 'title' => ''],
'required' => false,
'example' => 'yourTaskId',
'maxItems' => 10,
'title' => '',
],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. Only a single ID can be passed. You can create and query it in the console.', 'type' => 'string', 'required' => true, 'example' => 'yourAppId', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'The channel ID. Only a single ID can be passed.', 'type' => 'string', 'required' => false, 'example' => 'yourChannelId', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries to return on each page. Default value: **10**. Maximum value: **100**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'default' => '10', 'example' => '10', 'title' => ''],
],
[
'name' => 'PageNum',
'in' => 'query',
'schema' => ['description' => 'The page number. By default, the first page is queried.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'default' => '1', 'example' => '1', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC time).'."\n", 'type' => 'string', 'required' => false, 'example' => '2020-11-01T17:36:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC time).'."\n", 'type' => 'string', 'required' => false, 'example' => '2020-11-02T17:36:00Z', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned result.',
'type' => 'object',
'properties' => [
'TotalPage' => ['description' => 'The total number of pages returned.', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '760bad53276431c499e30dc36f6b****', 'title' => ''],
'TotalNum' => ['description' => 'The total number of entries returned.', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
'RecordFiles' => [
'description' => 'The file list.',
'type' => 'array',
'items' => [
'description' => 'The details of the file list.',
'type' => 'object',
'properties' => [
'StartTime' => ['description' => 'The start time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC time).', 'type' => 'string', 'example' => '2020-11-01T17:36:00Z', 'title' => ''],
'CreateTime' => ['description' => 'The creation time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC time).', 'type' => 'string', 'example' => '2020-10-02T17:36:00Z', 'title' => ''],
'AppId' => ['description' => 'The application ID.', 'type' => 'string', 'example' => 'yourAppId', 'title' => ''],
'ChannelId' => ['description' => 'The channel ID.', 'type' => 'string', 'example' => 'yourChannelId', 'title' => ''],
'Url' => ['description' => 'The OSS URL of the recording file.', 'type' => 'string', 'example' => 'http://rtc-demo.oss-cn-****.aliyuncs.com/record/10-15-1/****/record-002_yourTaskId/example.m3u8', 'title' => ''],
'Duration' => ['description' => 'The duration of the recording file.', 'type' => 'number', 'format' => 'float', 'example' => '1800', 'title' => ''],
'TaskId' => ['description' => 'The task ID.', 'type' => 'string', 'example' => 'yourTaskId', 'title' => ''],
'StopTime' => ['description' => 'The end time. Format: yyyy-MM-ddTHH:mm:ssZ (UTC time).', 'type' => 'string', 'example' => '2020-11-02T17:36:00Z', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalPage\\": 1,\\n \\"RequestId\\": \\"760bad53276431c499e30dc36f6b****\\",\\n \\"TotalNum\\": 1,\\n \\"RecordFiles\\": [\\n {\\n \\"StartTime\\": \\"2020-11-01T17:36:00Z\\",\\n \\"CreateTime\\": \\"2020-10-02T17:36:00Z\\",\\n \\"AppId\\": \\"yourAppId\\",\\n \\"ChannelId\\": \\"yourChannelId\\",\\n \\"Url\\": \\"http://rtc-demo.oss-cn-****.aliyuncs.com/record/10-15-1/****/record-002_yourTaskId/example.m3u8\\",\\n \\"Duration\\": 1800,\\n \\"TaskId\\": \\"yourTaskId\\",\\n \\"StopTime\\": \\"2020-11-02T17:36:00Z\\"\\n }\\n ]\\n}","type":"json"}]',
'title' => 'Query the list of files generated by recording',
'summary' => 'Calls DescribeRecordFiles to query the list of files generated by recording.',
'description' => '# Usage notes'."\n"
.'This operation is used to query the list of files generated by recording. For example, you can query parameters such as the creation time and recording duration of files generated by recording.'."\n"
.'# QPS limit'."\n"
.'The per-user QPS limit of this operation is 10 calls per second. If the limit is exceeded, API calls will be throttled, which may affect your business. Please call this operation reasonably. For more information, see [QPS limit](~~341645~~).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Special error codes'."\n"
."\n"
.'|Error code|Description|HTTP status code|Semantics|'."\n"
.'|-----|-------|---|----------|'."\n"
.'| InternalError | The request processing has failed due to some unknown error, exception or failure. | 500 | Internal error |',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRecordFiles'],
],
],
'ramActions' => [],
],
'DescribeRecordTemplates' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
'name' => 'TemplateIds',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The list of template IDs to query. The format is as follows:'."\n"
."\n"
.'```'."\n"
.'TemplateIds.1=****'."\n"
.'TemplateIds.2=****'."\n"
.'......'."\n"
.'```'."\n"
."\n"
.'To obtain a template ID, see [AddRecordTemplate](~~193625~~).',
'type' => 'array',
'items' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''],
'required' => false,
'example' => '76dasgb****',
'maxItems' => 64,
'title' => '',
],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. You can create and query the application ID in the console. Only a single ID can be passed.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'yourAppId', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries to return on each page. Default value: **10**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''],
],
[
'name' => 'PageNum',
'in' => 'query',
'schema' => ['description' => 'The page number. By default, the first page (**1**) is queried.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'TotalPage' => ['description' => 'The total number of pages returned.', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'C292B80E-5175-4BA4-8CC292B80E-5175-4BA4-8C1E-2ABEC4D7C2FE1E-2ABEC4D7****', 'title' => ''],
'TotalNum' => ['description' => 'The total number of results returned.', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
'Templates' => [
'description' => 'The recording template configurations.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'MnsQueue' => ['description' => 'The name of the Message Service (MNS) queue for recording event callbacks.', 'type' => 'string', 'example' => 'record-callback-queue', 'title' => ''],
'OssFilePrefix' => ['description' => 'The naming rule of recording files.', 'type' => 'string', 'example' => 'record/pre/{AppId}/{ChannelId_TaskId}/{EscapedStartTime}_{EscapedEndTime}', 'title' => ''],
'CreateTime' => ['description' => 'The time when the template was created. The format is yyyy-MM-ddTHH:mm:ssZ (UTC time).', 'type' => 'string', 'example' => '2020-09-04T06:22:15Z', 'title' => ''],
'OssBucket' => ['description' => 'The name of the Object Storage Service (OSS) bucket where recording files are stored.', 'type' => 'string', 'example' => 'rtc-record-oss', 'title' => ''],
'DelayStopTime' => ['description' => 'The delay time before recording stops. Unit: seconds.', 'type' => 'integer', 'format' => 'int32', 'example' => '180', 'title' => ''],
'MediaEncode' => ['description' => 'The encoding option.', 'type' => 'integer', 'format' => 'int32', 'example' => '50', 'title' => ''],
'FileSplitInterval' => ['description' => 'The file split interval.', 'type' => 'integer', 'format' => 'int32', 'example' => '1800', 'title' => ''],
'HttpCallbackUrl' => ['description' => 'The HTTP callback URL for recording events.', 'type' => 'string', 'example' => 'http://example.com/callback', 'title' => ''],
'EnableM3u8DateTime' => ['description' => 'Specifies whether to add the timestamp of each TS file to the recorded M3U8 file.', 'type' => 'boolean', 'example' => 'false', 'title' => ''],
'BackgroundColor' => ['description' => 'The RGB value of the background color. Default value: **0** (black). The formula is R+G×256+B×65536. The values of R (red), G (green), and B (blue) are in the range of **0** to **255**.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'Name' => ['description' => 'The name of the recording template.', 'type' => 'string', 'example' => '模板-demo', 'title' => ''],
'TemplateId' => ['description' => 'The ID of the recording template.', 'type' => 'string', 'example' => '1ca698e2-57fa-4314-8e11-00d950d4****', 'title' => ''],
'TaskProfile' => ['description' => 'The task profile.', 'type' => 'string', 'example' => '4IN_1080P', 'title' => ''],
'Backgrounds' => [
'description' => 'The list of background image information.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Width' => ['description' => 'The width of the background image pane. The value is a normalized percentage.', 'type' => 'number', 'format' => 'float', 'example' => '0.2456', 'title' => ''],
'Height' => ['description' => 'The height of the background image pane. The value is a normalized percentage.', 'type' => 'number', 'format' => 'float', 'example' => '0.2456', 'title' => ''],
'Y' => ['description' => 'The Y coordinate of the background image. The value is a normalized percentage.', 'type' => 'number', 'format' => 'float', 'example' => '0.7576', 'title' => ''],
'Url' => ['description' => 'The HTTP or HTTPS URL of the background image.', 'type' => 'string', 'example' => 'https://www.example.com/image.jpg', 'title' => ''],
'Display' => ['description' => 'Specifies whether to display the background image. Valid values:'."\n"
."\n"
.'- **0** (None): The background image is not displayed.'."\n"
.'- **1** (Always): The background image is always displayed.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'ZOrder' => ['description' => 'The stacking order of the background image. 0 indicates the bottom layer. 1 is stacked on top of 0, and so on.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'X' => ['description' => 'The X coordinate of the background image. The value is a normalized percentage.', 'type' => 'number', 'format' => 'float', 'example' => '0.7576', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'Watermarks' => [
'description' => 'The list of watermark information.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Alpha' => ['description' => 'The transparency of the watermark. The value is a normalized percentage. 0 indicates fully transparent. 1 indicates fully opaque.', 'type' => 'number', 'format' => 'float', 'example' => '0', 'title' => ''],
'Width' => ['description' => 'The width of the watermark pane. The value is a normalized percentage.', 'type' => 'number', 'format' => 'float', 'example' => '0.2456', 'title' => ''],
'Height' => ['description' => 'The height of the watermark pane. The value is a normalized percentage.', 'type' => 'number', 'format' => 'float', 'example' => '0.2456', 'title' => ''],
'Y' => ['description' => 'The Y coordinate of the watermark. The value is a normalized percentage.', 'type' => 'number', 'format' => 'float', 'example' => '0.7576', 'title' => ''],
'Url' => ['description' => 'The HTTP or HTTPS URL of the watermark.', 'type' => 'string', 'example' => 'https://www.example.com/image.jpg', 'title' => ''],
'Display' => ['description' => 'Specifies whether to display the watermark. Valid values:'."\n"
."\n"
.'- **0** (None): The watermark is not displayed.'."\n"
.'- **1** (Always): The watermark is always displayed.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'ZOrder' => ['description' => 'The stacking order of the watermark. 0 indicates the bottom layer. 1 is stacked on top of 0, and so on.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'X' => ['description' => 'The X coordinate of the watermark. The value is a normalized percentage.', 'type' => 'number', 'format' => 'float', 'example' => '0.7576', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'ClockWidgets' => [
'description' => 'The list of clock information.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'FontType' => ['description' => 'The font type of the clock. Valid values:'."\n"
."\n"
.'- **0** (default): NOTO_SERIF_CJKSC_REGULAR'."\n"
.'- **1**: ALIBABA_PUHUITI_REGULAR'."\n"
.'- **2**: ALIBABA_PUHUITI_BOLD'."\n"
.'- **3**: ALIBABA_PUHUITI_Heavy'."\n"
.'- **4**: ALIBABA_PUHUITI_LIGHT'."\n"
.'- **5**: ALIBABA_PUHUITI_MEDIUM', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'FontColor' => ['description' => 'The RGB value of the clock text color.'."\n"
."\n"
.'The formula is `R + G × 256 + B × 65536`. The values of R (red), G (green), and B (blue) are in the range of **0** to **255**.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'Y' => ['description' => 'The Y coordinate of the clock. The value is a normalized percentage.', 'type' => 'number', 'format' => 'float', 'example' => '0.7576', 'title' => ''],
'ZOrder' => ['description' => 'The stacking order of the clock. 0 indicates the bottom layer. 1 is stacked on top of 0, and so on.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'X' => ['description' => 'The X coordinate of the clock. The value is a normalized percentage.', 'type' => 'number', 'format' => 'float', 'example' => '0.7576', 'title' => ''],
'FontSize' => ['description' => 'The font size of the clock. The valid range of the font size is **(0, 72]**.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'LayoutIds' => [
'type' => 'array',
'items' => ['description' => 'The list of layout IDs.', 'type' => 'integer', 'format' => 'int64', 'example' => '2', 'title' => ''],
'description' => '',
'title' => '',
'example' => '',
],
'Formats' => [
'type' => 'array',
'items' => ['description' => 'The format of the recording file. Only **M3U8**, **MP4**, and **FLV** are supported.', 'type' => 'string', 'example' => 'M3U8', 'title' => ''],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
200 => [
['errorCode' => 'TaskExisted', 'errorMessage' => 'the task is existed', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalPage\\": 1,\\n \\"RequestId\\": \\"C292B80E-5175-4BA4-8CC292B80E-5175-4BA4-8C1E-2ABEC4D7C2FE1E-2ABEC4D7****\\",\\n \\"TotalNum\\": 1,\\n \\"Templates\\": [\\n {\\n \\"MnsQueue\\": \\"record-callback-queue\\",\\n \\"OssFilePrefix\\": \\"record/pre/{AppId}/{ChannelId_TaskId}/{EscapedStartTime}_{EscapedEndTime}\\",\\n \\"CreateTime\\": \\"2020-09-04T06:22:15Z\\",\\n \\"OssBucket\\": \\"rtc-record-oss\\",\\n \\"DelayStopTime\\": 180,\\n \\"MediaEncode\\": 50,\\n \\"FileSplitInterval\\": 1800,\\n \\"HttpCallbackUrl\\": \\"http://example.com/callback\\",\\n \\"EnableM3u8DateTime\\": false,\\n \\"BackgroundColor\\": 0,\\n \\"Name\\": \\"模板-demo\\",\\n \\"TemplateId\\": \\"1ca698e2-57fa-4314-8e11-00d950d4****\\",\\n \\"TaskProfile\\": \\"4IN_1080P\\",\\n \\"Backgrounds\\": [\\n {\\n \\"Width\\": 0.2456,\\n \\"Height\\": 0.2456,\\n \\"Y\\": 0.7576,\\n \\"Url\\": \\"https://www.example.com/image.jpg\\",\\n \\"Display\\": 0,\\n \\"ZOrder\\": 0,\\n \\"X\\": 0.7576\\n }\\n ],\\n \\"Watermarks\\": [\\n {\\n \\"Alpha\\": 0,\\n \\"Width\\": 0.2456,\\n \\"Height\\": 0.2456,\\n \\"Y\\": 0.7576,\\n \\"Url\\": \\"https://www.example.com/image.jpg\\",\\n \\"Display\\": 0,\\n \\"ZOrder\\": 0,\\n \\"X\\": 0.7576\\n }\\n ],\\n \\"ClockWidgets\\": [\\n {\\n \\"FontType\\": 0,\\n \\"FontColor\\": 0,\\n \\"Y\\": 0.7576,\\n \\"ZOrder\\": 0,\\n \\"X\\": 0.7576,\\n \\"FontSize\\": 1\\n }\\n ],\\n \\"LayoutIds\\": [\\n 2\\n ],\\n \\"Formats\\": [\\n \\"M3U8\\"\\n ]\\n }\\n ]\\n}","type":"json"}]',
'title' => 'Queries a list of recording template configurations',
'summary' => 'Queries a list of recording template configurations by calling the DescribeRecordTemplates operation.',
'description' => '# Usage notes'."\n"
.'Before you call this operation, you must call the [AddRecordTemplate](~~193625~~) operation to add a recording template.'."\n"
.'# QPS limits'."\n"
.'The per-user QPS limit of this operation is 100 calls per second. If the number of calls per second exceeds the limit, throttling is triggered. As a result, your business may be affected. We recommend that you take note of the limit when you call this operation. For more information, see [QPS limits](~~341645~~).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2021-12-17T09:45:38.000Z', 'description' => 'Response parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRecordTemplates'],
],
],
'ramActions' => [],
],
'DescribeRtcChannelList' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => [],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'Application ID. You can create and view this ID in the console. Only one ID is supported.', 'type' => 'string', 'required' => false, 'example' => 'aoe****', 'title' => ''],
],
[
'name' => 'TimePoint',
'in' => 'query',
'schema' => ['description' => 'Query time point in UTC format, yyyy-MM-ddTHH:mm:ssZ.'."\n"
."\n"
.'Time granularity is day.', 'type' => 'string', 'required' => true, 'example' => '2018-01-29T00:00:00Z', 'title' => ''],
],
[
'name' => 'SortType',
'in' => 'query',
'schema' => [
'description' => 'Sort order. Default is descending by StartTime.',
'type' => 'string',
'required' => false,
'enum' => ['sortByStartTime', 'sortByStartTimeDesc', 'sortByEndTime', 'sortByEndTimeDesc'],
'example' => 'desc',
'title' => '',
],
],
[
'name' => 'ServiceArea',
'in' => 'query',
'schema' => ['description' => 'Service area. Default is all areas.'."\n"
."\n"
.'- **cn**: China.'."\n"
."\n"
.'- **us**: United States.', 'type' => 'string', 'required' => false, 'example' => 'cn', 'title' => ''],
],
[
'name' => 'UserId',
'in' => 'query',
'schema' => ['description' => 'User ID. Only one ID is supported.', 'type' => 'string', 'required' => false, 'example' => 'testUser', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'Channel ID. Only one ID is supported.', 'type' => 'string', 'required' => false, 'example' => 'testChannel', 'title' => ''],
],
[
'name' => 'PageNo',
'in' => 'query',
'schema' => ['description' => 'Page number. Value must be greater than **0**.'."\n"
."\n"
.'Default is 1.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'Number of items to return. Value must be greater than **0**.'."\n"
."\n"
.'Default is 10.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '20', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'TotalCnt' => ['description' => 'The total number of pages.', 'type' => 'integer', 'format' => 'int64', 'example' => '1000', 'title' => ''],
'PageNo' => ['description' => 'Current page number.', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
'RequestId' => ['description' => 'Request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
'PageSize' => ['description' => 'Number of items returned per page.', 'type' => 'integer', 'format' => 'int64', 'example' => '100', 'title' => ''],
'ChannelList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'ChannelList' => [
'description' => 'Communication records.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'ChannelId' => ['description' => 'Channel ID.', 'type' => 'string', 'example' => 'testChannel', 'title' => ''],
'EndTime' => ['description' => 'Session end time in UTC format, yyyy-MM-ddTHH:mm:ssZ.', 'type' => 'string', 'example' => '2018-01-29T02:00:00Z', 'title' => ''],
'TotalUserCnt' => ['description' => 'Total number of users.', 'type' => 'integer', 'format' => 'int64', 'example' => '2', 'title' => ''],
'StartTime' => ['description' => 'Session start time in UTC format, yyyy-MM-ddTHH:mm:ssZ.', 'type' => 'string', 'example' => '2018-01-29T01:00:00Z', 'title' => ''],
'CallArea' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'CallArea' => [
'type' => 'array',
'items' => ['description' => 'Communication area. Valid values:'."\n"
."\n"
.'- **cn**: China.'."\n"
."\n"
.'- **us**: United States.', 'type' => 'string', 'example' => 'cn', 'title' => ''],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
200 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s', 'description' => ''],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCnt\\": 1000,\\n \\"PageNo\\": 1,\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"PageSize\\": 100,\\n \\"ChannelList\\": {\\n \\"ChannelList\\": [\\n {\\n \\"ChannelId\\": \\"testChannel\\",\\n \\"EndTime\\": \\"2018-01-29T02:00:00Z\\",\\n \\"TotalUserCnt\\": 2,\\n \\"StartTime\\": \\"2018-01-29T01:00:00Z\\",\\n \\"CallArea\\": {\\n \\"CallArea\\": [\\n \\"cn\\"\\n ]\\n }\\n }\\n ]\\n }\\n}","type":"json"}]',
'title' => 'Obtain the list of channel communication records',
'summary' => 'Call DescribeRtcChannelList to retrieve a list of channel communication records.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRtcChannelList'],
],
],
'ramActions' => [],
],
'DescribeRtcChannelMetric' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => [],
'parameters' => [
[
'name' => 'TimePoint',
'in' => 'query',
'schema' => ['description' => 'The time when the record is queried, in UTC. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format.'."\n"
."\n"
.'The time granularity is day.', 'type' => 'string', 'required' => true, 'example' => '2018-01-29T00:00:00Z', 'title' => ''],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. You can create and query the application ID in the console. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'aoe****', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'The channel ID. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'testId', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
'ChannelMetricInfo' => [
'description' => 'The detailed information.',
'type' => 'object',
'properties' => [
'ChannelMetric' => [
'description' => 'The user information of the channel.',
'type' => 'object',
'properties' => [
'EndTime' => ['description' => 'The time when the user left the channel, in UTC. The time is in the yyyy-MM-ddTHH:mm:ssZ format.', 'type' => 'string', 'example' => '2019-06-06T18:57:00Z', 'title' => ''],
'StartTime' => ['description' => 'The time when the user joined the channel, in UTC. The time is in the yyyy-MM-ddTHH:mm:ssZ format.'."\n", 'type' => 'string', 'example' => '2019-06-06T17:57:00Z', 'title' => ''],
'SubUserCount' => ['description' => 'The number of users that entered the channel and successfully subscribed to streams.', 'type' => 'integer', 'format' => 'int32', 'example' => '25', 'title' => ''],
'ChannelId' => ['description' => 'The channel ID.', 'type' => 'string', 'example' => 'example_channel', 'title' => ''],
'UserCount' => ['description' => 'The number of users that entered the channel.', 'type' => 'integer', 'format' => 'int32', 'example' => '30', 'title' => ''],
'PubUserCount' => ['description' => 'The number of users that entered the channel and successfully published streams.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''],
],
'title' => '',
'example' => '',
],
'Duration' => [
'description' => 'The duration information.',
'type' => 'object',
'properties' => [
'PubDuration' => [
'description' => 'The duration information about publishing streams.',
'type' => 'object',
'properties' => [
'Video720' => ['description' => 'The duration of high-definition (HD) videos. Unit: minutes.', 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => ''],
'Video360' => ['description' => 'The duration of standard-definition (SD) videos. Unit: minutes.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => ''],
'Content' => ['description' => 'The duration of screen sharing. Unit: minutes.', 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => ''],
'Audio' => ['description' => 'The duration of audio. Unit: minutes.', 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => ''],
'Video1080' => ['description' => 'The duration of full high-definition (FHD) videos. Unit: minutes.', 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => ''],
],
'title' => '',
'example' => '',
],
'SubDuration' => [
'description' => 'The duration information about subscribing to streams.',
'type' => 'object',
'properties' => [
'Video720' => ['description' => 'The duration of high-definition (HD) videos. Unit: minutes.', 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => ''],
'Video360' => ['description' => 'The duration of standard-definition (SD) videos. Unit: minutes.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => ''],
'Content' => ['description' => 'The duration of screen sharing. Unit: minutes.', 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => ''],
'Audio' => ['description' => 'The duration of audio. Unit: minutes.', 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => ''],
'Video1080' => ['description' => 'The duration of full high-definition (FHD) videos. Unit: minutes.', 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
200 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s', 'description' => ''],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"ChannelMetricInfo\\": {\\n \\"ChannelMetric\\": {\\n \\"EndTime\\": \\"2019-06-06T18:57:00Z\\",\\n \\"StartTime\\": \\"2019-06-06T17:57:00Z\\",\\n \\"SubUserCount\\": 25,\\n \\"ChannelId\\": \\"example_channel\\",\\n \\"UserCount\\": 30,\\n \\"PubUserCount\\": 10\\n },\\n \\"Duration\\": {\\n \\"PubDuration\\": {\\n \\"Video720\\": 100,\\n \\"Video360\\": 100,\\n \\"Content\\": 100,\\n \\"Audio\\": 100,\\n \\"Video1080\\": 100\\n },\\n \\"SubDuration\\": {\\n \\"Video720\\": 100,\\n \\"Video360\\": 100,\\n \\"Content\\": 100,\\n \\"Audio\\": 100,\\n \\"Video1080\\": 100\\n }\\n }\\n }\\n}","type":"json"}]',
'title' => 'Queries the details of communication records in a channel',
'summary' => 'Queries the details of communication records in a channel. You can query data within the last 180 days.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRtcChannelMetric'],
],
],
'ramActions' => [],
],
'DescribeRtcDurationData' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => [],
'parameters' => [
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start of the time range to query. Specify the time in UTC format: yyyy-MM-ddTHH:mm:ssZ.', 'type' => 'string', 'required' => false, 'example' => '2020-02-04T05:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. Specify the time in UTC format: yyyy-MM-ddTHH:mm:ssZ.'."\n"
."\n"
.'The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2020-02-04T07:00:00Z', 'title' => ''],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the application. You can specify only one ID.'."\n"
."\n"
.'If you leave this parameter empty, data for all your applications is returned.', 'type' => 'string', 'required' => false, 'example' => 'yourAppId', 'title' => ''],
],
[
'name' => 'ServiceArea',
'in' => 'query',
'schema' => ['description' => 'The area where the service is deployed. The default value is CN, which indicates China.', 'type' => 'string', 'required' => false, 'example' => 'CN', 'title' => ''],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => [
'description' => 'The time granularity of the query, in seconds.'."\n"
."\n"
.'Valid values are **3600** (1 hour) and **86400** (1 day). The default value is **3600**.',
'type' => 'string',
'required' => false,
'enum' => ['86400', '3600'],
'example' => '3600',
'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
'DurationDataPerInterval' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DurationModule' => [
'description' => 'The statistics on communication duration.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'ContentDuration' => ['description' => 'The duration of screen sharing, in minutes.', 'type' => 'integer', 'format' => 'int64', 'example' => '200', 'title' => ''],
'V720Duration' => ['description' => 'The duration of communication in HD (video resolution of 1280x720 or lower), in minutes.', 'type' => 'integer', 'format' => 'int64', 'example' => '200', 'title' => ''],
'V360Duration' => ['description' => 'The duration of communication in SD (video resolution of 640x480 or lower), in minutes.', 'type' => 'integer', 'format' => 'int64', 'example' => '300', 'title' => ''],
'AudioDuration' => ['description' => 'The duration of audio-only communication, in minutes.', 'type' => 'integer', 'format' => 'int64', 'example' => '200', 'title' => ''],
'TimeStamp' => ['description' => 'The timestamp of the data record. The time is in UTC and the format is yyyy-MM-ddTHH:mm:ssZ.', 'type' => 'string', 'example' => '2020-02-04T05:00:00Z', 'title' => ''],
'V1080Duration' => ['description' => 'The duration of communication in Full HD (video resolution of 1920x1080 or lower), in minutes.', 'type' => 'integer', 'format' => 'int64', 'example' => '300', 'title' => ''],
'TotalDuration' => ['description' => 'The total communication duration, in minutes.', 'type' => 'integer', 'format' => 'int64', 'example' => '1000', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
200 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s', 'description' => ''],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"DurationDataPerInterval\\": {\\n \\"DurationModule\\": [\\n {\\n \\"ContentDuration\\": 200,\\n \\"V720Duration\\": 200,\\n \\"V360Duration\\": 300,\\n \\"AudioDuration\\": 200,\\n \\"TimeStamp\\": \\"2020-02-04T05:00:00Z\\",\\n \\"V1080Duration\\": 300,\\n \\"TotalDuration\\": 1000\\n }\\n ]\\n }\\n}","type":"json"}]',
'title' => 'Retrieve cumulative communication duration statistics by audio and video specifications ',
'summary' => 'Retrieves the total communication duration for an application within a specified time range. Data is aggregated by audio and video specifications.',
'description' => '> The maximum query time range is 30 days.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRtcDurationData'],
],
],
'ramActions' => [],
],
'DescribeRtcPeakChannelCntData' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => [],
'parameters' => [
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time for the data query. Specify the time in the UTC format: yyyy-MM-ddTHH:mm:ssZ.', 'type' => 'string', 'required' => false, 'example' => '2018-01-29T00:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time for the data query. Specify the time in the UTC format: yyyy-MM-ddTHH:mm:ssZ.'."\n"
."\n"
.'The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2018-01-29T00:00:00Z', 'title' => ''],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. Only a single ID can be specified.'."\n"
."\n"
.'By default, all application IDs are queried.'."\n"
.' ', 'type' => 'string', 'required' => false, 'example' => 'yourAppId', 'title' => ''],
],
[
'name' => 'ServiceArea',
'in' => 'query',
'schema' => ['description' => 'The service area. CN: China (default value).', 'type' => 'string', 'required' => false, 'example' => 'CN', 'title' => ''],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => [
'description' => 'The time granularity for the data query, in seconds.'."\n"
."\n"
.'Valid values: **3600** (1 hour) or **86400** (1 day). Default value: **3600**.'."\n"
.' ',
'type' => 'string',
'required' => false,
'enum' => ['86400', '3600'],
'example' => '3600',
'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
'PeakChannelCntDataPerInterval' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'PeakChannelCntModule' => [
'description' => 'The data structure of the peak number of concurrent channels.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'ActiveChannelPeakTime' => ['description' => 'The peak time. The time is in the UTC format: yyyy-MM-ddTHH:mm:ssZ.', 'type' => 'string', 'example' => '2018-01-29T00:01:00Z', 'title' => ''],
'TimeStamp' => ['description' => 'The timestamp. The time is in the UTC format: yyyy-MM-ddTHH:mm:ssZ.', 'type' => 'string', 'example' => '2018-01-29T00:00:00Z', 'title' => ''],
'ActiveChannelPeak' => ['description' => 'The peak number of concurrent channels.', 'type' => 'integer', 'format' => 'int64', 'example' => '10', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
200 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s', 'description' => ''],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"PeakChannelCntDataPerInterval\\": {\\n \\"PeakChannelCntModule\\": [\\n {\\n \\"ActiveChannelPeakTime\\": \\"2018-01-29T00:01:00Z\\",\\n \\"TimeStamp\\": \\"2018-01-29T00:00:00Z\\",\\n \\"ActiveChannelPeak\\": 10\\n }\\n ]\\n }\\n}","type":"json"}]',
'title' => 'Queries the peak number of concurrent channels of an application',
'summary' => 'Queries the peak number of concurrent channels of an application in a specified time range.',
'description' => '> The maximum time range that can be queried is 30 days.'."\n"
.' '."\n"
.' '."\n"
.' '."\n"
.' ',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRtcPeakChannelCntData'],
],
],
'ramActions' => [],
],
'DescribeRtcUserCntData' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => [],
'parameters' => [
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time of the queried data. The time is displayed in UTC. The format is yyyy-MM-ddTHH:mm:ssZ.', 'type' => 'string', 'required' => false, 'example' => '2018-01-29T00:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time of the queried data. The time is displayed in UTC. The format is yyyy-MM-ddTHH:mm:ssZ.'."\n"
."\n"
.'The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2018-01-29T01:00:00Z', 'title' => ''],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. You can specify only one ID.'."\n"
."\n"
.'By default, all application IDs are queried.'."\n"
.' ', 'type' => 'string', 'required' => false, 'example' => 'yourAppId', 'title' => ''],
],
[
'name' => 'ServiceArea',
'in' => 'query',
'schema' => ['description' => 'The service area. CN: China (default value).', 'type' => 'string', 'required' => false, 'example' => 'CN', 'title' => ''],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => [
'description' => 'The time granularity at which the data is queried. Unit: seconds.'."\n"
."\n"
.'Valid values: **3600** (one hour) or **86400** (one day). Default value: **3600**.'."\n"
.' ',
'type' => 'string',
'required' => false,
'enum' => ['86400', '3600'],
'example' => '3600',
'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
'UserCntDataPerInterval' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'UserCntModule' => [
'description' => 'The data structure of active user statistics.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'ActiveUserCnt' => ['description' => 'The number of current active users (counted based on user terminals that engaged in communication).', 'type' => 'integer', 'format' => 'int64', 'example' => '10', 'title' => ''],
'TimeStamp' => ['description' => 'The timestamp. The time is displayed in UTC. The format is yyyy-MM-ddTHH:mm:ssZ.', 'type' => 'string', 'example' => '2018-01-29T00:00:00Z', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
200 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s', 'description' => ''],
['errorCode' => 'MissingParameter', 'errorMessage' => '%s', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"UserCntDataPerInterval\\": {\\n \\"UserCntModule\\": [\\n {\\n \\"ActiveUserCnt\\": 10,\\n \\"TimeStamp\\": \\"2018-01-29T00:00:00Z\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
'title' => 'Queries the number of active users of an application',
'summary' => 'Queries the number of active users of an application within a specified time range, that is, the number of user terminals that engaged in communication.',
'description' => '> The maximum time span between the start time and the end time of a data query is 30 days.'."\n"
.' '."\n"
.' '."\n"
.' '."\n"
.' ',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRtcUserCntData'],
],
],
'ramActions' => [],
],
'DescribeStreamingOutStatus' => [
'summary' => 'Queries the status of a streaming-out task.',
'methods' => ['get', 'post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID.', 'type' => 'string', 'required' => true, 'example' => '1qaz***x', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'The name of the channel.', 'type' => 'string', 'required' => true, 'example' => 'testChannel', 'title' => ''],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'The task ID.', 'type' => 'string', 'required' => true, 'example' => 'taskId', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'The response schema.',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The ID of the request.', 'type' => 'string', 'example' => '231470C1-ACFB-4C9F-844F-4CFE1E3804C5'],
'Status' => ['description' => 'If a task is abnormal, RTC automatically stops the task and uses a callback to send a notification to your server. For more information, see [Callback]().'."\n"
."\n"
.'- 0: The task started and is waiting for a user to join.'."\n"
."\n"
.'- 1: The stream is in progress.'."\n"
."\n"
.'- 2: The stream ingest is abnormal and the live stream has stopped.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
],
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"231470C1-ACFB-4C9F-844F-4CFE1E3804C5\\",\\n \\"Status\\": 1\\n}","type":"json"}]',
'title' => 'Query bypass stream ingest status ',
'description' => '### QPS Limits'."\n"
."\n"
.'The queries per second (QPS) limit for this API operation is 10 calls per second for each user. If you exceed this limit, your API calls are rate-limited, which may adversely affect your business. We recommend that you call this operation with caution.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeStreamingOutStatus'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'rtc:DescribeStreamingOutStatus',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'DescribeSystemLayoutList' => [
'summary' => 'Built-in system layouts',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => ['operationType' => 'list'],
'parameters' => [
[
'name' => 'PageNum',
'in' => 'query',
'schema' => ['description' => 'Page number.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'minimum' => '1', 'example' => '1', 'default' => '1', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'Number of entries per page.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'minimum' => '1', 'example' => '10', 'default' => '10', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'TotalPage' => ['description' => 'Total number of pages.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '2'],
'RequestId' => ['description' => 'Request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
'TotalNum' => ['description' => 'Total number of pages.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '6'],
'Layouts' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Layout' => [
'title' => '',
'description' => 'List of layouts.',
'type' => 'array',
'items' => [
'description' => 'List of layouts.',
'type' => 'object',
'properties' => [
'LayoutId' => ['description' => 'Layout ID.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '22'],
'Name' => ['description' => 'Layout name.', 'type' => 'string', 'title' => '', 'example' => '评标录屏模板'],
'AudioMixCount' => ['description' => 'Number of audio mixes.', 'type' => 'integer', 'format' => 'int32', 'example' => '3', 'title' => ''],
'Panes' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Panes' => [
'title' => '',
'description' => 'List of panes.',
'type' => 'array',
'items' => [
'description' => 'Pane parameters for the layout.',
'type' => 'object',
'properties' => [
'MajorPane' => ['description' => 'The main pane.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'Width' => ['description' => 'Pane width as a normalized percentage. Valid values: 0.0 < Width ≤ 1.0.', 'type' => 'number', 'format' => 'float', 'example' => '0.25', 'title' => ''],
'Height' => ['description' => 'Pane height as a normalized percentage. Valid values: 0.0 < Height ≤ 1.0.', 'type' => 'number', 'format' => 'float', 'example' => '0.25', 'title' => ''],
'Y' => ['description' => 'Y coordinate as a normalized percentage. Valid values: 0.0 ≤ Y ≤ 1.0.', 'type' => 'number', 'format' => 'float', 'example' => '0.25', 'title' => ''],
'PaneId' => ['description' => 'Pane ID.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'ZOrder' => ['description' => 'Stacking order. Zero (0) is the bottom layer. One (1) is above zero (0), and so on.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'X' => ['description' => 'X coordinate as a normalized percentage. Valid values: 0.0 ≤ X ≤ 1.0.', 'type' => 'number', 'format' => 'float', 'example' => '0.25', 'title' => ''],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalPage\\": 2,\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"TotalNum\\": 6,\\n \\"Layouts\\": {\\n \\"Layout\\": [\\n {\\n \\"LayoutId\\": 22,\\n \\"Name\\": \\"评标录屏模板\\",\\n \\"AudioMixCount\\": 3,\\n \\"Panes\\": {\\n \\"Panes\\": [\\n {\\n \\"MajorPane\\": 0,\\n \\"Width\\": 0.25,\\n \\"Height\\": 0.25,\\n \\"Y\\": 0.25,\\n \\"PaneId\\": 0,\\n \\"ZOrder\\": 0,\\n \\"X\\": 0.25\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","type":"json"}]',
'title' => 'Query the List of Built-in System Layouts',
'description' => '### QPS limit'."\n"
."\n"
.'The per-user QPS limit for this API is 10 calls per second. Exceeding this limit triggers rate limiting, which may affect your business. Call the API responsibly.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeSystemLayoutList'],
],
],
'ramActions' => [],
],
'DescribeUsageAreaDistributionStatData' => [
'summary' => 'This API is used to retrieve the regional distribution data of usage statistics.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [],
'parameters' => [
[
'name' => 'StartDate',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The start time of the query, expressed as a UNIX timestamp in seconds.', 'type' => 'string', 'required' => true, 'example' => '1615824000'],
],
[
'name' => 'EndDate',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The end time of the query, expressed as a UNIX timestamp in seconds.', 'type' => 'string', 'required' => true, 'example' => '1615910399'],
],
[
'name' => 'ParentArea',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The parent region name. For example, the parent of Hangzhou City is Zhejiang Province, and the parameter should be set to China_Zhejiang Province. An empty parameter indicates statistics at the global scope (country dimension), such as China or the United Kingdom.', 'type' => 'string', 'required' => false, 'example' => '中国_浙江省'],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => 'APP ID', 'description' => 'APP ID', 'type' => 'string', 'required' => true, 'example' => '0rbd****'."\n"],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'UsageAreaStatList' => [
'title' => '',
'description' => 'The regional distribution data of usage statistics.',
'type' => 'array',
'items' => [
'description' => 'Details of the regional distribution data of usage statistics.',
'type' => 'object',
'properties' => [
'Name' => ['title' => '', 'description' => 'Region name, such as China.', 'type' => 'string', 'example' => '中国_浙江省'],
'AudioCallDuration' => ['title' => '', 'description' => 'Audio call duration, in minutes.', 'type' => 'integer', 'format' => 'int32', 'example' => '45'],
'VideoCallDuration' => ['title' => '', 'description' => 'Video call duration, in minutes.', 'type' => 'integer', 'format' => 'int32', 'example' => '4776'],
'TotalCallDuration' => ['title' => '', 'description' => 'Total call duration, in minutes.', 'type' => 'integer', 'format' => 'int32', 'example' => '4821'],
],
'title' => '',
'example' => '',
],
'example' => '',
],
'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '231470C1-ACFB-4C9F-844F-4CFE1E3804C5'],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ApiParamError', 'errorMessage' => 'API %s.', 'description' => 'API parameter error'],
],
403 => [
['errorCode' => 'BizAppError', 'errorMessage' => 'A business application permission error occurred.', 'description' => 'Business application permission error'],
['errorCode' => 'BizUidError', 'errorMessage' => 'A business UID error occurred.', 'description' => 'Business primary account error'],
],
500 => [
['errorCode' => 'ServerInternalError', 'errorMessage' => 'An internal error occurred.', 'description' => 'Server Internal Error'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"UsageAreaStatList\\": [\\n {\\n \\"Name\\": \\"中国_浙江省\\",\\n \\"AudioCallDuration\\": 45,\\n \\"VideoCallDuration\\": 4776,\\n \\"TotalCallDuration\\": 4821\\n }\\n ],\\n \\"RequestId\\": \\"231470C1-ACFB-4C9F-844F-4CFE1E3804C5\\"\\n}","type":"json"}]',
'title' => 'Retrieve Regional Distribution Data of Usage Statistics',
'description' => '### How-To'."\n"
.'This API is used to retrieve the regional distribution data of usage statistics. The following restrictions apply when using this API:'."\n"
.'- You can query data for any period within the last 365 days (excluding the current day).'."\n"
.'- If the query range is less than 24 hours, the data is aggregated by hour. If the query range is greater than or equal to 24 hours, the data is aggregated by day.'."\n"
.'### QPS Limit'."\n"
.'The queries per second (QPS) limit for this API is 10 requests per second per user. If you exceed this limit, your API calls will be subject to rate limiting, which may impact your business. Please invoke the API appropriately.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeUsageAreaDistributionStatData'],
],
],
'ramActions' => [
[
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeUsageAreaDistributionStatData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeUsageDistributionStatData' => [
'summary' => 'This API is used to retrieve the distribution data of usage statistics.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [],
'parameters' => [
[
'name' => 'StartDate',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The start time of the query, expressed as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1615824000'],
],
[
'name' => 'EndDate',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The end time of the query, expressed as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1615910399'],
],
[
'name' => 'StatDim',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The statistics dimension. Valid values: '."\n"
.'- **CHANNEL_ONLINE**: Statistics by channel online user count. '."\n"
.'- **NETWORK**: Statistics by network type. '."\n"
.'- **OS**: Statistics by operating system type.', 'type' => 'string', 'required' => true, 'example' => 'CHANNEL_ONLINE'],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => 'APP ID', 'description' => 'APP ID', 'type' => 'string', 'required' => true, 'example' => '0rbd****'."\n"],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'UsageStatList' => [
'title' => '',
'description' => 'List of usage statistics data.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Name' => ['title' => '', 'description' => 'The statistics dimension. Valid values: '."\n"
.'- When StatDim is CHANNEL_ONLINE, valid values are: **ONE_TO_FIVE** (1–5 people), **SIX_TO_TEN** (6–10 people), **ELEVEN_TO_TWENTY** (11–20 people), **TWENTY_ONE_TO_FIFTY** (21–50 people), **ABOVE_FIFTY** (more than 50 people). '."\n"
.'- When StatDim is NETWORK, valid values include: **WiFi**, **4G**, etc. '."\n"
.'- When StatDim is OS, valid values include: **iOS**, **Android**, etc.', 'type' => 'string', 'example' => 'ONE_TO_FIVE'],
'AudioCallDuration' => ['title' => '', 'description' => 'Audio call duration, in minutes.', 'type' => 'integer', 'format' => 'int64', 'example' => '51'],
'VideoCallDuration' => ['title' => '', 'description' => 'Video call duration, in minutes.', 'type' => 'integer', 'format' => 'int64', 'example' => '10585'],
'TotalCallDuration' => ['title' => '', 'description' => 'Total call duration, in minutes.', 'type' => 'integer', 'format' => 'int64', 'example' => '10636'],
'CallDurationRatio' => ['title' => '', 'description' => 'Call duration ratio, represented as a four-decimal number, such as 0.9782.', 'type' => 'string', 'example' => '0.9782'],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
'RequestId' => ['title' => '', 'description' => 'Request ID.', 'type' => 'string', 'example' => '231470C1-ACFB-4C9F-844F-4CFE1E3804C5'],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ApiParamError', 'errorMessage' => 'API %s.', 'description' => 'API parameter error'],
],
403 => [
['errorCode' => 'BizAppError', 'errorMessage' => 'A business application permission error occurred.', 'description' => 'Business application permission error'],
['errorCode' => 'BizUidError', 'errorMessage' => 'A business UID error occurred.', 'description' => 'Business primary account error'],
],
500 => [
['errorCode' => 'ServerInternalError', 'errorMessage' => 'An internal error occurred.', 'description' => 'Server Internal Error'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"UsageStatList\\": [\\n {\\n \\"Name\\": \\"ONE_TO_FIVE\\",\\n \\"AudioCallDuration\\": 51,\\n \\"VideoCallDuration\\": 10585,\\n \\"TotalCallDuration\\": 10636,\\n \\"CallDurationRatio\\": \\"0.9782\\"\\n }\\n ],\\n \\"RequestId\\": \\"231470C1-ACFB-4C9F-844F-4CFE1E3804C5\\"\\n}","type":"json"}]',
'title' => 'Obtain distribution data of usage statistics',
'description' => '### How-To '."\n"
.'This API is used to retrieve the distribution data of usage statistics. When using this API, the following restrictions apply: '."\n"
.'- You can query data for any range within the last 365 days (excluding the current day). '."\n"
.'- If the query range is less than 24 hours, the data is aggregated by hour. If the query range is greater than or equal to 24 hours, the data is aggregated by day. '."\n"
."\n"
.'### Rate Limiting '."\n"
.'The queries per second (QPS) limit for this API is 10 per user. If you exceed this limit, your API calls will be rate-limited, which may impact your business. Please invoke the API appropriately.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeUsageDistributionStatData'],
],
],
'ramActions' => [
[
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeUsageDistributionStatData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeUsageOsSdkVersionDistributionStatData' => [
'summary' => 'This API is used to obtain the distribution data of operating systems and SDK versions in usage statistics. ',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [],
'parameters' => [
[
'name' => 'StartDate',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Start Time of the query, represented as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1615824000'],
],
[
'name' => 'EndDate',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'End Time of the query, represented as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1615910399'],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => 'APP ID', 'description' => 'APP ID', 'type' => 'string', 'required' => true, 'example' => '0rbd****'."\n"],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'Return Result. ',
'type' => 'object',
'properties' => [
'UsageOsSdkVersionStatList' => [
'title' => '',
'description' => 'List of SDK version data in usage statistics. ',
'type' => 'array',
'items' => [
'description' => 'Details of operating system and SDK version data in usage statistics. ',
'type' => 'object',
'properties' => [
'Name' => ['title' => '', 'description' => 'SDK version name, such as 1.0.0 or 1.1.1.', 'type' => 'string', 'example' => '1.0.0'],
'Os' => ['title' => '', 'description' => 'Operating system, such as iOS or Android. ', 'type' => 'string', 'example' => 'macOS'],
'AudioCallDuration' => ['title' => '', 'description' => 'Audio call duration, in minutes. ', 'type' => 'integer', 'format' => 'int64', 'example' => '3'],
'VideoCallDuration' => ['title' => '', 'description' => 'Video call duration, in minutes.', 'type' => 'integer', 'format' => 'int64', 'example' => '473'],
'TotalCallDuration' => ['title' => '', 'description' => 'Total call duration, in minutes. ', 'type' => 'integer', 'format' => 'int64', 'example' => '476'],
'CallDurationRatio' => ['title' => '', 'description' => 'Call duration ratio, represented as a four-decimal number, such as 0.0984.', 'type' => 'string', 'example' => '0.0984'],
],
'title' => '',
'example' => '',
],
'example' => '',
],
'RequestId' => ['title' => '', 'description' => 'Request ID. ', 'type' => 'string', 'example' => '231470C1-ACFB-4C9F-844F-4CFE1E3804C5'],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ApiParamError', 'errorMessage' => 'API %s.', 'description' => 'API parameter error'],
],
403 => [
['errorCode' => 'BizAppError', 'errorMessage' => 'A business application permission error occurred.', 'description' => 'Business application permission error'],
['errorCode' => 'BizUidError', 'errorMessage' => 'A business UID error occurred.', 'description' => 'Business primary account error'],
],
500 => [
['errorCode' => 'ServerInternalError', 'errorMessage' => 'An internal error occurred.', 'description' => 'Server Internal Error'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"UsageOsSdkVersionStatList\\": [\\n {\\n \\"Name\\": \\"1.0.0\\",\\n \\"Os\\": \\"macOS\\",\\n \\"AudioCallDuration\\": 3,\\n \\"VideoCallDuration\\": 473,\\n \\"TotalCallDuration\\": 476,\\n \\"CallDurationRatio\\": \\"0.0984\\"\\n }\\n ],\\n \\"RequestId\\": \\"231470C1-ACFB-4C9F-844F-4CFE1E3804C5\\"\\n}","type":"json"}]',
'title' => 'Usage Distribution by Operating System and SDK Version',
'description' => '### How-To '."\n"
.'This API is used to obtain the distribution data of operating systems and SDK versions in usage statistics. When using this API, the following restrictions apply: '."\n"
.'- You can query data for any period within the last 365 days (excluding the current day). '."\n"
.'- If the query range is less than 24 hours, the data is aggregated by hour. If the query range is greater than or equal to 24 hours, the data is aggregated by day. '."\n"
."\n"
.'### Rate Limiting '."\n"
.'The queries per second (QPS) limit for this API is 10 requests per second per user. If you exceed this limit, your API calls will be rate-limited, which may impact your business. Please invoke the API appropriately. ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeUsageOsSdkVersionDistributionStatData'],
],
],
'ramActions' => [
[
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeUsageOsSdkVersionDistributionStatData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeUsageOverallData' => [
'summary' => 'This API is used to retrieve overview data of usage statistics.',
'methods' => ['post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [],
'parameters' => [
[
'name' => 'StartDate',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The Start Time of the query, represented as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1615824000'],
],
[
'name' => 'EndDate',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The End Time of the query, represented as a UNIX timestamp in seconds.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1615910399'],
],
[
'name' => 'Types',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The Metric Type of the query. Separate multiple values with English commas (,). Valid values:'."\n"
.'- **TOTAL_CALL_DURATION**: Total duration.'."\n"
.'- **VIDEO_CALL_DURATION**: Video call duration.'."\n"
.'- **AUDIO_CALL_DURATION**: Audio call duration.'."\n"
.'- **CALL_CHANNEL_COUNT**: Number of communication channels.'."\n"
.'- **HIGHLY_CONCURRENT_CHANNEL_COUNT**: Number of high concurrency communication channels.'."\n"
.'- **CHANNEL_CONCURRENT_PEAK**: Peak concurrent channel count.'."\n"
.'- **ONLINE_USER_PEAK**: Peak number of online users.'."\n"
.'- **TOTAL_CALL_USER**: Cumulative number of calling users.'."\n"
.'- **TOTAL_INOUT_NUM**: Cumulative number of user entries and exits.', 'type' => 'string', 'required' => true, 'docRequired' => false, 'example' => 'ONLINE_USER_PEAK'],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => 'APP ID', 'description' => 'APP ID', 'type' => 'string', 'required' => true, 'example' => 'a2hz****'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'UsageOverallData' => [
'title' => '',
'description' => 'List of usage overview data. ',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Type' => ['title' => '', 'description' => 'Metric Type queried. ', 'type' => 'string', 'example' => 'ONLINE_USER_PEAK'],
'Nodes' => [
'title' => '',
'description' => 'List of coordinate points for the Trend Indicator. ',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'X' => ['title' => '', 'description' => 'X-axis coordinate in the Trend Indicator. ', 'type' => 'string', 'example' => '1615824000'],
'Y' => ['title' => '', 'description' => 'The y-axis coordinate in the Trend Indicator.', 'type' => 'string', 'example' => '1'],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
'RequestId' => ['title' => '', 'description' => 'Request ID. ', 'type' => 'string', 'example' => '231470C1-ACFB-4C9F-844F-4CFE1E3804C5'],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ApiParamError', 'errorMessage' => 'API %s.', 'description' => 'API parameter error'],
],
403 => [
['errorCode' => 'BizAppError', 'errorMessage' => 'A business application permission error occurred.', 'description' => 'Business application permission error'],
['errorCode' => 'BizUidError', 'errorMessage' => 'A business UID error occurred.', 'description' => 'Business primary account error'],
],
500 => [
['errorCode' => 'ServerInternalError', 'errorMessage' => 'An internal error occurred.', 'description' => 'Server Internal Error'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"UsageOverallData\\": [\\n {\\n \\"Type\\": \\"ONLINE_USER_PEAK\\",\\n \\"Nodes\\": [\\n {\\n \\"X\\": \\"1615824000\\",\\n \\"Y\\": \\"1\\"\\n }\\n ]\\n }\\n ],\\n \\"RequestId\\": \\"231470C1-ACFB-4C9F-844F-4CFE1E3804C5\\"\\n}","type":"json"}]',
'title' => 'Obtain overview data of usage statistics',
'description' => '### How-To '."\n"
.'This API is used to retrieve overview data of usage statistics. The following restrictions apply when using this API: '."\n"
.'- Supports querying data for any date range within the last 365 days (excluding the current day of the query). '."\n"
.'- If the query range is less than 24 hours, the data is aggregated by hour. If the query range is greater than or equal to 24 hours, the data is aggregated by day. '."\n"
."\n"
.'### queries per second (QPS) Limit '."\n"
.'The per-user QPS limit for this API is 10 requests per second. If this limit is exceeded, Rate Limiting will be applied to API Calls, which may Impact your business. Please invoke the API reasonably. ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeUsageOverallData'],
],
],
'ramActions' => [
[
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeUsageOverallData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeUserInfoInChannel' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID, which is created and queried through the console. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => '4eah****', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'The channel ID. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => '1234', 'title' => ''],
],
[
'name' => 'UserId',
'in' => 'query',
'schema' => ['description' => 'The user ID. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'testId', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned result.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '6159ba01-6687-4fb2-a831-f0cd8d188648', 'title' => ''],
'Timestamp' => ['description' => 'The timestamp of the current moment (UTC time).', 'type' => 'integer', 'format' => 'int32', 'example' => '1557909133', 'title' => ''],
'IsInChannel' => ['description' => 'Indicates whether the user is currently in the channel. Valid values:'."\n"
.'- **true**: The user is in the channel.'."\n"
.'- **false**: The user is not in the channel.'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''],
'IsChannelExist' => ['description' => 'Indicates whether the channel exists. Valid values:'."\n"
.'- **true**: The channel exists.'."\n"
.'- **false**: The channel does not exist.', 'type' => 'boolean', 'example' => 'true', 'title' => ''],
'Property' => [
'description' => 'The information of the user in the channel.',
'type' => 'array',
'items' => [
'description' => 'The information of the user in the channel.',
'type' => 'object',
'properties' => [
'Session' => ['description' => 'The session ID.', 'type' => 'string', 'example' => 'xa744sxx8rtobgj****', 'title' => ''],
'Role' => ['description' => 'The role type in the meeting. Valid values:'."\n"
."\n"
.'- **0**: The user role in communication mode.'."\n"
.' '."\n"
.'- **1**: The interactive role.'."\n"
.' '."\n"
.'- **2**: The live (view only) role.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
'Join' => ['description' => 'The time when the user joined the meeting (UTC time).'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1557909133', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'request.norequestid', 'errorMessage' => 'no request', 'description' => ''],
['errorCode' => 'request.noaliuid', 'errorMessage' => 'no aliuid', 'description' => ''],
['errorCode' => 'request.noappid', 'errorMessage' => 'no appid', 'description' => ''],
['errorCode' => 'request.nochannelid', 'errorMessage' => 'no channelid', 'description' => ''],
['errorCode' => 'request.nouserid', 'errorMessage' => 'no userid', 'description' => ''],
['errorCode' => 'service.signalrequesterror', 'errorMessage' => 'signal request error', 'description' => ''],
],
[
['errorCode' => 'request.illegalauth', 'errorMessage' => 'illegal auth', 'description' => ''],
['errorCode' => 'request.authinvalid', 'errorMessage' => 'auth invalid', 'description' => ''],
],
500 => [
['errorCode' => 'service.signalrequesterror', 'errorMessage' => 'signal send msg error', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6159ba01-6687-4fb2-a831-f0cd8d188648\\",\\n \\"Timestamp\\": 1557909133,\\n \\"IsInChannel\\": true,\\n \\"IsChannelExist\\": true,\\n \\"Property\\": [\\n {\\n \\"Session\\": \\"xa744sxx8rtobgj****\\",\\n \\"Role\\": 1,\\n \\"Join\\": 1557909133\\n }\\n ]\\n}","type":"json"}]',
'title' => 'Queries the real-time information of a user in a channel',
'summary' => 'Calls DescribeUserInfoInChannel to query the real-time information of a user in a channel.',
'description' => '# Usage notes'."\n"
.'This operation is used to query the real-time information of a user in a channel. For example, you can query information such as the user role type and the time of joining the meeting.'."\n"
.'# QPS limit'."\n"
.'The per-user QPS limit of this operation is 100 times per second. If the limit is exceeded, API calls will be throttled, which may affect your business. Call this operation properly. For more information, see [QPS limit](~~341645~~).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeUserInfoInChannel'],
],
],
'ramActions' => [],
],
'DisableAutoLiveStreamRule' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID, which can be created and queried in the console.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'eo85****', 'title' => ''],
],
[
'name' => 'RuleId',
'in' => 'query',
'schema' => ['description' => 'The ID of the relay rule. You can obtain the relay rule ID by querying it in the console or by calling the [DescribeAutoLiveStreamRule](~~353198~~) operation.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'docRequired' => true, 'example' => '12', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned result.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '760bad53276431c499e30dc36f6b26be', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ErrorAPIInvalidAppID', 'errorMessage' => 'The AppID API request is invalid: %s', 'description' => ''],
['errorCode' => 'ErrorAPIQueryRow', 'errorMessage' => 'The QueryRow request is invalid: %s', 'description' => ''],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.%s', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"760bad53276431c499e30dc36f6b26be\\"\\n}","type":"json"}]',
'title' => 'Disables an automatic single-stream relay rule',
'summary' => 'Calls the DisableAutoLiveStreamRule operation to disable an automatic single-stream relay rule.',
'description' => '# Usage notes'."\n"
.'Before you call this operation, you must call the [CreateAutoLiveStreamRule](~~353179~~) operation to create a relay rule.'."\n"
.'# QPS limit'."\n"
.'The per-user QPS limit for this operation is 1,000 calls per minute. If the limit is exceeded, API calls will be throttled, which may affect your business. Call the operation reasonably. For more information, see [QPS limit](~~341645~~).',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '1000', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DisableAutoLiveStreamRule'],
],
],
'ramActions' => [],
],
'EnableAutoLiveStreamRule' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. You can create and query the application ID in the console.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'eo85****', 'title' => ''],
],
[
'name' => 'RuleId',
'in' => 'query',
'schema' => ['description' => 'The ID of the relay rule. You can query the ID of the relay rule in the console or by calling the [DescribeAutoLiveStreamRule](~~353198~~) operation.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'docRequired' => true, 'example' => '12', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned data.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '760bad53276431c499e30dc36f6b26be', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ErrorAPIInvalidAppID', 'errorMessage' => 'The AppID API request is invalid: %s', 'description' => ''],
['errorCode' => 'ErrorAPIQueryRow', 'errorMessage' => 'The QueryRow request is invalid: %s', 'description' => ''],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.%s', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"760bad53276431c499e30dc36f6b26be\\"\\n}","type":"json"}]',
'title' => 'Enable an automatic single-stream relay rule',
'summary' => 'Calls the EnableAutoLiveStreamRule operation to enable an automatic single-stream relay rule.',
'description' => '# Usage notes'."\n"
.'Before you call this operation, you must call the [CreateAutoLiveStreamRule](~~353179~~) operation to create a relay rule.'."\n"
.'# QPS limit'."\n"
.'The QPS limit per user for this operation is 1,000 calls per minute. If the number of calls per minute exceeds the limit, throttling is triggered, which may affect your business. Call this operation as required. For more information, see [QPS limit](~~341645~~).',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '1000', 'countWindow' => 60, 'regionId' => '*', 'api' => 'EnableAutoLiveStreamRule'],
],
],
'ramActions' => [],
],
'GetAgent' => [
'summary' => 'GetAgent.',
'methods' => ['get', 'post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'Application ID. You can create and view this ID in the console. Only one ID is supported.', 'type' => 'string', 'required' => false, 'example' => 'aec****', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'Channel ID.', 'type' => 'string', 'required' => false, 'example' => '1234', 'title' => ''],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'Task ID.', 'type' => 'string', 'required' => false, 'example' => 'yourTaskId', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Response schema.',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'Request ID.', 'type' => 'string', 'example' => '6159ba01-6687-4fb2-a831-f0cd8d188648'],
'StartTime' => ['description' => 'Start timestamp, in Unix time, measured in milliseconds.', 'type' => 'string', 'example' => '1751513144838', 'title' => ''],
'StopTime' => ['description' => 'End timestamp, in Unix time, measured in milliseconds.', 'type' => 'string', 'example' => '1751513144838', 'title' => ''],
'Status' => ['description' => 'Agent status. Valid values: 0 (not started), 1 (starting), 2 (running), 3 (stopping), 4 (stopped), or 5 (failed).', 'type' => 'string', 'example' => '1', 'title' => ''],
'Message' => ['description' => 'Status message.', 'type' => 'string', 'example' => 'Success', 'title' => ''],
],
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6159ba01-6687-4fb2-a831-f0cd8d188648\\",\\n \\"StartTime\\": \\"1751513144838\\",\\n \\"StopTime\\": \\"1751513144838\\",\\n \\"Status\\": \\"1\\",\\n \\"Message\\": \\"Success\\"\\n}","type":"json"}]',
'title' => 'Query agent status',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAgent'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:GetAgent',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
],
],
'GetMPUTaskStatus' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'yourAppId', 'title' => ''],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'The task ID. Only a single ID is supported. The value must be the same as the TaskId parameter of [StartMpuTask](~~93183~~).', 'type' => 'string', 'required' => true, 'example' => 'yourTaskId', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned result.',
'type' => 'object',
'properties' => [
'Status' => ['description' => 'The status ID of the stream relay task.'."\n"
.' - **0**: Waiting for the channel to start.'."\n"
.'> If no task is started within 30 days, the task automatically stops.'."\n"
."\n"
.' - **1**: The task is running.'."\n"
."\n"
.' - **2**: The task is stopped.'."\n"
."\n"
.' - **3**: The task is stopped by the user.'."\n"
."\n"
.' - **4**: The channel is stopped.'."\n"
."\n"
.' - **5**: The live streaming is stopped due to CDN network issues.'."\n"
."\n"
.' - **6**: The live streaming is stopped due to live URL issues.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '760bad53276431c499e30dc36f6b26be', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidTask.IDError', 'errorMessage' => 'taskid is invalid', 'description' => ''],
],
404 => [
['errorCode' => 'InvalidTask.NotFound', 'errorMessage' => 'no such task', 'description' => ''],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Status\\": 0,\\n \\"RequestId\\": \\"760bad53276431c499e30dc36f6b26be\\"\\n}","type":"json"}]',
'title' => 'Query the status of a task',
'summary' => 'Calls GetMPUTaskStatus to query the status of a stream relay task.',
'description' => '# Usage notes'."\n"
.'Before you call this operation, you must have called [StartMpuTask](~~93183~~) to start a stream relay task.'."\n"
.'# QPS limit'."\n"
.'The per-user QPS limit on this operation is 4,000 calls per minute. If the number of calls per minute exceeds the limit, throttling is triggered, which may affect your business. Therefore, we recommend that you call this operation at a reasonable frequency. For more information, see [QPS limit](~~341645~~).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '4000', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetMPUTaskStatus'],
],
],
'ramActions' => [],
],
'ModifyApp' => [
'summary' => 'Invoke ModifyApp to modify the name of a specified application. ',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'Application ID. You can create and query it in the console. Only a single ID is supported. ', 'type' => 'string', 'required' => true, 'example' => 'ioeh****', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'Application name. Only a single name is supported. ', 'type' => 'string', 'required' => true, 'example' => 'defaultName', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'Return Result. ',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'Request ID. ', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
404 => [
['errorCode' => 'InvalidAppId.NotFound', 'errorMessage' => '%s', 'description' => ''],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]',
'title' => 'Modify the name of a specified application ',
'description' => '#### How-To '."\n"
.'This API is used to modify the name of a specified application. '."\n"
.'#### queries per second (QPS) limit '."\n"
.'The QPS limit for this API is 200 requests per minute per user. If the limit is exceeded, API calls will be subject to rate limiting, which may impact your business. Invoke the API appropriately. ',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyApp'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'rtc:ModifyApp',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'ModifyAppAgentFunctionStatus' => [
'summary' => 'Toggle the application agent feature',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', 'tenantRelevance' => 'tenant'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. Create and query it in the console. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'ac7N****', 'title' => ''],
],
],
'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' => '6159ba01-6687-4fb2-a831-f0cd8d188648'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6159ba01-6687-4fb2-a831-f0cd8d188648\\"\\n}","type":"json"}]',
'title' => 'Modify the agent feature toggle ',
'description' => '### QPS limit'."\n"
."\n"
.'This API supports up to 10 calls per second per user. If you exceed this limit, rate limiting is applied, which may affect your application. Call the API only as needed.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyAppAgentFunctionStatus'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:ModifyAppAgentFunctionStatus',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
],
],
'ModifyAppAgentTemplate' => [
'summary' => 'Updating an application agent template',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', 'tenantRelevance' => 'tenant'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. You can obtain this ID from the console. Only one ID can be specified.', 'type' => 'string', 'required' => true, 'example' => 'ac7N****', 'title' => ''],
],
[
'name' => 'Id',
'in' => 'query',
'schema' => ['description' => 'The template ID.', 'type' => 'string', 'required' => true, 'example' => '1231231312312131231', 'title' => ''],
],
[
'name' => 'Name',
'in' => 'query',
'schema' => ['description' => 'The template name.', 'type' => 'string', 'required' => true, 'example' => '智能体模版', 'maxLength' => 128, 'minLength' => 1, 'title' => ''],
],
[
'name' => 'Type',
'in' => 'query',
'schema' => [
'description' => 'The agent type:'."\n"
."\n"
.'- `1`: Voice call (default)',
'type' => 'integer',
'format' => 'int32',
'required' => false,
'example' => '1',
'default' => '1',
'enum' => ['1'],
'title' => '',
],
],
[
'name' => 'ChatMode',
'in' => 'query',
'schema' => [
'description' => 'The chat mode:'."\n"
."\n"
.'- `1`: Natural conversation mode (default)'."\n"
."\n"
.'- `2`: Walkie-talkie mode',
'type' => 'integer',
'format' => 'int32',
'required' => false,
'example' => '2',
'default' => '1',
'enum' => ['1', '2'],
'title' => '',
],
],
[
'name' => 'InterruptMode',
'in' => 'query',
'schema' => [
'description' => 'The interrupt mode:'."\n"
."\n"
.'- `1`: Allow interrupt (default)'."\n"
."\n"
.'- `2`: Disable interrupt',
'type' => 'integer',
'format' => 'int32',
'required' => false,
'example' => '2',
'default' => '1',
'enum' => ['1', '2'],
'title' => '',
],
],
[
'name' => 'Greeting',
'in' => 'query',
'schema' => ['description' => 'The greeting message. The maximum length is 500 characters.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '早上好,我的朋友'],
],
[
'name' => 'AsrConfig',
'in' => 'query',
'style' => 'json',
'schema' => [
'title' => '',
'description' => 'ASR (Automatic Speech Recognition) configuration.',
'type' => 'object',
'properties' => [
'Name' => ['description' => 'The name.', 'type' => 'string', 'required' => true, 'example' => 'STT', 'maxLength' => 128, 'minLength' => 1, 'title' => ''],
'VocabularyId' => ['description' => 'The hotword vocabulary ID.', 'type' => 'string', 'required' => false, 'example' => '0bb1776b1745123332074d1b6b', 'maxLength' => 100, 'title' => ''],
'WordWeights' => [
'title' => '',
'description' => 'Each vocabulary can contain up to 500 hotwords, and each hotword cannot exceed 10 characters. Hotwords must be UTF-8 encoded and must not contain punctuation or special characters. The system ignores hotwords that do not meet these requirements.',
'type' => 'array',
'items' => [
'title' => '',
'description' => 'A hotword and its weight.',
'type' => 'object',
'properties' => [
'Word' => ['description' => 'The hotword. The maximum length is 10 characters.', 'type' => 'string', 'required' => true, 'example' => '苹果', 'title' => ''],
'Lang' => ['description' => 'The language code. This parameter is optional, as the LLM automatically detects the language.'."\n"
."\n"
.'- `zh`: Chinese'."\n"
."\n"
.'- `en`: English', 'type' => 'string', 'example' => 'zh', 'title' => '', 'required' => false],
'Weight' => ['description' => 'The weight of the hotword, which must be an integer from 1 to 5. The recommended value is 4. If the effect is not noticeable, you can increase the weight. However, a high weight may negatively impact the recognition accuracy of other words.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '4', 'default' => '4', 'title' => ''],
],
'required' => true,
'example' => '',
],
'required' => false,
'example' => '',
],
'MaxSentenceSilence' => ['description' => 'The threshold for sentence-end detection, in milliseconds (ms). The value must be from 200 to 6,000. Default: 500.', 'type' => 'integer', 'format' => 'int32', 'example' => '500', 'default' => '500', 'title' => '', 'required' => false],
'VadConfig' => [
'description' => 'VAD (Voice Activity Detection) configuration.',
'title' => '',
'type' => 'object',
'properties' => [
'InterruptSpeechDuration' => ['title' => '', 'description' => 'The minimum duration of continuous human speech, in milliseconds (ms), required to trigger an interrupt. This helps prevent false interruptions. The value must be from 0 to 3,000. Default: 300.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '3000', 'minimum' => '0', 'example' => '1000', 'default' => '300', 'required' => false],
],
'required' => false,
'example' => '',
],
],
'required' => false,
'example' => '',
],
],
[
'name' => 'LlmConfig',
'in' => 'query',
'style' => 'json',
'schema' => [
'title' => '',
'description' => 'LLM (Large Language Model) configuration.',
'type' => 'object',
'properties' => [
'Name' => ['description' => 'The name.', 'type' => 'string', 'required' => true, 'example' => 'llm', 'maxLength' => 128, 'minLength' => 1, 'title' => ''],
'Vendor' => [
'description' => 'The LLM vendor. Supported values are `aliyun` for Alibaba Cloud Model Studio and `thirdparty` for vendors with an OpenAI-compatible API.',
'type' => 'string',
'required' => false,
'example' => 'thirdparty',
'default' => 'aliyun',
'enum' => ['aliyun', 'thirdparty', 'dingtalk'],
'title' => '',
],
'Url' => ['description' => 'The endpoint for a third-party LLM.', 'type' => 'string', 'required' => false, 'example' => 'https://llm.example.aliyuns.com', 'maxLength' => 100, 'title' => ''],
'ApiKey' => ['description' => 'The API key required by the LLM vendor.', 'type' => 'string', 'required' => true, 'example' => 'ak-1213123123132123131', 'maxLength' => 200, 'minLength' => 1, 'title' => ''],
'Temperature' => ['description' => 'The sampling temperature. The value must be in the range \\[0, 2). Default: 0.7.', 'type' => 'number', 'format' => 'float', 'default' => '0.7', 'title' => '', 'required' => false, 'example' => '0.7'],
'TopP' => ['description' => 'The nucleus sampling (top-p) threshold. The value must be in the range (0, 1]. Default: 0.8.', 'type' => 'number', 'format' => 'float', 'default' => '0.8', 'title' => '', 'required' => false, 'example' => '0.8'],
'MaxToken' => ['description' => 'The maximum number of tokens in the output text. Default: 8192.', 'type' => 'integer', 'format' => 'int32', 'default' => '8192', 'title' => '', 'required' => false, 'example' => '1024'],
'HistoryDepth' => ['description' => 'The number of historical conversation turns provided to the LLM. Maximum: 100. Default: 50.', 'type' => 'integer', 'format' => 'int32', 'default' => '50', 'title' => '', 'required' => false, 'example' => '8'],
'Prompt' => ['description' => 'The prompt for the LLM. The maximum length is 5,000 characters.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '你好,小叮当'],
'AgentAppId' => ['title' => '', 'description' => 'The Model Studio Agent ID.', 'type' => 'string', 'maxLength' => 500, 'required' => false, 'example' => ''],
],
'required' => false,
'example' => '',
],
],
[
'name' => 'TtsConfig',
'in' => 'query',
'style' => 'json',
'schema' => [
'title' => '',
'description' => 'TTS (Text-to-Speech) configuration.',
'type' => 'object',
'properties' => [
'Name' => ['description' => 'The name.', 'type' => 'string', 'required' => true, 'example' => 'Tts', 'maxLength' => 128, 'minLength' => 1, 'title' => ''],
'Vendor' => [
'description' => 'The TTS vendor. Currently, only Alibaba Cloud is supported.',
'type' => 'string',
'required' => true,
'default' => 'aliyun',
'enum' => ['aliyun', 'customized', 'dingmaas'],
'title' => '',
'example' => 'aliyun',
],
'ApiKey' => ['description' => 'The API key required by the service vendor.', 'type' => 'string', 'required' => true, 'example' => 'ak-1213123123132123131', 'maxLength' => 200, 'minLength' => 1, 'title' => ''],
'Voice' => ['description' => 'The voice. The default voice is `longxiaoxia`.'."\n"
."\n"
.'- `longwan`'."\n"
."\n"
.'- `longcheng`'."\n"
."\n"
.'- `longhua`'."\n"
."\n"
.'- `longxiaochun`'."\n"
."\n"
.'- `longxiaoxia`'."\n"
."\n"
.'- `longxiaocheng`'."\n"
."\n"
.'- `longxiaobai`'."\n"
."\n"
.'- `longlaotie`'."\n"
."\n"
.'- `longshu`'."\n"
."\n"
.'- `longshuo`'."\n"
."\n"
.'- `longjing`'."\n"
."\n"
.'- `longmiao`'."\n"
."\n"
.'- `longyue`'."\n"
."\n"
.'- `longyuan`'."\n"
."\n"
.'- `longfei`'."\n"
."\n"
.'- `longjielidou`'."\n"
."\n"
.'- `longtong`'."\n"
."\n"
.'- `longxiang`'."\n"
."\n"
.'- `loongstella`'."\n"
."\n"
.'- `loongbella`', 'type' => 'string', 'required' => false, 'example' => 'longwan', 'default' => 'longxiaoxia', 'title' => ''],
'Volume' => ['description' => 'The volume. The value must be from 0 to 100. Default: 50.', 'type' => 'integer', 'format' => 'int32', 'default' => '50', 'title' => '', 'required' => false, 'example' => '50'],
'Rate' => ['description' => 'The speech rate. The value must be from 0.5 to 2.0. Default: 1.0.', 'type' => 'number', 'format' => 'float', 'default' => '1.0', 'title' => '', 'required' => false, 'example' => '0.8'],
'Pitch' => ['description' => 'The pitch. The value must be from 0.5 to 2.0. Default: 1.0.', 'type' => 'number', 'format' => 'float', 'default' => '1.0', 'title' => '', 'required' => false, 'example' => '0.8'],
'FilterBrackets' => [
'title' => '',
'description' => 'The filter settings for removing brackets from the text before TTS synthesis.'."\n"
."\n"
.'- `1`: Full-width parentheses `()`'."\n"
."\n"
.'- `2`: Half-width parentheses `()`'."\n"
."\n"
.'- `3`: Full-width square brackets `【】`'."\n"
."\n"
.'- `4`: Half-width square brackets `[]`'."\n"
."\n"
.'- `5`: Half-width curly braces `{}`',
'type' => 'array',
'items' => [
'description' => 'The bracket type to filter.',
'type' => 'integer',
'format' => 'int32',
'example' => '1',
'enum' => ['1', '2', '3', '4', '5'],
'title' => '',
'required' => false,
],
'required' => false,
'example' => '',
],
],
'required' => false,
'example' => '',
],
],
[
'name' => 'AgentSilenceConfig',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The agent silence configuration.',
'title' => '',
'type' => 'object',
'properties' => [
'AlertTimeout' => ['title' => '', 'description' => 'The timeout for a silence alert, in seconds. This alert can be triggered multiple times; if the agent is still silent after a timeout, the alert is triggered again. The value must be from 5 to 600. A value of 0 (the default) disables this feature.', 'type' => 'integer', 'format' => 'int32', 'example' => '30', 'default' => '0', 'required' => false],
'WebhookTriggerTimeout' => ['title' => '', 'description' => 'The timeout for triggering an agent silence webhook, in seconds. This can be triggered multiple times; if the agent is still silent after a timeout, the webhook is triggered again. The value must be from 10 to 600. A value of 0 (the default) disables this feature.', 'type' => 'integer', 'format' => 'int32', 'example' => '30', 'default' => '0', 'required' => false],
'Strategy' => ['title' => '', 'description' => 'The strategy for handling a silence timeout. Default: `1`.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '2', 'minimum' => '1', 'example' => '2', 'default' => '1', 'required' => false],
'Content' => ['title' => '', 'description' => 'The content of the silence prompt message.', 'type' => 'string', 'maxLength' => 2500, 'required' => false, 'example' => ''],
],
'required' => false,
'example' => '',
],
],
[
'name' => 'AmbientSoundConfig',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'Configuration for the agent\'s ambient sound. If this parameter is not specified, ambient sound is disabled.',
'title' => '',
'type' => 'object',
'properties' => [
'SoundId' => ['title' => '', 'description' => 'The ID of the ambient sound. The following default sounds are provided by the agent:', 'type' => 'string', 'example' => 'white_noise', 'maxLength' => 30, 'required' => false],
'Volume' => ['title' => '', 'description' => 'The volume level.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '100', 'minimum' => '0', 'example' => '100', 'required' => false],
],
'required' => false,
'example' => '',
],
],
[
'name' => 'InterruptConfig',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The agent interrupt configuration.',
'title' => '',
'type' => 'object',
'properties' => [
'SemanticsInterrupt' => ['title' => '', 'description' => 'Specifies whether to enable semantic interrupt.', 'type' => 'boolean', 'required' => false, 'example' => ''],
],
'required' => false,
'example' => '',
],
],
[
'name' => 'BackChannelConfig',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The agent backchannel configuration.',
'title' => '',
'type' => 'object',
'properties' => [
'UserTurnEnd' => ['title' => '', 'description' => 'Specifies whether to enable backchanneling.', 'type' => 'boolean', 'required' => false, 'example' => ''],
],
'required' => false,
'example' => '',
],
],
[
'name' => 'EnableVideoUnderstanding',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to enable video understanding. If enabled, the specified LLM must support multimodal data.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => ''],
],
[
'name' => 'PreferVideo',
'in' => 'query',
'schema' => ['description' => 'When `EnableVideoUnderstanding` is `true`, this parameter specifies which video stream to prioritize if both a camera stream and a screen sharing stream are being published. The agent can only process one stream at a time.'."\n"
."\n"
.'`1`: Prioritize the camera stream (Default)'."\n"
."\n"
.'`2`: Prioritize the screen sharing stream', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'default' => '1', 'title' => '', 'required' => false],
],
],
'responses' => [
200 => [
'schema' => [
'title' => '',
'description' => 'Response schema.',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'Request ID.', 'type' => 'string', 'example' => '231470C1-ACFB-4C9F-844F-4CFE1E3804C5'],
'Id' => ['description' => 'Template ID.', 'type' => 'string', 'example' => '1223131213231313213', 'title' => ''],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"231470C1-ACFB-4C9F-844F-4CFE1E3804C5\\",\\n \\"Id\\": \\"1223131213231313213\\"\\n}","type":"json"}]',
'title' => 'Modify agent template ',
'description' => '### QPS limit'."\n"
."\n"
.'This API has a single-user limit of 10 QPS (Queries Per Second). Exceeding this limit will result in your API calls being throttled, which may impact your business operations.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyAppAgentTemplate'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:ModifyAppAgentTemplate',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
],
],
'ModifyAppCallbackStatus' => [
'summary' => 'Update the application callback management event toggle',
'methods' => ['post', 'get'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'deprecated' => false,
'systemTags' => ['operationType' => 'none'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Application ID.', 'type' => 'string', 'required' => true, 'example' => '223***JQb'],
],
],
'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' => 'F80AAC02-87BD-5D9C-B925-8AB40171BA1A'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F80AAC02-87BD-5D9C-B925-8AB40171BA1A\\"\\n}","type":"json"}]',
'title' => 'Modify application callback status',
'description' => '### Queries per second (QPS) limit '."\n"
.'This API has a per-User QPS limit of 10 queries per second. If this limit is exceeded, API Calls will be subject to Rate Limiting, which may Impact your business. Please invoke the API appropriately.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyAppCallbackStatus'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:ModifyAppCallbackStatus',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'ModifyAppLayout' => [
'summary' => 'Modify a custom application layout.',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'deprecated' => false,
'systemTags' => ['operationType' => 'none'],
'parameters' => [
[
'name' => 'ClientToken',
'in' => 'query',
'allowEmptyValue' => false,
'schema' => ['description' => 'Idempotent parameter.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '53200b81-b761-4c10-842a-a0726d97xxxx'],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'Application ID. Create and query through the console. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'ac7N****', 'title' => ''],
],
[
'name' => 'Layout',
'in' => 'query',
'style' => 'json',
'schema' => [
'title' => '',
'description' => 'Layout.',
'type' => 'object',
'properties' => [
'Name' => ['description' => 'Layout name.', 'type' => 'string', 'required' => true, 'example' => '测试', 'maxLength' => 100, 'title' => ''],
'Panes' => [
'title' => '',
'description' => 'List of panes.',
'type' => 'array',
'items' => [
'title' => '',
'description' => 'Information about the pane to modify.',
'type' => 'object',
'properties' => [
'ZOrder' => ['description' => 'Stacking order. 0 is the bottom layer, 1 is above 0, and so on.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '2', 'minimum' => '0', 'example' => '0', 'default' => '0', 'title' => '', 'required' => false],
'X' => ['description' => 'X coordinate, normalized percentage. The X coordinate ranges from 0.0 to 1.0.', 'type' => 'number', 'format' => 'double', 'maximum' => '1', 'minimum' => '0', 'example' => '0.25', 'default' => '0.25', 'title' => '', 'required' => false],
'Y' => ['description' => 'Y coordinate, normalized percentage. The Y coordinate ranges from 0.0 to 1.0.', 'type' => 'number', 'format' => 'double', 'maximum' => '1', 'minimum' => '0', 'example' => '0.25', 'default' => '0.25', 'title' => '', 'required' => false],
'Height' => ['description' => 'Pane height, normalized percentage. Height ranges from 0.0\\ 'number', 'format' => 'double', 'maximum' => '1', 'minimum' => '0', 'example' => '0.25', 'default' => '0.25', 'title' => '', 'required' => false],
'Width' => ['description' => 'Pane width, normalized percentage. Width ranges from 0.0\\ 'number', 'format' => 'double', 'maximum' => '1', 'minimum' => '0', 'example' => '0.25', 'default' => '0.25', 'title' => '', 'required' => false],
'PaneId' => ['description' => 'Pane ID, starting from 0.', 'type' => 'integer', 'format' => 'int64', 'maximum' => '15', 'minimum' => '0', 'title' => '', 'required' => false, 'example' => '0'],
],
'required' => false,
'example' => '',
],
'required' => false,
'maxItems' => 16,
'minItems' => 1,
'example' => '',
],
'LayoutId' => ['description' => 'Layout ID.', 'type' => 'string', 'required' => true, 'example' => '123121231313', 'title' => ''],
],
'required' => true,
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'Id of the request', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'],
'LayoutId' => ['description' => 'Layout ID.', 'type' => 'string', 'example' => '167466539798442****', 'title' => ''],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"LayoutId\\": \\"167466539798442****\\"\\n}","type":"json"}]',
'title' => 'Modify custom layout',
'description' => '### QPS limits'."\n"
."\n"
.'This API supports a maximum of 10 calls per second per user. Exceeding this limit triggers rate limiting, which may impact your business operations. Use the API judiciously.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyAppLayout'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:ModifyAppLayout',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'ModifyAppLiveStreamStatus' => [
'summary' => 'Modify the bypass toggle of an application ',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'deprecated' => false,
'systemTags' => ['operationType' => 'none'],
'parameters' => [
[
'name' => 'ClientToken',
'in' => 'query',
'allowEmptyValue' => false,
'schema' => ['title' => '', 'description' => 'Idempotency parameter ', 'type' => 'string', 'required' => false, 'example' => '53200b81-b761-4c10-842a-a0726xxxx'],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Application ID. You can create and query it in the console. Only a single ID is supported. ', 'type' => 'string', 'required' => true, 'example' => 'ac7N****'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'Id of the request', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]',
'title' => 'Modify the status of the bypass stream ingest feature ',
'description' => '### Queries per second (QPS) limit '."\n"
.'The queries per second (QPS) limit for this API is 10 per user per second. If the limit is exceeded, API calls will be subject to Rate Limiting, which may impact your business. Please invoke the API appropriately. ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyAppLiveStreamStatus'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:ModifyAppLiveStreamStatus',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'ModifyAppRecordStatus' => [
'summary' => 'Modify the application recording toggle ',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'deprecated' => false,
'systemTags' => ['operationType' => 'none'],
'parameters' => [
[
'name' => 'ClientToken',
'in' => 'query',
'allowEmptyValue' => false,
'schema' => ['title' => '', 'description' => 'Idempotency parameter ', 'type' => 'string', 'required' => false, 'example' => '53200b81-b761-4c10-842a-a0726xxxx'],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Application ID. You can create and query it in the console. Only a single ID is supported. ', 'type' => 'string', 'required' => true, 'example' => 'ac7N****'],
],
],
'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' => 'D53303DB-AA68-5D09-90C2-A345072DCC5A'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D53303DB-AA68-5D09-90C2-A345072DCC5A\\"\\n}","type":"json"}]',
'title' => 'Modify the status of the recording feature ',
'description' => '### Queries per second (QPS) limit '."\n"
.'The queries per second (QPS) limit for this API is 10 per user. If the limit is exceeded, API calls will be subject to Rate Limiting, which may impact your business. Please invoke the API appropriately. ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyAppRecordStatus'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:ModifyAppRecordStatus',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'ModifyAppRecordTemplate' => [
'summary' => 'Modify an application recording template.',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => ['operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
'name' => 'ClientToken',
'in' => 'query',
'allowEmptyValue' => false,
'schema' => ['description' => 'Idempotency parameter.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '53200b81-b761-4c10-842a-a0726d97xxxx'],
],
[
'name' => 'RecordTemplate',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'Recording template.',
'type' => 'object',
'properties' => [
'Name' => ['description' => 'Template name.', 'type' => 'string', 'required' => true, 'example' => '模版', 'title' => ''],
'FilePrefix' => ['description' => 'The naming convention for recording files.'."\n"
."\n"
.'> To ensure unique recording file names, use the following naming convention: `record/{AppId}/{ChannelId}/{TaskId}/{EscapedStartTime}/{EscapedEndTime}`.', 'type' => 'string', 'required' => true, 'example' => 'record/{AppId}/{ChannelId}_{TaskId}/{EscapedStartTime}_{EscapedEndTime}', 'default' => 'record/{AppId}/{ChannelId}_{TaskId}/{EscapedStartTime}_{EscapedEndTime}', 'title' => ''],
'FileSplitInterval' => ['description' => 'Recording file split duration (greater than or equal to 1800). Unit: seconds.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '20000', 'minimum' => '1800', 'example' => '1800', 'title' => ''],
'DelayStopTime' => ['description' => 'Delayed stop recording time. Unit: seconds.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '300', 'minimum' => '180', 'example' => '180', 'default' => '180', 'title' => '', 'required' => false],
'MediaEncode' => [
'description' => 'Encoding options.',
'type' => 'integer',
'format' => 'int32',
'required' => true,
'example' => '1',
'default' => '1',
'enum' => [
'1', '54', '53', '52', '10', '20', '22', '23', '30', '31', '24', '25', '26', '27', '28', '32', '33', '34', '35', '36',
'37', '38', '39', '40', '41', '42', '43', '0', '60', '61',
],
'title' => '',
],
'Formats' => [
'title' => '',
'description' => 'Recording file format. Currently, only .m3u8, .mp4, and .flv are supported.',
'type' => 'array',
'items' => ['description' => 'Recording file format.', 'type' => 'string', 'required' => false, 'example' => 'mp4', 'title' => ''],
'required' => true,
'maxItems' => 1,
'minItems' => 1,
'example' => '',
],
'LayoutIds' => [
'title' => '',
'description' => 'Layout ID list, up to 16.'."\n"
."\n"
.'Note: The layouts in the list must not have the same number of data sources.',
'type' => 'array',
'items' => ['description' => 'Specific layout ID.', 'type' => 'string', 'required' => false, 'example' => '2', 'title' => ''],
'required' => true,
'maxItems' => 16,
'minItems' => 1,
'example' => '',
],
'TemplateId' => ['description' => 'Template ID.', 'type' => 'string', 'required' => true, 'example' => '2xh6****', 'title' => ''],
],
'required' => true,
'title' => '',
'example' => '',
],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'Application ID. Create and query through the console. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'ac7N****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Response schema',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'Request ID', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
['errorCode' => 'Function.Disable', 'errorMessage' => '%s.', 'description' => 'Function status is invalid, please request in function enabled state.'],
['errorCode' => 'Quota.Invalid', 'errorMessage' => '%s.', 'description' => 'Resource quota is insufficient, please submit a work order to increase the quota'],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]',
'title' => 'Modify recording template ',
'description' => '### QPS limit'."\n"
."\n"
.'This API supports up to 10 calls per second per user. If you exceed this limit, rate limiting is triggered, which might affect your service. Call the API at a reasonable frequency.',
'requestParamsDescription' => 'The **MediaEncode** enumeration values are listed in the following table.'."\n"
."\n"
.'| ID | Width | Height | Bitrate (Kbps) | Frame rate (FPS) | Notes |'."\n"
.'| -- | ----- | ------ | -------------- | ---------------- | ---------- |'."\n"
.'| 0 | 0 | 0 | 64 | 0 | Audio-only |'."\n"
.'| 1 | 640 | 360 | 500 | 15 | |'."\n"
.'| 10 | 960 | 540 | 700 | 24 | |'."\n"
.'| 20 | 1280 | 720 | 1024 | 24 | |'."\n"
.'| 22 | 720 | 1280 | 1024 | 30 | |'."\n"
.'| 23 | 800 | 600 | 1024 | 30 | |'."\n"
.'| 24 | 750 | 780 | 1024 | 30 | |'."\n"
.'| 25 | 750 | 540 | 700 | 30 | |'."\n"
.'| 26 | 720 | 1280 | 2048 | 30 | |'."\n"
.'| 27 | 1280 | 720 | 2048 | 30 | |'."\n"
.'| 28 | 1280 | 720 | 3096 | 30 | |'."\n"
.'| 30 | 1920 | 1080 | 2048 | 30 | |'."\n"
.'| 31 | 1080 | 1920 | 2048 | 30 | |'."\n"
.'| 32 | 1024 | 768 | 1024 | 24 | |'."\n"
.'| 33 | 1280 | 960 | 1024 | 24 | |'."\n"
.'| 34 | 1024 | 768 | 2048 | 24 | |'."\n"
.'| 35 | 1280 | 960 | 2048 | 24 | |'."\n"
.'| 36 | 1280 | 720 | 1024 | 24 | |'."\n"
.'| 37 | 1280 | 720 | 2048 | 24 | |'."\n"
.'| 38 | 540 | 960 | 750 | 15 | |'."\n"
.'| 39 | 540 | 960 | 1500 | 30 | |'."\n"
.'| 40 | 1280 | 720 | 1200 | 15 | |'."\n"
.'| 41 | 720 | 1280 | 1200 | 15 | |'."\n"
.'| 42 | 720 | 1280 | 1500 | 15 | |'."\n"
.'| 43 | 540 | 960 | 1200 | 15 | |'."\n"
.'| 52 | 640 | 360 | 500 | 30 | |'."\n"
.'| 53 | 360 | 640 | 500 | 15 | |'."\n"
.'| 54 | 360 | 640 | 500 | 30 | |'."\n"
.'| 60 | 1920 | 1080 | 4096 | 30 | |'."\n"
.'| 61 | 1080 | 1920 | 4096 | 30 | |',
'changeSet' => [
['createdAt' => '2025-04-29T01:36:44.000Z', 'description' => 'Request parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyAppRecordTemplate'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:ModifyAppRecordTemplate',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'ModifyAppStreamingOutTemplate' => [
'summary' => 'Modify the stream ingest template for an RTC 3.0 application. ',
'methods' => ['post', 'get'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => ['operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Application ID. You can create and query it in the console. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'wv7N****'],
],
[
'name' => 'StreamingOutTemplate',
'in' => 'query',
'style' => 'json',
'schema' => [
'title' => '',
'description' => 'Template.',
'type' => 'object',
'properties' => [
'Name' => ['title' => '', 'description' => 'Template Name.', 'type' => 'string', 'required' => true, 'example' => '模板'],
'LayoutIds' => [
'title' => '',
'description' => 'List of layout IDs. A maximum of 16 IDs are allowed.'."\n"
."\n"
.'Note: The data sources corresponding to the layouts in the list must not have the same quantity.',
'type' => 'array',
'items' => ['title' => '', 'description' => 'Specific layout ID.', 'type' => 'string', 'required' => false, 'example' => '22', 'pattern' => '^\\d+$'],
'required' => true,
'minItems' => 1,
'maxItems' => 16,
'example' => '',
],
'MediaEncode' => [
'title' => '',
'description' => 'Encoding options.',
'type' => 'integer',
'format' => 'int32',
'required' => true,
'example' => '1',
'enum' => [
'1', '54', '53', '52', '10', '20', '22', '23', '30', '31', '24', '25', '26', '27', '28', '32', '33', '34', '35', '36',
'37', '38', '39', '40', '41', '42', '43', '0', '60', '61',
],
'default' => '1',
],
'TemplateId' => ['title' => '', 'description' => 'Template ID.', 'type' => 'string', 'required' => true, 'example' => 'ac7N****'],
],
'required' => true,
'example' => 'wv7N****',
],
],
],
'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' => '30D41049-D02D-1C21-86AE-B3E5FD805C27'],
'TemplateId' => ['title' => '', 'description' => 'Template ID.', 'type' => 'string', 'example' => 'ac7N****'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
['errorCode' => 'Function.Disable', 'errorMessage' => '%s.', 'description' => 'Function status is invalid, please request in function enabled state.'],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"30D41049-D02D-1C21-86AE-B3E5FD805C27\\",\\n \\"TemplateId\\": \\"ac7N****\\"\\n}","type":"json"}]',
'title' => 'Modify stream ingest template',
'description' => '### How-To '."\n"
.'This API modifies the stream ingest template for an RTC 3.0 application. '."\n"
.'### QPS Limit '."\n"
.'The queries per second (QPS) limit for this API is 10 per user. If you exceed this limit, your API calls will be subject to rate limiting, which may impact your business. Please invoke the API appropriately. ',
'requestParamsDescription' => 'The enumeration values for **MediaEncode** are as follows.'."\n"
."\n"
.'| ID | Width | Height | Bitrate (Kbps) | Frame Rate (FPS) | Remarks'."\n"
.'| ----------- | ----- | ------ | ----------- | --- |---'."\n"
.'| 0 | 0 | 0 | 64 | 0 | audio-only'."\n"
.'| 1 | 640 | 360 | 500 | 15 '."\n"
.'| 10 | 960 | 540 | 700 | 24 '."\n"
.'| 20 | 1280 | 720 | 1024 | 24 '."\n"
.'| 22 | 720 | 1280 | 1024 | 30 '."\n"
.'| 23 | 800 | 600 | 1024 | 30 '."\n"
.'| 24 | 750 | 780 | 1024 | 30 '."\n"
.'| 25 | 750 | 540 | 700 | 30 '."\n"
.'| 26 | 720 | 1280 | 2048 | 30 '."\n"
.'| 27 | 1280 | 720 | 2048 | 30 '."\n"
.'| 28 | 1280 | 720 | 3096 | 30 '."\n"
.'| 30 | 1920 | 1080 | 2048 | 30 '."\n"
.'| 31 | 1080 | 1920 | 2048 | 30 '."\n"
.'| 32 | 1024 | 768 | 1024 | 24 '."\n"
.'| 33 | 1280 | 960 | 1024 | 24 '."\n"
.'| 34 | 1024 | 768 | 2048 | 24 '."\n"
.'| 35 | 1280 | 960 | 2048 | 24 '."\n"
.'| 36 | 1280 | 720 | 1024 | 24 '."\n"
.'| 37 | 1280 | 720 | 2048 | 24 '."\n"
.'| 38 | 540 | 960 | 750 | 15 '."\n"
.'| 39 | 540 | 960 | 1500 | 30 '."\n"
.'| 40 | 1280 | 720 | 1200 | 15 '."\n"
.'| 41 | 720 | 1280 | 1200 | 15 '."\n"
.'| 42 | 720 | 1280 | 1500 | 15 '."\n"
.'| 43 | 540 | 960 | 1200 | 15'."\n"
.'| 52 | 640 | 360 | 500 | 30 '."\n"
.'| 53 | 360 | 640 | 500 | 15 '."\n"
.'| 54 | 360 | 640 | 500 | 30 '."\n"
.'| 60 | 1920 | 1080 | 4096 | 30'."\n"
.'| 61 | 1080 | 1920 | 4096 | 30',
'changeSet' => [
['createdAt' => '2025-04-29T01:36:44.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2024-06-21T07:42:38.000Z', 'description' => 'Request parameters changed, Response parameters changed'],
['createdAt' => '2024-03-07T06:45:10.000Z', 'description' => 'Request parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyAppStreamingOutTemplate'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:ModifyAppStreamingOutTemplate',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'ModifyAppViewStatus' => [
'summary' => 'Modify the stream mixing switch.',
'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. Create and query it in the console. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'ac7N****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '94D9A316-9750-5928-B18C-59DF182F6BF7'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"94D9A316-9750-5928-B18C-59DF182F6BF7\\"\\n}","type":"json"}]',
'title' => 'Modify the status of the stream merging feature',
'description' => '### QPS limit'."\n"
."\n"
.'This API operation supports a maximum of 10 queries per second (QPS) per user. If you exceed this limit, rate limiting is triggered, which may affect your application. Call the API only as needed.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyAppViewStatus'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'rtc:ModifyAppViewStatus',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
],
],
'ModifyAppViewTemplate' => [
'summary' => 'Update an application view template.',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'Application ID. Create and view it in the console. Only one ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'wv7N****', 'title' => ''],
],
[
'name' => 'Template',
'in' => 'query',
'style' => 'json',
'schema' => [
'title' => '',
'description' => 'The template.',
'type' => 'object',
'properties' => [
'Name' => ['description' => 'Template name.', 'type' => 'string', 'required' => true, 'example' => '模板', 'title' => ''],
'LayoutIds' => [
'title' => '',
'description' => 'List of layout IDs. Maximum of 16 IDs.',
'type' => 'array',
'items' => ['description' => 'Layout ID.', 'type' => 'string', 'example' => '22', 'pattern' => '^\\d+$', 'title' => '', 'required' => false],
'required' => true,
'pattern' => '^\\d+$',
'maxItems' => 16,
'minItems' => 1,
'example' => '',
],
'MediaEncode' => [
'description' => 'Encoding option.',
'type' => 'integer',
'format' => 'int32',
'required' => true,
'example' => '1',
'default' => '1',
'enum' => [
'1', '54', '53', '52', '10', '20', '22', '23', '30', '31', '24', '25', '26', '27', '28', '32', '33', '34', '35', '36',
'37', '38', '39', '40', '41', '42', '43', '0', '60', '61',
],
'title' => '',
],
'TemplateId' => ['description' => 'Template ID.', 'type' => 'string', 'required' => true, 'example' => 'ac7N****', 'title' => ''],
],
'required' => true,
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Response schema',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'Request ID', 'type' => 'string', 'example' => '30D41049-D02D-1C21-86AE-B3E5FD805C27'],
'TemplateId' => ['description' => 'Template ID', 'type' => 'string', 'example' => 'ac7N****', 'title' => ''],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
['errorCode' => 'Function.Disable', 'errorMessage' => '%s.', 'description' => 'Function status is invalid, please request in function enabled state.'],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"30D41049-D02D-1C21-86AE-B3E5FD805C27\\",\\n \\"TemplateId\\": \\"ac7N****\\"\\n}","type":"json"}]',
'title' => 'Modify stream mixing template ',
'description' => '### QPS limits'."\n"
."\n"
.'This API supports up to 10 calls per second per user. Exceeding this limit triggers rate limiting, which may affect your business. Use this API with caution.',
'requestParamsDescription' => 'The **MediaEncode** values are as follows.'."\n"
."\n"
.'| ID | Width | Height | Bitrate (Kbps) | Frame rate (FPS) | Remarks |'."\n"
.'| -- | ----- | ------ | -------------- | ---------------- | ---------- |'."\n"
.'| 0 | 0 | 0 | 64 | 0 | audio-only |'."\n"
.'| 1 | 640 | 360 | 500 | 15 | |'."\n"
.'| 10 | 960 | 540 | 700 | 24 | |'."\n"
.'| 20 | 1280 | 720 | 1024 | 24 | |'."\n"
.'| 22 | 720 | 1280 | 1024 | 30 | |'."\n"
.'| 23 | 800 | 600 | 1024 | 30 | |'."\n"
.'| 24 | 750 | 780 | 1024 | 30 | |'."\n"
.'| 25 | 750 | 540 | 700 | 30 | |'."\n"
.'| 26 | 720 | 1280 | 2048 | 30 | |'."\n"
.'| 27 | 1280 | 720 | 2048 | 30 | |'."\n"
.'| 28 | 1280 | 720 | 3096 | 30 | |'."\n"
.'| 30 | 1920 | 1080 | 2048 | 30 | |'."\n"
.'| 31 | 1080 | 1920 | 2048 | 30 | |'."\n"
.'| 32 | 1024 | 768 | 1024 | 24 | |'."\n"
.'| 33 | 1280 | 960 | 1024 | 24 | |'."\n"
.'| 34 | 1024 | 768 | 2048 | 24 | |'."\n"
.'| 35 | 1280 | 960 | 2048 | 24 | |'."\n"
.'| 36 | 1280 | 720 | 1024 | 24 | |'."\n"
.'| 37 | 1280 | 720 | 2048 | 24 | |'."\n"
.'| 38 | 540 | 960 | 750 | 15 | |'."\n"
.'| 39 | 540 | 960 | 1500 | 30 | |'."\n"
.'| 40 | 1280 | 720 | 1200 | 15 | |'."\n"
.'| 41 | 720 | 1280 | 1200 | 15 | |'."\n"
.'| 42 | 720 | 1280 | 1500 | 15 | |'."\n"
.'| 43 | 540 | 960 | 1200 | 15 | |'."\n"
.'| 52 | 640 | 360 | 500 | 30 | |'."\n"
.'| 53 | 360 | 640 | 500 | 15 | |'."\n"
.'| 54 | 360 | 640 | 500 | 30 | |'."\n"
.'| 60 | 1920 | 1080 | 4096 | 30 | |'."\n"
.'| 61 | 1080 | 1920 | 4096 | 30 | |',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyAppViewTemplate'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'rtc:ModifyAppViewTemplate',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
],
],
'ModifyCallbackMeta' => [
'summary' => 'Update application callback ',
'methods' => ['post', 'get'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'deprecated' => false,
'systemTags' => ['operationType' => 'create'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Application ID.', 'type' => 'string', 'required' => true, 'example' => '223***JQb'],
],
[
'name' => 'Callback',
'in' => 'query',
'style' => 'json',
'schema' => [
'title' => '',
'description' => 'Callback configuration. ',
'type' => 'object',
'properties' => [
'Category' => ['title' => '', 'description' => 'Callback code. ', 'type' => 'string', 'required' => true, 'example' => 'RecordEvent'],
'Conf' => ['title' => '', 'description' => 'Webhook address.', 'type' => 'string', 'required' => true, 'example' => 'https://www.aliyun.com'],
'SubEvent' => [
'title' => '',
'description' => 'Sub-events. '."\n"
.'Recording events: '."\n"
.'- **2010**: Recording service status change. '."\n"
.'- **2011**: Recording audio stream status change. '."\n"
.'- **2012**: Recording video stream status change. ',
'type' => 'array',
'items' => ['title' => '', 'description' => 'Specific subscribed sub-event code. ', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2011'],
'required' => false,
'maxItems' => 20,
'example' => '',
],
],
'required' => true,
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'result',
'description' => 'result',
'type' => 'object',
'properties' => [
'Message' => ['title' => 'message', 'description' => 'message', 'type' => 'string', 'example' => 'OK'],
'RequestId' => ['title' => 'requestId', 'description' => 'requestId', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8'],
'HttpStatusCode' => ['title' => 'httpStatusCode', 'description' => 'httpStatusCode', 'type' => 'integer', 'format' => 'int32', 'example' => '0'],
'Code' => ['title' => 'code', 'description' => 'code', 'type' => 'string', 'example' => '0'],
'Success' => ['title' => 'success', 'description' => 'success', 'type' => 'boolean', 'example' => 'true'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Message\\": \\"OK\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\",\\n \\"HttpStatusCode\\": 0,\\n \\"Code\\": \\"0\\",\\n \\"Success\\": true\\n}","type":"json"}]',
'title' => 'Modify application callback ',
'description' => '### Queries per second (QPS) limit '."\n"
.'The QPS limit for this API is 10 queries per second per User. If the limit is exceeded, Rate Limiting will be applied to your API Calls, which may Impact your business. Please invoke the API appropriately. ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyCallbackMeta'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'rtc:ModifyCallbackMeta',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'ModifyCloudNotePhrases' => [
'summary' => 'You can update the hotword list for meeting minutes.',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'Application ID. Create and view it in the console. You can specify only one ID.', 'type' => 'string', 'required' => true, 'example' => 'ac7N****', 'title' => ''],
],
[
'name' => 'Phrase',
'in' => 'query',
'style' => 'json',
'schema' => [
'title' => '',
'description' => 'Hotword parameters.',
'type' => 'object',
'properties' => [
'Id' => ['description' => 'Hotword list ID.', 'type' => 'string', 'required' => true, 'example' => '1qasw23ezcsrfsawq', 'title' => ''],
'Name' => ['description' => 'Hotword list name. UTF-8 encoded. Length: 1 to 30 characters.', 'type' => 'string', 'required' => true, 'example' => '水果', 'maxLength' => 30, 'minLength' => 1, 'title' => ''],
'Description' => ['description' => 'Description. UTF-8 encoded. Length: 1 to 200 characters.', 'type' => 'string', 'required' => false, 'example' => '水果描述', 'maxLength' => 200, 'minLength' => 1, 'title' => ''],
'WordWeights' => [
'title' => '',
'description' => 'A hotword list can contain up to 300 hotwords. Each hotword can be up to 10 Chinese characters or 5 English words long.'."\n"
."\n"
.'All hotwords must be UTF-8 encoded. They cannot contain punctuation or special characters. If they do, the hotword has no effect.'."\n"
."\n"
.'The weight for each hotword must be an integer between -6 and 5.'."\n"
."\n"
.'Numbers in text must be replaced with their spoken form in Chinese. For example, replace "59.9 CNY" with "fifty-nine point nine CNY".',
'type' => 'array',
'items' => [
'title' => '',
'description' => 'Hotword weight.',
'type' => 'object',
'properties' => [
'Word' => ['description' => 'Hotword.', 'type' => 'string', 'required' => true, 'example' => '苹果', 'minLength' => 1, 'title' => ''],
'Weight' => ['description' => 'Weight must be an integer between -6 and 5.'."\n"
."\n"
.'- A positive weight increases the chance that the word is recognized. A negative weight decreases it.'."\n"
."\n"
.'- A weight of -6 means the word should rarely be recognized.'."\n"
."\n"
.'- A weight of 2 is common. If recognition is weak, increase the weight. But high weights may reduce accuracy for other words.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '5', 'minimum' => '-6', 'example' => '0', 'title' => ''],
],
'required' => true,
'example' => '',
],
'required' => true,
'maxItems' => 300,
'minItems' => 1,
'example' => '',
],
],
'required' => true,
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Response schema',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'Request ID', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'],
'Id' => ['description' => 'Hotword list ID.', 'type' => 'string', 'title' => '', 'example' => '21088b2617489486958531017d0b19'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
['errorCode' => 'Function.Disable', 'errorMessage' => '%s.', 'description' => 'Function status is invalid, please request in function enabled state.'],
['errorCode' => 'Quota.Invalid', 'errorMessage' => '%s.', 'description' => 'Resource quota is insufficient, please submit a work order to increase the quota'],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"Id\\": \\"21088b2617489486958531017d0b19\\"\\n}","type":"json"}]',
'title' => 'Modify hotword list',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyCloudNotePhrases'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'rtc:ModifyCloudNotePhrases',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
],
],
'ModifyMPULayout' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
'name' => 'Panes',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The list of panes in the layout.',
'type' => 'array',
'items' => [
'description' => '布局的窗格参数。',
'type' => 'object',
'properties' => [
'MajorPane' => ['description' => '指定主窗格,每个布局只能有一个主窗格。'."\n"
."\n"
.'- **0**:副窗格。'."\n"
.' '."\n"
.'- **1**:主窗格。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'Width' => ['description' => '窗格宽,归一化百分比。Width取值范围:**0.0 'number', 'format' => 'float', 'required' => false, 'example' => '0.2456', 'title' => ''],
'Height' => ['description' => '窗格高,归一化百分比。Height取值范围:**0.0 'number', 'format' => 'float', 'required' => false, 'example' => '0.2456', 'title' => ''],
'Y' => ['description' => '坐标Y,归一化百分比。坐标Y取值范围:**0.0≤Y≤1.0**。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
'PaneId' => ['description' => '布局窗口ID。从左上到右下排序,从0开始。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'ZOrder' => ['description' => '叠放顺序。0为最底层,1层在0层之上,以此类推。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'X' => ['description' => '坐标,归一化百分比。坐标X取值范围:**0.0≤X≤1.0**。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 16,
'title' => '',
'example' => '',
],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. Only a single ID is supported.'."\n"
."\n"
.'You can create and query applications in the console.', 'type' => 'string', 'required' => true, 'example' => 'yourAppId', 'title' => ''],
],
[
'name' => 'Name',
'in' => 'query',
'schema' => ['description' => 'The layout name.', 'type' => 'string', 'required' => false, 'example' => 'LayoutName', 'title' => ''],
],
[
'name' => 'LayoutId',
'in' => 'query',
'schema' => ['description' => 'The layout ID. To obtain the layout ID, see [CreateMPULayout](~~162192~~).', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '10117', 'title' => ''],
],
[
'name' => 'AudioMixCount',
'in' => 'query',
'schema' => ['description' => 'The maximum number of audio mixing streams. Valid values: **0** to **6**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '3', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => '返回结果。',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '760bad53276431c499e30dc36f6b26be', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'IllegalAliUId', 'errorMessage' => '%s', 'description' => ''],
['errorCode' => 'InvalidCropMode.Malformed', 'errorMessage' => '%s', 'description' => ''],
['errorCode' => 'InvalidAudioMixCount.Malformed', 'errorMessage' => '%s', 'description' => ''],
['errorCode' => 'InvalidPane.Malformed', 'errorMessage' => '%s', 'description' => ''],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"760bad53276431c499e30dc36f6b26be\\"\\n}","type":"json"}]',
'title' => 'Modify bypass live streaming layout',
'summary' => 'Modifies the layout of bypass live streaming.',
'description' => '# 使用说明'."\n"
.'调用本接口前,您必须已经调用[CreateMPULayout](~~162192~~)创建旁路直播布局。'."\n"
.'# QPS限制'."\n"
.'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~341645~~)。',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyMPULayout'],
],
],
'ramActions' => [],
],
'ModifyStreamingProperty' => [
'summary' => 'Set stream properties',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'Application ID. Create and query it in the console. Pass only one ID.', 'type' => 'string', 'required' => true, 'example' => 'eo85****', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'Existing channel ID. Pass only one ID.', 'type' => 'string', 'required' => true, 'example' => 'testid', 'title' => ''],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'Mixing task ID.', 'type' => 'string', 'required' => true, 'example' => 'testid', 'pattern' => '^[0-9a-zA-Z_-]+$', 'title' => ''],
],
[
'name' => 'ViewSubscribers',
'in' => 'query',
'style' => 'simple',
'schema' => [
'title' => 'ViewSubscribers。',
'description' => 'ViewSubscribers.',
'type' => 'array',
'items' => ['description' => 'User ID.', 'type' => 'string', 'required' => false, 'example' => '12', 'title' => ''],
'required' => false,
'maxItems' => 16,
'example' => '',
],
],
[
'name' => 'ViewContent',
'in' => 'query',
'schema' => [
'description' => 'Mixing content type.',
'enumValueTitles' => ['main' => 'Main stream', 'content' => 'Shared content'],
'type' => 'string',
'title' => '',
'required' => false,
'example' => 'main',
],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'Request ID.', 'type' => 'string', 'title' => '', 'example' => 'E7C44674-9065-5BBA-AB77-A5F20908E73B'],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"E7C44674-9065-5BBA-AB77-A5F20908E73B\\"\\n}","type":"json"}]',
'title' => 'Modify Sip stream configuration ',
'description' => '### QPS limit'."\n"
."\n"
.'The QPS limit for each user is 10 calls per second. Exceeding this limit triggers rate limiting and may impact your business. Manage your API calls to remain within this limit.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyStreamingProperty'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'rtc:ModifyStreamingProperty',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
],
],
'ModifyViewLayout' => [
'summary' => 'Configures the stream mixing layout.',
'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. Create and find this ID in the console. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'eo85****', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'The ID of an existing channel. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'testid', 'title' => ''],
],
[
'name' => 'TemplateId',
'in' => 'query',
'schema' => ['description' => 'The template ID.', 'type' => 'string', 'required' => true, 'example' => '567', 'maxLength' => 128, 'minLength' => 1, 'pattern' => '^[\\w.-]+$', 'title' => ''],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'The task ID. Only a single ID is supported. The ID can contain uppercase letters, lowercase letters, digits, underscores (\\_), and hyphens (-). The maximum length is 55 bytes.', 'type' => 'string', 'required' => true, 'example' => '123', 'maxLength' => 55, 'minLength' => 1, 'pattern' => '^[0-9a-zA-Z_-]+$', 'title' => ''],
],
[
'name' => 'Panes',
'in' => 'query',
'style' => 'flat',
'schema' => [
'title' => '',
'description' => 'The cell settings. You can set a maximum of 16 cells.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'SourceType' => [
'description' => 'The media type of the cell. Valid values:'."\n"
."\n"
.'- **video**: The user\'s camera or screen sharing stream (default).'."\n"
."\n"
.'- **camera**: The camera stream.'."\n"
."\n"
.'- **screen**: The screen sharing stream.',
'type' => 'string',
'example' => 'video',
'default' => 'video',
'enum' => [],
'title' => '',
'required' => false,
],
'Images' => [
'title' => '',
'description' => 'The local image watermarks for the pane.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'PaneImageCropMode' => [
'description' => 'The clipping mode. Valid values:'."\n"
."\n"
.'- **1**: Scale to crop.'."\n"
."\n"
.'- **2**: Scale to fit with borders.'."\n"
."\n"
.'- **3**: Stretch to fill.',
'type' => 'integer',
'format' => 'int32',
'example' => '2',
'enum' => ['1', '2', '3'],
'title' => '',
'required' => false,
],
'Alpha' => ['description' => 'The transparency.', 'type' => 'number', 'format' => 'double', 'example' => '0.9', 'default' => '1.0', 'title' => '', 'required' => false],
'X' => ['description' => 'The x-coordinate.', 'type' => 'number', 'title' => '', 'format' => 'double', 'required' => true, 'example' => '0.2'],
'Y' => ['description' => 'The y-coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.3', 'title' => ''],
'Height' => ['description' => 'The height.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'Width' => ['description' => 'The width.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'Layer' => ['description' => 'The z-order.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'default' => '0', 'title' => '', 'required' => false],
'Url' => ['description' => 'The URL of the image.', 'type' => 'string', 'required' => true, 'example' => 'https://aliyun.com/123xxx.jpg', 'title' => ''],
],
'required' => false,
'description' => '',
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 3,
'example' => '',
],
'Texts' => [
'title' => '',
'description' => 'The local text watermarks for the pane.',
'type' => 'array',
'items' => [
'description' => 'The text content.',
'type' => 'object',
'properties' => [
'BoxBorderw' => ['description' => 'The border width of the text box.', 'type' => 'integer', 'format' => 'int32', 'example' => '5', 'default' => '5', 'title' => '', 'required' => false],
'BoxColor' => [
'title' => '',
'description' => 'The color of the rectangular box.',
'type' => 'object',
'properties' => [
'R' => ['description' => 'The R value.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '30', 'required' => false, 'title' => ''],
'B' => ['description' => 'The B value.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '30', 'required' => false, 'title' => ''],
'G' => ['description' => 'The G value.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '30', 'required' => false, 'title' => ''],
],
'required' => false,
'example' => '',
],
'FontSize' => ['description' => 'The font size.', 'type' => 'integer', 'format' => 'int32', 'example' => '36', 'default' => '30', 'title' => '', 'required' => false],
'FontColor' => [
'title' => '',
'description' => 'The font color.',
'type' => 'object',
'properties' => [
'R' => ['description' => 'The R value.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '255', 'required' => false, 'title' => ''],
'B' => ['description' => 'The B value.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '255', 'required' => false, 'title' => ''],
'G' => ['description' => 'The G value.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '255', 'required' => false, 'title' => ''],
],
'required' => false,
'example' => '',
],
'Alpha' => ['description' => 'The transparency of the watermark.', 'type' => 'number', 'format' => 'double', 'example' => '0.9', 'default' => '1', 'title' => '', 'required' => false],
'X' => ['description' => 'The x-coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'HasBox' => ['description' => 'Whether to display a rectangular box.', 'type' => 'boolean', 'default' => 'false', 'title' => '', 'required' => false, 'example' => ''],
'Y' => ['description' => 'The y-coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'Texture' => ['description' => 'The content of the watermark.', 'type' => 'string', 'required' => true, 'example' => '文字水印', 'title' => ''],
'Layer' => ['description' => 'The z-order.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'default' => '0', 'title' => '', 'required' => false],
'Font' => ['description' => 'The font.'."\n"
."\n"
.'- **0**: Alibaba PuHuiTi Regular'."\n"
."\n"
.'- **1**: Alibaba PuHuiTi Light'."\n"
."\n"
.'- **2**: Alibaba PuHuiTi Medium'."\n"
."\n"
.'- **3**: Alibaba PuHuiTi Bold'."\n"
."\n"
.'- **4**: Alibaba PuHuiTi Heavy'."\n"
."\n"
.'- **5**: Alimama ShuHeiTi'."\n"
."\n"
.'- **6**: DingTalk JinBuTi'."\n"
."\n"
.'- **7**: Alimama DaoLiTi'."\n"
."\n"
.'- **8**: Alimama DongFangDaKai'."\n"
."\n"
.'- **9**: Alimama FangYuanTi', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'default' => '0', 'title' => '', 'required' => false],
'BoxAlpha' => ['description' => 'The transparency of the text box.', 'type' => 'number', 'format' => 'double', 'example' => '0.6', 'default' => '0.6', 'title' => '', 'required' => false],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 3,
'example' => '',
],
'PaneCropMode' => [
'description' => 'The clipping mode. Valid values:'."\n"
."\n"
.'- **1**: Scale to crop.'."\n"
."\n"
.'- **2**: Scale to fit with borders.'."\n"
."\n"
.'- **3**: Stretch to fill.',
'type' => 'integer',
'format' => 'int32',
'example' => '2',
'enum' => ['1', '2', '3'],
'title' => '',
'required' => false,
],
'PaneId' => [
'description' => 'The pane ID. The value starts from 0.',
'type' => 'string',
'required' => true,
'example' => '0',
'pattern' => '^\\d+$',
'enum' => [],
'title' => '',
],
'Source' => ['description' => 'The media source for the cell. You can configure the source by specifying a user ID or using a wildcard character. The following wildcard characters are supported:'."\n"
.'\\- **$ActiveSpeaker**: The current active speaker in the channel.'."\n"
.'\\- **$ScreenShare**: The user sharing their screen. If multiple users share their screens, the system fills the cells in the order that they started sharing.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '22'],
],
'required' => false,
'description' => '',
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 16,
'example' => '',
],
],
[
'name' => 'Backgrounds',
'in' => 'query',
'style' => 'flat',
'schema' => [
'title' => '',
'description' => 'The background images.',
'type' => 'array',
'items' => [
'description' => 'The background image.',
'type' => 'object',
'properties' => [
'BackgroundCropMode' => [
'description' => 'The clipping mode. Valid values:'."\n"
."\n"
.'- **1**: Scale to crop.'."\n"
."\n"
.'- **2**: Scale to fit with borders.'."\n"
."\n"
.'- **3**: Stretch to fill.',
'type' => 'integer',
'format' => 'int32',
'example' => '2',
'enum' => ['1', '2', '3'],
'title' => '',
'required' => false,
],
'Alpha' => ['description' => 'The transparency.', 'type' => 'number', 'format' => 'double', 'example' => '0.9', 'default' => '1.0', 'title' => '', 'required' => false],
'X' => ['description' => 'The x-coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'Y' => ['description' => 'The y-coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'Height' => ['description' => 'The height.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'Width' => ['description' => 'The width.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'Layer' => ['description' => 'The z-order.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'default' => '0', 'title' => '', 'required' => false],
'Url' => ['description' => 'The URL of the image.', 'type' => 'string', 'required' => true, 'example' => 'https://aliyun.com/123.jpg', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 3,
'example' => '',
],
],
[
'name' => 'Images',
'in' => 'query',
'style' => 'flat',
'schema' => [
'title' => '',
'description' => 'The global image watermarks.',
'type' => 'array',
'items' => [
'description' => 'The global image watermark.',
'type' => 'object',
'properties' => [
'Alpha' => ['description' => 'The transparency.', 'type' => 'number', 'format' => 'double', 'example' => '0.9', 'default' => '1.0', 'title' => '', 'required' => false],
'X' => ['description' => 'The x-coordinate.', 'type' => 'number', 'title' => '', 'format' => 'double', 'required' => true, 'example' => '0.2'],
'Y' => ['description' => 'The y-coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'Height' => ['description' => 'The height.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'ImageCropMode' => [
'description' => 'The clipping mode. Valid values:'."\n"
."\n"
.'- **1**: Scale to crop.'."\n"
."\n"
.'- **2**: Scale to fit with borders.'."\n"
."\n"
.'- **3**: Stretch to fill.',
'type' => 'integer',
'format' => 'int32',
'example' => '2',
'enum' => ['1', '2', '3'],
'title' => '',
'required' => false,
],
'Width' => ['description' => 'The width.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'Layer' => ['description' => 'The z-order.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'default' => '0', 'title' => '', 'required' => false],
'Url' => ['description' => 'The URL of the image.', 'type' => 'string', 'required' => true, 'example' => 'https://aliyun.com/123xxx.jpg', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 3,
'example' => '',
],
],
[
'name' => 'Texts',
'in' => 'query',
'style' => 'flat',
'schema' => [
'title' => '',
'description' => 'The global text watermarks.',
'type' => 'array',
'items' => [
'description' => 'The global text watermark.',
'type' => 'object',
'properties' => [
'BoxBorderw' => ['description' => 'Width of the rectangular border.', 'type' => 'integer', 'format' => 'int32', 'example' => '5', 'default' => '5', 'title' => '', 'required' => false],
'BoxColor' => [
'title' => '',
'description' => 'Specifies the color of the rectangular box.',
'type' => 'object',
'properties' => [
'R' => ['description' => 'The R value.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '30', 'required' => false, 'title' => ''],
'B' => ['description' => 'The B value.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '30', 'required' => false, 'title' => ''],
'G' => ['description' => 'The G value.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '30', 'required' => false, 'title' => ''],
],
'required' => false,
'example' => '',
],
'FontSize' => ['description' => 'The font size.', 'type' => 'integer', 'format' => 'int32', 'example' => '36', 'default' => '30', 'title' => '', 'required' => false],
'Alpha' => ['description' => 'The transparency of the watermark.', 'type' => 'number', 'format' => 'double', 'example' => '0.1', 'default' => '1', 'title' => '', 'required' => false],
'FontColor' => [
'title' => '',
'description' => 'The font color.',
'type' => 'object',
'properties' => [
'R' => ['description' => 'The R value.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '255', 'required' => false, 'title' => ''],
'B' => ['description' => 'The B value.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '255', 'required' => false, 'title' => ''],
'G' => ['description' => 'The G value.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '255', 'required' => false, 'title' => ''],
],
'required' => false,
'example' => '',
],
'X' => ['description' => 'The x-coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'HasBox' => ['description' => 'Indicates whether to use a rectangular frame.', 'type' => 'boolean', 'default' => 'false', 'title' => '', 'required' => false, 'example' => ''],
'Y' => ['description' => 'The y-coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'Texture' => ['description' => 'The content of the watermark.', 'type' => 'string', 'required' => true, 'example' => '文字水印', 'title' => ''],
'Layer' => ['description' => 'The z-order.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'default' => '0', 'title' => '', 'required' => false],
'Font' => ['description' => 'The font.'."\n"
."\n"
.'- **0**: Alibaba PuHuiTi Regular'."\n"
."\n"
.'- **1**: Alibaba PuHuiTi Light'."\n"
."\n"
.'- **2**: Alibaba PuHuiTi Medium'."\n"
."\n"
.'- **3**: Alibaba PuHuiTi Bold'."\n"
."\n"
.'- **4**: Alibaba PuHuiTi Heavy'."\n"
."\n"
.'- **5**: Alimama ShuHeiTi'."\n"
."\n"
.'- **6**: DingTalk JinBuTi'."\n"
."\n"
.'- **7**: Alimama DaoLiTi'."\n"
."\n"
.'- **8**: Alimama DongFangDaKai'."\n"
."\n"
.'- **9**: Alimama FangYuanTi', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'default' => '0', 'title' => '', 'required' => false],
'BoxAlpha' => ['description' => 'The transparency level of the rectangular box.', 'type' => 'number', 'format' => 'double', 'example' => '0.6', 'default' => '0.6', 'title' => '', 'required' => false],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 3,
'example' => '',
],
],
[
'name' => 'ClockWidgets',
'in' => 'query',
'style' => 'flat',
'schema' => [
'title' => '',
'description' => 'The global clock watermarks.',
'type' => 'array',
'items' => [
'description' => 'The global clock watermark.',
'type' => 'object',
'properties' => [
'BoxBorderw' => ['description' => 'Width of the rectangular border.', 'type' => 'integer', 'format' => 'int32', 'example' => '5', 'default' => '5', 'title' => '', 'required' => false],
'BoxColor' => [
'title' => '',
'description' => 'The color of the rectangular box.',
'type' => 'object',
'properties' => [
'R' => ['description' => 'The R value.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '30', 'required' => false, 'title' => ''],
'B' => ['description' => 'The B value.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '30', 'required' => false, 'title' => ''],
'G' => ['description' => 'The G value.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '30', 'required' => false, 'title' => ''],
],
'required' => false,
'example' => '',
],
'FontSize' => ['description' => 'The font size of the clock.', 'type' => 'integer', 'format' => 'int32', 'example' => '30', 'default' => '30', 'title' => '', 'required' => false],
'Zone' => ['description' => 'The time zone.', 'type' => 'integer', 'format' => 'int32', 'example' => '8', 'default' => '8', 'title' => '', 'required' => false],
'Alpha' => ['description' => 'The transparency.', 'type' => 'number', 'format' => 'double', 'example' => '0.9', 'default' => '1', 'title' => '', 'required' => false],
'FontColor' => [
'title' => '',
'description' => 'The font color.',
'type' => 'object',
'properties' => [
'R' => ['description' => 'The R value.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '255', 'required' => false, 'title' => ''],
'B' => ['description' => 'The B value.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '255', 'required' => false, 'title' => ''],
'G' => ['description' => 'The G value.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '255', 'required' => false, 'title' => ''],
],
'required' => false,
'example' => '',
],
'X' => ['description' => 'The x-coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'HasBox' => ['description' => 'Specifies whether to include a rectangular box.', 'type' => 'boolean', 'default' => 'false', 'title' => '', 'required' => false, 'example' => ''],
'Y' => ['description' => 'The y-coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'Layer' => ['description' => 'The z-order.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'default' => '0', 'title' => '', 'required' => false],
'Font' => ['description' => 'The font.'."\n"
."\n"
.'- **0**: Alibaba PuHuiTi Regular'."\n"
."\n"
.'- **1**: Alibaba PuHuiTi Light'."\n"
."\n"
.'- **2**: Alibaba PuHuiTi Medium'."\n"
."\n"
.'- **3**: Alibaba PuHuiTi Bold'."\n"
."\n"
.'- **4**: Alibaba PuHuiTi Heavy'."\n"
."\n"
.'- **5**: Alimama ShuHeiTi'."\n"
."\n"
.'- **6**: DingTalk JinBuTi'."\n"
."\n"
.'- **7**: Alimama DaoLiTi'."\n"
."\n"
.'- **8**: Alimama DongFangDaKai'."\n"
."\n"
.'- **9**: Alimama FangYuanTi', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'default' => '0', 'title' => '', 'required' => false],
'BoxAlpha' => ['description' => 'Transparency of the box.', 'type' => 'number', 'format' => 'double', 'example' => '0.6', 'default' => '0.6', 'title' => '', 'required' => false],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 3,
'example' => '',
],
],
[
'name' => 'LayoutSpecifiedUsers',
'in' => 'query',
'style' => 'json',
'schema' => [
'title' => '',
'description' => 'The settings for blacklists and whitelists.',
'type' => 'object',
'properties' => [
'Type' => [
'description' => 'The type of user list. Valid values: \\`black\\` for a blacklist and \\`white\\` for a whitelist.',
'type' => 'string',
'required' => true,
'enum' => ['white', 'black'],
'title' => '',
'example' => 'white',
],
'Ids' => [
'title' => '',
'description' => 'A list of user IDs.',
'type' => 'array',
'items' => ['description' => 'A user ID.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => '123'],
'required' => true,
'maxItems' => 16,
'minItems' => 1,
'example' => '',
],
],
'required' => false,
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The parameters.',
'type' => 'object',
'properties' => [
'TaskId' => ['description' => 'The task ID.', 'type' => 'string', 'title' => '', 'example' => '123'],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '231470C1-ACFB-4C9F-844F-4CFE1E3804C5'],
],
'title' => '',
'example' => '',
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TaskId\\": \\"123\\",\\n \\"RequestId\\": \\"231470C1-ACFB-4C9F-844F-4CFE1E3804C5\\"\\n}","type":"json"}]',
'title' => '[parameters_AppId_schema_type]string ',
'description' => '### QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for each user is 10. If you exceed this limit, API calls are throttled. Throttling can affect your business. Call this API at a reasonable rate.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyViewLayout'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'rtc:ModifyViewLayout',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
],
],
'NotifyAgent' => [
'summary' => 'NotifyAgent',
'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 application ID. Create and query it in the console. Only a single ID is supported.', 'type' => 'string', 'required' => false, 'example' => 'aec****', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'The channel to join. Only a single ID is supported.', 'type' => 'string', 'required' => false, 'example' => 'yourChannelId', 'title' => ''],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'The task ID.', 'type' => 'string', 'required' => false, 'example' => 'yourTaskId', 'title' => ''],
],
[
'name' => 'Message',
'in' => 'query',
'schema' => ['description' => 'The text content to announce.', 'type' => 'string', 'required' => false, 'example' => '您好,现在是2025年4月16日,请问需要什么帮助', 'title' => ''],
],
[
'name' => 'Priority',
'in' => 'query',
'schema' => ['description' => 'The priority level for inserting the announcement:'."\n"
.'1 — Interrupt the current interaction and announce immediately.'."\n"
.'2 — Announce after the current interaction ends.'."\n"
.'3 — Announce only if no interaction is active.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'Interruptable',
'in' => 'query',
'schema' => ['description' => 'Indicates whether the announcement can be interrupted. If false, the message cannot be interrupted by voice input, key presses, or other methods.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''],
],
[
'name' => 'CustomAttribute',
'in' => 'query',
'schema' => ['description' => 'Custom parameters passed through to the client.', 'type' => 'string', 'required' => false, 'example' => '{\\"color\\":\\"blue\\"}', 'title' => ''],
],
[
'name' => 'BackgroundMusic',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'Background audio.',
'title' => 'Background music.',
'type' => 'object',
'properties' => [
'format' => [
'title' => 'Format. '."\n"
.'- wav',
'description' => 'The audio format.'."\n"
."\n"
.'- wav',
'type' => 'string',
'example' => 'wav',
'default' => 'wav',
'enum' => ['wav'],
'required' => false,
],
'url' => ['title' => 'Resource URL.', 'description' => 'The resource URL.', 'type' => 'string', 'maxLength' => 1000, 'required' => false, 'example' => ''],
],
'required' => false,
'example' => '',
],
],
],
'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' => '760bad53276431c499e30dc36f6b26be'],
],
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"760bad53276431c499e30dc36f6b26be\\"\\n}","type":"json"}]',
'title' => 'Custom Message Announcement',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'NotifyAgent'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:NotifyAgent',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
],
],
'RemoveTerminals' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => [],
'parameters' => [
[
'name' => 'TerminalIds',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'A list of user IDs.',
'type' => 'array',
'items' => ['description' => 'A list of user IDs. The value of N can be from **1** to **30**. The format is as follows:'."\n"
."\n"
.'```'."\n"
.'TerminalIds.1=****'."\n"
.'TerminalIds.2=****'."\n"
.'......'."\n"
.'```', 'type' => 'string', 'required' => false, 'example' => '1811****', 'title' => ''],
'required' => true,
'example' => '1811xxxx',
'maxItems' => 30,
'title' => '',
],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. Only one ID is supported.'."\n"
."\n"
.'You can create and query application IDs in the console.', 'type' => 'string', 'required' => true, 'example' => 'yourAppId', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'The ID of the channel that the user has joined. Only one ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'yourChannelId', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', 'title' => ''],
'Terminals' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Terminal' => [
'description' => 'A list of user ID information.',
'type' => 'array',
'items' => [
'description' => 'The user ID information.',
'type' => 'object',
'properties' => [
'Code' => ['description' => 'The status code. A value of 0 indicates that the request was successful. If the request failed, an error code is returned.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
'Message' => ['description' => 'The result of the operation to remove the end user. Valid values:'."\n"
."\n"
.'- Success: The operation was successful.'."\n"
."\n"
.'- Failed: The operation failed.', 'type' => 'string', 'example' => 'Success', 'title' => ''],
'Id' => ['description' => 'The user ID.', 'type' => 'string', 'example' => '1811****', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
404 => [
['errorCode' => 'Channel.NotExist', 'errorMessage' => 'Channel not existed', 'description' => ''],
['errorCode' => 'Service.NoSignaling', 'errorMessage' => 'service no signaling', 'description' => ''],
],
500 => [
['errorCode' => 'Channel.InternalError', 'errorMessage' => 'Channel operate internal error', 'description' => ''],
['errorCode' => 'Service.InternalError', 'errorMessage' => 'service internal error', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"Terminals\\": {\\n \\"Terminal\\": [\\n {\\n \\"Code\\": 0,\\n \\"Message\\": \\"Success\\",\\n \\"Id\\": \\"1811****\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
'title' => 'Kick Specified End Users from a Channel ',
'summary' => 'Call the RemoveTerminals operation to remove specified end users from a channel.',
'description' => '# Usage notes'."\n"
."\n"
.'This API removes specified end users from a channel.'."\n"
."\n"
.'# QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for this API is 1,000 calls per minute per user. If you exceed the limit, API calls are subject to rate limiting, which may affect your business. Call this API at a reasonable rate. For more information, see [QPS limit](~~341645~~).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '1000', 'countWindow' => 60, 'regionId' => '*', 'api' => 'RemoveTerminals'],
],
],
'ramActions' => [],
],
'RemoveUsers' => [
'summary' => 'RemoveUsers',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => ['operationType' => 'delete'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Application ID. You can create and query it in the console. Only a single ID is supported. ', 'type' => 'string', 'required' => true, 'example' => 'eo85****'],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The ID of the joined channel. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'testid'],
],
[
'name' => 'Users',
'in' => 'query',
'style' => 'flat',
'schema' => [
'title' => '',
'description' => 'User List. Valid values of N: 1 to 30. ',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'UserId' => ['title' => '', 'description' => 'User ID. ', 'type' => 'string', 'required' => true, 'example' => '1811****'],
],
'required' => false,
'description' => '',
'title' => '',
'example' => '',
],
'required' => true,
'maxItems' => 30,
'minItems' => 1,
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'result',
'description' => 'result',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'Request ID. ', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8'],
'Users' => [
'title' => '',
'description' => 'User List. ',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Code' => ['title' => '', 'description' => 'Status code. A value of 0 indicates success. An error code is returned upon failure. ', 'type' => 'integer', 'format' => 'int32', 'example' => '0'],
'UserId' => ['title' => '', 'description' => 'User ID. ', 'type' => 'string', 'example' => '1811****'],
'Message' => ['title' => '', 'description' => 'Result of the delete operation. Valid values: '."\n"
.'- **Success**: Succeeded. '."\n"
.'- **Failed**: failed. ', 'type' => 'string', 'example' => 'Success'],
],
'description' => '',
'title' => '',
'example' => '',
],
'example' => '',
],
],
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\",\\n \\"Users\\": [\\n {\\n \\"Code\\": 0,\\n \\"UserId\\": \\"1811****\\",\\n \\"Message\\": \\"Success\\"\\n }\\n ]\\n}","type":"json"}]',
'title' => 'Kick Out User ',
'description' => '### How-To '."\n"
.'This API is used to kick users out of an online channel. '."\n"
.'### queries per second (QPS) Limit '."\n"
.'The QPS limit for this API is 10 requests per second per user. If the limit is exceeded, API calls will be subject to Rate Limiting, which may Impact your business. Please invoke the API appropriately. ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RemoveUsers'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'rtc:RemoveUsers',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'RtcCancelSipInvite' => [
'summary' => 'Cancels a SIP invite.',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'paid'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. Create and find this ID in the console. Specify only one ID.', 'type' => 'string', 'required' => true, 'example' => 'eo85****', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'The ID of an existing channel. Specify only one ID.', 'type' => 'string', 'required' => true, 'example' => '$rtc_channelid', 'title' => ''],
],
[
'name' => 'UserId',
'in' => 'query',
'schema' => ['description' => 'The user ID.', 'type' => 'string', 'required' => true, 'example' => '$rtc_userid', 'maxLength' => 120, 'minLength' => 1, 'title' => ''],
],
[
'name' => 'DeviceType',
'in' => 'query',
'schema' => [
'description' => 'The type of the third-party SIP device:'."\n"
."\n"
.'- sip\\_device'."\n"
."\n"
.'- mcu'."\n"
."\n"
.'- phone'."\n"
."\n"
.'Note: Only the phone type is supported at this stage.',
'type' => 'string',
'required' => true,
'example' => 'phone',
'enum' => ['sip_device', 'mcu', 'phone'],
'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID. Use this ID to locate logs and troubleshoot issues.', 'type' => 'string', 'example' => 'EB3C3C75-74D5-5F01-9F3C-9974261BAED4', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EB3C3C75-74D5-5F01-9F3C-9974261BAED4\\"\\n}","type":"json"}]',
'title' => 'Cancel SIP Outbound Call ',
'description' => '### QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for this API is 10 per user. If you exceed this limit, API calls are subject to rate limiting, which may affect your business. Call this API at a reasonable frequency.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RtcCancelSipInvite'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'rtc:RtcCancelSipInvite',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
],
],
'RtcSipInviteMember' => [
'summary' => 'Invite a SIP device to join a channel',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => ['operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'paid'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'Application ID. Get it from the console. Pass one ID only.', 'type' => 'string', 'required' => true, 'example' => 'eo85****', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'Channel ID. Pass one ID only.', 'type' => 'string', 'required' => true, 'example' => '$rtc_channelid', 'title' => ''],
],
[
'name' => 'Uid',
'in' => 'query',
'schema' => ['description' => 'User ID.', 'type' => 'string', 'required' => true, 'example' => '$rtc_userid', 'title' => ''],
],
[
'name' => 'DeviceType',
'in' => 'query',
'schema' => [
'description' => 'Device type of the third-party SIP system:'."\n"
."\n"
.'- sip\\_device'."\n"
."\n"
.'- mcu'."\n"
."\n"
.'- phone'."\n"
."\n"
.'Note: Only phone is supported at this time.',
'type' => 'string',
'required' => true,
'example' => 'phone',
'enum' => ['sip_device', 'mcu', 'phone'],
'title' => '',
],
],
[
'name' => 'ServerAddress',
'in' => 'query',
'schema' => ['description' => '1. IP address of the nearest RTC SIP server.'."\n"
."\n"
.'2. Resolve the domain name rtcsip.dingtalk.com locally to get the nearest address. For example, run dig rtcsip.dingtalk.com.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '39.101.232.13'],
],
[
'name' => 'AppToken',
'in' => 'query',
'schema' => ['description' => 'Token required to join the meeting. For sample code, see the referenced document.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '000qaaasas……b'],
],
[
'name' => 'Registered',
'in' => 'query',
'schema' => ['description' => 'Whether the third-party conferencing system must register before receiving the call.', 'type' => 'boolean', 'required' => true, 'title' => '', 'example' => 'false'],
],
[
'name' => 'SipDisplayName',
'in' => 'query',
'schema' => ['description' => 'Name displayed for the user on the third-party system.', 'type' => 'string', 'required' => true, 'example' => 'testdevice', 'maxLength' => 200, 'minLength' => 1, 'title' => ''],
],
[
'name' => 'SipUserId',
'in' => 'query',
'schema' => ['description' => '1. If DeviceType is mcu, this is the third-party conferencing system.'."\n"
."\n"
.'2. If DeviceType is sip\\_device, this is the registered device.'."\n"
."\n"
.'3. If the third-party system requires registration, use the account provided by that system.'."\n"
."\n"
.'4. If no registration is required, use the SIP username (RTC user ID).', 'type' => 'string', 'required' => true, 'example' => '$reg_userid', 'title' => ''],
],
[
'name' => 'SipUserPassword',
'in' => 'query',
'schema' => ['description' => 'The registration password for the SipUserId. This parameter is required when a third party registers to receive incoming calls.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '654321'],
],
[
'name' => 'SipRoomId',
'in' => 'query',
'schema' => ['description' => '1. If the device is an MCU, this is the channel number of the third-party conferencing system.'."\n"
."\n"
.'2. If the device is a SIP device, this is the registration number of the device to invite.'."\n"
."\n"
.'3. If the device is a phone, this is the called phone number.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => '18512514528'],
],
[
'name' => 'SipUri',
'in' => 'query',
'schema' => ['description' => '1. If the device is an MCU, this is the IP address and port of the third-party conferencing system in the format ip:port;transport=tcp/udp/tls. Example: 30.240.160.66:5060;transport=tcp.'."\n"
."\n"
.'2. If the device is a SIP device, this is the registration address of the device to invite. Example: 39.101.232.13.'."\n"
."\n"
.'3. If the device is a phone, this is the address of the PSTN gateway. Example: 30.240.160.66:5060;transport=tcp.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '30.240.160.66:5060;transport=tcp'],
],
[
'name' => 'SipUserAgent',
'in' => 'query',
'schema' => [
'description' => 'Brand or model of the third-party SIP device. Examples: polycom, cisco, tencent, zoom, pstn.',
'type' => 'string',
'enum' => ['polycom', 'cisco', 'tencent', 'zoom', 'pstn'],
'title' => '',
'required' => false,
'example' => 'pstn',
],
],
[
'name' => 'CallNumber',
'in' => 'query',
'schema' => ['description' => 'Custom line number for PSTN calls.', 'type' => 'string', 'maxLength' => 30, 'title' => '', 'required' => false, 'example' => '055112345678'],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['title' => 'Job ID. ', 'description' => 'Task ID.', 'type' => 'string', 'example' => 'taskId', 'maxLength' => 100, 'required' => false],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'Request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'Invite SIP to a meeting ',
'description' => '### QPS limit'."\n"
."\n"
.'The per-user QPS limit for this operation is 10 calls per second. Exceeding this limit triggers rate limiting, which may affect your business. Call this operation only as needed.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RtcSipInviteMember'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:RtcSipInviteMember',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\"\\n}","type":"json"}]',
],
'RtcSipMute' => [
'summary' => 'Mute operation',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'Application ID. Create and view it in the console. You can specify only one ID.', 'type' => 'string', 'required' => true, 'example' => 'eo85****', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'Existing channel ID. You can specify only one ID.', 'type' => 'string', 'required' => true, 'example' => 'testid', 'title' => ''],
],
[
'name' => 'Operations',
'in' => 'query',
'style' => 'flat',
'schema' => [
'title' => '',
'description' => 'Operations to perform.',
'type' => 'array',
'items' => [
'title' => '',
'description' => 'Specific operations.',
'type' => 'object',
'properties' => [
'Path' => [
'description' => 'Scope of the operation.'."\n"
."\n"
.'- /media/audio/status modifies the audio stream status for the specified user.',
'type' => 'string',
'required' => true,
'example' => '/media/audio/status',
'default' => '/media/audio/status',
'enum' => ['/media/audio/status'],
'title' => '',
],
'Op' => ['description' => 'Operation type.'."\n"
."\n"
.'- replace', 'type' => 'string', 'required' => true, 'example' => 'replace', 'default' => 'replace', 'title' => ''],
'OperationId' => ['description' => 'Operation ID. Use this ID to troubleshoot issues when some operations fail.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => '12122121'],
'Value' => [
'title' => '',
'description' => 'Value for the operation.',
'type' => 'object',
'properties' => [
'Status' => [
'description' => 'Valid values.'."\n"
."\n"
.'- active: unmute the microphone.'."\n"
."\n"
.'- inactive: mute the microphone.',
'type' => 'string',
'required' => true,
'example' => 'inactive',
'enum' => ['inactive', 'active'],
'title' => '',
],
],
'required' => true,
'example' => '',
],
'Ids' => [
'title' => '',
'description' => 'List of user IDs.',
'type' => 'array',
'items' => ['description' => 'User ID.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => '12'],
'required' => true,
'maxItems' => 16,
'minItems' => 1,
'example' => '',
],
],
'required' => true,
'example' => '',
],
'required' => true,
'maxItems' => 5,
'minItems' => 1,
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'result',
'description' => 'Result.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'Request ID.', 'type' => 'string', 'example' => 'E7997404-5858-5C4D-94E4-33677412ACDC', 'title' => ''],
'ErrTracks' => [
'title' => '',
'description' => 'Tracks that encountered errors.',
'type' => 'array',
'items' => [
'title' => '',
'description' => 'Detailed error information.',
'type' => 'object',
'properties' => [
'Id' => ['title' => 'Id。', 'description' => 'User ID.', 'type' => 'string', 'example' => '12'],
'OperationId' => ['title' => 'OperationId。', 'description' => 'Operation ID.', 'type' => 'string', 'example' => '12122121'],
'ErrMsg' => ['title' => 'ErrMsg。', 'description' => 'Error message.', 'type' => 'string', 'example' => 'participant does not existed.'],
],
'example' => '',
],
'example' => '',
],
],
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"E7997404-5858-5C4D-94E4-33677412ACDC\\",\\n \\"ErrTracks\\": [\\n {\\n \\"Id\\": \\"12\\",\\n \\"OperationId\\": \\"12122121\\",\\n \\"ErrMsg\\": \\"participant does not existed.\\"\\n }\\n ]\\n}","type":"json"}]',
'title' => 'Microphone toggle control for SIP endpoints ',
'description' => '### QPS limit'."\n"
."\n"
.'The per-user QPS limit for this API is 10 calls per second. Exceeding this limit triggers rate limiting, which may affect your business. Call this API only as needed.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RtcSipMute'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'rtc:RtcSipMute',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
],
],
'StartAgent' => [
'summary' => 'Start AI Agent',
'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. You can create and query this ID in the console. Only one application ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'aoe****', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'The ID of the channel to join. Only one channel ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'yourChannelId', 'title' => ''],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'The task ID.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'yourTaskId'],
],
[
'name' => 'TemplateId',
'in' => 'query',
'schema' => ['description' => 'The template ID.', 'type' => 'string', 'required' => true, 'example' => '76dasgb****', 'title' => ''],
],
[
'name' => 'RtcConfig',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The configuration for the agent to join an RTC channel.',
'type' => 'object',
'properties' => [
'UserId' => ['description' => 'The user ID for the agent in the RTC channel.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => '423341'],
'TargetUserIds' => [
'title' => '',
'description' => 'A list of user IDs that the agent subscribes to. Currently, only a single user ID is supported.',
'type' => 'array',
'items' => ['description' => 'A user ID.', 'type' => 'string', 'required' => false, 'example' => '41411', 'title' => ''],
'required' => false,
'example' => '',
],
'UserInactivityTimeout' => ['description' => 'The maximum duration of user inactivity, in seconds. The agent automatically stops and leaves the channel if either of the following conditions is met for this duration:'."\n"
."\n"
.'1. All users in the `targetUserIds` list have left the channel.'."\n"
."\n"
.'2. No users from the `targetUserIds` list have joined the channel.'."\n"
."\n"
.'Default: 30.
Range: \\[5, 180].
', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '30', 'title' => ''],
],
'required' => true,
'example' => '2',
'title' => '',
],
],
[
'name' => 'VoiceChatConfig',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The configuration for AI voice chat.',
'type' => 'object',
'properties' => [
'ChatMode' => ['description' => '`1`: Natural conversation mode (default).
`2`: Walkie-talkie mode.
', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '1'],
'InterruptMode' => ['description' => '`1`: Enables voice interruption (default).
`2`: Disables voice interruption.
', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '1'],
'Greeting' => ['description' => 'The agent\'s initial greeting.', 'type' => 'string', 'required' => false, 'example' => '早上好,我的朋友', 'title' => ''],
'ASRConfig' => [
'description' => 'Configuration for Automatic Speech Recognition (ASR).',
'type' => 'object',
'properties' => [
'SourceLanguage' => ['description' => 'The language is automatically detected, so this parameter is not required.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'zh'],
'SemanticPunctuationEnabled' => ['description' => 'Enables semantic punctuation for sentence segmentation. If `false`, segmentation is based on Voice Activity Detection (VAD).', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'false'],
'MaxSentenceSilence' => ['description' => 'The silence duration threshold, in milliseconds, for VAD-based sentence segmentation.
Default: 800.
Recommended range: \\[200, 6000].
', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '800'],
'VocabularyId' => ['description' => 'The ID of the custom vocabulary to use.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'vocab-xxx-24ee19fa8cfb4d52902170a0xxxxxxxx'],
'LanguageHints' => [
'title' => '',
'description' => 'If this parameter is not set, the model automatically detects the language.
Supported language codes:
• `zh`: Chinese (supports dialects including Shanghainese, Wu, Minnan, Northeastern Mandarin, Gansu, Guizhou, Henan, Hubei, Hunan, Jiangxi, Ningxia, Shanxi, Shaanxi, Shandong, Sichuan, Tianjin, Yunnan, and Cantonese)
• `en`: English
• `ja`: Japanese
• `yue`: Cantonese
• `ko`: Korean
',
'type' => 'array',
'items' => ['description' => 'A language code.', 'type' => 'string', 'required' => false, 'example' => 'zh', 'title' => ''],
'required' => false,
'example' => '',
],
'VadConfig' => [
'description' => 'Configuration for Voice Activity Detection (VAD).',
'type' => 'object',
'properties' => [
'InterruptSpeechDuration' => ['description' => 'The minimum duration, in milliseconds (ms), of continuous human speech required to trigger an interruption. This helps prevent false interruptions.
Default: 300.
Range: \\[0, 3000].
', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '300', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
],
'required' => false,
'title' => '',
'example' => '',
],
'LLMConfig' => [
'description' => 'Configuration for the Large Language Model (LLM).',
'type' => 'object',
'properties' => [
'Vendor' => ['description' => 'The name of the cloud service provider. Examples: `aliyun` (for Model Studio), `thirdparty`.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'aliyun'],
'Model' => ['description' => 'The name of the model.
For the `aliyun` vendor, supported models include `qwen-plus`, `deepseek-r1`, and `qwen-omni-turbo`.
', 'type' => 'string', 'required' => false, 'example' => 'qwen-plus', 'title' => ''],
'ApiKey' => ['description' => 'The API key from the cloud service provider.', 'type' => 'string', 'required' => false, 'example' => 'xxxxxxxxxxx', 'title' => ''],
'Temperature' => ['description' => 'The sampling temperature, which controls the randomness of the generated text. A higher value increases randomness.
Range: \\[0, 2).
Default: 0.7.
Note: This parameter is not supported for the `deepseek-r1` model.
', 'type' => 'number', 'format' => 'double', 'required' => false, 'example' => '0.7', 'title' => ''],
'TopP' => ['description' => 'Controls output diversity via nucleus sampling. The model samples from the smallest set of tokens whose cumulative probability mass exceeds this value. A higher value results in a more diverse output.
Range: (0, 1].
Default: 0.8.
', 'type' => 'number', 'format' => 'double', 'required' => false, 'example' => '0.8', 'title' => ''],
'MaxToken' => ['description' => 'The maximum number of tokens for the generated response. For `deepseek` and `qwen` models, the upper limit is 8192.
Default: 8192.
', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '500', 'title' => ''],
'HistoryDepth' => ['description' => 'The number of previous conversation turns to include as context for the model.
Default: 3.
', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '3', 'title' => ''],
'Prompt' => ['description' => 'A system prompt that instructs the model on its role, behavior, or persona.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'xxxx'],
'Url' => ['description' => 'The access URL for a third-party LLM.', 'type' => 'string', 'required' => false, 'example' => 'https://xxxxx', 'title' => ''],
'Params' => ['description' => 'A key-value map for custom parameters. This parameter is deprecated; use `BizParams` instead.', 'type' => 'object', 'required' => false, 'example' => '{\\"verification_code\\": \\"xxx\\"}', 'title' => ''],
'BizParams' => ['description' => 'Custom parameters.', 'type' => 'any', 'required' => false, 'title' => '', 'example' => ''],
'AppId' => ['description' => 'The agent application ID. You can specify either `Model` or `AppId`. If both are provided, `AppId` takes precedence.', 'type' => 'string', 'required' => false, 'example' => 'e****', 'title' => ''],
'ToolExecutionConfig' => ['type' => 'any', 'description' => '', 'required' => false, 'title' => '', 'example' => ''],
'Tools' => [
'type' => 'array',
'items' => ['type' => 'any', 'description' => '', 'required' => false, 'title' => '', 'example' => ''],
'required' => false,
'description' => '',
'title' => '',
'example' => '',
],
],
'required' => false,
'title' => '',
'example' => '',
],
'TTSConfig' => [
'description' => 'Configuration for Text-to-Speech (TTS).',
'type' => 'object',
'properties' => [
'Vendor' => ['description' => 'The cloud service provider. Example: `aliyun` (for Model Studio).', 'type' => 'string', 'required' => false, 'example' => 'aliyun', 'title' => ''],
'Model' => ['description' => 'The name of the TTS model. Example: `cosyvoice-v1`.', 'type' => 'string', 'required' => false, 'example' => 'cosyvoice-v1', 'title' => ''],
'ApiKey' => ['description' => 'The API key from the cloud service provider.', 'type' => 'string', 'required' => false, 'example' => 'xxxxxx', 'title' => ''],
'Voice' => ['description' => 'The voice for the synthesized speech. If you use the `cosyvoice-v1` model from Alibaba Cloud, the default voice is `longxiaoxia`.
Available voices: `longwan`, `longcheng`, `longhua`, `longxiaochun`, `longxiaoxia`, `longxiaocheng`, `longxiaobai`, `longlaotie`, `longshu`, `longshuo`, `longjing`, `longmiao`, `longyue`, `longyuan`, `longfei`, `longjielidou`, `longtong`, `longxiang`, `loongstella`, `loongbella`.
', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'longxiaoxia'],
'Volume' => ['description' => 'The volume of the synthesized speech.
Range: \\[0, 100].
Default: 50.
', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '50'],
'Rate' => ['description' => 'The speech rate.
Range: \\[0.5, 2.0].
Default: 1.0.
', 'type' => 'number', 'format' => 'double', 'title' => '', 'required' => false, 'example' => '1'],
'Pitch' => ['description' => 'The pitch of the synthesized speech.
Range: \\[0.5, 2.0].
Default: 1.0.
', 'type' => 'number', 'format' => 'double', 'title' => '', 'required' => false, 'example' => '1'],
'FilterBrackets' => [
'description' => 'Specifies bracket types whose enclosed content should be excluded from speech synthesis.',
'type' => 'array',
'items' => ['description' => 'An integer representing the bracket type to filter.
• `1`: Chinese parentheses()
• `2`: English parentheses ()
• `3`: Chinese square brackets【】
• `4`: English square brackets \\[]
• `5`: English curly braces {}
', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '[1,2]', 'title' => ''],
'required' => false,
'title' => '',
'example' => '',
],
],
'required' => false,
'title' => '',
'example' => '',
],
'AgentSilenceConfig' => [
'description' => 'Configures how the agent responds to silence, such as when a user is in the channel but not speaking. You can configure the agent to play an audio prompt or send a webhook notification.',
'title' => 'Agent Silence Timeout Handling Configuration',
'type' => 'object',
'properties' => [
'Enable' => ['title' => 'Whether to enable the agent silence timeout handling mechanism. '."\n"
.'After a user joins the channel but does not engage in effective interaction with the agent (the user remains silent), the agent enters a silent state. If the silence duration exceeds the configured threshold, the agent periodically reminds the user via voice messaging. The interval between periodic notifications is equal to the configured threshold. '."\n"
.'Default value: false', 'description' => 'Specifies whether to enable the silence configuration.', 'type' => 'boolean', 'required' => false, 'example' => 'false'],
'AlertTimeout' => ['title' => 'Maximum agent silence threshold (unit: seconds). '."\n"
.'Value range: [5, 60]. Default value: ', 'description' => 'The timeout in seconds before triggering a silence alert. The alert can be re-triggered if the silence continues.
Range: \\[5, 600].
Default: 0 (disabled).
', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0'],
'Strategy' => ['title' => 'Silence timeout handling strategy. '."\n"
.'1 – Play the prompt message specified in content as a voice message to the user. '."\n"
.'2 – Send the prompt message specified in content along with the conversation history to the LLM and play the model-generated response. '."\n"
.'Default value: 1', 'description' => 'The strategy for the silence alert:
• `1` (default): Plays the message specified in `Content`.
• `2`: Sends the `Content` message and conversation history to the LLM, and then plays the generated response.
', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'],
'Content' => ['title' => 'Content of the silence reminder message.', 'description' => 'The content of the silence alert message.', 'type' => 'string', 'required' => false, 'example' => '**'],
'WebhookTriggerTimeout' => ['description' => 'The timeout in seconds before triggering a silence webhook. The webhook can be re-triggered if the silence continues.
Range: \\[10, 600].
Default: 0 (disabled).
', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
],
'required' => false,
'example' => '',
],
'AmbientSoundConfig' => [
'description' => 'Configuration for ambient sound.',
'title' => 'Ambient sound configuration',
'type' => 'object',
'properties' => [
'SoundId' => ['title' => 'Content of the silent prompt message.', 'description' => 'Specifies the ambient sound to play.'."\n"
."\n"
.'- If this parameter is not provided, ambient sound is disabled.'."\n"
."\n"
.'- Built-in sounds: Set to `white_noise` or `office`.'."\n"
."\n"
.'- For custom sounds, provide a `soundId` that you have configured in the console with a corresponding download URL. (This feature is planned for a future release).', 'type' => 'string', 'example' => 'white_noise', 'required' => false],
'Volume' => ['title' => 'Volume level.', 'description' => 'The volume of the ambient sound.
Range: \\[0, 100].
Default: 50.
', 'type' => 'integer', 'format' => 'int32', 'maximum' => '100', 'minimum' => '0', 'example' => '50', 'required' => false],
],
'required' => false,
'example' => '',
],
'InterruptConfig' => [
'description' => 'Configuration for interruption handling.',
'title' => 'Interruption configuration ',
'type' => 'object',
'properties' => [
'SemanticsInterrupt' => ['title' => 'Intelligent semantic interruption ', 'description' => 'Specifies whether to enable semantic interruption.
Default: `true`.
', 'type' => 'boolean', 'required' => false, 'example' => 'true'],
],
'required' => false,
'example' => '',
],
'BackChannelConfig' => [
'description' => 'Configuration for back-channeling.',
'title' => 'Interruption Configuration ',
'type' => 'object',
'properties' => [
'UserTurnEnd' => ['title' => 'Intelligent Semantics Interruption', 'description' => 'Specifies whether to enable back-channeling after the user finishes speaking.
Default: `false`.
', 'type' => 'boolean', 'required' => false, 'example' => 'false'],
'Version' => ['type' => 'integer', 'format' => 'int32', 'description' => '', 'title' => '', 'example' => ''],
],
'required' => false,
'example' => '',
],
'EnableVideoUnderstanding' => ['description' => 'Specifies whether to enable video understanding. If enabled, the LLM must support multimodal inputs.', 'type' => 'boolean', 'required' => false, 'title' => '', 'example' => ''],
'preferVideo' => ['description' => 'When video understanding is enabled, specifies which video stream to prioritize if both camera and screen sharing streams are active. The agent can process only one stream at a time.'."\n"
."\n"
.'1. `1`: Prioritize the camera stream.'."\n"
."\n"
.'2. `2`: Prioritize the screen sharing stream.'."\n"
."\n"
.'Default: `1`.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'title' => '', 'example' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'The response data.',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The unique ID of the request.', 'type' => 'string', 'example' => '6159ba01-6687-4fb2-a831-f0cd8d188648'],
],
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'Start Agent',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartAgent'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'rtc:StartAgent',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6159ba01-6687-4fb2-a831-f0cd8d188648\\"\\n}","type":"json"}]',
],
'StartCategoryCallback' => [
'summary' => 'Starts an event callback.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'deprecated' => false,
'systemTags' => ['operationType' => 'none'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID.', 'type' => 'string', 'required' => true, 'example' => '223***JQb', 'title' => ''],
],
[
'name' => 'Callback',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The callback.',
'type' => 'object',
'properties' => [
'Category' => ['description' => 'The callback code.', 'type' => 'string', 'required' => true, 'example' => 'RecordEvent', 'title' => ''],
],
'required' => true,
'title' => '',
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'Id of the request', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\"\\n}","type":"json"}]',
'title' => 'Enable a management event callback',
'description' => '### QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for this API is 10 calls per second per user. If you exceed the limit, API calls are subject to rate limiting, which may affect your business. Call the API at a reasonable rate.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartCategoryCallback'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:StartCategoryCallback',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'StartCloudNote' => [
'summary' => 'Enable intelligent summary',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'paid', 'autoTest' => true, 'tenantRelevance' => 'tenant'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID.', 'type' => 'string', 'required' => true, 'example' => '2ws***z3', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'The channel ID.', 'type' => 'string', 'required' => true, 'example' => 'test', 'title' => ''],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'The task ID.', 'type' => 'string', 'required' => true, 'example' => 'rtc', 'maxLength' => 55, 'minLength' => 1, 'pattern' => '^[\\w.-]+$', 'title' => ''],
],
[
'name' => 'StorageConfig',
'in' => 'query',
'style' => 'flat',
'schema' => [
'title' => '',
'description' => 'The storage configuration.',
'type' => 'object',
'properties' => [
'Vendor' => ['description' => 'The storage platform. Valid value:'."\n"
."\n"
.'| Value | Storage product | Remarks |'."\n"
.'| ----- | ----------------- | ------------- |'."\n"
.'| 1 | Alibaba Cloud OSS | Alibaba Cloud |', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'minimum' => '1', 'example' => '1', 'title' => ''],
'Region' => ['description' => 'The storage region.'."\n"
."\n"
.'| Value | Region |'."\n"
.'| ----- | ------------------------------------------------- |'."\n"
.'| 0 | China (Hangzhou) |'."\n"
.'| 1 | China (Shanghai) |'."\n"
.'| 2 | China (Qingdao) |'."\n"
.'| 3 | China (Beijing) |'."\n"
.'| 4 | China (Zhangjiakou) |'."\n"
.'| 5 | China (Hohhot) |'."\n"
.'| 6 | China (Shenzhen) |'."\n"
.'| 7 | China (Hong Kong) |'."\n"
.'| 8 | US (Silicon Valley) |'."\n"
.'| 9 | US (Virginia) |'."\n"
.'| 10 | Asia Pacific (Singapore) |'."\n"
.'| 11 | Asia Pacific (Sydney) |'."\n"
.'| 12 | Asia Pacific (Kuala Lumpur) |'."\n"
.'| 13 | Asia Pacific (Jakarta) |'."\n"
.'| 14 | Asia Pacific (Tokyo) |'."\n"
.'| 15 | Asia Pacific (Mumbai) (Discontinued. Do not use.) |'."\n"
.'| 16 | EU (Frankfurt) |'."\n"
.'| 17 | EU (London) |'."\n"
.'| 18 | Middle East (Dubai) |'."\n"
.'| 19 | Asia Pacific (Manila) |'."\n"
.'| 20 | China (Heyuan) |'."\n"
.'| 21 | China (Guangzhou) |'."\n"
.'| 22 | China (Chengdu) |'."\n"
.'| 23 | China (Nanjing) |'."\n"
.'| 24 | China (Fuzhou) |'."\n"
.'| 25 | China (Wulanchabu) |'."\n"
.'| 26 | Asia Pacific (Seoul) |'."\n"
.'| 27 | Asia Pacific (Bangkok) |', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '0', 'title' => ''],
'Bucket' => ['description' => 'The bucket name.', 'type' => 'string', 'required' => true, 'example' => 'test-bucket-for-recording', 'minLength' => 1, 'title' => ''],
'AccessKey' => ['title' => 'accessKey', 'description' => 'The access key.', 'type' => 'string', 'required' => true, 'example' => 'LTAX***', 'minLength' => 1],
'SecretKey' => ['title' => 'secretKey', 'description' => 'The secret key.', 'type' => 'string', 'required' => true, 'example' => 'APb6qWYEzKtYxE***', 'minLength' => 1],
],
'required' => true,
'example' => '',
],
],
[
'name' => 'SourceLanguage',
'in' => 'query',
'schema' => [
'description' => 'The source language model for the channel.'."\n"
."\n"
.'- `cn`: Chinese'."\n"
."\n"
.'- `yue`: Cantonese'."\n"
."\n"
.'- `en`: English'."\n"
."\n"
.'- `multilingual`: Multilingual'."\n"
."\n"
.'- `ja`: Japanese'."\n"
."\n"
.'- `ko`: Korean'."\n"
."\n"
.'- `de`: German'."\n"
."\n"
.'- `fr`: French'."\n"
."\n"
.'- `ru`: Russian'."\n"
."\n"
.'- `es`: Spanish'."\n"
."\n"
.'- `vi`: Vietnamese'."\n"
."\n"
.'- `it`: Italian'."\n"
."\n"
.'- `sv`: Swedish'."\n"
."\n"
.'- `cs`: Czech'."\n"
."\n"
.'- `pl`: Polish'."\n"
."\n"
.'- `th`: Thai'."\n"
."\n"
.'- `fi`: Finnish'."\n"
."\n"
.'- `hi`: Hindi'."\n"
."\n"
.'- `id`: Indonesian (Indonesia)'."\n"
."\n"
.'- `pt`: Portuguese'."\n"
."\n"
.'- `ar`: Arabic'."\n"
."\n"
.'- `fil`: Filipino'."\n"
."\n"
.'- `ms`: Malay'."\n"
."\n"
.'- `tr`: Turkish'."\n"
."\n"
.'- `hu`: Hungarian'."\n"
."\n"
.'- `lo`: Lao'."\n"
."\n"
.'- `pt-br`: Portuguese (Brazil)'."\n"
."\n"
.'- `es-ar`: Spanish (Argentina)'."\n"
."\n"
.'- `es-mx`: Spanish (Mexico)',
'type' => 'string',
'example' => 'cn',
'default' => 'cn',
'enum' => [
'cn', 'en', 'ja', 'yue', 'ko', 'de', 'fr', 'ru', 'multilingual', 'es', 'vi', 'it', 'sv', 'cs', 'pl', 'th', 'fi', 'hi', 'id', 'pt',
'ar', 'fil', 'ms', 'tr', 'hu', 'lo', 'pt-br', 'es-ar', 'es-mx',
],
'title' => '',
'required' => false,
],
],
[
'name' => 'LanguageHints',
'in' => 'query',
'style' => 'flat',
'schema' => [
'title' => '',
'description' => 'Deprecated. This parameter is no longer used.',
'type' => 'array',
'items' => [
'description' => '- `cn`: Chinese'."\n"
."\n"
.'- `en`: English'."\n"
."\n"
.'- `ja`: Japanese'."\n"
."\n"
.'- `ko`: Korean'."\n"
."\n"
.'- `de`: German'."\n"
."\n"
.'- `fr`: French'."\n"
."\n"
.'- `ru`: Russian'."\n"
."\n"
.'- `es`: Spanish'."\n"
."\n"
.'- `vi`: Vietnamese'."\n"
."\n"
.'- `it`: Italian'."\n"
."\n"
.'- `sv`: Swedish'."\n"
."\n"
.'- `cs`: Czech'."\n"
."\n"
.'- `pl`: Polish'."\n"
."\n"
.'- `th`: Thai'."\n"
."\n"
.'- `fi`: Finnish'."\n"
."\n"
.'- `hi`: Hindi'."\n"
."\n"
.'- `id`: Indonesian (Indonesia)'."\n"
."\n"
.'- `pt`: Portuguese'."\n"
."\n"
.'- `ar`: Arabic'."\n"
."\n"
.'- `fil`: Filipino'."\n"
."\n"
.'- `ms`: Malay'."\n"
."\n"
.'- `tr`: Turkish'."\n"
."\n"
.'- `hu`: Hungarian'."\n"
."\n"
.'- `lo`: Lao'."\n"
."\n"
.'- `pt-br`: Portuguese (Brazil)'."\n"
."\n"
.'- `es-ar`: Spanish (Argentina)'."\n"
."\n"
.'- `es-mx`: Spanish (Mexico)',
'type' => 'string',
'enum' => [
'cn', 'en', 'ja', 'ko', 'de', 'fr', 'ru', 'es', 'vi', 'it', 'sv', 'cs', 'pl', 'th', 'fi', 'hi', 'id', 'pt', 'ar', 'fil',
'ms', 'tr', 'hu', 'lo', 'pt-br', 'es-ar', 'es-mx',
],
'required' => false,
'example' => 'ko',
'title' => '',
],
'required' => false,
'example' => '',
],
],
[
'name' => 'Transcription',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The transcription feature. This feature is enabled by default.',
'title' => 'Transcription feature, enabled by default.',
'type' => 'object',
'properties' => [
'DiarizationEnabled' => ['title' => 'Whether to enable speaker diarization.', 'description' => 'Specifies whether to enable speaker diarization.', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => ''],
'SpeakerCount' => [
'title' => 'Set the speaker count parameter for diarization. Default is 0. '."\n"
.'0: The number of speakers is undetermined in the role differentiation result. '."\n"
.'2: The role differentiation result contains exactly 2 speakers.',
'description' => 'The number of speakers to identify. Default value: 0.'."\n"
.'0: The service automatically detects the number of speakers.'."\n"
.'2: The service identifies two speakers.',
'type' => 'integer',
'format' => 'int32',
'default' => '0',
'enum' => ['0', '2'],
'required' => false,
'example' => '2',
],
'TranscriptionLevel' => [
'title' => 'Speech recognition result return level. Default is 2. '."\n"
.'1: Return recognition results only when complete sentences are detected. '."\n"
.'2: Return recognition results for both intermediate and complete sentences.',
'description' => 'The level at which transcription results are returned. Default value: 2.'."\n"
.'1: Returns the result only when a complete sentence is identified.'."\n"
.'2: Returns both intermediate and final results for a sentence.',
'type' => 'integer',
'format' => 'int32',
'example' => '1',
'default' => '2',
'enum' => ['1', '2'],
'required' => false,
],
'PhraseId' => ['title' => 'Hotword list ID.', 'description' => 'The hotword list ID.', 'type' => 'string', 'example' => 'b27cb31b8ca24c5b8e664e0387bac573', 'maxLength' => 50, 'minLength' => 1, 'required' => false],
],
'required' => false,
'example' => '',
],
],
[
'name' => 'AutoChapters',
'in' => 'query',
'style' => 'json',
'schema' => [
'title' => '',
'description' => 'The auto-chapters feature. If enabled, the service generates chapter titles and summaries.',
'type' => 'object',
'properties' => [
'Enabled' => ['description' => 'Specifies whether to enable this feature.', 'type' => 'boolean', 'default' => 'false', 'title' => '', 'required' => false, 'example' => ''],
],
'required' => false,
'example' => '',
],
],
[
'name' => 'MeetingAssistance',
'in' => 'query',
'style' => 'json',
'schema' => [
'title' => '',
'description' => 'The meeting assistance feature. If enabled, the service generates outputs such as keywords, key information, and action items.',
'type' => 'object',
'properties' => [
'Enabled' => ['description' => 'Specifies whether to enable this feature.', 'type' => 'boolean', 'default' => 'false', 'title' => '', 'required' => false, 'example' => ''],
'MeetingAssistanceType' => [
'title' => '',
'description' => 'The algorithm types for the meeting assistance feature.',
'type' => 'array',
'items' => [
'description' => 'The specific algorithm. Valid values:'."\n"
."\n"
.'`Actions`: action items.'."\n"
."\n"
.'`KeyInformation`: key information, which includes keywords and highlights.',
'type' => 'string',
'required' => true,
'example' => 'Actions',
'enum' => ['Actions', 'KeyInformation'],
'title' => '',
],
'required' => true,
'example' => '',
],
],
'required' => false,
'example' => '',
],
],
[
'name' => 'Summarization',
'in' => 'query',
'style' => 'json',
'schema' => [
'title' => '',
'description' => 'The summarization feature. If enabled, the service generates outputs such as full-text summaries and speaker summaries.',
'type' => 'object',
'properties' => [
'Enabled' => ['description' => 'Specifies whether to enable this feature.', 'type' => 'boolean', 'default' => 'false', 'title' => '', 'required' => false, 'example' => ''],
'Type' => [
'title' => '',
'description' => 'The types of summaries to generate.',
'type' => 'array',
'items' => [
'description' => 'The type of summary to generate. Valid values:'."\n"
."\n"
.'`Paragraph`: full-text summary'."\n"
."\n"
.'`Conversational`: speaker summary'."\n"
."\n"
.'`QuestionsAnswering`: Q\\&A review summary',
'type' => 'string',
'required' => true,
'enum' => ['Paragraph', 'Conversational', 'QuestionsAnswering'],
'title' => '',
'example' => 'Conversational',
],
'required' => true,
'example' => '',
],
],
'required' => false,
'example' => '',
],
],
[
'name' => 'TextPolish',
'in' => 'query',
'style' => 'json',
'schema' => [
'title' => '',
'description' => 'The text polishing feature.',
'type' => 'object',
'properties' => [
'Enabled' => ['description' => 'Specifies whether to enable this feature.', 'type' => 'boolean', 'default' => 'false', 'title' => '', 'required' => false, 'example' => ''],
],
'required' => false,
'example' => '',
],
],
[
'name' => 'ServiceInspection',
'in' => 'query',
'style' => 'json',
'schema' => [
'title' => '',
'description' => 'The service quality inspection feature.',
'type' => 'object',
'properties' => [
'Enabled' => ['description' => 'Specifies whether to enable this feature.', 'type' => 'boolean', 'required' => false, 'default' => 'false', 'title' => '', 'example' => ''],
'SceneIntroduction' => ['description' => 'The conversation scenario for service quality inspection.', 'type' => 'string', 'required' => true, 'example' => '汽车门店线下销售场景', 'maxLength' => 1024, 'title' => ''],
'InspectionIntroduction' => ['description' => 'The objectives of the service quality inspection.', 'type' => 'string', 'required' => true, 'example' => '请监测对话中销售人员表现是否接待热情、态度良好', 'maxLength' => 1024, 'title' => ''],
'InspectionContents' => [
'title' => '',
'description' => 'A list of service quality inspection dimensions. Each dimension includes a title and a definition that the large language model (LLM) uses as evaluation criteria.',
'type' => 'array',
'items' => [
'title' => '',
'description' => 'A specific inspection dimension.',
'type' => 'object',
'properties' => [
'Title' => ['description' => 'The title of the inspection dimension.', 'type' => 'string', 'required' => true, 'example' => '到店欢迎-欢迎语', 'title' => ''],
'Content' => ['description' => 'The definition of the inspection dimension.', 'type' => 'string', 'required' => true, 'example' => '销售在开场白的时候主动向客户打招呼进行欢迎', 'title' => ''],
],
'required' => true,
'example' => '',
],
'required' => true,
'maxItems' => 100,
'example' => '',
],
],
'required' => false,
'example' => '',
],
],
[
'name' => 'CustomPrompt',
'in' => 'query',
'style' => 'json',
'schema' => [
'title' => '',
'description' => 'The configuration for custom prompts.',
'type' => 'object',
'properties' => [
'Enabled' => ['description' => 'Specifies whether to enable this feature.', 'type' => 'boolean', 'default' => 'false', 'title' => '', 'required' => false, 'example' => ''],
'CustomPromptContents' => [
'title' => '',
'description' => 'A list of custom prompt configurations.',
'type' => 'array',
'items' => [
'title' => '',
'description' => 'A specific prompt configuration.',
'type' => 'object',
'properties' => [
'Name' => ['description' => 'A custom name for the prompt. This name is used to identify the corresponding output.', 'type' => 'string', 'required' => true, 'example' => 'split-summary-demo', 'title' => ''],
'Prompt' => ['description' => 'The custom content for the prompt. It must include the `{Transcription}` placeholder, which the service replaces with the transcription result to use as input for the model.', 'type' => 'string', 'required' => true, 'example' => '请帮我将下面的对话进行总结,根据发言人来总结:\\n {Transcription}', 'title' => ''],
'Model' => [
'description' => 'The model to use for the prompt. Valid values are `tingwu-turbo`, `tingwu-plus`, and `qwen-max`. If you omit this parameter, the default is `tingwu-turbo`.',
'type' => 'string',
'example' => 'tingwu-turbo',
'default' => 'tingwu-turbo',
'enum' => ['tingwu-turbo', 'tingwu-plus', 'qwen-max'],
'title' => '',
'required' => false,
],
'TransType' => [
'description' => 'The format of the `{Transcription}` placeholder. Valid values are `chat` and `default`.'."\n"
."\n"
.'`chat`: The transcription result includes speaker information.'."\n"
."\n"
.'`default`: The transcription result is plain text.',
'type' => 'string',
'example' => 'chat',
'default' => 'default',
'enum' => ['default', 'chat'],
'title' => '',
'required' => false,
],
],
'required' => false,
'example' => '',
],
'required' => true,
'maxItems' => 3,
'minItems' => 1,
'example' => '',
],
],
'required' => false,
'example' => '',
],
],
[
'name' => 'RealtimeSubtitle',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The configuration for real-time subtitles.',
'title' => 'Real-time caption.',
'type' => 'object',
'properties' => [
'AsrCallback' => ['title' => 'Whether to enable server callback.', 'description' => 'Specifies whether to also send results to your server via a callback.', 'type' => 'boolean', 'required' => false, 'example' => 'true'],
'Enabled' => ['title' => 'Whether enabled.', 'description' => 'Specifies whether to enable this feature.', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => ''],
'Translation' => [
'description' => 'Configures subtitle translation. Set the target languages via the SDK.',
'title' => 'Translation parameters. The specific target language for translation can be set via the software development kit (SDK).',
'type' => 'object',
'properties' => [
'TranslateLevel' => [
'title' => 'Translation text output level. The default value is 2. '."\n"
."\n"
.'1: Return result when a complete sentence is detected. '."\n"
."\n"
.'2: Return result for both intermediate results and complete sentences.',
'description' => 'Specifies when to return translated results. Default value: 2.'."\n"
."\n"
.'1: Returns the result only when a complete sentence is translated.'."\n"
."\n"
.'2: Returns both intermediate and final results for a sentence.',
'type' => 'integer',
'format' => 'int32',
'example' => '1',
'default' => '2',
'enum' => ['1', '2'],
'required' => false,
],
],
'required' => false,
'example' => '',
],
],
'required' => false,
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'result',
'description' => 'result',
'type' => 'object',
'properties' => [
'TaskId' => ['description' => 'The task ID.', 'type' => 'string', 'example' => '123', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8', 'title' => ''],
],
'example' => '',
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TaskId\\": \\"123\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\"\\n}","type":"json"}]',
'title' => 'Start Meeting Summary Job ',
'description' => '### Usage'."\n"
."\n"
.'Use this API to start a summary task for an online channel. If you need both a summary and subtitles, we recommend enabling all features.'."\n"
."\n"
.'### QPS limit'."\n"
."\n"
.'This API has a QPS limit of 10 queries per second per user. Exceeding this limit results in throttling, which can impact your business.'."\n"
."\n"
.'> Concurrency limit'."\n"
.'>'."\n"
.'> - Only one summary task can run on a channel at a time.'."\n"
.'>'."\n"
.'> - You can start and stop summary tasks for the same channel, but you must use a unique `TaskId` for each task.',
'changeSet' => [
['createdAt' => '2025-04-15T09:53:24.000Z', 'description' => 'Request parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartCloudNote'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'rtc:StartCloudNote',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'StartCloudRecord' => [
'summary' => 'Start a cloud recording task.',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'paid'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => 'appId', 'description' => 'The application ID. You can create and view the application ID in the console. Only one application ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'eo85****'],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['title' => 'channelName', 'description' => 'The existing channel ID. Only one channel ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'testid'],
],
[
'name' => 'TemplateId',
'in' => 'query',
'schema' => ['title' => 'templateId', 'description' => 'The template ID.', 'type' => 'string', 'required' => true, 'example' => '567', 'maxLength' => 128, 'minLength' => 1, 'pattern' => '^[\\w.-]+$'],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['title' => 'taskId', 'description' => 'The task ID of this cloud recording task. Only one task ID is supported. The task ID can contain letters, digits, underscores (\\_), and hyphens (-). Maximum length: 55 bytes.', 'type' => 'string', 'required' => false, 'example' => '123', 'maxLength' => 55, 'minLength' => 1, 'pattern' => '^[0-9a-zA-Z_-]+$'],
],
[
'name' => 'CropMode',
'in' => 'query',
'schema' => [
'title' => 'Crop mode. Valid values:'."\n"
.'- **1**: Crop while maintaining the aspect ratio.'."\n"
.'- **2**: Maintain aspect ratio and add borders (default value).'."\n"
.'- **3**: Stretch to fill.',
'description' => 'The cropping mode. Valid values:'."\n"
."\n"
.'- **1**: Crop while maintaining the aspect ratio.'."\n"
."\n"
.'- **2**: Pad while maintaining the aspect ratio. Default value.'."\n"
."\n"
.'- **3**: Stretch to fill the area.',
'type' => 'integer',
'format' => 'int32',
'example' => '2',
'default' => '2',
'enum' => ['1', '2', '3'],
'required' => false,
],
],
[
'name' => 'ReservePaneForNoCameraUser',
'in' => 'query',
'schema' => ['title' => 'Reserve pane for users who do not publish a camera stream. '."\n"
.'The default value is true, which means a pane is reserved for users who do not publish a camera stream. '."\n"
.'If set to false, no pane is reserved for such users.', 'description' => 'A placeholder for user panes when no camera stream is pushed. The default value is true, which reserves a pane for users who do not push a camera stream. If you set this parameter to false, no pane is reserved for users without a camera stream.', 'type' => 'boolean', 'default' => 'true', 'required' => false, 'example' => ''],
],
[
'name' => 'ShowDefaultBackgroundOnMute',
'in' => 'query',
'schema' => ['title' => 'Specifies whether to display the default pane background image when muted.'."\n"
.'- true: Display (default value)'."\n"
.'- false: Do not display (the configured local pane background image is still displayed)', 'description' => 'Show the default background image for muted users.'."\n"
."\n"
.'- true: Show the default background image. Default value.'."\n"
."\n"
.'- false: Do not show the default background image. Custom background images still display.', 'type' => 'boolean', 'default' => 'true', 'required' => false, 'example' => ''],
],
[
'name' => 'SubHighResolutionStream',
'in' => 'query',
'schema' => ['title' => 'Subscribe to a high resolution stream. '."\n"
.'- false: Subscribe to streams with different resolutions based on the pane area. (Default Value) '."\n"
.'- true: By default, fill with the highest resolution stream pushed by the client.', 'description' => 'Subscribe to high-resolution streams.'."\n"
."\n"
.'- false: Subscribe to streams of different resolutions based on the pane area. Default value.'."\n"
."\n"
.'- true: Use the highest resolution stream published by the client.', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => ''],
],
[
'name' => 'StartWithoutChannel',
'in' => 'query',
'schema' => ['title' => 'Specifies whether to allow job creation when the channel does not exist.'."\n"
.'- true: Yes'."\n"
.'- false: No (default value)', 'description' => 'Start the recording task even if the channel does not exist.'."\n"
."\n"
.'- true: Yes.'."\n"
."\n"
.'- false: No. Default value.', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => ''],
],
[
'name' => 'StartWithoutChannelWaitTime',
'in' => 'query',
'schema' => ['title' => 'This parameter takes effect only when the StartWithoutChannel parameter is true. It specifies the duration, in seconds, that a job waits if the channel is not enabled. The value must be in the range of [30, 120].', 'description' => 'The wait time before starting the recording task if the channel does not exist. This parameter takes effect only when StartWithoutChannel is set to true. Unit: seconds. Valid values: 30 to 120.', 'type' => 'integer', 'format' => 'int32', 'example' => '30', 'default' => '30', 'required' => false],
],
[
'name' => 'Annotation',
'in' => 'query',
'schema' => [
'title' => 'Annotation Toggle. ',
'description' => 'Enable or disable annotation.',
'type' => 'string',
'example' => 'disable',
'default' => 'enable',
'enum' => ['disable', 'enable'],
'required' => false,
],
],
[
'name' => 'StorageConfig',
'in' => 'query',
'style' => 'flat',
'schema' => [
'title' => 'storageConfig',
'description' => 'Storage configuration.',
'type' => 'object',
'properties' => [
'Vendor' => ['title' => 'vendor', 'description' => 'The storage platform. Valid values:'."\n"
."\n"
.'| vendor | Object Storage Service | Remarks |'."\n"
.'| ------ | ----------------------- | ------------- |'."\n"
.'| 1 | AliYun OSS | Alibaba Cloud |'."\n"
.'| 2 | AliYun Apsara Stack OSS | Apsara Stack |', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'minimum' => '1', 'example' => '1'],
'Region' => ['title' => 'region', 'description' => 'The storage region.'."\n"
."\n"
.'| Region | AliYun OSS |'."\n"
.'| ------ | -------------------------------------------- |'."\n"
.'| 0 | CN_Hangzhou |'."\n"
.'| 1 | CN_Shanghai |'."\n"
.'| 2 | CN_Qingdao |'."\n"
.'| 3 | CN_Beijing |'."\n"
.'| 4 | CN_Zhangjiakou |'."\n"
.'| 5 | CN_Huhehaote |'."\n"
.'| 6 | CN_Shenzhen |'."\n"
.'| 7 | CN_Hongkong |'."\n"
.'| 8 | US_West_1 |'."\n"
.'| 9 | US_East_1 |'."\n"
.'| 10 | AP_Southeast_1 |'."\n"
.'| 11 | AP_Southeast_2 (decommissioned. Do not use.) |'."\n"
.'| 12 | AP_Southeast_3 |'."\n"
.'| 13 | AP_Southeast_5 |'."\n"
.'| 14 | AP_Northeast_1 |'."\n"
.'| 15 | AP_South_1 (decommissioned. Do not use.) |'."\n"
.'| 16 | EU_Central_1 |'."\n"
.'| 17 | EU_West_1 |'."\n"
.'| 18 | EU_East_1(ME_East_1) |'."\n"
.'| 19 | AP_Southeast_6 |'."\n"
.'| 20 | CN_Heyuan |'."\n"
.'| 21 | CN_Guangzhou |'."\n"
.'| 22 | CN_Chengdu |'."\n"
.'| 23 | CN_Nanjing |'."\n"
.'| 24 | CN_Fuzhou |'."\n"
.'| 25 | CN_Wulanchabu |'."\n"
.'| 26 | CN_Northeast_2 |'."\n"
.'| 27 | CN_Southeast_7 |'."\n"
.'| 28 | CN_Wuhan_LR |'."\n"
.'| 100 | oss-cn-hzjbp |'."\n"
.'| 101 | oss-cn-shanghai-finance-1 |'."\n"
.'| 102 | oss-cn-shenzhen-finance-1 |'."\n"
.'| 103 | oss-cn-beijing-finance-1 |'."\n"
.'| 104 | oss-cn-hzfinance |'."\n"
.'| 105 | oss-cn-shanghai-finance-1-pub |'."\n"
.'| 106 | oss-cn-szfinance |'."\n"
.'| 107 | oss-cn-beijing-finance-1-pub |'."\n"
."\n"
.'| Region | AliYun Apsara Stack OSS |'."\n"
.'| ------ | ----------------------- |'."\n"
.'| 0 | default |', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '0'],
'Bucket' => ['title' => 'bucket', 'description' => 'The bucket name.', 'type' => 'string', 'required' => true, 'example' => 'test-bucket-for-recording', 'minLength' => 1],
'AccessKey' => ['title' => 'accessKey', 'description' => 'The AccessKey. Grant the RAM user associated with this AccessKey the **write** permission on the Object Storage Service product of the corresponding cloud provider. Otherwise, the recording files cannot be written to the bucket.', 'type' => 'string', 'required' => true, 'example' => 'LTAX***', 'minLength' => 1],
'SecretKey' => ['title' => 'secretKey', 'description' => 'The SecretKey.', 'type' => 'string', 'required' => true, 'example' => 'APb6qWYEzKtYxE***', 'minLength' => 1],
'Endpoint' => ['title' => 'PrivateLink connection address for Apsara Stack. ', 'description' => 'The private endpoint for Apsara Stack.', 'type' => 'string', 'required' => false, 'example' => 'https://aliyuns.dalian.oss.com', 'minLength' => 1],
],
'required' => true,
'example' => 'testid',
],
],
[
'name' => 'Panes',
'in' => 'query',
'style' => 'flat',
'schema' => [
'title' => 'panes',
'description' => 'Cell configuration settings.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'VideoOrder' => [
'title' => 'Fill order when SourceType is video.'."\n"
."\n"
.'- screenFirst: Screen sharing takes precedence (default value).'."\n"
.'- cameraFirst: Camera takes precedence.',
'description' => 'The order in which video sources are filled when SourceType is set to video.'."\n"
."\n"
.'- screenFirst: Prioritize screen sharing. Default value.'."\n"
."\n"
.'- cameraFirst: Prioritize camera streams.',
'type' => 'string',
'required' => false,
'example' => 'cameraFirst',
'default' => 'screenFirst',
'enum' => ['cameraFirst', 'screenFirst'],
],
'SourceType' => [
'title' => 'sourceType',
'description' => 'The media type of the pane. Valid values:'."\n"
."\n"
.'- **video**: Camera or screen-sharing stream. Default value.'."\n"
."\n"
.'- **camera**: Camera stream.'."\n"
."\n"
.'- **screen**: Screen-sharing stream.'."\n"
."\n"
.'- **whiteboard**: Whiteboard.',
'type' => 'string',
'required' => false,
'example' => 'video',
'default' => 'video',
'enum' => ['video', 'camera', 'screen', 'whiteboard'],
],
'Images' => [
'maxItems' => 3,
'description' => 'Local image watermarks for panes.',
'title' => 'Local image watermark for the pane.',
'type' => 'array',
'items' => [
'description' => '',
'type' => 'object',
'properties' => [
'PaneImageCropMode' => [
'title' => 'Cropping mode. Valid values:'."\n"
.'- **1**: Crop while maintaining aspect ratio.'."\n"
.'- **2**: Maintain aspect ratio with padding.'."\n"
.'- **3**: Stretch to fill.',
'description' => 'The cropping mode. Valid values:'."\n"
."\n"
.'- **1**: Crop while maintaining the aspect ratio.'."\n"
."\n"
.'- **2**: Pad while maintaining the aspect ratio.'."\n"
."\n"
.'- **3**: Stretch to fill the area.',
'type' => 'integer',
'format' => 'int32',
'example' => '2',
'enum' => ['1', '2', '3'],
'required' => false,
],
'Alpha' => ['title' => 'Transparency.', 'description' => 'The transparency level.', 'type' => 'number', 'format' => 'double', 'example' => '0.9', 'default' => '1.0', 'required' => false],
'X' => ['description' => 'The x-coordinate.', 'type' => 'number', 'title' => '', 'format' => 'double', 'required' => true, 'example' => '0.2'],
'Y' => ['description' => 'The y-coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'Height' => ['description' => 'The height.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'Width' => ['description' => 'The width.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'Layer' => ['title' => 'z-axis level.', 'description' => 'The z-axis layer.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'default' => '0', 'required' => false],
'Url' => ['title' => 'Image URL.', 'description' => 'The image content cannot be updated during streaming.', 'type' => 'string', 'required' => true, 'example' => 'https://aliyun.com/123xx.jpg', 'maxLength' => 1024, 'minLength' => 1],
'Display' => [
'title' => 'Watermark display timing. '."\n"
.'- streamOnly: Displayed when the user has a video stream (default value). '."\n"
.'- backup: Displayed when the user does not have a video stream. '."\n"
.'- always: Always displayed.',
'description' => 'When to display the watermark.'."\n"
."\n"
.'- streamOnly: Display only when the current user has a video stream. Default value.'."\n"
."\n"
.'- backup: Display only when the current user does not have a video stream.'."\n"
."\n"
.'- always: Always display.',
'type' => 'string',
'example' => 'backup',
'default' => 'streamOnly',
'enum' => ['streamOnly', 'backup', 'always'],
'required' => false,
],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'example' => '',
],
'Texts' => [
'maxItems' => 3,
'description' => 'Local text watermarks for panes.',
'title' => 'Pane-local text watermark.',
'type' => 'array',
'items' => [
'description' => '',
'type' => 'object',
'properties' => [
'BoxBorderw' => ['title' => 'Rectangle border line width. ', 'description' => 'The border width of the bounding box.', 'type' => 'integer', 'format' => 'int32', 'example' => '5', 'default' => '5', 'required' => false],
'FontColor' => [
'description' => 'The font color.',
'title' => 'Font color. ',
'type' => 'object',
'properties' => [
'R' => ['description' => 'The red component.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '255', 'required' => false, 'title' => ''],
'B' => ['description' => 'The blue component.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '255', 'required' => false, 'title' => ''],
'G' => ['description' => 'The green component.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '255', 'required' => false, 'title' => ''],
],
'required' => false,
'example' => '',
],
'Texture' => ['title' => 'Watermark content. ', 'description' => 'The watermark content.', 'type' => 'string', 'required' => true, 'example' => '文字水印', 'maxLength' => 128, 'minLength' => 1],
'Layer' => ['title' => 'z-axis level. ', 'description' => 'The z-axis layer.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'default' => '0', 'required' => false],
'Font' => ['title' => 'Font. '."\n"
.'- **0**: Alibaba PuHuiTi Regular '."\n"
.'- **1**: Alibaba PuHuiTi Light '."\n"
.'- **2**: Alibaba PuHuiTi Medium '."\n"
.'- **3**: Alibaba PuHuiTi Bold '."\n"
.'- **4**: Alibaba PuHuiTi Heavy '."\n"
.'- **5**: Ali Mama ShuHeiTi '."\n"
.'- **6**: DingTalk JinBuTi '."\n"
.'- **7**: Ali Mama DaoLiTi '."\n"
.'- **8**: Ali Mama DongFang DaKai '."\n"
.'- **9**: Ali Mama FangYuanTi '."\n", 'description' => 'The font. Valid values:'."\n"
."\n"
.'- **0**: Alibaba PuHuiTi Regular'."\n"
."\n"
.'- **1**: Alibaba PuHuiTi Light'."\n"
."\n"
.'- **2**: Alibaba PuHuiTi Medium'."\n"
."\n"
.'- **3**: Alibaba PuHuiTi Bold'."\n"
."\n"
.'- **4**: Alibaba PuHuiTi Heavy'."\n"
."\n"
.'- **5**: Alimama Shuhei Ti'."\n"
."\n"
.'- **6**: DingTalk Jinbu Ti'."\n"
."\n"
.'- **7**: Alimama Dao Li Ti'."\n"
."\n"
.'- **8**: Alimama Dongfang Dakaishu'."\n"
."\n"
.'- **9**: Alimama Fangyuan Ti', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'default' => '0', 'required' => false],
'BoxColor' => [
'description' => 'The bounding box color.',
'title' => 'Rectangle box color. ',
'type' => 'object',
'properties' => [
'R' => ['description' => 'The red component.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '30', 'required' => false, 'title' => ''],
'B' => ['description' => 'The blue component.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '30', 'required' => false, 'title' => ''],
'G' => ['description' => 'The green component.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '30', 'required' => false, 'title' => ''],
],
'required' => false,
'example' => '',
],
'FontSize' => ['title' => 'Font size. ', 'description' => 'The font size.', 'type' => 'integer', 'format' => 'int32', 'example' => '36', 'default' => '30', 'required' => false],
'Alpha' => ['title' => 'Watermark transparency. ', 'description' => 'The watermark transparency.', 'type' => 'number', 'format' => 'double', 'example' => '0.9', 'default' => '1', 'required' => false],
'X' => ['description' => 'The x-coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'HasBox' => ['title' => 'Whether a rectangle box is required.', 'description' => 'Whether to draw a bounding box.', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => ''],
'Y' => ['description' => 'The y-coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'BoxAlpha' => ['title' => 'Rectangle box transparency.', 'description' => 'The bounding box transparency.', 'type' => 'number', 'format' => 'double', 'example' => '0.6', 'default' => '0.6', 'required' => false],
'Display' => [
'title' => 'Watermark display timing.'."\n"
.'- streamOnly: Display when the current user has a video stream (default value).'."\n"
.'- backup: Display when the current user does not have a video stream.'."\n"
.'- always: Always display.',
'description' => 'When to display the watermark.'."\n"
."\n"
.'- streamOnly: Display only when the current user has a video stream. Default value.'."\n"
."\n"
.'- backup: Display only when the current user does not have a video stream.'."\n"
."\n"
.'- always: Always display.',
'type' => 'string',
'example' => 'backup',
'default' => 'streamOnly',
'enum' => ['streamOnly', 'backup', 'always'],
'required' => false,
],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'example' => '',
],
'PaneCropMode' => [
'title' => 'Crop mode. Valid values:'."\n"
.'- **1**: Crop while maintaining aspect ratio.'."\n"
.'- **2**: Maintain aspect ratio with padding.'."\n"
.'- **3**: Stretch to fill.',
'description' => 'The cropping mode. Valid values:'."\n"
."\n"
.'- **1**: Crop while maintaining the aspect ratio.'."\n"
."\n"
.'- **2**: Pad while maintaining the aspect ratio.'."\n"
."\n"
.'- **3**: Stretch to fill the area.',
'type' => 'integer',
'format' => 'int32',
'example' => '3',
'enum' => ['1', '2', '3'],
'required' => false,
],
'PaneId' => ['title' => 'paneId', 'description' => 'The layout ID. Starts from 0.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '0'],
'Source' => ['title' => 'source', 'description' => 'The media source for the pane. You can specify a user ID. To specify a particular user type, use wildcards. Supported wildcards:'."\n"
."\n"
.'- **$ActiveSpeaker**: The current active speaker in the channel.'."\n"
."\n"
.'- **$ScreenShare**: The screen-sharing user. If multiple users share their screens, they are filled in order.', 'type' => 'string', 'required' => false, 'example' => '22'],
'Backgrounds' => [
'maxItems' => 3,
'description' => 'Background images.',
'title' => 'Pane-local background image.',
'type' => 'array',
'items' => [
'description' => '',
'type' => 'object',
'properties' => [
'Alpha' => ['title' => 'Transparency.', 'description' => 'The transparency level.', 'type' => 'number', 'format' => 'double', 'example' => '0.9', 'default' => '1.0', 'required' => false],
'X' => ['description' => 'The x-coordinate.', 'type' => 'number', 'title' => '', 'format' => 'double', 'required' => true, 'example' => '0.2'],
'Y' => ['description' => 'The y-coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'PaneBackgroundCropMode' => [
'title' => 'Cropping mode. Valid values:'."\n"
.'- **1**: Crop while maintaining aspect ratio.'."\n"
.'- **2**: Maintain aspect ratio with padding.'."\n"
.'- **3**: Stretch to fill.',
'description' => 'The cropping mode. Valid values:'."\n"
."\n"
.'- **1**: Crop while maintaining the aspect ratio.'."\n"
."\n"
.'- **2**: Pad while maintaining the aspect ratio.'."\n"
."\n"
.'- **3**: Stretch to fill the area.',
'type' => 'integer',
'format' => 'int32',
'example' => '2',
'enum' => ['1', '2', '3'],
'required' => false,
],
'Height' => ['description' => 'The height.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'Width' => ['description' => 'The width.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.3', 'title' => ''],
'Layer' => ['title' => 'Z-axis level.', 'description' => 'The z-axis layer.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'default' => '0', 'required' => false],
'Url' => ['title' => 'Image URL.', 'description' => 'The image URL.', 'type' => 'string', 'required' => true, 'example' => 'https://aliyun.com/123xx.jpg', 'maxLength' => 1024, 'minLength' => 1],
'Display' => [
'title' => 'Watermark display timing.'."\n"
.'- streamOnly: Display when the current user has a video stream (default value).'."\n"
.'- backup: Display when the current user does not have a video stream.'."\n"
.'- always: Always display.',
'description' => 'When to display the background image.'."\n"
."\n"
.'- streamOnly: Display only when the current user has a video stream. Default value.'."\n"
."\n"
.'- backup: Display only when the current user does not have a video stream.'."\n"
."\n"
.'- always: Always display.',
'type' => 'string',
'example' => 'backup',
'default' => 'streamOnly',
'enum' => ['streamOnly', 'backup', 'always'],
'required' => false,
],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'example' => '',
],
'Whiteboard' => [
'description' => 'Whiteboard configuration.',
'title' => 'Whiteboard settings.',
'type' => 'object',
'properties' => [
'WhiteboardId' => ['title' => 'Whiteboard ID.', 'description' => 'The whiteboard ID. Default value: default.', 'type' => 'string', 'required' => false, 'example' => 'default', 'default' => 'default'],
],
'required' => false,
'example' => '',
],
'ReservePaneForOfflineUser' => ['title' => 'Reserve pane for users who have not joined the meeting.'."\n"
."\n"
.'Default value is true, which means that if a specific user or wildcard user specified in the grid layout is offline, the pane remains reserved.'."\n"
.'If set to false, when a specific user or wildcard user specified in the grid layout is offline, the pane displays a video stream according to the Auto Fill order.', 'description' => 'If set to true, reserve a pane when the specified user or wildcard user goes offline. Default value: true.'."\n"
."\n"
.'If set to false, display video streams in auto-fill order when the specified user or wildcard user goes offline.', 'type' => 'boolean', 'default' => 'true', 'required' => false, 'example' => ''],
],
'required' => false,
'description' => '',
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 16,
'example' => 'eo85****',
],
],
[
'name' => 'Images',
'in' => 'query',
'style' => 'flat',
'schema' => [
'maxItems' => 3,
'description' => 'Global image watermarks.',
'title' => 'Global image watermark.',
'type' => 'array',
'items' => [
'description' => '',
'type' => 'object',
'properties' => [
'Alpha' => ['title' => 'Transparency.', 'description' => 'The transparency level.', 'type' => 'number', 'format' => 'double', 'example' => '0.9', 'default' => '1.0', 'required' => false],
'X' => ['description' => 'The x-coordinate.', 'type' => 'number', 'title' => '', 'format' => 'double', 'required' => true, 'example' => '0.2'],
'Y' => ['description' => 'The y-coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.3', 'title' => ''],
'Height' => ['description' => 'The height.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'ImageCropMode' => [
'title' => 'Cropping mode. Valid values:'."\n"
.'- **1**: Crop while maintaining aspect ratio.'."\n"
.'- **2**: Maintain aspect ratio with padding.'."\n"
.'- **3**: Stretch to fill.',
'description' => 'The cropping mode. Valid values:'."\n"
."\n"
.'- **1**: Crop while maintaining the aspect ratio.'."\n"
."\n"
.'- **2**: Pad while maintaining the aspect ratio.'."\n"
."\n"
.'- **3**: Stretch to fill the area.',
'type' => 'integer',
'format' => 'int32',
'example' => '2',
'enum' => ['1', '2', '3'],
'required' => false,
],
'Width' => ['description' => 'The width.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'Layer' => ['title' => 'z-axis level.', 'description' => 'The z-axis layer.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'default' => '0', 'required' => false],
'Url' => ['title' => 'Image URL.', 'description' => 'The image URL. The image content cannot be updated during stream ingest.', 'type' => 'string', 'required' => true, 'example' => 'https://aliyun.com/123xxx.jpg', 'maxLength' => 1024, 'minLength' => 1],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'example' => 'disable',
],
],
[
'name' => 'Backgrounds',
'in' => 'query',
'style' => 'flat',
'schema' => [
'maxItems' => 3,
'description' => 'Background images.',
'title' => 'Background images.',
'type' => 'array',
'items' => [
'description' => '',
'type' => 'object',
'properties' => [
'BackgroundCropMode' => [
'title' => 'Crop mode. Valid values: '."\n"
.'- **1**: Crop while maintaining the aspect ratio. '."\n"
.'- **2**: Maintain aspect ratio and add edges. '."\n"
.'- **3**: Stretch to fill the area. ',
'description' => 'The cropping mode. Valid values:'."\n"
."\n"
.'- **1**: Crop while maintaining the aspect ratio.'."\n"
."\n"
.'- **2**: Pad while maintaining the aspect ratio.'."\n"
."\n"
.'- **3**: Stretch to fill the area.',
'type' => 'integer',
'format' => 'int32',
'example' => '2',
'enum' => ['1', '2', '3'],
'required' => false,
],
'Alpha' => ['title' => 'Transparency. ', 'description' => 'The transparency level.', 'type' => 'number', 'format' => 'double', 'example' => '0.9', 'default' => '1.0', 'required' => false],
'X' => ['title' => 'X-coordinate. ', 'description' => 'The x-coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2'],
'Y' => ['title' => 'Y-coordinate. ', 'description' => 'The y-coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2'],
'Height' => ['title' => 'Height. ', 'description' => 'The height.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2'],
'Width' => ['title' => 'Width. ', 'description' => 'The width.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2'],
'Layer' => ['title' => 'Z-axis level. ', 'description' => 'The z-axis layer.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'default' => '0', 'required' => false],
'Url' => ['title' => 'Image URL. ', 'description' => 'The image URL.', 'type' => 'string', 'required' => true, 'example' => 'https://aliyun.com/123.jpg', 'maxLength' => 1024, 'minLength' => 1],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'example' => '',
],
],
[
'name' => 'Texts',
'in' => 'query',
'style' => 'flat',
'schema' => [
'maxItems' => 3,
'description' => 'Global text watermarks.',
'title' => 'Global text watermark.',
'type' => 'array',
'items' => [
'description' => '',
'type' => 'object',
'properties' => [
'BoxBorderw' => ['title' => 'Rectangle border width.', 'description' => 'The border width of the bounding box.', 'type' => 'integer', 'format' => 'int32', 'example' => '5', 'default' => '5', 'required' => false],
'BoxColor' => [
'description' => 'The bounding box color.',
'title' => 'Rectangle color.',
'type' => 'object',
'properties' => [
'R' => ['description' => 'The red component.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '30', 'required' => false, 'title' => ''],
'B' => ['description' => 'The blue component.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '30', 'required' => false, 'title' => ''],
'G' => ['description' => 'The green component.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '30', 'required' => false, 'title' => ''],
],
'required' => false,
'example' => '',
],
'FontSize' => ['title' => 'Font size.', 'description' => 'The font size.', 'type' => 'integer', 'format' => 'int32', 'example' => '36', 'default' => '30', 'required' => false],
'Alpha' => ['title' => 'Watermark transparency.', 'description' => 'The watermark transparency.', 'type' => 'number', 'format' => 'double', 'example' => '0.1', 'default' => '1', 'required' => false],
'FontColor' => [
'description' => 'The font color.',
'title' => 'Font color.',
'type' => 'object',
'properties' => [
'R' => ['description' => 'The red component.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '255', 'required' => false, 'title' => ''],
'B' => ['description' => 'The blue component.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '255', 'required' => false, 'title' => ''],
'G' => ['description' => 'The green component.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '255', 'required' => false, 'title' => ''],
],
'required' => false,
'example' => '',
],
'X' => ['description' => 'The x-coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'HasBox' => ['title' => 'Indicates whether a rectangular box is required.', 'description' => 'Whether to draw a bounding box.', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => ''],
'Y' => ['description' => 'The y-coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'Texture' => ['title' => 'Watermark content.', 'description' => 'The watermark content.', 'type' => 'string', 'required' => true, 'example' => '文字水印', 'maxLength' => 128, 'minLength' => 1],
'Layer' => ['title' => 'Z-axis level.', 'description' => 'The z-axis layer.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'default' => '0', 'required' => false],
'Font' => ['title' => 'Font. '."\n"
.'- **0**: Alibaba PuHuiTi Regular '."\n"
.'- **1**: Alibaba PuHuiTi Light '."\n"
.'- **2**: Alibaba PuHuiTi Medium '."\n"
.'- **3**: Alibaba PuHuiTi Bold '."\n"
.'- **4**: Alibaba PuHuiTi Heavy '."\n"
.'- **5**: Ali Mama Shuhei '."\n"
.'- **6**: DingTalk Jinbu Font '."\n"
.'- **7**: Ali Mama Dao Li Font '."\n"
.'- **8**: Ali Mama Dongfang Dakai '."\n"
.'- **9**: Ali Mama Fangyuan Font '."\n", 'description' => 'The font. Valid values:'."\n"
."\n"
.'- **0**: Alibaba PuHuiTi Regular'."\n"
."\n"
.'- **1**: Alibaba PuHuiTi Light'."\n"
."\n"
.'- **2**: Alibaba PuHuiTi Medium'."\n"
."\n"
.'- **3**: Alibaba PuHuiTi Bold'."\n"
."\n"
.'- **4**: Alibaba PuHuiTi Heavy'."\n"
."\n"
.'- **5**: Alimama Shuhei Ti'."\n"
."\n"
.'- **6**: DingTalk Jinbu Ti'."\n"
."\n"
.'- **7**: Alimama Dao Li Ti'."\n"
."\n"
.'- **8**: Alimama Dongfang Dakaishu'."\n"
."\n"
.'- **9**: Alimama Fangyuan Ti', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'default' => '0', 'required' => false],
'BoxAlpha' => ['title' => 'Rectangle transparency. ', 'description' => 'The bounding box transparency.', 'type' => 'number', 'format' => 'double', 'example' => '0.6', 'default' => '0.6', 'required' => false],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'example' => '',
],
],
[
'name' => 'ClockWidgets',
'in' => 'query',
'style' => 'flat',
'schema' => [
'maxItems' => 3,
'description' => 'Global clock watermarks.',
'title' => 'Global clock watermark.',
'type' => 'array',
'items' => [
'description' => '',
'type' => 'object',
'properties' => [
'BoxBorderw' => ['title' => 'Rectangle border line width.', 'description' => 'The border width of the bounding box.', 'type' => 'integer', 'format' => 'int32', 'example' => '5', 'default' => '5', 'required' => false],
'BoxColor' => [
'description' => 'The bounding box color.',
'title' => 'Rectangle border color.',
'type' => 'object',
'properties' => [
'R' => ['description' => 'The red component.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '30', 'required' => false, 'title' => ''],
'B' => ['description' => 'The blue component.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '30', 'required' => false, 'title' => ''],
'G' => ['description' => 'The green component.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '30', 'required' => false, 'title' => ''],
],
'required' => false,
'example' => '',
],
'FontSize' => ['title' => 'Clock font size.', 'description' => 'The clock font size.', 'type' => 'integer', 'format' => 'int32', 'example' => '30', 'default' => '30', 'required' => false],
'Zone' => ['title' => 'Time Zone.', 'description' => 'The time zone.', 'type' => 'integer', 'format' => 'int32', 'example' => '8', 'default' => '8', 'required' => false],
'Alpha' => ['title' => 'Transparency.', 'description' => 'The transparency level.', 'type' => 'number', 'format' => 'double', 'example' => '0.9', 'default' => '1', 'required' => false],
'FontColor' => [
'description' => 'The font color.',
'title' => 'Font color.',
'type' => 'object',
'properties' => [
'R' => ['description' => 'The red component.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '255', 'required' => false, 'title' => ''],
'B' => ['description' => 'The blue component.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '255', 'required' => false, 'title' => ''],
'G' => ['description' => 'The green component.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '255', 'required' => false, 'title' => ''],
],
'required' => false,
'example' => '',
],
'X' => ['description' => 'The x-coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'HasBox' => ['title' => 'Indicates whether a rectangular box is required.', 'description' => 'Whether to draw a bounding box.', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => ''],
'Y' => ['description' => 'The y-coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'Layer' => ['title' => 'z-axis level.', 'description' => 'The z-axis layer.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'default' => '0', 'required' => false],
'Font' => ['title' => 'Font. '."\n"
.'- **0**: Alibaba PuHuiTi Regular '."\n"
.'- **1**: Alibaba PuHuiTi Light '."\n"
.'- **2**: Alibaba PuHuiTi Medium '."\n"
.'- **3**: Alibaba PuHuiTi Bold '."\n"
.'- **4**: Alibaba PuHuiTi Heavy '."\n"
.'- **5**: AliMama ShuHeiTi '."\n"
.'- **6**: DingTalk JinBuTi '."\n"
.'- **7**: AliMama DaoLiTi '."\n"
.'- **8**: AliMama DongFang DaKai '."\n"
.'- **9**: AliMama FangYuanTi '."\n", 'description' => 'The font. Valid values:'."\n"
."\n"
.'- **0**: Alibaba PuHuiTi Regular'."\n"
."\n"
.'- **1**: Alibaba PuHuiTi Light'."\n"
."\n"
.'- **2**: Alibaba PuHuiTi Medium'."\n"
."\n"
.'- **3**: Alibaba PuHuiTi Bold'."\n"
."\n"
.'- **4**: Alibaba PuHuiTi Heavy'."\n"
."\n"
.'- **5**: Alimama Shuhei Ti'."\n"
."\n"
.'- **6**: DingTalk Jinbu Ti'."\n"
."\n"
.'- **7**: Alimama Dao Li Ti'."\n"
."\n"
.'- **8**: Alimama Dongfang Dakaishu'."\n"
."\n"
.'- **9**: Alimama Fangyuan Ti', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'default' => '0', 'required' => false],
'BoxAlpha' => ['title' => 'Rectangle transparency. ', 'description' => 'The bounding box transparency.', 'type' => 'number', 'format' => 'double', 'example' => '0.6', 'default' => '0.6', 'required' => false],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'example' => '',
],
],
[
'name' => 'RegionColor',
'in' => 'query',
'style' => 'flat',
'schema' => [
'description' => 'The global pane background color.',
'title' => 'Global grid background color. ',
'type' => 'object',
'properties' => [
'R' => ['title' => 'R. ', 'description' => 'R.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '-1', 'example' => '255', 'default' => '0', 'required' => false],
'G' => ['title' => 'G. ', 'description' => 'G.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '-1', 'example' => '255', 'default' => '0', 'required' => false],
'B' => ['title' => 'B. ', 'description' => 'B', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '-1', 'example' => '255', 'default' => '0', 'required' => false],
],
'required' => false,
'example' => '',
],
],
[
'name' => 'BgColor',
'in' => 'query',
'style' => 'flat',
'schema' => [
'description' => 'The global background color.',
'title' => 'Global background color',
'type' => 'object',
'properties' => [
'R' => ['title' => 'R.', 'description' => 'R.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '0', 'required' => false],
'G' => ['title' => 'G.', 'description' => 'G.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '0', 'required' => false],
'B' => ['title' => 'B.', 'description' => 'B', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '0', 'required' => false],
],
'required' => false,
'example' => '',
],
],
[
'name' => 'LayoutSpecifiedUsers',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The list of specified users for layout generation. This includes blacklists and whitelists.'."\n"
."\n"
.'Whitelist: Subscribes to the video streams of specified users in the channel.'."\n"
."\n"
.'- If a whitelist is set, panes are filled sequentially based on the list.'."\n"
."\n"
.'- When switching between multiple template layouts, only users in the whitelist are considered.'."\n"
."\n"
.'Blacklist: Does not subscribe to the video streams of specified users in the channel.'."\n"
."\n"
.'- When switching between multiple template layouts, only users not in the blacklist are considered.',
'title' => 'Blacklist/Whitelist Settings. ',
'type' => 'object',
'properties' => [
'Type' => [
'title' => 'User list type: blacklist is "black", whitelist is "white". ',
'description' => 'The type of user list. \\`black\\` for blacklist, \\`white\\` for whitelist.',
'type' => 'string',
'required' => true,
'enum' => ['white', 'black'],
'example' => 'white',
],
'Ids' => [
'minItems' => 1,
'maxItems' => 16,
'description' => 'A list of specified user IDs.',
'title' => 'List of specified User IDs. ',
'type' => 'array',
'items' => ['title' => 'Specific User ID. ', 'description' => 'A specific user ID.', 'type' => 'string', 'required' => true, 'example' => '123'],
'required' => true,
'example' => '',
],
],
'required' => false,
'example' => '',
],
],
[
'name' => 'RecordMode',
'in' => 'query',
'schema' => [
'title' => '0: Composite stream recording (default value) '."\n"
.'1: Single stream recording (single stream recording does not support updates)',
'description' => '0: Composite recording. Default value.'."\n"
.'1: Individual recording. Individual recording does not support updates.',
'type' => 'integer',
'format' => 'int32',
'default' => '0',
'enum' => ['0', '1'],
'required' => false,
'example' => '',
],
],
[
'name' => 'SingleStreamingRecord',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'Parameters for individual recording.',
'title' => 'Parameters for single-stream recording. ',
'type' => 'object',
'properties' => [
'AvMerge' => ['title' => 'Whether to merge the audio file into the video file. Default is false.', 'description' => 'Merge audio files into the video file. Default value: false.', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => ''],
'SpecifiedStreams' => [
'minItems' => 1,
'maxItems' => 3,
'description' => 'The stream to record in single-stream recording mode.',
'title' => 'The streams specified for single-stream recording.',
'type' => 'array',
'items' => [
'description' => '',
'type' => 'object',
'properties' => [
'StreamType' => [
'title' => 'Stream type. Valid values:'."\n"
.'- mic: audio stream'."\n"
.'- camera: camera stream'."\n"
.'- screen-cast: screen sharing stream',
'description' => 'The stream type. Valid values:'."\n"
."\n"
.'- mic: Audio stream.',
'type' => 'string',
'required' => true,
'enum' => ['mic', 'camera', 'screen-cast'],
'example' => '',
],
'Type' => [
'title' => 'Blacklist and whitelist type for single-stream recording.'."\n"
.'- white: whitelist, indicating that the stream is recorded',
'description' => 'The type of blacklist or whitelist for individual stream recording.'."\n"
."\n"
.'- white: Whitelist. Records this stream.',
'type' => 'string',
'example' => 'white',
'default' => 'white',
'enum' => ['white'],
'required' => false,
],
'Ids' => [
'minItems' => 1,
'maxItems' => 16,
'description' => 'A list of user IDs.',
'title' => 'List of User IDs.',
'type' => 'array',
'items' => ['title' => 'User ID.', 'description' => 'A user ID.', 'type' => 'string', 'required' => true, 'example' => ''],
'required' => true,
'example' => '',
],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => true,
'example' => '',
],
'TranscodingParameters' => [
'description' => 'By default, individual recordings are saved in MP3 format. Specify this parameter if transcoding is needed.',
'title' => 'By default, single-stream recordings are saved in MP3 format. Specify this parameter if transcoding is required.',
'type' => 'object',
'properties' => [
'Audio' => [
'description' => 'Audio encoding.',
'title' => 'Audio encoding. ',
'type' => 'object',
'properties' => [
'Bitrate' => [
'title' => 'Bitrate, in kbps. ',
'description' => 'The bitrate in kbps.',
'type' => 'integer',
'format' => 'int32',
'default' => '128',
'enum' => ['64', '128', '192'],
'required' => false,
'example' => '',
],
'Codec' => [
'title' => 'Audio codec format. Options: '."\n"
.'- mp3 '."\n"
.'- aac ',
'description' => 'The audio codec format. Optional:'."\n"
."\n"
.'- mp3'."\n"
."\n"
.'- aac',
'type' => 'string',
'default' => 'mp3',
'enum' => ['mp3', 'aac'],
'required' => false,
'example' => '',
],
'SampleRate' => [
'title' => 'Sample rate. Options: '."\n"
.'- 8000 '."\n"
.'- 16000 '."\n"
.'- 32000 '."\n"
.'- 44100 '."\n"
.'- 48000 ',
'description' => 'The sample rate. Optional:'."\n"
."\n"
.'- 8000'."\n"
."\n"
.'- 16000'."\n"
."\n"
.'- 32000'."\n"
."\n"
.'- 44100'."\n"
."\n"
.'- 48000',
'type' => 'integer',
'format' => 'int32',
'default' => '48000',
'enum' => ['16000', '32000', '48000', '8000', '44100'],
'required' => false,
'example' => '',
],
],
'required' => false,
'example' => '',
],
'Container' => [
'title' => 'Recording container. '."\n"
.'- mp3 '."\n"
.'- aac '."\n"
.'- mp4 '."\n"
.'- ts ',
'description' => 'The recording file container.'."\n"
."\n"
.'- mp3'."\n"
."\n"
.'- aac'."\n"
."\n"
.'- mp4'."\n"
."\n"
.'- ts',
'type' => 'string',
'example' => 'aac',
'default' => 'mp3',
'enum' => ['mp3', 'aac', 'mp4', 'ts'],
'required' => false,
],
],
'required' => false,
'example' => '',
],
],
'required' => false,
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'result',
'description' => 'result',
'type' => 'object',
'properties' => [
'TaskId' => ['title' => 'taskId', 'description' => 'The task ID for this cloud recording.', 'type' => 'string', 'example' => '123'],
'RequestId' => ['title' => 'requestId', 'description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8'],
],
'example' => '',
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TaskId\\": \\"123\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\"\\n}","type":"json"}]',
'title' => 'Start Cloud Recording Job ',
'description' => '### Usage notes'."\n"
."\n"
.'Start cloud recording for an online channel.'."\n"
."\n"
.'### QPS limit'."\n"
."\n"
.'The maximum queries per second (QPS) for this operation is 10 per user. Requests that exceed this limit are throttled, which may affect your business. Call this operation at a reasonable rate.',
'requestParamsDescription' => '>'."\n"
."\n"
.'Related Notes'."\n"
."\n"
.'>'."\n"
."\n"
.'The total number of local image watermarks, local background image watermarks, global image watermarks, or global background images must not exceed 16.'."\n"
."\n"
.''."\n"
."\n"
.''."\n"
."\n"
.'Advanced Watermark Layering'."\n"
."\n"
.'
'."\n"
."\n"
.'The RTC media server generates frames in the following steps:'."\n"
."\n"
.'Draw video -> Draw images -> Draw text'."\n"
."\n"
.'Video, images, and text are distinct elements. The overall priority order is text, then images, then video.'."\n"
."\n"
.'1. Layout video frames according to the customer-defined layout.'."\n"
."\n"
.' a. Images in the grid and global images are arranged in a unified layer.'."\n"
."\n"
.' b. Layer 0 is at the bottom. A larger layer value places the element higher. The layer value ranges from 0 to 100.'."\n"
."\n"
.'2. Images include user-defined PNG or JPG images.'."\n"
."\n"
.' a. Draw images based on user configurations, such as width, height, position, and transparency.'."\n"
."\n"
.' b. Layer 0 is at the bottom. A larger layer value places the element higher. The layer value ranges from 0 to 100.'."\n"
."\n"
.'3. Text is divided into three types: regional text, global text, and timestamp text.'."\n"
."\n"
.' a. Draw text of the same type according to layer order. Layer 0 is at the bottom. A larger layer value places the element higher. The layer value ranges from 0 to 100.'."\n"
."\n"
.' b. For different text types, the priority order is timestamp text, then global text, then regional text. When elements overlap, lower-priority elements are overwritten.'."\n"
."\n"
.'Overlapping Display:'."\n"
."\n"
.'1. For overlapping parts, if no specific configuration is set, higher-priority elements overwrite lower-priority elements.'."\n"
."\n"
.'2. To prevent lower-priority content from being overwritten by higher-priority content, set the transparency property of the higher-priority content to 0.'."\n"
."\n"
.' '."\n"
."\n"
.''."\n"
."\n"
.''."\n"
."\n"
.'Single-Stream Recording Container and Audio Encoding Format Validation Rules'."\n"
."\n"
.'
'."\n"
."\n"
.'Single-stream recording allows users to specify the encoding format and container format for recording files. Different container formats support different stream types and encoding formats. The single-stream recording API validates relevant parameters. Unsupported combinations are rejected.'."\n"
."\n"
.'**Rule 1: Stream Types and Supported Container Formats**'."\n"
."\n"
.'| Stream Type | Container Format |'."\n"
.'| ------------------------------------------------------------------------------------ | ----------------- |'."\n"
.'| Pure audio stream (stream type is mic only) | aac, mp3, mp4, ts |'."\n"
.'| Pure video stream or audio/video stream (stream type includes camera or screen-cast) | mp4, ts |'."\n"
."\n"
.'**Rule 2: Container Formats and Supported Audio Encoding Formats**'."\n"
."\n"
.'| Container Format | Audio Encoding Format |'."\n"
.'| ---------------- | --------------------- |'."\n"
.'| mp3 | mp3 |'."\n"
.'| aac | aac |'."\n"
.'| ts | mp3, aac |'."\n"
.'| mp4 | aac |'."\n"
."\n"
.' ',
'changeSet' => [
['createdAt' => '2025-04-15T09:35:58.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2025-02-21T05:57:36.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2025-02-12T10:01:31.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2024-12-16T05:55:21.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2024-11-06T09:37:51.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2024-03-07T04:00:38.000Z', 'description' => 'Request parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartCloudRecord'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'rtc:StartCloudRecord',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'StartMPUTask' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
'name' => 'SubSpecUsers',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The list of users that this task subscribes to.',
'type' => 'array',
'items' => ['description' => '指定该任务订阅的用户列表,默认订阅频道内全部用户,数组下标取值范围:**1**~**16**。'."\n"
.'>数组下标需要从1开始并从小到大,不能中断,要连续。', 'type' => 'string', 'required' => false, 'example' => 'userID', 'title' => ''],
'required' => false,
'example' => 'userID',
'maxItems' => 64,
'title' => '',
],
],
[
'name' => 'SubSpecAudioUsers',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Specifies which users\' audio streams to subscribe to in the room.',
'type' => 'array',
'items' => ['description' => '指定订阅房间里哪些用户音频流(输入allStream表示混所有人音频)。数组下标取值范围:**1**~**64**。'."\n"
.'>数组下标需要从1开始并从小到大,不能中断,要连续。', 'type' => 'string', 'required' => false, 'example' => 'audioUserID', 'title' => ''],
'required' => false,
'example' => 'audioUserID',
'maxItems' => 64,
'title' => '',
],
],
[
'name' => 'SubSpecShareScreenUsers',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Specifies which users\' screen sharing video streams to subscribe to in the room.',
'type' => 'array',
'items' => ['description' => '指定订阅房间里哪些用户共享视频流(输入allStream表示混所有人共享视频)。数组下标取值范围:**1**~**64**。'."\n"
.'>数组下标需要从1开始并从小到大,不能中断,要连续。', 'type' => 'string', 'required' => false, 'example' => 'videoUserID', 'title' => ''],
'required' => false,
'maxItems' => 64,
'title' => '',
'example' => '',
],
],
[
'name' => 'SubSpecCameraUsers',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Specifies which users\' camera video streams to subscribe to in the room.',
'type' => 'array',
'items' => ['description' => '指定订阅房间里哪些用户摄像头视频流(输入allStream表示混所有人摄像头视频)。数组下标取值范围:**1**~**64**。'."\n"
.'>数组下标需要从1开始并从小到大,不能中断,要连续。', 'type' => 'string', 'required' => false, 'example' => 'cameraUserID', 'title' => ''],
'required' => false,
'maxItems' => 64,
'title' => '',
'example' => '',
],
],
[
'name' => 'UnsubSpecAudioUsers',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Specifies which users\' audio streams to unsubscribe from in the room.',
'type' => 'array',
'items' => ['description' => '指定不订阅房间里哪些用户音频流(输入allStream表示不混所有人音频)。数组下标取值范围:**1**~**64**。'."\n"
."\n"
.'> 数组下标需要从1开始并从小到大,不能中断,要连续。', 'type' => 'string', 'required' => false, 'example' => 'audioUserID2', 'title' => ''],
'required' => false,
'maxItems' => 64,
'title' => '',
'example' => '',
],
],
[
'name' => 'UnsubSpecShareScreenUsers',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Specifies which users\' screen sharing video streams to unsubscribe from in the room.',
'type' => 'array',
'items' => ['description' => '指定不订阅房间里哪些用户共享视频流(输入allStream表示不混所有人共享视频)。数组下标取值范围:**1**~**64**。'."\n"
."\n"
.'> 数组下标需要从1开始并从小到大,不能中断,要连续。', 'type' => 'string', 'required' => false, 'example' => 'videoUserID2', 'title' => ''],
'required' => false,
'maxItems' => 64,
'title' => '',
'example' => '',
],
],
[
'name' => 'UnsubSpecCameraUsers',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Specifies which users\' camera video streams to unsubscribe from in the room.',
'type' => 'array',
'items' => ['description' => '指定不订阅房间里哪些用户摄像头视频流(输入allStream表示不混所有人摄像头视频)。数组下标取值范围:**1**~**64**。'."\n"
.'>数组下标需要从1开始并从小到大,不能中断,要连续。', 'type' => 'string', 'required' => false, 'example' => 'cameraUserID2', 'title' => ''],
'required' => false,
'maxItems' => 64,
'title' => '',
'example' => '',
],
],
[
'name' => 'LayoutIds',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The layout ID data.',
'type' => 'array',
'items' => ['description' => '布局ID数据,您可在一次任务中指定多个布局,系统会根据当时频道中的人数进行切换。数组下标取值范围:**1**~**16**,相当于一个旁路任务中最多可以同时设置16种布局。详情请参见[布局](~~109587~~)。'."\n"
.'> - 数组下标需要从1开始并从小到大,不能中断,要连续。'."\n"
.'- 设置的布局窗格数不能相同。例:官网上的布局ID 2和3 的不能同时设置,他们两个的窗格数相同都是2。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1', 'title' => ''],
'required' => false,
'example' => '1',
'maxItems' => 64,
'title' => '',
],
],
[
'name' => 'UserPanes',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The list of layout parameters.',
'type' => 'array',
'items' => [
'description' => '布局参数,窗格图片暂不支持透明度配置。',
'type' => 'object',
'properties' => [
'Images' => [
'description' => '当前布局的图片框位列表。',
'type' => 'array',
'items' => [
'description' => '当前布局的图片框位。',
'type' => 'object',
'properties' => [
'Width' => ['description' => '窗格宽,归一化百分比。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.2456', 'title' => ''],
'Height' => ['description' => '窗格高,归一化百分比。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.2456', 'title' => ''],
'Y' => ['description' => '坐标Y,归一化百分比。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
'Url' => ['description' => '图片的HTTP或HTTPS地址。', 'type' => 'string', 'required' => false, 'example' => 'https://www.example.com/image.jpg', 'title' => ''],
'Display' => ['description' => '图片显示,取值:'."\n"
."\n"
.'- **0(None)**:不显示。'."\n"
.'- **1(Always)**:总是显示。'."\n"
.'- **2(Backup)**:当前用户无视频流时显示。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
'ZOrder' => ['description' => '叠放顺序,0为最底层,1层在0层之上,以此类推。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'X' => ['description' => '坐标X,归一化百分比。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 10,
'title' => '',
'example' => '',
],
'SegmentType' => ['description' => '人像分割类型。取值:'."\n"
."\n"
.'- **0**:无人像分割(默认值)。'."\n"
."\n"
.'- **1**:人像分割,仅在开启增强参数(人像分割功能)后有效。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'UserId' => ['description' => '对应布局框格的用户ID。取值:**1**~**16**。', 'type' => 'string', 'required' => false, 'example' => 'TestId', 'title' => ''],
'Texts' => [
'description' => '当前布局的文字框位列表。',
'type' => 'array',
'items' => [
'description' => '当前布局的文字框位,最多支持16个文本。',
'type' => 'object',
'properties' => [
'FontType' => ['description' => '字体类型,取值:'."\n"
."\n"
.'- **0**:NOTO_SERIF_CJKSC_REGULAR(默认值)'."\n"
.'- **1**:ALIBABA_PUHUITI_REGULAR'."\n"
.'- **2**:ALIBABA_PUHUITI_BOLD'."\n"
.'- **3**:ALIBABA_PUHUITI_Heavy'."\n"
.'- **4**:ALIBABA_PUHUITI_LIGHT'."\n"
.'- **5**:ALIBABA_PUHUITI_MEDIUM', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'FontColor' => ['description' => '文字颜色(RGB)。'."\n"
."\n"
.'计算公式为`R + G × 256 + B × 65536`,R(红)、G(绿)、B(蓝)的取值:**0**~**255**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'Y' => ['description' => '坐标Y,归一化百分比。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.2456', 'title' => ''],
'Text' => ['description' => '文本内容。', 'type' => 'string', 'required' => false, 'example' => 'text', 'title' => ''],
'ZOrder' => ['description' => '叠放顺序,0为最底层,1层在0层之上,以此类推。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'X' => ['description' => '坐标X,归一化百分比。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
'FontSize' => ['description' => '字体大小,取值范围:**0**~**72**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
'BorderWidth' => ['description' => '文字描边宽度(单位:像素),默认为0。', 'type' => 'integer', 'format' => 'int32', 'minimum' => '0', 'required' => false, 'example' => '1', 'title' => ''],
'BorderColor' => ['description' => '文字描边颜色。'."\n"
.'计算公式为`R + G × 256 + B × 65536`,R(红)、G(绿)、B(蓝)的取值:**0**~**255**。', 'type' => 'integer', 'format' => 'int64', 'minimum' => '0', 'required' => false, 'example' => '0', 'title' => ''],
'Box' => ['description' => '是否出现文字框。取值:'."\n"
."\n"
.'- false(默认值):不出现。'."\n"
.'- true:出现。', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
'BoxColor' => ['description' => '文字框颜色。'."\n"
.'计算公式为`R + G × 256 + B × 65536`,R(红)、G(绿)、B(蓝)的取值:**0**~**255**。', 'type' => 'integer', 'format' => 'int64', 'minimum' => '0', 'required' => false, 'example' => '0', 'title' => ''],
'BoxBorderWidth' => ['description' => '文字框宽度(单位:像素),默认为0。', 'type' => 'integer', 'format' => 'int32', 'minimum' => '0', 'required' => false, 'example' => '0', 'title' => ''],
'Alpha' => ['description' => '文字框和文字透明度。0.0表示透明,1.0表示完全不透明。', 'type' => 'number', 'format' => 'float', 'minimum' => '0', 'required' => false, 'example' => '0', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 16,
'title' => '',
'example' => '',
],
'SourceType' => ['description' => '对应布局的用户视频输入。取值:'."\n"
."\n"
.'- **camera**:视频流(默认值)。'."\n"
.'- **shareScreen**:共享屏幕流。', 'type' => 'string', 'required' => false, 'example' => 'camera', 'title' => ''],
'PaneId' => ['description' => '窗格ID,取值:**0**~**15**。'."\n"
.'>当指定的PaneId用户找不到的话,会默认显示其他的流,流的确定是根据用户加入频道的顺序。'."\n"
."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 16,
'title' => '',
'example' => '',
],
],
[
'name' => 'Backgrounds',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The list of canvas background image placeholders.',
'type' => 'array',
'items' => [
'description' => '画布背景图片框位,背景图片暂不支持透明度配置。',
'type' => 'object',
'properties' => [
'Width' => ['description' => '窗格宽,归一化百分比。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.2456', 'title' => ''],
'Height' => ['description' => '窗格高,归一化百分比。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.2456', 'title' => ''],
'Y' => ['description' => '坐标Y,归一化百分比。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
'Url' => ['description' => '图片的HTTP或HTTPS地址。', 'type' => 'string', 'required' => false, 'example' => 'https://www.example.com/image.jpg', 'title' => ''],
'Display' => ['description' => '图片显示,取值:'."\n"
."\n"
.'- **0(None)**:不显示。'."\n"
.'- **1(Always)**:总是显示。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
'ZOrder' => ['description' => '叠放顺序,0为最底层,1层在0层之上,以此类推。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'X' => ['description' => '坐标X,归一化百分比。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 10,
'title' => '',
'example' => '',
],
],
[
'name' => 'Watermarks',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The list of watermark image placeholders.',
'type' => 'array',
'items' => [
'description' => '水印图片框位。',
'type' => 'object',
'properties' => [
'Alpha' => ['description' => '透明度。0.0表示透明,1.0表示完全不透明。'."\n", 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0', 'title' => ''],
'Width' => ['description' => '窗格宽,归一化百分比。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.2456', 'title' => ''],
'Height' => ['description' => '窗格高,归一化百分比。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.2456', 'title' => ''],
'Y' => ['description' => '坐标Y,归一化百分比。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
'Url' => ['description' => '图片的HTTP或HTTPS地址。', 'type' => 'string', 'required' => false, 'example' => 'https://www.example.com/image.jpg', 'title' => ''],
'Display' => ['description' => '图片显示,取值:'."\n"
."\n"
.'- **0(None)**:不显示。'."\n"
.'- **1(Always)**:总是显示。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'ZOrder' => ['description' => '叠放顺序,0为最底层,1层在0层之上,以此类推。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'X' => ['description' => '坐标X,归一化百分比。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 10,
'title' => '',
'example' => '',
],
],
[
'name' => 'ClockWidgets',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The clock widgets.',
'type' => 'array',
'items' => [
'description' => '时钟挂件,当前仅支持单个时钟挂件。',
'type' => 'object',
'properties' => [
'FontType' => ['description' => '字体类型,取值:'."\n"
."\n"
.'- **0**:NOTO_SERIF_CJKSC_REGULAR(默认值)'."\n"
.'- **1**:ALIBABA_PUHUITI_REGULAR'."\n"
.'- **2**:ALIBABA_PUHUITI_BOLD'."\n"
.'- **3**:ALIBABA_PUHUITI_Heavy'."\n"
.'- **4**:ALIBABA_PUHUITI_LIGHT'."\n"
.'- **5**:ALIBABA_PUHUITI_MEDIUM', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'FontColor' => ['description' => '文字颜色(RGB)。'."\n"
."\n"
.'计算公式为`R + G × 256 + B × 65536`,R(红)、G(绿)、B(蓝)的取值:**0**~**255**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'Y' => ['description' => '坐标Y,归一化百分比。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
'ZOrder' => ['description' => '叠放顺序,0为最底层,1层在0层之上,以此类推。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'X' => ['description' => '坐标X,归一化百分比。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
'FontSize' => ['description' => '字体大小,取值范围:**0**~**72**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
'BorderWidth' => ['description' => '文字描边宽度(单位:像素),默认为0。', 'type' => 'integer', 'format' => 'int32', 'minimum' => '0', 'required' => false, 'example' => '1', 'title' => ''],
'BorderColor' => ['description' => '文字描边颜色。'."\n"
.'计算公式为`R + G × 256 + B × 65536`,R(红)、G(绿)、B(蓝)的取值:**0**~**255**。', 'type' => 'integer', 'format' => 'int64', 'minimum' => '0', 'required' => false, 'example' => '0', 'title' => ''],
'Box' => ['description' => '是否出现文字框。取值:'."\n"
."\n"
.'- false(默认值):不出现。'."\n"
.'- true:出现。', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
'BoxColor' => ['description' => '文字框颜色。'."\n"
.'计算公式为`R + G × 256 + B × 65536`,R(红)、G(绿)、B(蓝)的取值:**0**~**255**。', 'type' => 'integer', 'format' => 'int64', 'minimum' => '0', 'required' => false, 'example' => '0', 'title' => ''],
'BoxBorderWidth' => ['description' => '文字框宽度(单位:像素),默认为0。', 'type' => 'integer', 'format' => 'int32', 'minimum' => '0', 'required' => false, 'example' => '0', 'title' => ''],
'Alpha' => ['description' => '文字框和文字透明度。0.0表示透明,1.0表示完全不透明。', 'type' => 'number', 'format' => 'float', 'minimum' => '0', 'required' => false, 'example' => '0', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 1,
'title' => '',
'example' => '',
],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. Only a single ID is supported.'."\n"
."\n"
.'You can create and query applications in the console.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'yourAppId', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'The channel ID. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'yourChannelId', 'title' => ''],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'The task ID. Only a single ID is supported. The ID can contain uppercase and lowercase letters, digits, underscores (_), and hyphens (-), with a maximum length of 55 bytes.'."\n"
."\n"
.'> This ID identifies the bypass live streaming task and must be unique.'."\n"
."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'yourTaskId', 'title' => ''],
],
[
'name' => 'MixMode',
'in' => 'query',
'schema' => ['description' => 'The stream mixing mode. Valid values:'."\n"
."\n"
.'- **0**: single-stream relay. The original single stream is relayed without mixing or transcoding. You do not need to configure stream mixing and transcoding parameters.'."\n"
.'- **1**: stream mixing and transcoding (default). Stream mixing and transcoding output is supported.'."\n"
."\n"
.'> - Valid parameters in single-stream relay mode: **StreamType**, **SourceType**, and **SubSpecUsers**.'."\n"
.'- Valid parameters in stream mixing and transcoding mode: **MediaEncode**, **LayoutIds**, **BackgroundColor**, **SubSpecUsers**, **CropMode**, **UserPanes**, **Backgrounds**, and **Watermarks**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
],
[
'name' => 'CropMode',
'in' => 'query',
'schema' => ['description' => 'The video cropping mode. Valid values:'."\n"
."\n"
.'- **1**: crops the video while maintaining the aspect ratio.'."\n"
."\n"
.'- **2**: adds padding while maintaining the aspect ratio (default).', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'MediaEncode',
'in' => 'query',
'schema' => ['description' => 'The encoding option. For more information, see the MediaEncode enumeration values below.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2', 'title' => ''],
],
[
'name' => 'SourceType',
'in' => 'query',
'schema' => ['description' => 'The video input stream of the user in single-stream relay mode. Valid values:'."\n"
."\n"
.'- **camera**: camera.'."\n"
.'- **shareScreen**: screen sharing.'."\n", 'type' => 'string', 'required' => false, 'example' => 'camera', 'title' => ''],
],
[
'name' => 'StreamType',
'in' => 'query',
'schema' => ['description' => 'The audio stream relay type in single-stream relay mode. Valid values:'."\n"
."\n"
.'- **0**: relays the original stream.'."\n"
.'- **1**: relays only the audio stream.'."\n"
.'- **2**: relays only the video stream.'."\n"
."\n"
.'Default value: 0 (relays the original stream).', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
],
[
'name' => 'BackgroundColor',
'in' => 'query',
'schema' => ['description' => 'The background color in RGB. Default value: **0** (black).'."\n"
."\n"
.'The formula is `R + G × 256 + B × 65536`, where R (red), G (green), and B (blue) range from 0 to 255.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
],
[
'name' => 'StreamURL',
'in' => 'query',
'schema' => ['description' => 'The live stream ingest URL. Only a single URL is supported. For information about how to generate the URL, see [Ingest URL and streaming URL](~~199339~~).'."\n"
."\n"
.'>- For domain names with hotlink protection enabled, include the authentication string in the ingest URL.'."\n"
.'- Do not use the same StreamURL in different tasks simultaneously.'."\n"
.'- Do not reuse the same StreamURL within 10 seconds after a task is stopped.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'rtmp://example.com/live/stream', 'title' => ''],
],
[
'name' => 'PayloadType',
'in' => 'query',
'schema' => ['description' => 'The payload type. Valid values:'."\n"
.'- **0**: no payload.'."\n"
.'- **1**: VideoSEI.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
],
[
'name' => 'ReportVad',
'in' => 'query',
'schema' => ['description' => 'The voice activity detection (VAD) flag. Valid values:'."\n"
.'- **0**: does not transmit VAD information.'."\n"
.'- **1**: transmits VAD information.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
],
[
'name' => 'RtpExtInfo',
'in' => 'query',
'schema' => ['description' => 'The RTP extension header information. Valid values:'."\n"
.'- **0**: does not transmit.'."\n"
.'- **1**: transmits.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
],
[
'name' => 'TimeStampRef',
'in' => 'query',
'schema' => ['description' => 'The timestamp.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '15273582735', 'title' => ''],
],
[
'name' => 'VadInterval',
'in' => 'query',
'schema' => ['description' => 'The callback interval for voice activity detection.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '86400', 'title' => ''],
],
[
'name' => 'TaskType',
'in' => 'query',
'schema' => [
'description' => 'The media processing type. Valid values:'."\n"
."\n"
.'- **0**: bypass live streaming task.'."\n"
.'- **1**: MCU stream mixing low-latency distribution task.',
'type' => 'integer',
'format' => 'int32',
'required' => false,
'maximum' => '1',
'minimum' => '0',
'enum' => ['0', '1'],
'example' => '0',
'title' => '',
],
],
[
'name' => 'EnhancedParam',
'in' => 'formData',
'style' => 'flat',
'schema' => [
'description' => 'The enhanced parameter.',
'type' => 'object',
'properties' => [
'EnablePortraitSegmentation' => ['description' => '人像分割功能(内测中),取值:'."\n"
."\n"
.'- **true**:开启。'."\n"
.'- **false**(默认值):关闭。', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'description' => '返回结果。',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '760bad53276431c499e30dc36f6b26be', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
200 => [
['errorCode' => 'TaskExisted', 'errorMessage' => 'the task is existed', 'description' => ''],
],
400 => [
['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'The mediaEncode is illegal:%s.', 'description' => 'english description'],
['errorCode' => 'IllegalBackgroundColor', 'errorMessage' => 'strconv background_color', 'description' => 'Invalid BackgroundColor'],
['errorCode' => 'InvalidLayoutID.Malformed', 'errorMessage' => 'Failed to parse layout ID.', 'description' => 'failed to parse layoutID'],
['errorCode' => 'InvalidAppID.AliveTaskExceedLimit', 'errorMessage' => '%s.', 'description' => ''],
['errorCode' => 'InvalidLiveURL', 'errorMessage' => 'InvalidLiveURL.%s', 'description' => ''],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.%s', 'description' => ''],
['errorCode' => 'InternalError.', 'errorMessage' => 'InternalError.%s.', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"760bad53276431c499e30dc36f6b26be\\"\\n}","type":"json"}]',
'title' => 'Start task',
'summary' => 'Starts a bypass live streaming task by calling StartMPUTask.',
'description' => '# 使用说明'."\n"
.'本接口用于开始旁路转推任务。当您使用旁路转推服务时,阿里云视频直播服务限制如下所示:'."\n"
."\n"
.'- 并发限制任务数请参见[并发限制](https://help.aliyun.com/document_detail/71050.html#section-eaz-anq-a47)。如果有特殊需求,请提前两周[提交工单](https://selfservice.console.aliyun.com/ticket/createIndex)。'."\n"
.'- 并发限制任务数请参见[并发限制](https://www.alibabacloud.com/help/rtc-61399/latest/60e652#section-eaz-anq-a47)。如果有特殊需求,请提前两周[提交工单](https://workorder-intl.console.aliyun.com/#/ticket/createIndex)。'."\n"
.'- 如果未开启转码功能,默认每个账号下每个直播加速域名最多并发推送20个原画直播流。如果有特殊需求,请[提交工单](https://selfservice.console.aliyun.com/ticket/createIndex)。'."\n"
.'- 如果启用转码功能,默认每个账号下每个直播加速域名最多并发推送10个转码直播流。如果有特殊需求,请[提交工单](https://selfservice.console.aliyun.com/ticket/createIndex)。'."\n"
."\n"
.'# QPS限制'."\n"
.'本接口的单用户QPS限制为500次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~341645~~)。',
'requestParamsDescription' => "\n"
.'The **MediaEncode** enumeration values are as follows.'."\n"
."\n"
.'| ID | Width | Height | Bitrate (kbps) | Frame Rate (fps) '."\n"
.'| ----------- | ----- | ------ | ----------- | --- '."\n"
.'| 0 | 0 | 0 | 64 | 0 '."\n"
.'| 1 | 640 | 360 | 500 | 15 '."\n"
.'| 54 | 360 | 640 | 500 | 30 '."\n"
.'| 53 | 360 | 640 | 500 | 15 '."\n"
.'| 52 | 640 | 360 | 500 | 30 '."\n"
.'| 10 | 960 | 540 | 700 | 24 '."\n"
.'| 20 | 1280 | 720 | 1024 | 25 '."\n"
.'| 22 | 720 | 1280 | 1024 | 30 '."\n"
.'| 23 | 800 | 600 | 1024 | 30 '."\n"
.'| 30 | 1920 | 1080 | 2048 | 30 '."\n"
.'| 31 | 1080 | 1920 | 2048 | 30 '."\n"
.'| 24 | 750 | 780 | 1024 | 30 '."\n"
.'| 25 | 750 | 540 | 700 | 30 '."\n"
.'| 26 | 720 | 1280 | 2048 | 30 '."\n"
.'| 27 | 1280 | 720 | 2048 | 30 '."\n"
.'| 28 | 1280 | 720 | 3096 | 30 '."\n"
.'| 32 | 1024 | 768 | 1024 | 24 '."\n"
.'| 33 | 1280 | 960 | 1024 | 24 '."\n"
.'| 34 | 1024 | 768 | 2048 | 24 '."\n"
.'| 35 | 1280 | 960 | 2048 | 24 '."\n"
.'| 36 | 1280 | 720 | 1024 | 24 '."\n"
.'| 37 | 1280 | 720 | 2048 | 24 '."\n"
.'| 38 | 540 | 960 | 750 | 15 '."\n"
.'| 39 | 540 | 960 | 1500 | 30 '."\n"
.'| 40 | 1280 | 720 | 1200 | 15 '."\n"
.'| 41 | 720 | 1280 | 1200 | 15 '."\n"
.'| 42 | 720 | 1280 | 1500 | 15 '."\n"
.'| 43 | 540 | 960 | 1200 | 15. '."\n"
."\n"
.'> When using audio-only live streaming, note the relevant considerations. For more information, see [Audio-only live streaming](https://helpcdn.aliyun.com/document_detail/159390.html?spm=a2c4g.11174283.6.729.445a3c3d4LDYq5).',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2021-09-10T06:30:06.000Z', 'description' => 'Error codes changed, Request parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartMPUTask'],
],
],
'ramActions' => [],
],
'StartRecordTask' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
'name' => 'SubSpecUsers',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Specifies the list of users to which this task is subscribed.',
'type' => 'array',
'items' => ['description' => 'Specifies the list of users to which this task is subscribed. By default, all users in the channel are subscribed. N indicates the array subscript. Valid values: **1 to 16**.'."\n"
.'> N must start from 1 and increase sequentially without interruption.', 'type' => 'string', 'required' => false, 'example' => 'userID', 'title' => ''],
'required' => false,
'example' => 'userID',
'maxItems' => 64,
'title' => '',
],
],
[
'name' => 'SubSpecAudioUsers',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Specifies the audio streams of which users in the room to subscribe to.',
'type' => 'array',
'items' => ['description' => 'Specifies the audio streams of which users in the room to subscribe to (enter allStream to mix the audio streams of all users). N indicates the array subscript. Valid values: 1 to 16.'."\n"
."\n"
.'> N must start from 1 and increase sequentially without interruption.', 'type' => 'string', 'required' => false, 'example' => 'audioUserID', 'title' => ''],
'required' => false,
'example' => '1',
'maxItems' => 64,
'title' => '',
],
],
[
'name' => 'SubSpecShareScreenUsers',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Specifies the screen-sharing streams of which users in the room to subscribe to.',
'type' => 'array',
'items' => ['description' => 'Specifies the screen-sharing streams of which users in the room to subscribe to (enter allStream to mix the screen-sharing streams of all users). N indicates the array subscript. Valid values: 1 to 16.'."\n"
."\n"
.'> N must start from 1 and increase sequentially without interruption.', 'type' => 'string', 'required' => false, 'example' => 'videoUserID', 'title' => ''],
'required' => false,
'example' => '1',
'maxItems' => 64,
'title' => '',
],
],
[
'name' => 'SubSpecCameraUsers',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Specifies the camera streams of which users in the room to subscribe to.',
'type' => 'array',
'items' => ['description' => 'Specifies the camera streams of which users in the room to subscribe to (enter allStream to mix the camera streams of all users). N indicates the array subscript. Valid values: 1 to 16.'."\n"
."\n"
.'> N must start from 1 and increase sequentially without interruption.', 'type' => 'string', 'required' => false, 'example' => 'cameraUserID', 'title' => ''],
'required' => false,
'example' => '1',
'maxItems' => 64,
'title' => '',
],
],
[
'name' => 'UnsubSpecAudioUsers',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Specifies the audio streams of which users in the room not to subscribe to.',
'type' => 'array',
'items' => ['description' => 'Specifies the audio streams of which users in the room not to subscribe to (enter allStream to mix the audio streams of all users). N indicates the array subscript. Valid values: 1 to 16.'."\n"
."\n"
.'> N must start from 1 and increase sequentially without interruption.', 'type' => 'string', 'required' => false, 'example' => 'audioUserID2', 'title' => ''],
'required' => false,
'example' => '1',
'maxItems' => 64,
'title' => '',
],
],
[
'name' => 'UnsubSpecShareScreenUsers',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Specifies the screen-sharing streams of which users in the room not to subscribe to.',
'type' => 'array',
'items' => ['description' => 'Specifies the screen-sharing streams of which users in the room not to subscribe to (enter allStream to mix the screen-sharing streams of all users). N indicates the array subscript. Valid values: 1 to 16.'."\n"
."\n"
.'> N must start from 1 and increase sequentially without interruption.', 'type' => 'string', 'required' => false, 'example' => 'videoUserID2', 'title' => ''],
'required' => false,
'example' => '1',
'maxItems' => 64,
'title' => '',
],
],
[
'name' => 'UnsubSpecCameraUsers',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Specifies the camera streams of which users in the room not to subscribe to.',
'type' => 'array',
'items' => ['description' => 'Specifies the camera streams of which users in the room not to subscribe to (enter allStream to mix the camera streams of all users). N indicates the array subscript. Valid values: 1 to 16.'."\n"
."\n"
.'> N must start from 1 and increase sequentially without interruption.', 'type' => 'string', 'required' => false, 'example' => 'cameraUserID2', 'title' => ''],
'required' => false,
'example' => '1',
'maxItems' => 64,
'title' => '',
],
],
[
'name' => 'UserPanes',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The list of layout parameters.',
'type' => 'array',
'items' => [
'description' => 'Layout parameters. Transparency configuration is not supported for pane images.',
'type' => 'object',
'properties' => [
'Images' => [
'description' => 'The list of image pane positions for the current layout.',
'type' => 'array',
'items' => [
'description' => 'The image pane position for the current layout.',
'type' => 'object',
'properties' => [
'Width' => ['description' => 'The pane width, as a normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.2456', 'title' => ''],
'Height' => ['description' => 'The pane height, as a normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.2456', 'title' => ''],
'Y' => ['description' => 'The Y coordinate, as a normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
'Url' => ['description' => 'The HTTP or HTTPS address of the image.', 'type' => 'string', 'required' => false, 'example' => 'https://www.example.com/image.jpg', 'title' => ''],
'Display' => ['description' => 'The image display mode. Valid values:'."\n"
."\n"
.'- **0** (None): Not displayed.'."\n"
.'- **1** (Always): Always displayed.'."\n"
.'- **2** (Backup): Displayed when the current user has no video stream.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
'ZOrder' => ['description' => 'The stacking order. 0 is the bottom layer, layer 1 is above layer 0, and so on.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'X' => ['description' => 'The X coordinate, as a normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 1,
'title' => '',
'example' => '',
],
'UserId' => ['description' => 'The user ID corresponding to the layout pane. Valid values of N: **1 to 16**.', 'type' => 'string', 'required' => false, 'example' => 'TestId', 'title' => ''],
'Texts' => [
'description' => 'The list of text pane positions for the current layout.',
'type' => 'array',
'items' => [
'description' => 'The text pane position for the current layout. A maximum of 16 texts are supported.',
'type' => 'object',
'properties' => [
'FontType' => ['description' => 'The font type. Valid values:'."\n"
."\n"
.'- **0** (default): NOTO_SERIF_CJKSC_REGULAR.'."\n"
.'- **1**: ALIBABA_PUHUITI_REGULAR.'."\n"
.'- **2**: ALIBABA_PUHUITI_BOLD.'."\n"
.'- **3**: ALIBABA_PUHUITI_Heavy.'."\n"
.'- **4**: ALIBABA_PUHUITI_LIGHT.'."\n"
.'- **5**: ALIBABA_PUHUITI_MEDIUM.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'FontColor' => ['description' => 'The font color (RGB). The calculation formula is R+G×256+B×65536. Valid values of R (red), G (green), and B (blue): **0 to 255**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
'Y' => ['description' => 'The Y coordinate, as a normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
'Text' => ['description' => 'The text content.', 'type' => 'string', 'required' => false, 'example' => 'text', 'title' => ''],
'ZOrder' => ['description' => 'The stacking order. 0 is the bottom layer, layer 1 is above layer 0, and so on.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'X' => ['description' => 'The X coordinate, as a normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
'FontSize' => ['description' => 'The font size. The valid range of the font is **(0, 72]**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 16,
'title' => '',
'example' => '',
],
'SourceType' => ['description' => 'The user video input corresponding to the layout. Valid values:'."\n"
."\n"
.'- **camera** (default): The video stream.'."\n"
.'- **shareScreen**: The screen-sharing stream.', 'type' => 'string', 'required' => false, 'example' => 'camera', 'title' => ''],
'PaneId' => ['description' => 'The pane ID. Valid values: **0** to **15**.'."\n"
."\n"
.'> - If no user can be found for the specified PaneId, other streams are displayed by default. The streams are determined based on the order in which users join the channel.'."\n"
.'- If a parameter related to UserPanes is required, all other related parameters are also required. Otherwise, none of them is required.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 16,
'title' => '',
'example' => '',
],
],
[
'name' => 'LayoutIds',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The layout ID group.',
'type' => 'array',
'items' => ['description' => 'The layout ID data. You can specify multiple layouts in a single task. The system switches layouts based on the number of users in the channel at that time. Valid values of the array subscript: **1** to **16**, which means that a maximum of 16 layouts can be set simultaneously in a relay task. For more information, see [Layout](~~109587~~).'."\n"
.'> - The array subscript must start from 1 and increase sequentially without interruption.'."\n"
.'- The number of panes set in different layouts cannot be the same. For example, layout IDs 2 and 3 on the official website cannot be set at the same time because both of them have 2 panes.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1', 'title' => ''],
'required' => false,
'example' => '1111',
'maxItems' => 64,
'title' => '',
],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. It is created and queried in the console. Only a single ID can be passed in.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'yourAppId', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'The channel ID. Only a single ID can be passed in.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'yourChannelId', 'title' => ''],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'The task ID. Only a single ID can be passed in. It must be unique. It consists of 1 to 55 characters, including uppercase letters, lowercase letters, digits, underscores (_), and hyphens (-).', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'yourTaskId', 'title' => ''],
],
[
'name' => 'TaskProfile',
'in' => 'query',
'schema' => ['description' => 'The task billing configuration. Fees are charged based on your different settings. See the TaskProfile enumeration values below.'."\n"
."\n"
.'> - The resolution of the encoding option MediaEncode must be less than or equal to the resolution of TaskProfile.'."\n"
.'- The maximum number of layout panes must be less than or equal to the number of input streams of TaskProfile.', 'type' => 'string', 'required' => false, 'example' => '4IN_1080P', 'title' => ''],
],
[
'name' => 'MediaEncode',
'in' => 'query',
'schema' => ['description' => 'The encoding option. See the MediaEncode enumeration values below.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20', 'title' => ''],
],
[
'name' => 'TemplateId',
'in' => 'query',
'schema' => ['description' => 'The configuration template ID. To obtain the template ID, see [AddRecordTemplate](~~193625~~).', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '76dasgb****', 'title' => ''],
],
[
'name' => 'SourceType',
'in' => 'query',
'schema' => ['description' => 'The video source in single-stream recording mode. Valid values:'."\n"
."\n"
.'- **camera**: The camera.'."\n"
.'- **shareScreen**: The screen sharing.'."\n"
."\n"
.'> If the video source is shareScreen and only the camera stream is pushed, the camera stream is recorded. If the screen-sharing stream is also pushed, the screen-sharing stream is recorded.', 'type' => 'string', 'required' => false, 'example' => 'camera', 'title' => ''],
],
[
'name' => 'StreamType',
'in' => 'query',
'schema' => ['description' => 'The single-stream recording mode. Valid values:'."\n"
."\n"
.'- **0** (default): Record the original stream.'."\n"
.'- **1**: Record only the audio stream.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
],
[
'name' => 'MixMode',
'in' => 'query',
'schema' => ['description' => 'The recording mode. Valid values:'."\n"
."\n"
.'- **0**: Single-stream recording. The task parameters cannot be modified in the middle of recording (the UpdateRecordTask operation cannot be called to modify the task parameters).'."\n"
.'- **1** (default): Mixed-stream recording. Multi-pane mixed-stream output is supported.'."\n"
."\n"
.'> - Valid parameters in single-stream recording mode: StreamType and SourceType.'."\n"
.'- Valid parameters in mixed-stream recording mode: TaskProfile, MediaEncode, LayoutIds, BackgroundColor, SubSpecUsers, CropMode, UserPanes, Backgrounds, Watermarks, and ClockWidgets.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'CropMode',
'in' => 'query',
'schema' => ['description' => 'The video cropping mode. Valid values:'."\n"
."\n"
.'- **1**: Crop while maintaining the aspect ratio.'."\n"
.'- **2**: Add borders while maintaining the aspect ratio (default).', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned result.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '760bad53276431c499e30dc36f6b****', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
200 => [
['errorCode' => 'TaskExisted', 'errorMessage' => 'the task is existed', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"760bad53276431c499e30dc36f6b****\\"\\n}","type":"json"}]',
'title' => 'Record Video Task',
'summary' => 'Call StartRecordTask to record a video task.',
'description' => '# Usage notes'."\n"
."\n"
.'- Before calling this operation, you must have called [AddRecordTemplate](~~193625~~) to add a recording configuration template.'."\n"
.'- By default, up to 100 recording tasks can be started at the same time. After this limit is exceeded, new recording tasks become unavailable. If you have special requirements, [submit a ticket](https://selfservice.console.aliyun.com/ticket/createIndex).'."\n"
.'- By default, up to 100 recording tasks can be started at the same time. After this limit is exceeded, new recording tasks become unavailable. If you have special requirements, [submit a ticket](https://workorder-intl.console.aliyun.com/#/ticket/createIndex).'."\n"
."\n"
.'# QPS limit'."\n"
.'The per-user QPS limit for this operation is 500 calls per second. If the limit is exceeded, API calls are throttled, which may affect your business. Call this operation properly. For more information, see [QPS limit](~~341645~~).',
'requestParamsDescription' => '**MediaEncode enumeration values:**'."\n"
."\n"
.'| ID | Width | Height | Bit rate (kps) | Frame rate (fps) '."\n"
.'| ----------- | ----- | ------ | ----------- | --- '."\n"
.'| 0 | 0 | 0 | 64 | 0 '."\n"
.'| 1 | 640 | 360 | 500 | 15 '."\n"
.'| 54 | 360 | 640 | 500 | 30 '."\n"
.'| 53 | 360 | 640 | 500 | 15 '."\n"
.'| 52 | 640 | 360 | 500 | 30 '."\n"
.'| 10 | 960 | 540 | 700 | 24 '."\n"
.'| 20 | 1280 | 720 | 1024 | 25 '."\n"
.'| 22 | 720 | 1280 | 1024 | 30 '."\n"
.'| 23 | 800 | 600 | 1024 | 30 '."\n"
.'| 30 | 1920 | 1080 | 2048 | 30 '."\n"
.'| 31 | 1080 | 1920 | 2048 | 30 '."\n"
.'| 24 | 750 | 780 | 1024 | 30 '."\n"
.'| 25 | 750 | 540 | 700 | 30 '."\n"
.'| 26 | 720 | 1280 | 2048 | 30 '."\n"
.'| 27 | 1280 | 720 | 2048 | 30 '."\n"
.'| 28 | 1280 | 720 | 3096 | 30 '."\n"
.'| 32 | 1024 | 768 | 1024 | 24 '."\n"
.'| 33 | 1280 | 960 | 1024 | 24 '."\n"
.'| 34 | 1024 | 768 | 2048 | 24 '."\n"
.'| 35 | 1280 | 960 | 2048 | 24 '."\n"
.'| 36 | 1280 | 720 | 1024 | 24 '."\n"
.'| 37 | 1280 | 720 | 2048 | 24 '."\n"
.'| 38 | 540 | 960 | 750 | 15 '."\n"
.'| 39 | 540 | 960 | 1500 | 30 '."\n"
.'| 40 | 1280 | 720 | 1200 | 15 '."\n"
.'| 41 | 720 | 1280 | 1200 | 15 '."\n"
.'| 42 | 720 | 1280 | 1500 | 15 '."\n"
.'| 43 | 540 | 960 | 1200 | 15 '."\n"
."\n\n"
.'**TaskProfile enumeration values:**'."\n"
."\n"
.'> Mixed_Audio (audio only) does not have a limit on the maximum number of input streams. For other specifications, the maximum number of input streams supported is determined based on the first number. For example, 4IN_720P indicates that the maximum number of input streams supported is 4.'."\n"
."\n"
.'| - | 1080P | 720P | 360P | Audio '."\n"
.'| ----- | ------- | ----- | ------ | ------ '."\n"
.'| 1IN | 1IN_1080P | 1IN_720P | 1IN_360P | None'."\n"
.'| 2IN | 2IN_1080P | 2IN_720P | 2IN_360P | None '."\n"
.'| 4IN | 4IN_1080P | 4IN_720P | 4IN_360P | None'."\n"
.'| 9IN | 9IN_1080P | 9IN_720P | 9IN_360P | None'."\n"
.'| 12IN | 12IN_1080P | 12IN_720P | 12IN_360P | None'."\n"
.'| 16IN | 16IN_1080P | 16IN_720P | 16IN_360P | None'."\n"
.'| Mixed| None | None | None | Mixed_Audio'."\n",
'responseParamsDescription' => '**Recording result callback**'."\n"
.'The result file generated by recording is written to the user\'s MNS queue, or the result file is called back in JSON format via HTTP POST. The parameter definitions are as follows:'."\n"
.'| Parameter name | Type | Description'."\n"
.'| ----- | ------- | -----'."\n"
.'| AppId | String | The application ID.'."\n"
.'| ChannelId | String | The channel ID.'."\n"
.'| TaskId | String | The recording task ID.'."\n"
.'| Event | String | The event type. Currently, only the FileCreated event is supported.'."\n"
.'| MsgId | String | The message ID.'."\n"
.'| StartTime | String | The recording start time.'."\n"
.'| StopTime | String | The recording end time.'."\n"
.'| Url | String | The HTTP address of the file recorded to OSS.'."\n"
."\n"
.'Example:'."\n"
."\n"
.'```'."\n"
.'{'."\n"
.' "AppId": "9q****",'."\n"
.' "ChannelId": "record-004",'."\n"
.' "Duration": 1792.257,'."\n"
.' "Event": "FileCreated",'."\n"
.' "MsgId": "83eaaf62-19e8-45df-929b-79f4753b****",'."\n"
.' "StartTime": "2020-09-02T10:23:54Z",'."\n"
.' "StopTime": "2020-09-02T10:53:46Z",'."\n"
.' "TaskId": "task-005",'."\n"
.' "Url": "http://rtc-record.****.aliyuncs.com/record/0902-1/9q****/record-004_task-005/2020-09-02-18-23-56_2020-09-02-18-53-56.m3u8"'."\n"
.'}'."\n"
.'```',
'extraInfo' => '## Special error codes'."\n"
."\n"
.'|Error code|Description|HTTP status code|Meaning|'."\n"
.'|-----|-------|---|----------|'."\n"
.'| InternalError | The request processing has failed due to some unknown error, exception or failure. | 500 | Internal error. |'."\n"
.'| TaskExisted | task is already existed | 200 | The task already exists. |'."\n"
.'| InvalidLayoutID.Malformed | The specified layout ID is malformed | 400 | The LayoutId parameter is invalid. |'."\n"
.'| InvalidMediaEncode.Malformed | The specifed MediaEncode is malformed | 400 | The MediaEncode parameter is invalid.|'."\n"
.'| InvalidBackgroundColor.Malformed | The specifed background color is malformed | 400 | The BackgroundColor parameter is invalid. |'."\n"
.'| InternalError | The request processing has failed due to some unknown error, exception or failure. | 500 | Internal error. |'."\n",
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartRecordTask'],
],
],
'ramActions' => [],
],
'StartStreamingOut' => [
'summary' => 'StartStreamingOut',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'paid'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Application ID, created and queried via the console. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'eo85****'],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'An existing channel ID. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'testid'],
],
[
'name' => 'TemplateId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Template ID. ', 'type' => 'string', 'required' => true, 'example' => '567', 'maxLength' => 128, 'minLength' => 1, 'pattern' => '^[\\w.-]+$'],
],
[
'name' => 'Url',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Live ingest URL. Only a single URL is supported. This URL cannot be used by multiple jobs simultaneously.', 'type' => 'string', 'required' => true, 'example' => 'rtmp://example.com/live/stream', 'maxLength' => 1024, 'minLength' => 1],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The task ID of this bypass stream ingest job. Only a single ID is supported. It can contain uppercase and lowercase letters, digits, underscores, and hyphens (-), with a maximum length of 55 bytes. If not specified, the System will automatically generate one. ', 'type' => 'string', 'required' => false, 'example' => '123', 'maxLength' => 55, 'minLength' => 1, 'pattern' => '^[0-9a-zA-Z_-]+$'],
],
[
'name' => 'CropMode',
'in' => 'query',
'schema' => [
'description' => 'Crop mode. Valid values: '."\n"
.'- **1**: Crop while maintaining the aspect ratio. '."\n"
.'- **2**: Maintain aspect ratio with padding (Default Value). '."\n"
.'- **3**: Stretch to fill the entire area. '."\n",
'title' => 'Crop mode. Valid values: '."\n"
.'- **1**: Crop while maintaining the aspect ratio. '."\n"
.'- **2**: Maintain aspect ratio with padding (Default Value). '."\n"
.'- **3**: Stretch to fill the entire area. '."\n",
'type' => 'integer',
'format' => 'int32',
'example' => '2',
'default' => '2',
'enum' => ['1', '2', '3'],
'required' => false,
],
],
[
'name' => 'ReservePaneForNoCameraUser',
'in' => 'query',
'schema' => ['description' => 'Reserve pane for users who do not publish camera streams. '."\n"
.'The default value is true, which means a pane is reserved for users who do not publish camera streams. '."\n"
.'If set to false, no pane is reserved for such users. ', 'title' => 'Reserve pane for users who do not publish camera streams. '."\n"
.'The default value is true, which means a pane is reserved for users who do not publish camera streams. '."\n"
.'If set to false, no pane is reserved for such users. ', 'type' => 'boolean', 'default' => 'true', 'required' => false, 'example' => ''],
],
[
'name' => 'ShowDefaultBackgroundOnMute',
'in' => 'query',
'schema' => ['description' => 'Whether to display the default pane background when muted.'."\n"
.'- true: Display (default value)'."\n"
.'- false: Do not display (the configured local pane background is still displayed)', 'title' => 'Whether to display the default pane background when muted.'."\n"
.'- true: Display (default value)'."\n"
.'- false: Do not display (the configured local pane background is still displayed)', 'type' => 'boolean', 'default' => 'true', 'required' => false, 'example' => ''],
],
[
'name' => 'SubHighResolutionStream',
'in' => 'query',
'schema' => ['description' => 'Subscribe to a high resolution stream. '."\n"
.'- false: Subscribe to streams with different resolutions based on the pane area. (Default Value) '."\n"
.'- true: By default, fill with the highest resolution stream pushed by the client.', 'title' => 'Subscribe to a high resolution stream. '."\n"
.'- false: Subscribe to streams with different resolutions based on the pane area. (Default Value) '."\n"
.'- true: By default, fill with the highest resolution stream pushed by the client.', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => ''],
],
[
'name' => 'StartWithoutChannel',
'in' => 'query',
'schema' => ['description' => 'Whether to allow starting a job when the channel does not exist.'."\n"
.'- true: Yes'."\n"
.'- false: No (default value)', 'title' => 'Whether to allow starting a job when the channel does not exist.'."\n"
.'- true: Yes'."\n"
.'- false: No (default value)', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => ''],
],
[
'name' => 'StartWithoutChannelWaitTime',
'in' => 'query',
'schema' => ['description' => 'This value is valid only when the StartWithoutChannel parameter is true. It specifies the maximum time, in seconds, that a job waits if the channel is not open. The allowed range is [30, 120].', 'title' => 'This value is valid only when the StartWithoutChannel parameter is true. It specifies the maximum time, in seconds, that a job waits if the channel is not open. The allowed range is [30, 120].', 'type' => 'integer', 'format' => 'int32', 'example' => '30', 'default' => '30', 'required' => false],
],
[
'name' => 'Annotation',
'in' => 'query',
'schema' => [
'description' => 'Toggle for annotation.',
'title' => 'Toggle for annotation.',
'type' => 'string',
'example' => 'disable',
'default' => 'enable',
'enum' => ['disable', 'enable'],
'required' => false,
],
],
[
'name' => 'Panes',
'in' => 'query',
'style' => 'flat',
'schema' => [
'title' => '',
'description' => 'Cell settings. ',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'VideoOrder' => [
'description' => 'Fill order when SourceType is video: '."\n"
.'- screenFirst: Screen sharing takes priority (Default Value). '."\n"
.'- cameraFirst: Camera takes priority. '."\n",
'title' => 'Fill order when SourceType is video: '."\n"
.'- screenFirst: Screen sharing takes priority (Default Value). '."\n"
.'- cameraFirst: Camera takes priority. '."\n",
'type' => 'string',
'example' => 'cameraFirst',
'default' => 'screenFirst',
'enum' => ['cameraFirst', 'screenFirst'],
'required' => false,
],
'SourceType' => [
'title' => '',
'description' => 'Media type of the cell. Valid values: '."\n"
.'- **video**: User camera or screen sharing stream (Default Value). '."\n"
.'- **camera**: Camera stream. '."\n"
.'- **screen**: Screen sharing stream. '."\n"
.'- **whiteboard**: Whiteboard. '."\n",
'type' => 'string',
'required' => false,
'example' => 'video',
'default' => 'video',
'enum' => [],
],
'Images' => [
'maxItems' => 3,
'description' => 'Local image watermark for the pane. ',
'title' => 'Local image watermark for the pane. ',
'type' => 'array',
'items' => [
'description' => '',
'type' => 'object',
'properties' => [
'PaneImageCropMode' => [
'description' => 'Crop mode. Valid values: '."\n"
.'- **1**: Crop while maintaining the aspect ratio. '."\n"
.'- **2**: Maintain aspect ratio with padding. '."\n"
.'- **3**: Stretch to fill the entire area. '."\n",
'title' => 'Crop mode. Valid values: '."\n"
.'- **1**: Crop while maintaining the aspect ratio. '."\n"
.'- **2**: Maintain aspect ratio with padding. '."\n"
.'- **3**: Stretch to fill the entire area. '."\n",
'type' => 'integer',
'format' => 'int32',
'example' => '2',
'enum' => ['1', '2', '3'],
'required' => false,
],
'Alpha' => ['description' => 'Transparency.', 'title' => 'Transparency.', 'type' => 'number', 'format' => 'double', 'example' => '0.9', 'default' => '1.0', 'required' => false],
'X' => ['description' => 'X coordinate.', 'type' => 'number', 'title' => '', 'format' => 'double', 'required' => true, 'example' => '0.2'],
'Y' => ['description' => 'Y coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.3', 'title' => ''],
'Height' => ['description' => 'Height.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'Width' => ['description' => 'Width.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'Layer' => ['description' => 'Z-axis level.', 'title' => 'Z-axis level.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'default' => '0', 'required' => false],
'Url' => ['description' => 'The corresponding image content does not support updates during stream ingest.', 'title' => 'Image URL.', 'type' => 'string', 'required' => true, 'example' => 'https://aliyun.com/123xxx.jpg'],
'Display' => [
'description' => 'Watermark display timing. '."\n"
.'- streamOnly: Display when the user has a video stream (default value). '."\n"
.'- backup: Display when the user does not have a video stream. '."\n"
.'- always: Always display. ',
'title' => 'Watermark display timing. '."\n"
.'- streamOnly: Display when the user has a video stream (default value). '."\n"
.'- backup: Display when the user does not have a video stream. '."\n"
.'- always: Always display. ',
'type' => 'string',
'example' => 'backup',
'default' => 'streamOnly',
'enum' => ['streamOnly', 'backup', 'always'],
'required' => false,
],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'example' => '',
],
'Texts' => [
'maxItems' => 3,
'description' => 'Pane-local text watermark.',
'title' => 'Pane-local text watermark.',
'type' => 'array',
'items' => [
'description' => '',
'type' => 'object',
'properties' => [
'BoxBorderw' => ['description' => 'Rectangle border width. ', 'title' => 'Rectangle border width. ', 'type' => 'integer', 'format' => 'int32', 'example' => '5', 'default' => '5', 'required' => false],
'FontColor' => [
'description' => 'Font color. ',
'title' => 'Font color. ',
'type' => 'object',
'properties' => [
'R' => ['description' => 'R. ', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '255', 'required' => false, 'title' => ''],
'B' => ['description' => 'B. ', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '255', 'required' => false, 'title' => ''],
'G' => ['description' => 'G. ', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '255', 'required' => false, 'title' => ''],
],
'required' => false,
'example' => '',
],
'Texture' => ['description' => 'Watermark content. ', 'title' => 'Watermark content. ', 'type' => 'string', 'required' => true, 'example' => '文字水印'],
'Layer' => ['description' => 'z-axis level. ', 'title' => 'z-axis level. ', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'default' => '0', 'required' => false],
'Font' => ['description' => 'Font. '."\n"
.'- **0**: Alibaba PuHuiTi Regular '."\n"
.'- **1**: Alibaba PuHuiTi Light '."\n"
.'- **2**: Alibaba PuHuiTi Medium '."\n"
.'- **3**: Alibaba PuHuiTi Bold '."\n"
.'- **4**: Alibaba PuHuiTi Heavy '."\n"
.'- **5**: Ali Mama ShuHeiTi '."\n"
.'- **6**: DingTalk JinBuTi '."\n"
.'- **7**: Ali Mama DaoLiTi '."\n"
.'- **8**: Ali Mama DongFang DaKai '."\n"
.'- **9**: Ali Mama FangYuanTi '."\n", 'title' => 'Font. '."\n"
.'- **0**: Alibaba PuHuiTi Regular '."\n"
.'- **1**: Alibaba PuHuiTi Light '."\n"
.'- **2**: Alibaba PuHuiTi Medium '."\n"
.'- **3**: Alibaba PuHuiTi Bold '."\n"
.'- **4**: Alibaba PuHuiTi Heavy '."\n"
.'- **5**: Ali Mama ShuHeiTi '."\n"
.'- **6**: DingTalk JinBuTi '."\n"
.'- **7**: Ali Mama DaoLiTi '."\n"
.'- **8**: Ali Mama DongFang DaKai '."\n"
.'- **9**: Ali Mama FangYuanTi '."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'default' => '0', 'required' => false],
'BoxColor' => [
'description' => 'Rectangle box color. ',
'title' => 'Rectangle box color. ',
'type' => 'object',
'properties' => [
'R' => ['description' => 'R. ', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '30', 'required' => false, 'title' => ''],
'B' => ['description' => 'B. ', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '30', 'required' => false, 'title' => ''],
'G' => ['description' => 'G. ', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '30', 'required' => false, 'title' => ''],
],
'required' => false,
'example' => '',
],
'FontSize' => ['description' => 'Font size. ', 'title' => 'Font size. ', 'type' => 'integer', 'format' => 'int32', 'example' => '36', 'default' => '30', 'required' => false],
'Alpha' => ['description' => 'Watermark transparency. ', 'title' => 'Watermark transparency.', 'type' => 'number', 'format' => 'double', 'example' => '0.9', 'default' => '1', 'required' => false],
'X' => ['description' => 'Horizontal coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'HasBox' => ['description' => 'Indicates whether a rectangular box is required.', 'title' => 'Indicates whether a rectangular box is required.', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => ''],
'Y' => ['description' => 'Vertical coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'BoxAlpha' => ['description' => 'Transparency of the rectangular box.', 'title' => 'Transparency of the rectangular box.', 'type' => 'number', 'format' => 'double', 'example' => '0.6', 'default' => '0.6', 'required' => false],
'Display' => [
'description' => 'When the watermark is displayed:'."\n"
.'- streamOnly: Displayed when the user has a video stream (default value).'."\n"
.'- backup: Displayed when the user does not have a video stream.'."\n"
.'- always: Always displayed.',
'title' => 'When the watermark is displayed:'."\n"
.'- streamOnly: Displayed when the user has a video stream (default value).'."\n"
.'- backup: Displayed when the user does not have a video stream.'."\n"
.'- always: Always displayed.',
'type' => 'string',
'example' => 'backup',
'default' => 'streamOnly',
'enum' => ['streamOnly', 'backup', 'always'],
'required' => false,
],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'example' => '',
],
'PaneCropMode' => [
'description' => 'Crop mode. Valid values:'."\n"
.'- **1**: Crop while maintaining aspect ratio.'."\n"
.'- **2**: Maintain aspect ratio and add borders.'."\n"
.'- **3**: Stretch to fill the area.',
'title' => 'Crop mode. Valid values:'."\n"
.'- **1**: Crop while maintaining aspect ratio.'."\n"
.'- **2**: Maintain aspect ratio and add borders.'."\n"
.'- **3**: Stretch to fill the area.',
'type' => 'integer',
'format' => 'int32',
'example' => '2',
'enum' => ['1', '2', '3'],
'required' => false,
],
'PaneId' => [
'title' => '',
'description' => 'Pane ID, starting from 0.',
'type' => 'string',
'required' => true,
'example' => '0',
'pattern' => '^\\d+$',
'enum' => [],
],
'Source' => ['title' => '', 'description' => 'The media source for the cell. You can specify a userId to indicate a specific user type. Wildcard character configuration is supported, including the following types:'."\n"
."\n"
.'- **$ActiveSpeaker**: The current active speaker in the channel'."\n"
.'- **$ScreenShare**: The screen-sharing user. If multiple users are sharing their screens in the channel, they will be filled sequentially in the order they started sharing.'."\n", 'type' => 'string', 'required' => false, 'example' => '22'],
'Backgrounds' => [
'maxItems' => 3,
'description' => 'Local background image.'."\n",
'title' => 'Local background image for the pane.'."\n",
'type' => 'array',
'items' => [
'description' => '',
'type' => 'object',
'properties' => [
'Alpha' => ['description' => 'Transparency.'."\n", 'title' => 'Transparency.'."\n", 'type' => 'number', 'format' => 'double', 'example' => '0.9', 'default' => '1.0', 'required' => false],
'X' => ['description' => 'X coordinate.'."\n", 'type' => 'number', 'title' => '', 'format' => 'double', 'required' => true, 'example' => '0.2'],
'Y' => ['description' => 'Y coordinate.'."\n", 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'PaneBackgroundCropMode' => [
'description' => 'Crop mode. Valid values:'."\n"
."\n"
.'- **1**: Crop while maintaining aspect ratio.'."\n"
.'- **2**: Maintain aspect ratio with padding.'."\n"
.'- **3**: Stretch to fill.'."\n",
'title' => 'Crop mode. Valid values:'."\n"
."\n"
.'- **1**: Crop while maintaining aspect ratio.'."\n"
.'- **2**: Maintain aspect ratio with padding.'."\n"
.'- **3**: Stretch to fill.'."\n",
'type' => 'integer',
'format' => 'int32',
'example' => '2',
'enum' => ['1', '2', '3'],
'required' => false,
],
'Height' => ['description' => 'Height.'."\n", 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'Width' => ['description' => 'Width.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.3', 'title' => ''],
'Layer' => ['description' => 'z-axis level.', 'title' => 'z-axis level.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'default' => '0', 'required' => false],
'Url' => ['description' => 'Image URL.', 'title' => 'Image URL.', 'type' => 'string', 'required' => true, 'example' => 'https://aliyun.com/123xx.jpg'],
'Display' => [
'description' => 'Display timing. '."\n"
.'- streamOnly: Displayed when the current user has a video stream (default value). '."\n"
.'- backup: Displayed when the current user does not have a video stream. '."\n"
.'- always: Always displayed.',
'title' => 'Watermark display timing. '."\n"
.'- streamOnly: Displayed when the current user has a video stream (default value). '."\n"
.'- backup: Displayed when the current user does not have a video stream. '."\n"
.'- always: Always displayed.',
'type' => 'string',
'example' => 'backup',
'default' => 'streamOnly',
'enum' => ['streamOnly', 'backup', 'always'],
'required' => false,
],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'example' => '',
],
'Whiteboard' => [
'description' => 'Whiteboard configuration.',
'title' => 'Whiteboard Settings.',
'type' => 'object',
'properties' => [
'WhiteboardId' => ['description' => 'Whiteboard ID. Default value is "default".', 'title' => 'Whiteboard ID.', 'type' => 'string', 'example' => 'default', 'default' => 'default', 'required' => false],
],
'required' => false,
'example' => '',
],
'ReservePaneForOfflineUser' => ['description' => 'Reserve pane for offline users. '."\n"
.'The default value is true, which means that if a specific user or wildcard user assigned to a grid pane is offline, the pane remains reserved. '."\n"
.'If set to false, when a specific user or wildcard user assigned to a grid pane is offline, the pane displays video streams according to the Auto Fill order.', 'title' => 'Reserve pane for offline users. '."\n"
.'The default value is true, which means that if a specific user or wildcard user assigned to a grid pane is offline, the pane remains reserved. '."\n"
.'If set to false, when a specific user or wildcard user assigned to a grid pane is offline, the pane displays video streams according to the Auto Fill order.', 'type' => 'boolean', 'default' => 'true', 'required' => false, 'example' => ''],
],
'required' => false,
'description' => '',
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 16,
'example' => 'eo85****',
],
],
[
'name' => 'Backgrounds',
'in' => 'query',
'style' => 'flat',
'schema' => [
'maxItems' => 3,
'description' => 'Background image.',
'title' => 'Background image.',
'type' => 'array',
'items' => [
'description' => '',
'type' => 'object',
'properties' => [
'BackgroundCropMode' => [
'description' => 'Crop mode. Valid values:'."\n"
.'- **1**: Crop while maintaining aspect ratio.'."\n"
.'- **2**: Maintain aspect ratio with padding.'."\n"
.'- **3**: Stretch to fill.',
'title' => 'Crop mode. Valid values:'."\n"
.'- **1**: Crop while maintaining aspect ratio.'."\n"
.'- **2**: Maintain aspect ratio with padding.'."\n"
.'- **3**: Stretch to fill.',
'type' => 'integer',
'format' => 'int32',
'example' => '2',
'enum' => ['1', '2', '3'],
'required' => false,
],
'Alpha' => ['description' => 'Transparency.', 'title' => 'Transparency.', 'type' => 'number', 'format' => 'double', 'example' => '0.9', 'default' => '1.0', 'required' => false],
'X' => ['description' => 'X coordinate.', 'title' => 'X coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2'],
'Y' => ['description' => 'Y coordinate.', 'title' => 'Y coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2'],
'Height' => ['description' => 'Height.', 'title' => 'Height.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2'],
'Width' => ['description' => 'Width.', 'title' => 'Width.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2'],
'Layer' => ['description' => 'z-axis level.', 'title' => 'z-axis level.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'default' => '0', 'required' => false],
'Url' => ['description' => 'Image URL.', 'title' => 'Image URL.', 'type' => 'string', 'required' => true, 'example' => 'https://aliyun.com/123.jpg'],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'example' => '',
],
],
[
'name' => 'Images',
'in' => 'query',
'style' => 'flat',
'schema' => [
'maxItems' => 3,
'description' => 'Global image watermark. ',
'title' => 'Global image watermark. ',
'type' => 'array',
'items' => [
'description' => '',
'type' => 'object',
'properties' => [
'Alpha' => ['description' => 'Transparency. ', 'title' => 'Transparency. ', 'type' => 'number', 'format' => 'double', 'example' => '0.9', 'default' => '1.0', 'required' => false],
'X' => ['description' => 'X-coordinate. ', 'type' => 'number', 'title' => '', 'format' => 'double', 'required' => true, 'example' => '0.2'],
'Y' => ['description' => 'Y-coordinate. ', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'Height' => ['description' => 'Height. ', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'ImageCropMode' => [
'description' => 'Cropping mode. Valid values: '."\n"
.'- **1**: Crop while maintaining aspect ratio. '."\n"
.'- **2**: Maintain aspect ratio with padding. '."\n"
.'- **3**: Stretch to fill. ',
'title' => 'Cropping mode. Valid values: '."\n"
.'- **1**: Crop while maintaining aspect ratio. '."\n"
.'- **2**: Maintain aspect ratio with padding. '."\n"
.'- **3**: Stretch to fill. ',
'type' => 'integer',
'format' => 'int32',
'example' => '2',
'enum' => ['1', '2', '3'],
'required' => false,
],
'Width' => ['description' => 'Width. ', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'Layer' => ['description' => 'Z-axis level. ', 'title' => 'Z-axis level.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'default' => '0', 'required' => false],
'Url' => ['description' => 'Image URL. The corresponding image content does not support updates during stream ingest.', 'title' => 'Image URL.', 'type' => 'string', 'required' => true, 'example' => 'https://aliyun.com/123xxx.jpg'],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'example' => '30',
],
],
[
'name' => 'Texts',
'in' => 'query',
'style' => 'flat',
'schema' => [
'maxItems' => 3,
'description' => 'Global text watermark.',
'title' => 'Global text watermark.',
'type' => 'array',
'items' => [
'description' => '',
'type' => 'object',
'properties' => [
'BoxBorderw' => ['description' => 'Rectangle border width.', 'title' => 'Rectangle border width.', 'type' => 'integer', 'format' => 'int32', 'example' => '5', 'default' => '5', 'required' => false],
'BoxColor' => [
'description' => 'Rectangle color.',
'title' => 'Rectangle color.',
'type' => 'object',
'properties' => [
'R' => ['description' => 'R.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '30', 'required' => false, 'title' => ''],
'B' => ['description' => 'B.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '30', 'required' => false, 'title' => ''],
'G' => ['description' => 'G.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '30', 'required' => false, 'title' => ''],
],
'required' => false,
'example' => '',
],
'FontSize' => ['description' => 'Font size.', 'title' => 'Font size.', 'type' => 'integer', 'format' => 'int32', 'example' => '36', 'default' => '30', 'required' => false],
'Alpha' => ['description' => 'Watermark transparency.', 'title' => 'Watermark transparency.', 'type' => 'number', 'format' => 'double', 'example' => '0.1', 'default' => '1', 'required' => false],
'FontColor' => [
'description' => 'Font color.',
'title' => 'Font color.',
'type' => 'object',
'properties' => [
'R' => ['description' => 'R.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '255', 'required' => false, 'title' => ''],
'B' => ['description' => 'B.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '255', 'required' => false, 'title' => ''],
'G' => ['description' => 'G.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '255', 'required' => false, 'title' => ''],
],
'required' => false,
'example' => '',
],
'X' => ['description' => 'X coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'HasBox' => ['description' => 'Indicates whether a rectangular box is required.', 'title' => 'Indicates whether a rectangular box is required.', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => ''],
'Y' => ['description' => 'Y coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'Texture' => ['description' => 'Watermark content.', 'title' => 'Watermark content.', 'type' => 'string', 'required' => true, 'example' => '文字水印'],
'Layer' => ['description' => 'z-axis level.', 'title' => 'z-axis level.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'default' => '0', 'required' => false],
'Font' => ['description' => 'Font. '."\n"
.'- **0**: Alibaba PuHuiTi Regular '."\n"
.'- **1**: Alibaba PuHuiTi Light '."\n"
.'- **2**: Alibaba PuHuiTi Medium '."\n"
.'- **3**: Alibaba PuHuiTi Bold '."\n"
.'- **4**: Alibaba PuHuiTi Heavy '."\n"
.'- **5**: AliMama ShuHeiTi '."\n"
.'- **6**: DingTalk JinBuTi '."\n"
.'- **7**: AliMama DaoLiTi '."\n"
.'- **8**: AliMama DongFang DaKai '."\n"
.'- **9**: AliMama FangYuanTi '."\n", 'title' => 'Font. '."\n"
.'- **0**: Alibaba PuHuiTi Regular '."\n"
.'- **1**: Alibaba PuHuiTi Light '."\n"
.'- **2**: Alibaba PuHuiTi Medium '."\n"
.'- **3**: Alibaba PuHuiTi Bold '."\n"
.'- **4**: Alibaba PuHuiTi Heavy '."\n"
.'- **5**: AliMama ShuHeiTi '."\n"
.'- **6**: DingTalk JinBuTi '."\n"
.'- **7**: AliMama DaoLiTi '."\n"
.'- **8**: AliMama DongFang DaKai '."\n"
.'- **9**: AliMama FangYuanTi '."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'default' => '0', 'required' => false],
'BoxAlpha' => ['description' => 'Transparency of the rectangular box.', 'title' => 'Transparency of the rectangular box.', 'type' => 'number', 'format' => 'double', 'example' => '0.6', 'default' => '0.6', 'required' => false],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'example' => '',
],
],
[
'name' => 'ClockWidgets',
'in' => 'query',
'style' => 'flat',
'schema' => [
'maxItems' => 3,
'description' => 'Global clock watermark.',
'title' => 'Global clock watermark.',
'type' => 'array',
'items' => [
'description' => '',
'type' => 'object',
'properties' => [
'BoxBorderw' => ['description' => 'Rectangle border line width.', 'title' => 'Rectangle border line width.', 'type' => 'integer', 'format' => 'int32', 'example' => '5', 'default' => '5', 'required' => false],
'BoxColor' => [
'description' => 'Rectangle color.',
'title' => 'Rectangle color.',
'type' => 'object',
'properties' => [
'R' => ['description' => 'R.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '30', 'required' => false, 'title' => ''],
'B' => ['description' => 'B.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '30', 'required' => false, 'title' => ''],
'G' => ['description' => 'G.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '30', 'required' => false, 'title' => ''],
],
'required' => false,
'example' => '',
],
'FontSize' => ['description' => 'Clock font size.', 'title' => 'Clock font size.', 'type' => 'integer', 'format' => 'int32', 'example' => '30', 'default' => '30', 'required' => false],
'Zone' => ['description' => 'Time Zone.', 'title' => 'Time Zone.', 'type' => 'integer', 'format' => 'int32', 'example' => '8', 'default' => '8', 'required' => false],
'Alpha' => ['description' => 'Transparency.', 'title' => 'Transparency.', 'type' => 'number', 'format' => 'double', 'example' => '0.9', 'default' => '1', 'required' => false],
'FontColor' => [
'description' => 'Font color.',
'title' => 'Font color.',
'type' => 'object',
'properties' => [
'R' => ['description' => 'R.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '255', 'required' => false, 'title' => ''],
'B' => ['description' => 'B.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '255', 'required' => false, 'title' => ''],
'G' => ['description' => 'G.', 'type' => 'integer', 'format' => 'int32', 'example' => '255', 'default' => '255', 'required' => false, 'title' => ''],
],
'required' => false,
'example' => '',
],
'X' => ['description' => 'X coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'HasBox' => ['description' => 'Indicates whether a rectangular box is required.', 'title' => 'Indicates whether a rectangular box is required.', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => ''],
'Y' => ['description' => 'Y coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'example' => '0.2', 'title' => ''],
'Layer' => ['description' => 'z-axis level.', 'title' => 'z-axis level.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'default' => '0', 'required' => false],
'Font' => ['description' => 'Font. '."\n"
.'- **0**: Alibaba PuHuiTi Regular '."\n"
.'- **1**: Alibaba PuHuiTi Light '."\n"
.'- **2**: Alibaba PuHuiTi Medium '."\n"
.'- **3**: Alibaba PuHuiTi Bold '."\n"
.'- **4**: Alibaba PuHuiTi Heavy '."\n"
.'- **5**: AliMama ShuHeiTi '."\n"
.'- **6**: DingTalk JinBuTi '."\n"
.'- **7**: AliMama DaoLiTi '."\n"
.'- **8**: AliMama DongFang DaKai '."\n"
.'- **9**: AliMama FangYuanTi '."\n", 'title' => 'Font. '."\n"
.'- **0**: Alibaba PuHuiTi Regular '."\n"
.'- **1**: Alibaba PuHuiTi Light '."\n"
.'- **2**: Alibaba PuHuiTi Medium '."\n"
.'- **3**: Alibaba PuHuiTi Bold '."\n"
.'- **4**: Alibaba PuHuiTi Heavy '."\n"
.'- **5**: AliMama ShuHeiTi '."\n"
.'- **6**: DingTalk JinBuTi '."\n"
.'- **7**: AliMama DaoLiTi '."\n"
.'- **8**: AliMama DongFang DaKai '."\n"
.'- **9**: AliMama FangYuanTi '."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'default' => '0', 'required' => false],
'BoxAlpha' => ['description' => 'Transparency of the rectangular box.', 'title' => 'Transparency of the rectangular box.', 'type' => 'number', 'format' => 'double', 'example' => '0.6', 'default' => '0.6', 'required' => false],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'example' => '',
],
],
[
'name' => 'RegionColor',
'in' => 'query',
'style' => 'flat',
'schema' => [
'description' => 'Global grid background color ',
'title' => 'Global grid background color ',
'type' => 'object',
'properties' => [
'R' => ['description' => 'R. ', 'title' => 'R. ', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '-1', 'example' => '255', 'default' => '0', 'required' => false],
'G' => ['description' => 'G. ', 'title' => 'G. ', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '-1', 'example' => '255', 'default' => '0', 'required' => false],
'B' => ['description' => 'B. ', 'title' => 'B. ', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '-1', 'example' => '255', 'default' => '0', 'required' => false],
],
'required' => false,
'example' => '',
],
],
[
'name' => 'BgColor',
'in' => 'query',
'style' => 'flat',
'schema' => [
'description' => 'Global background color',
'title' => 'Global background color',
'type' => 'object',
'properties' => [
'R' => ['description' => 'R.', 'title' => 'R.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '0', 'required' => false],
'G' => ['description' => 'G.', 'title' => 'G.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '0', 'required' => false],
'B' => ['description' => 'B.', 'title' => 'B.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '0', 'required' => false],
],
'required' => false,
'example' => '',
],
],
[
'name' => 'LayoutSpecifiedUsers',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The layout generation uses a user-specified list, which includes both blacklist and whitelist.'."\n"
."\n"
.'Whitelist: specifies which users\' video streams to subscribe to in the channel. '."\n"
.'* After configuration, Auto Fill populates slots sequentially based on this list. '."\n"
.'* When switching between multiple layouts in a template, only users in the whitelist are considered.'."\n"
."\n"
.'Blacklist: specifies which users\' video streams not to subscribe to in the channel. '."\n"
.'* When switching between multiple layouts in a template, only users not in the blacklist are considered.',
'title' => 'Blacklist/Whitelist Settings.',
'type' => 'object',
'properties' => [
'Type' => [
'description' => 'Type of user list: blacklist is "black", whitelist is "white".',
'title' => 'Type of user list: blacklist is "black", whitelist is "white".',
'type' => 'string',
'required' => true,
'enum' => ['white', 'black'],
'example' => 'white',
],
'Ids' => [
'minItems' => 1,
'maxItems' => 16,
'description' => 'List of specified User IDs.',
'title' => 'List of specified User IDs.',
'type' => 'array',
'items' => ['description' => 'Specific User ID.', 'title' => 'Specific User ID.', 'type' => 'string', 'required' => true, 'example' => '123'],
'required' => true,
'example' => '',
],
],
'required' => false,
'example' => '',
],
],
[
'name' => 'SpecMixedUserList',
'in' => 'query',
'style' => 'flat',
'schema' => [
'maxItems' => 25,
'description' => 'List of users specified to be included in audio mixing.',
'title' => 'List of users specified to be included in audio mixing.',
'type' => 'array',
'items' => ['description' => 'User ID.', 'title' => 'User ID.', 'type' => 'string', 'required' => false, 'example' => '456'],
'required' => false,
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'result',
'description' => 'result',
'type' => 'object',
'properties' => [
'TaskId' => ['title' => '', 'description' => 'The task ID of this bypass stream ingest job. ', 'type' => 'string', 'example' => '123'],
'RequestId' => ['title' => '', 'description' => 'The request ID. ', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8'],
],
'example' => '',
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TaskId\\": \\"123\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\"\\n}","type":"json"}]',
'title' => 'Start Bypass Stream Ingest Job ',
'description' => '### How-To '."\n"
.'This API is used to start a bypass stream ingest job for an online channel. '."\n"
."\n"
.'### queries per second (QPS) Limit '."\n"
.'The per-user QPS limit for this API is 10 requests per second. If this limit is exceeded, API calls will be subject to Rate Limiting, which may Impact your service. Please invoke this API appropriately. ',
'requestParamsDescription' => '>Additional Notes>'."\n"
."\n"
.'The total number of local image watermarks, local background image watermarks, global image watermarks, and global background images must not exceed 16.'."\n"
."\n"
.''."\n"
.'Advanced Watermark Layering Details
'."\n"
.'The RTC media server generates the output画面 in the following sequence:'."\n"
."\n"
.'Render video → Render images → Render text'."\n"
."\n"
.'Video, images, and text are completely separate layers. From the perspective of the entire画面, the priority order is: text > images > video.'."\n"
."\n"
.'1. **Render video**: '."\n"
.' The video画面 is laid out according to the layout defined by the customer.'."\n"
."\n"
.' a. Layers for grid images and global images are arranged uniformly.'."\n"
."\n"
.' b. Layer 0 is at the bottommost level; higher layer values appear above lower ones. The valid layer range is [0, 100].'."\n"
."\n"
.'2. **Render images**: '."\n"
.' Images include user-defined PNG/JPG images.'."\n"
."\n"
.' a. Images are rendered based on user-configured properties such as width, height, position, and transparency.'."\n"
."\n"
.' b. Layer 0 is at the bottommost level; higher layer values appear above lower ones. The valid layer range is [0, 100].'."\n"
."\n"
.'3. **Render text**: '."\n"
.' Text is divided into three types: area text, global text, and UNIX timestamp text.'."\n"
."\n"
.' a. Within the same text type, rendering follows the layer order: layer 0 is at the bottommost level, and higher layer values appear above lower ones. The valid layer range is [0, 100].'."\n"
."\n"
.' b. Priority among different text types is: UNIX timestamp text > global text > area text. When overlapping occurs, lower-priority text will be overwritten.'."\n"
."\n"
.'**Display behavior for overlapping content**: '."\n"
.'1. By default, higher-priority content overwrites lower-priority content in overlapping regions. '."\n"
.'2. If lower-priority content should not be overwritten, set the transparency of the higher-priority content to 0.'."\n"
.' ',
'changeSet' => [
['createdAt' => '2025-04-15T09:35:58.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2025-02-21T05:57:36.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2025-02-12T10:01:31.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2024-12-16T05:55:21.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2024-11-06T09:37:51.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2024-03-20T07:16:21.000Z', 'description' => 'Request parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartStreamingOut'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'rtc:StartStreamingOut',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'StartView' => [
'summary' => 'Start stream composition.',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'Application ID. Create and view it in the console. Pass only one ID.', 'type' => 'string', 'required' => true, 'example' => 'eo85****', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'Existing channel ID. Pass only one ID.', 'type' => 'string', 'required' => true, 'example' => 'testid', 'title' => ''],
],
[
'name' => 'TemplateId',
'in' => 'query',
'schema' => ['description' => 'Template ID.', 'type' => 'string', 'required' => true, 'example' => '567', 'maxLength' => 128, 'minLength' => 1, 'pattern' => '^[\\w.-]+$', 'title' => ''],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'Task ID for this request. Pass only one ID. Use uppercase letters, lowercase letters, digits, underscores (\\_), or hyphens (-). Maximum length: 55 bytes.', 'type' => 'string', 'required' => true, 'example' => '123', 'maxLength' => 55, 'minLength' => 1, 'pattern' => '^[0-9a-zA-Z_-]+$', 'title' => ''],
],
[
'name' => 'CropMode',
'in' => 'query',
'schema' => [
'description' => 'Cropping mode. Valid values:'."\n"
."\n"
.'- **1**: Crop while preserving aspect ratio.'."\n"
."\n"
.'- **2**: Pad while preserving aspect ratio (default).'."\n"
."\n"
.'- **3**: Stretch to fill.',
'type' => 'integer',
'format' => 'int32',
'example' => '2',
'default' => '2',
'enum' => ['1', '2', '3'],
'title' => '',
'required' => false,
],
],
[
'name' => 'StartWithoutChannel',
'in' => 'query',
'schema' => ['description' => 'Whether to start the task even if the channel does not exist.'."\n"
."\n"
.'- true: Yes'."\n"
."\n"
.'- false: No (default)', 'type' => 'boolean', 'default' => 'false', 'title' => '', 'required' => false, 'example' => ''],
],
[
'name' => 'StartWithoutChannelWaitTime',
'in' => 'query',
'schema' => ['description' => 'Time to wait for the channel to become available, in seconds. This parameter applies only when StartWithoutChannel is true. Valid range: 30 to 120 seconds.', 'type' => 'integer', 'format' => 'int32', 'example' => '30', 'default' => '30', 'title' => '', 'required' => false],
],
[
'name' => 'RegionColor',
'in' => 'query',
'style' => 'flat',
'schema' => [
'title' => '',
'description' => 'Background color of the global frame.',
'type' => 'object',
'properties' => [
'R' => ['title' => 'R。', 'description' => 'Red component value.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '-1', 'example' => '255', 'default' => '0', 'required' => false],
'G' => ['title' => 'G。', 'description' => 'Green component value.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '-1', 'example' => '255', 'default' => '0', 'required' => false],
'B' => ['title' => 'B。', 'description' => 'B', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '-1', 'example' => '255', 'default' => '0', 'required' => false],
],
'required' => false,
'example' => '',
],
],
[
'name' => 'BgColor',
'in' => 'query',
'style' => 'flat',
'schema' => [
'title' => '',
'description' => 'Global background color.',
'type' => 'object',
'properties' => [
'R' => ['title' => 'R。', 'description' => 'R', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '0', 'required' => false],
'G' => ['title' => 'G。', 'description' => 'Green component value.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '0', 'required' => false],
'B' => ['title' => 'B。', 'description' => 'B.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '0', 'required' => false],
],
'required' => false,
'example' => '',
],
],
[
'name' => 'ViewSubscribers',
'in' => 'query',
'style' => 'simple',
'schema' => [
'title' => '',
'description' => 'List of user IDs for SIP devices that can view the main stream or screen-sharing stream.',
'type' => 'array',
'items' => ['description' => 'User ID.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '12'],
'required' => false,
'example' => '',
],
],
[
'name' => 'ViewContent',
'in' => 'query',
'schema' => [
'description' => 'Stream type.'."\n"
."\n"
.'- main: Main stream'."\n"
."\n"
.'- screen-cast: Screen-sharing stream',
'type' => 'string',
'example' => 'main',
'default' => 'main',
'enum' => ['main', 'screen-cast'],
'title' => '',
'required' => false,
],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'TaskId' => ['description' => 'Task ID for this request.', 'type' => 'string', 'example' => '123', 'title' => ''],
'RequestId' => ['description' => 'Request ID.', 'type' => 'string', 'title' => '', 'example' => 'FA2F9DE9-8EAD-580E-87DF-A3D25EE87C37'],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TaskId\\": \\"123\\",\\n \\"RequestId\\": \\"FA2F9DE9-8EAD-580E-87DF-A3D25EE87C37\\"\\n}","type":"json"}]',
'title' => 'Enable stream mixing',
'description' => '### QPS limit'."\n"
."\n"
.'This API supports a maximum of 10 calls per second per user. Exceeding this limit triggers rate limiting, which may impact your business operations. Call this API only when necessary.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartView'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'rtc:StartView',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
],
],
'StopAgent' => [
'summary' => 'Stops an AI Agent.',
'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 application ID. Only a single ID is supported. You can create and query applications in the console.', 'type' => 'string', 'required' => true, 'example' => 'aec****', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'The channel to join. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'yourChannelId', 'title' => ''],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'The task ID. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'yourTaskId', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'Id of the request', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'],
],
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'Shutdown Agent ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopAgent'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:StopAgent',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]',
],
'StopCategoryCallback' => [
'summary' => 'Shuts down an event callback.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'deprecated' => false,
'systemTags' => ['operationType' => 'none'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID.', 'type' => 'string', 'required' => true, 'example' => '223***JQb', 'title' => ''],
],
[
'name' => 'Callback',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The callback.',
'type' => 'object',
'properties' => [
'Category' => ['description' => 'The callback code.', 'type' => 'string', 'required' => true, 'example' => 'RecordEvent', 'title' => ''],
],
'required' => true,
'title' => '',
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The ID of the request.', 'type' => 'string', 'example' => '2DCE8D7E-BE3B-54AB-8DAC-32F34BED0763'],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ParameterError', 'errorMessage' => '%s.', 'description' => ''],
],
404 => [
['errorCode' => 'NotFound', 'errorMessage' => '%s.', 'description' => 'The requested resource does not exist'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"2DCE8D7E-BE3B-54AB-8DAC-32F34BED0763\\"\\n}","type":"json"}]',
'title' => 'Shut down a management event callback',
'description' => '### QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for this API is 10 calls per second per user. If you exceed this limit, API calls are subject to rate limiting, which may affect your business. Call this API at a reasonable rate.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopCategoryCallback'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:StopCategoryCallback',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'StopChannel' => [
'summary' => 'This API is used by the server to actively shut down a channel. ',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'deprecated' => false,
'systemTags' => ['operationType' => 'delete'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'Application ID. You can create and query it in the console. Only a single ID is supported. ', 'type' => 'string', 'required' => true, 'example' => 'eo85****'],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'An existing channel ID. Only a single ID is supported. ', 'type' => 'string', 'required' => true, 'example' => 'testid'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'result',
'description' => 'result',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => '', 'description' => 'Request ID. ', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8'],
],
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\"\\n}","type":"json"}]',
'title' => 'Shutdown Channel ',
'description' => '### How-To '."\n"
.'This API is used by the server to actively shut down an online channel. '."\n"
.'### queries per second (QPS) Limit '."\n"
.'The QPS limit for this API is 10 queries per second per user. If the limit is exceeded, API calls will be subject to rate limiting, which may impact your service. Invoke this API appropriately. ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopChannel'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'rtc:StopChannel',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'StopCloudNote' => [
'summary' => 'Stop Intelligent Summary ',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'deprecated' => false,
'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
'name' => 'ClientToken',
'in' => 'query',
'allowEmptyValue' => false,
'schema' => ['title' => '', 'description' => 'Idempotency parameter ', 'type' => 'string', 'required' => false, 'example' => '53200b81-b761-4c10-842a-a0726d97xxxx'],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The application ID. ', 'type' => 'string', 'required' => true, 'example' => 'qwsz1234'],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The channel name. ', 'type' => 'string', 'required' => true, 'example' => 'test'],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The job ID. ', 'type' => 'string', 'required' => true, 'example' => 'rtc', 'maxLength' => 55, 'minLength' => 1, 'pattern' => '^[\\w.-]+$'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'TaskId' => ['title' => '', 'description' => 'The ID of this job. ', 'type' => 'string', 'example' => '123'],
'RequestId' => ['title' => '', 'description' => 'The request ID. ', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8'],
],
'example' => '',
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TaskId\\": \\"123\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\"\\n}","type":"json"}]',
'title' => 'Stop Summary Job ',
'description' => '### How-To '."\n"
.'This API is used to stop a summary job for an online channel. '."\n"
.'### Queries per second (QPS) limit '."\n"
.'The QPS limit for this API is 10 requests per second per user. If the limit is exceeded, API calls will be subject to rate limiting, which may impact your business. Please invoke the API appropriately. ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopCloudNote'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'rtc:StopCloudNote',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'StopCloudRecord' => [
'summary' => 'StopCloudRecord',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'deprecated' => false,
'systemTags' => ['operationType' => 'delete'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The application ID, created and queried via the console. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'eo85****'],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The existing channel ID. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'testid'],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The existing cloud recording job ID. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => '123', 'maxLength' => 55, 'minLength' => 1, 'pattern' => '^[0-9a-zA-Z_-]+$'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'result',
'description' => 'result',
'type' => 'object',
'properties' => [
'TaskId' => ['title' => '', 'description' => 'The task ID of this cloud recording job.', 'type' => 'string', 'example' => '123'],
'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8'],
],
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TaskId\\": \\"123\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\"\\n}","type":"json"}]',
'title' => 'Stop Cloud Recording Job',
'description' => '### How-To '."\n"
.'This API is used to stop an online channel cloud recording job. '."\n"
.'### queries per second (QPS) Limit '."\n"
.'The QPS limit for this API is 10 queries per second (QPS) per user. If the limit is exceeded, API calls will be subject to rate limiting, which may impact your business. Please invoke the API appropriately.',
'changeSet' => [
['createdAt' => '2024-03-07T04:00:38.000Z', 'description' => 'Request parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopCloudRecord'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'rtc:StopCloudRecord',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'StopMPUTask' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. Only a single ID can be passed.'."\n"
."\n"
.'> You can create and query the application ID in the [console](https://rtc.console.aliyun.com/manage/list#/manage/list).', 'type' => 'string', 'required' => true, 'example' => 'yourAppId', 'title' => ''],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'The task ID. Only a single ID can be passed. The value must be the same as the TaskId parameter of [StartMpuTask](~~93183~~).', 'type' => 'string', 'required' => true, 'example' => 'yourTaskId', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned result.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '760bad53276431c499e30dc36f6b26be', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"760bad53276431c499e30dc36f6b26be\\"\\n}","type":"json"}]',
'title' => 'Stop a task',
'summary' => 'Calls the StopMPUTask operation to stop a stream relay task.',
'description' => '# Usage notes'."\n"
."\n"
.'- Before you call this operation, you must have called [StartMpuTask](~~93183~~) to start a stream relay task.'."\n"
.'- If you need to stop a stream relay task and the stream relay task is abnormal (the StopMPUTask operation is not called to stop the task), the stream relay task is automatically stopped 2 minutes after the last user leaves the channel. After the task is stopped, if you need to resume stream relay, you need to call the [StartMpuTask](~~93183~~) operation again.'."\n"
."\n"
.'# QPS limit'."\n"
.'The QPS limit per user for this operation is 500 times per second. If the limit is exceeded, API calls are throttled, which may affect your business. Call the operation properly. For more information, see [QPS limits](~~341645~~).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopMPUTask'],
],
],
'ramActions' => [],
],
'StopRecordTask' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. Create and query the ID in the console. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'yourAppId', 'title' => ''],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'The task ID. Only a single ID is supported. The value must be the same as the TaskId parameter of the [StartRecordTask](~~193528~~) operation.', 'type' => 'string', 'required' => true, 'example' => 'yourTaskId', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '760bad53276431c499e30dc36f6b26be', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"760bad53276431c499e30dc36f6b26be\\"\\n}","type":"json"}]',
'title' => 'Stops a video recording task',
'summary' => 'Calls the StopRecordTask operation to stop a video recording task.',
'description' => '# Usage notes'."\n"
.'Before you call this operation, you must call the [StartRecordTask](~~193528~~) operation to start a video recording task.'."\n"
.'# QPS limit'."\n"
.'You can call this operation up to 4,000 times per minute per user. If the number of calls per minute exceeds the limit, throttling is triggered, which may affect your business. Call this operation as required. For more information, see [QPS limit](~~341645~~).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Special error codes'."\n"
."\n"
.'|Error code|Description|HTTP status code|Semantics|'."\n"
.'|-------|---|----------|----|'."\n"
.'| InternalError | The request processing has failed due to some unknown error, exception or failure. | 500 | Internal error |',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '4000', 'countWindow' => 60, 'regionId' => '*', 'api' => 'StopRecordTask'],
],
],
'ramActions' => [],
],
'StopStreamingOut' => [
'summary' => 'StopStreamingOut',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'deprecated' => false,
'systemTags' => ['operationType' => 'delete'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The application ID, which is created and queried via the console. Only a single ID is supported. ', 'type' => 'string', 'required' => true, 'example' => 'eo85****'],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'An existing channel ID. Only a single ID is supported. ', 'type' => 'string', 'required' => true, 'example' => 'testid'],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The ID of an existing bypass stream ingest job. Only a single ID is supported. It can contain uppercase and lowercase letters, digits, underscores, and hyphens (-), with a maximum length of 55 bytes. If not specified, the system will automatically generate one. ', 'type' => 'string', 'required' => true, 'example' => '123', 'maxLength' => 55, 'minLength' => 1, 'pattern' => '^[0-9a-zA-Z_-]+$'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'result',
'description' => 'result',
'type' => 'object',
'properties' => [
'TaskId' => ['title' => '', 'description' => 'The task ID of this bypass stream ingest job. ', 'type' => 'string', 'example' => '123'],
'RequestId' => ['title' => '', 'description' => 'The request ID. ', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8'],
],
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TaskId\\": \\"123\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\"\\n}","type":"json"}]',
'title' => 'Stop Bypass Stream Ingest Job ',
'description' => '### How-To '."\n"
.'This API is used to stop a bypass stream ingest job for an online channel. '."\n"
.'### queries per second (QPS) Limit '."\n"
.'The QPS limit for this API is 10 queries per second (QPS) per user. If the limit is exceeded, API calls will be subject to rate limiting, which may impact your business. Invoke this API appropriately. ',
'changeSet' => [
['createdAt' => '2024-03-20T07:16:21.000Z', 'description' => 'Request parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopStreamingOut'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'rtc:StopStreamingOut',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'StopView' => [
'summary' => 'Stop stream mixing.',
'methods' => ['post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. Create and query it in the console. Only one ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'eo85****', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'An existing channel ID. Only one ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'testid', 'title' => ''],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'An existing task ID. Only one ID is supported.', 'type' => 'string', 'required' => true, 'example' => '123', 'maxLength' => 55, 'minLength' => 1, 'pattern' => '^[0-9a-zA-Z_-]+$', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'TaskId' => ['description' => 'The task ID.', 'type' => 'string', 'title' => '', 'example' => '2bd80921b81e4d4289f696606885606b'],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'E8236D21-B690-5251-A361-5971FBF552BA'],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TaskId\\": \\"2bd80921b81e4d4289f696606885606b\\",\\n \\"RequestId\\": \\"E8236D21-B690-5251-A361-5971FBF552BA\\"\\n}","type":"json"}]',
'title' => 'Stop stream mixing',
'description' => '### QPS limit'."\n"
."\n"
.'The QPS limit for this API is 10 requests per second per user. Exceeding this limit triggers rate limiting, which can affect your application. Therefore, call the API judiciously.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopView'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'rtc:StopView',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
],
],
'UpdateAgent' => [
'summary' => 'Update an AI Agent',
'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 application ID. Specify only one ID. You can create and query applications in the console.', 'type' => 'string', 'required' => true, 'example' => '4eah****', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'The existing channel ID. Specify only one ID.', 'type' => 'string', 'required' => true, 'example' => 'yourChannelId', 'title' => ''],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'The task ID. Specify only one ID.', 'type' => 'string', 'required' => true, 'example' => 'yourTaskId', 'title' => ''],
],
[
'name' => 'VoiceChatConfig',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'Configuration for AI voice conversation.',
'type' => 'object',
'properties' => [
'InterruptMode' => ['description' => '1 – Enable voice interruption. 2 – Disable voice interruption.If this field is not included, no update occurs.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2', 'title' => ''],
'ChatMode' => ['description' => '1 – Natural conversation mode. 2 – Walkie-talkie mode.If this field is not included, no update occurs.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
],
],
'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' => '760bad53276431c499e30dc36f6b26be'],
],
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"760bad53276431c499e30dc36f6b26be\\"\\n}","type":"json"}]',
'title' => 'Update Agent ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateAgent'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:UpdateAgent',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
],
],
'UpdateAutoLiveStreamRule' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
'name' => 'ChannelIds',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The list of channel IDs for exact matching.',
'type' => 'array',
'items' => ['description' => '精确匹配的频道ID。'."\n"
."\n"
.'> ChannelIds和ChannelIdPrefixes参数只能二选一输入或者都不输入,如果都不输入,则表示进行应用ID维度的自动旁路单路转推。', 'type' => 'string', 'required' => false, 'example' => '12333', 'title' => ''],
'required' => false,
'maxItems' => 64,
'title' => '',
'example' => '',
],
],
[
'name' => 'ChannelIdPrefixes',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The prefix list for fuzzy matching of channel IDs.',
'type' => 'array',
'items' => ['description' => '模糊匹配频道ID的前缀。'."\n"
.'> ChannelIds和ChannelIdPrefixes参数只能二选一输入或者都不输入,如果都不输入,则表示进行应用ID维度的自动旁路单路转推。', 'type' => 'string', 'required' => false, 'example' => '12', 'title' => ''],
'required' => false,
'maxItems' => 64,
'title' => '',
'example' => '',
],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. You can create and query applications in the console.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'eo85****', 'title' => ''],
],
[
'name' => 'PlayDomain',
'in' => 'query',
'schema' => ['description' => 'The streaming domain name for automatic bypass. The streaming URL for an automatic bypass task is rtmp://${domain}/${app}/${stream}.'."\n"
."\n"
.'- domain: Your live streaming domain name.'."\n"
.'- app: live.'."\n"
.'- stream: urlencode(${AppId}_${ChannelId}_${UserId}_${SourceType}), where SourceType is the input source type.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'rtmp://${domain}/${app}/${stream}', 'title' => ''],
],
[
'name' => 'RuleName',
'in' => 'query',
'schema' => ['description' => 'The name of the bypass rule.', 'type' => 'string', 'required' => false, 'example' => 'testRule', 'title' => ''],
],
[
'name' => 'CallBack',
'in' => 'query',
'schema' => ['description' => 'The callback URL for starting and stopping bypass tasks. You can query the callback URL in the console or by calling the [DescribeAutoLiveStreamRule](~~353198~~) operation.', 'type' => 'string', 'required' => false, 'example' => 'http://example.com/callback', 'title' => ''],
],
[
'name' => 'MediaEncode',
'in' => 'query',
'schema' => ['description' => 'The encoding option. For more information, see the MediaEncode enumeration values in [CreateAutoLiveStreamRule](~~353179~~).', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20', 'title' => ''],
],
[
'name' => 'RuleId',
'in' => 'query',
'schema' => ['description' => 'The bypass rule ID. You can query the rule ID in the console or by calling the [DescribeAutoLiveStreamRule](~~353198~~) operation.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'example' => '12', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => '返回结果。',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '760bad53276431c499e30dc36f6b26be', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'ErrorAPIInvalidAppID', 'errorMessage' => 'The AppID API request is invalid: %s', 'description' => ''],
['errorCode' => 'ErrorAPIQueryRow', 'errorMessage' => 'The QueryRow request is invalid: %s', 'description' => ''],
['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'The request parameter is invalid: %s', 'description' => ''],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.%s', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"760bad53276431c499e30dc36f6b26be\\"\\n}","type":"json"}]',
'title' => 'Update automatic bypass single-stream relay rule',
'summary' => 'Modifies an automatic bypass single-stream relay rule by calling UpdateAutoLiveStreamRule.',
'description' => '# 使用说明'."\n"
.'调用本接口前,您必须已经调用[CreateAutoLiveStreamRule](~~353179~~)创建旁路规则。'."\n"
.'# QPS限制'."\n"
.'本接口的单用户QPS限制为1000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~341645~~)。',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '1000', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateAutoLiveStreamRule'],
],
],
'ramActions' => [],
],
'UpdateCloudRecord' => [
'summary' => 'Updates a cloud recording task.',
'methods' => ['post', 'get'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => ['operationType' => 'create'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. You can create and query it in the console. Only one ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'eo85****', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'The existing channel ID. Only one ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'testid', 'title' => ''],
],
[
'name' => 'TemplateId',
'in' => 'query',
'schema' => ['description' => 'The template ID.'."\n"
.'>To update the layout, change the template ID. Resolution updates are not supported.>', 'type' => 'string', 'required' => true, 'example' => '567', 'maxLength' => 128, 'minLength' => 1, 'title' => ''],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'The task ID for this cloud recording. Only one ID is supported. It can contain letters, digits, underscores (\\_), and hyphens (-), with a maximum length of 55 bytes.', 'type' => 'string', 'required' => true, 'example' => '123', 'maxLength' => 55, 'minLength' => 1, 'pattern' => '^[0-9a-zA-Z_-]+$', 'title' => ''],
],
[
'name' => 'Panes',
'in' => 'query',
'style' => 'flat',
'schema' => [
'title' => '',
'description' => 'Cell settings.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'SourceType' => [
'description' => 'The media type of the cell. Valid values:'."\n"
."\n"
.'- **video**: Camera or screen sharing stream (default).'."\n"
."\n"
.'- **camera**: Camera stream.'."\n"
."\n"
.'- **screen**: Screen sharing stream.'."\n"
."\n"
.'- **whiteboard**: Whiteboard.',
'type' => 'string',
'required' => false,
'example' => 'video',
'default' => 'video',
'enum' => ['video', 'camera', 'screen', 'whiteboard'],
'title' => '',
],
'VideoOrder' => [
'title' => 'Fill order when SourceType is video.'."\n"
."\n"
.'- screenFirst: Screen sharing prioritized (Default Value)'."\n"
.'- cameraFirst: Camera prioritized',
'description' => 'The fill order when SourceType is video.'."\n"
."\n"
.'- screenFirst: Prioritize screen sharing (default).'."\n"
."\n"
.'- cameraFirst: Prioritize camera.',
'type' => 'string',
'required' => false,
'example' => 'cameraFirst',
'default' => 'screenFirst',
'enum' => ['cameraFirst', 'screenFirst'],
],
'PaneId' => ['description' => 'The pane ID, starting from 0.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '15', 'minimum' => '0', 'example' => '0', 'title' => ''],
'Source' => ['description' => 'The media source for the cell. You can specify a userId to target a specific user. Wildcard characters are also supported:'."\n"
."\n"
.'- **$ActiveSpeaker**: The current active speaker in the channel.'."\n"
."\n"
.'- **$ScreenShare**: A screen-sharing user. If multiple users share their screens, they are filled in sequence.', 'type' => 'string', 'example' => '22', 'title' => '', 'required' => false],
'PaneCropMode' => [
'description' => 'The cropping mode. Valid values:'."\n"
."\n"
.'- **1**: Crop while maintaining aspect ratio.'."\n"
."\n"
.'- **2**: Maintain aspect ratio with padding.'."\n"
."\n"
.'- **3**: Stretch to fill.',
'type' => 'integer',
'format' => 'int32',
'example' => '2',
'enum' => ['1', '2', '3'],
'title' => '',
'required' => false,
],
'ReservePaneForOfflineUser' => ['title' => 'Reserve pane for users who have not joined the meeting. '."\n"
.'The default value is true, which means that when a specific user or wildcard character user specified in the grid is offline, the pane is forcibly reserved. '."\n"
.'When set to false, if the specific user or wildcard character user specified in the grid is offline, video streams are displayed according to the Auto Fill order. ', 'description' => 'Reserves a pane for a user who goes offline. The default value is true. If true, the pane for a specified user or wildcard user remains as a placeholder. If false, the pane is filled with a video stream based on the Auto Fill order.', 'type' => 'boolean', 'default' => 'true', 'required' => false, 'example' => ''],
'Images' => [
'title' => '',
'description' => 'Local image watermarks for the pane.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Url' => ['description' => 'The image URL. The image content cannot be updated during stream ingest.', 'type' => 'string', 'required' => true, 'example' => 'https://aliyun.com/123xxx.jpg', 'maxLength' => 1024, 'minLength' => 1, 'title' => ''],
'Alpha' => ['description' => 'Transparency.', 'type' => 'number', 'format' => 'double', 'maximum' => '1', 'minimum' => '0', 'example' => '0.9', 'default' => '1.0', 'title' => '', 'required' => false],
'PaneImageCropMode' => [
'description' => 'The cropping mode. Valid values:'."\n"
."\n"
.'- **1**: Crop while maintaining aspect ratio.'."\n"
."\n"
.'- **2**: Maintain aspect ratio with padding.'."\n"
."\n"
.'- **3**: Stretch to fill.',
'type' => 'integer',
'format' => 'int32',
'example' => '2',
'enum' => ['1', '2', '3'],
'title' => '',
'required' => false,
],
'X' => ['description' => 'The horizontal coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'exclusiveMinimum' => true, 'example' => '0.2', 'title' => ''],
'Y' => ['description' => 'The vertical coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'exclusiveMinimum' => true, 'example' => '0.2', 'title' => ''],
'Width' => ['description' => 'Width.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'exclusiveMinimum' => true, 'example' => '0.2', 'title' => ''],
'Height' => ['description' => 'Height.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'exclusiveMinimum' => true, 'example' => '0.2', 'title' => ''],
'Layer' => ['description' => 'The z-axis layer.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '100', 'minimum' => '0', 'example' => '0', 'default' => '0', 'title' => '', 'required' => false],
'Display' => [
'title' => 'Watermark display timing.'."\n"
.'- streamOnly: Display when the user has a video stream (default value).'."\n"
.'- backup: Display when the user does not have a video stream.'."\n"
.'- always: Always display.',
'description' => 'When to display the watermark.'."\n"
."\n"
.'- streamOnly: Display only when the user has a video stream (default).'."\n"
."\n"
.'- backup: Display only when the user has no video stream.'."\n"
."\n"
.'- always: Always display.',
'type' => 'string',
'example' => 'backup',
'default' => 'streamOnly',
'enum' => ['streamOnly', 'backup', 'always'],
'required' => false,
],
],
'required' => false,
'description' => '',
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 3,
'example' => '',
],
'Backgrounds' => [
'maxItems' => 3,
'description' => 'Background images.',
'title' => 'Pane-local background image.',
'type' => 'array',
'items' => [
'description' => '',
'type' => 'object',
'properties' => [
'Url' => ['title' => 'Image URL.', 'description' => 'The background image URL.', 'type' => 'string', 'required' => true, 'example' => 'https://aliyun.com/123xx.jpg', 'maxLength' => 1024, 'minLength' => 1],
'Alpha' => ['title' => 'Transparency.', 'description' => 'Transparency.', 'type' => 'number', 'format' => 'double', 'maximum' => '1', 'minimum' => '0', 'example' => '0.9', 'default' => '1.0', 'required' => false],
'PaneBackgroundCropMode' => [
'title' => 'Cropping mode. Valid values: '."\n"
.'- **1**: Crop while maintaining aspect ratio. '."\n"
.'- **2**: Maintain aspect ratio with padding. '."\n"
.'- **3**: Stretch to fill.',
'description' => 'The cropping mode. Valid values:'."\n"
."\n"
.'- **1**: Crop while maintaining aspect ratio.'."\n"
."\n"
.'- **2**: Maintain aspect ratio with padding.'."\n"
."\n"
.'- **3**: Stretch to fill.',
'type' => 'integer',
'format' => 'int32',
'example' => '2',
'enum' => ['1', '2', '3'],
'required' => false,
],
'X' => ['description' => 'The horizontal coordinate.', 'type' => 'number', 'title' => '', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'exclusiveMinimum' => true, 'example' => '0.2'],
'Y' => ['description' => 'The vertical coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'exclusiveMinimum' => true, 'example' => '0.2', 'title' => ''],
'Width' => ['description' => 'Width.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'exclusiveMinimum' => true, 'example' => '0.2', 'title' => ''],
'Height' => ['description' => 'Height.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'exclusiveMinimum' => true, 'example' => '0.2', 'title' => ''],
'Layer' => ['title' => 'z-axis level.', 'description' => 'The z-axis layer.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '100', 'minimum' => '0', 'example' => '0', 'default' => '0', 'required' => false],
'Display' => [
'title' => 'Watermark display timing. '."\n"
.'- streamOnly: Display when the current user has a video stream (default value). '."\n"
.'- backup: Display when the current user has no video stream. '."\n"
.'- always: Always display.',
'description' => 'When to display.'."\n"
."\n"
.'- streamOnly: Display only when the user has a video stream (default).'."\n"
."\n"
.'- backup: Display only when the user has no video stream.'."\n"
."\n"
.'- always: Always display.',
'type' => 'string',
'example' => 'backup',
'default' => 'streamOnly',
'enum' => ['streamOnly', 'backup', 'always'],
'required' => false,
],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'example' => '',
],
'Texts' => [
'title' => '',
'description' => 'Local text watermarks for the pane.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Texture' => ['description' => 'The watermark content.', 'type' => 'string', 'required' => true, 'example' => '文字水印', 'maxLength' => 128, 'minLength' => 1, 'title' => ''],
'FontSize' => ['description' => 'Font size.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '72', 'minimum' => '0', 'example' => '36', 'default' => '30', 'title' => '', 'required' => false],
'Alpha' => ['description' => 'Watermark transparency.', 'type' => 'number', 'format' => 'double', 'maximum' => '1', 'minimum' => '0', 'example' => '0.9', 'default' => '1', 'title' => '', 'required' => false],
'FontColor' => [
'title' => '',
'description' => 'Font color.',
'type' => 'object',
'properties' => [
'R' => ['description' => 'R.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '255', 'title' => '', 'required' => false],
'G' => ['description' => 'G.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '255', 'title' => '', 'required' => false],
'B' => ['description' => 'B.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '255', 'title' => '', 'required' => false],
],
'required' => false,
'example' => '',
],
'Font' => ['description' => 'Font.'."\n"
."\n"
.'- **0**: Alibaba PuHuiTi Regular'."\n"
."\n"
.'- **1**: Alibaba PuHuiTi Light'."\n"
."\n"
.'- **2**: Alibaba PuHuiTi Medium'."\n"
."\n"
.'- **3**: Alibaba PuHuiTi Bold'."\n"
."\n"
.'- **4**: Alibaba PuHuiTi Heavy'."\n"
."\n"
.'- **5**: Ali Mama ShuHeiTi'."\n"
."\n"
.'- **6**: DingTalk JinBuTi'."\n"
."\n"
.'- **7**: Ali Mama DaoLiTi'."\n"
."\n"
.'- **8**: Ali Mama DongFang DaKai'."\n"
."\n"
.'- **9**: Ali Mama FangYuanTi', 'type' => 'integer', 'format' => 'int32', 'maximum' => '9', 'minimum' => '0', 'example' => '0', 'default' => '0', 'title' => '', 'required' => false],
'X' => ['description' => 'The horizontal coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'example' => '0.2', 'title' => ''],
'Y' => ['description' => 'The vertical coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'example' => '0.2', 'title' => ''],
'Layer' => ['description' => 'The z-axis layer.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '100', 'minimum' => '0', 'example' => '0', 'default' => '0', 'title' => '', 'required' => false],
'HasBox' => ['description' => 'Whether to draw a rectangle box.', 'type' => 'boolean', 'default' => 'false', 'title' => '', 'required' => false, 'example' => ''],
'BoxColor' => [
'title' => '',
'description' => 'Rectangle box color.',
'type' => 'object',
'properties' => [
'R' => ['description' => 'R.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '30', 'title' => '', 'required' => false],
'G' => ['description' => 'G.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '30', 'title' => '', 'required' => false],
'B' => ['description' => 'B.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '30', 'title' => '', 'required' => false],
],
'required' => false,
'example' => '',
],
'BoxAlpha' => ['description' => 'Rectangle box transparency.', 'type' => 'number', 'format' => 'double', 'maximum' => '1', 'minimum' => '0', 'example' => '0.6', 'default' => '0.6', 'title' => '', 'required' => false],
'BoxBorderw' => ['description' => 'Rectangle box border width.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '10', 'minimum' => '1', 'example' => '5', 'default' => '5', 'title' => '', 'required' => false],
'Display' => [
'title' => 'When the watermark is displayed:'."\n"
.'- streamOnly: Displayed when the current user has a video stream (default value).'."\n"
.'- backup: Displayed when the current user does not have a video stream.'."\n"
.'- always: Always displayed.',
'description' => 'When to display the watermark.'."\n"
."\n"
.'- streamOnly: Display only when the user has a video stream (default).'."\n"
."\n"
.'- backup: Display only when the user has no video stream.'."\n"
."\n"
.'- always: Always display.',
'type' => 'string',
'example' => 'backup',
'default' => 'streamOnly',
'enum' => ['streamOnly', 'backup', 'always'],
'required' => false,
],
],
'required' => false,
'description' => '',
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 3,
'example' => '',
],
'Whiteboard' => [
'description' => 'Whiteboard configuration.',
'title' => 'Whiteboard settings.',
'type' => 'object',
'properties' => [
'WhiteboardId' => ['title' => 'Whiteboard ID.', 'description' => 'The whiteboard ID. Default value: default.', 'type' => 'string', 'required' => false, 'example' => 'default', 'default' => 'default'],
],
'required' => false,
'example' => '',
],
],
'required' => false,
'description' => '',
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 16,
'example' => '',
],
],
[
'name' => 'Images',
'in' => 'query',
'style' => 'flat',
'schema' => [
'title' => '',
'description' => 'Global image watermarks.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Url' => ['description' => 'The image URL. The image content cannot be updated during stream ingest.', 'type' => 'string', 'required' => true, 'example' => 'https://aliyun.com/123.jpg', 'maxLength' => 1024, 'minLength' => 1, 'title' => ''],
'Alpha' => ['description' => 'Transparency.', 'type' => 'number', 'format' => 'double', 'maximum' => '1', 'minimum' => '0', 'example' => '0.9', 'default' => '1.0', 'title' => '', 'required' => false],
'ImageCropMode' => [
'description' => 'The cropping mode. Valid values:'."\n"
."\n"
.'- **1**: Crop while maintaining aspect ratio.'."\n"
."\n"
.'- **2**: Maintain aspect ratio with padding.'."\n"
."\n"
.'- **3**: Stretch to fill.',
'type' => 'integer',
'format' => 'int32',
'example' => '2',
'enum' => ['1', '2', '3'],
'title' => '',
'required' => false,
],
'X' => ['description' => 'The horizontal coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'exclusiveMinimum' => true, 'example' => '0.2', 'title' => ''],
'Y' => ['description' => 'The vertical coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'exclusiveMinimum' => true, 'example' => '0.2', 'title' => ''],
'Width' => ['description' => 'Width.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'exclusiveMinimum' => true, 'example' => '0.2', 'title' => ''],
'Height' => ['description' => 'Height.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'exclusiveMinimum' => true, 'example' => '0.2', 'title' => ''],
'Layer' => ['description' => 'The z-axis layer.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '100', 'minimum' => '0', 'example' => '0', 'default' => '0', 'title' => '', 'required' => false],
],
'required' => false,
'description' => '',
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 3,
'example' => '',
],
],
[
'name' => 'Backgrounds',
'in' => 'query',
'style' => 'flat',
'schema' => [
'maxItems' => 3,
'description' => 'Background images.',
'title' => 'Background image. ',
'type' => 'array',
'items' => [
'description' => '',
'type' => 'object',
'properties' => [
'Url' => ['title' => 'Image URL.', 'description' => 'The image URL.', 'type' => 'string', 'required' => true, 'example' => 'https://aliyun.com/123.jpg', 'maxLength' => 1024, 'minLength' => 1],
'Alpha' => ['title' => 'Transparency. ', 'description' => 'Transparency.', 'type' => 'number', 'format' => 'double', 'maximum' => '1', 'minimum' => '0', 'example' => '0.9', 'default' => '1.0', 'required' => false],
'BackgroundCropMode' => [
'title' => 'Crop mode. Valid values: '."\n"
.'- **1**: Crop while maintaining aspect ratio. '."\n"
.'- **2**: Maintain aspect ratio and add padding. '."\n"
.'- **3**: Stretch to fill. ',
'description' => 'The cropping mode. Valid values:'."\n"
."\n"
.'- **1**: Crop while maintaining aspect ratio.'."\n"
."\n"
.'- **2**: Maintain aspect ratio with padding.'."\n"
."\n"
.'- **3**: Stretch to fill.',
'type' => 'integer',
'format' => 'int32',
'example' => '2',
'enum' => ['1', '2', '3'],
'required' => false,
],
'X' => ['title' => 'X coordinate. ', 'description' => 'The horizontal coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'exclusiveMinimum' => true, 'example' => '0.2'],
'Y' => ['title' => 'Y coordinate. ', 'description' => 'The vertical coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'exclusiveMinimum' => true, 'example' => '0.2'],
'Width' => ['title' => 'Width. ', 'description' => 'Width.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'exclusiveMinimum' => true, 'example' => '0.2'],
'Height' => ['title' => 'Height. ', 'description' => 'Height.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'exclusiveMinimum' => true, 'example' => '0.2'],
'Layer' => ['title' => 'z-axis level.', 'description' => 'The z-axis layer.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '100', 'minimum' => '0', 'example' => '0', 'default' => '0', 'required' => false],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'example' => '',
],
],
[
'name' => 'Texts',
'in' => 'query',
'style' => 'flat',
'schema' => [
'title' => '',
'description' => 'Global text watermarks.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Texture' => ['description' => 'The watermark content.', 'type' => 'string', 'required' => true, 'example' => '文字水印', 'maxLength' => 128, 'minLength' => 1, 'title' => ''],
'FontSize' => ['description' => 'Font size.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '72', 'minimum' => '0', 'example' => '36', 'default' => '30', 'title' => '', 'required' => false],
'Alpha' => ['description' => 'Watermark transparency.', 'type' => 'number', 'format' => 'double', 'maximum' => '1', 'minimum' => '0', 'example' => '0.1', 'default' => '1', 'title' => '', 'required' => false],
'FontColor' => [
'title' => '',
'description' => 'Font color.',
'type' => 'object',
'properties' => [
'R' => ['description' => 'R.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '255', 'title' => '', 'required' => false],
'G' => ['description' => 'G.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '255', 'title' => '', 'required' => false],
'B' => ['description' => 'B.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '255', 'title' => '', 'required' => false],
],
'required' => false,
'example' => '',
],
'Font' => ['description' => 'Font.'."\n"
."\n"
.'- **0**: Alibaba PuHuiTi Regular'."\n"
."\n"
.'- **1**: Alibaba PuHuiTi Light'."\n"
."\n"
.'- **2**: Alibaba PuHuiTi Medium'."\n"
."\n"
.'- **3**: Alibaba PuHuiTi Bold'."\n"
."\n"
.'- **4**: Alibaba PuHuiTi Heavy'."\n"
."\n"
.'- **5**: Ali Mama ShuHeiTi'."\n"
."\n"
.'- **6**: DingTalk JinBuTi'."\n"
."\n"
.'- **7**: Ali Mama DaoLiTi'."\n"
."\n"
.'- **8**: Ali Mama DongFang DaKai'."\n"
."\n"
.'- **9**: Ali Mama FangYuanTi', 'type' => 'integer', 'format' => 'int32', 'maximum' => '9', 'minimum' => '0', 'example' => '0', 'default' => '0', 'title' => '', 'required' => false],
'X' => ['description' => 'The horizontal coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'example' => '0.2', 'title' => ''],
'Y' => ['description' => 'The vertical coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'example' => '0.2', 'title' => ''],
'Layer' => ['description' => 'The z-axis layer.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '100', 'minimum' => '0', 'example' => '0', 'default' => '0', 'title' => '', 'required' => false],
'HasBox' => ['description' => 'Whether to draw a rectangle box.', 'type' => 'boolean', 'default' => 'false', 'title' => '', 'required' => false, 'example' => ''],
'BoxColor' => [
'title' => '',
'description' => 'Rectangle box color.',
'type' => 'object',
'properties' => [
'R' => ['description' => 'R.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '30', 'title' => '', 'required' => false],
'G' => ['description' => 'G.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '30', 'title' => '', 'required' => false],
'B' => ['description' => 'B.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '30', 'title' => '', 'required' => false],
],
'required' => false,
'example' => '',
],
'BoxAlpha' => ['description' => 'Rectangle box transparency.', 'type' => 'number', 'format' => 'double', 'maximum' => '1', 'minimum' => '0', 'example' => '0.6', 'default' => '0.6', 'title' => '', 'required' => false],
'BoxBorderw' => ['description' => 'Rectangle box border width.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '10', 'minimum' => '1', 'example' => '5', 'default' => '5', 'title' => '', 'required' => false],
],
'required' => false,
'description' => '',
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 3,
'example' => '',
],
],
[
'name' => 'ClockWidgets',
'in' => 'query',
'style' => 'flat',
'schema' => [
'title' => '',
'description' => 'Global clock watermarks.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Zone' => ['description' => 'Time zone.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '12', 'exclusiveMaximum' => true, 'minimum' => '-12', 'example' => '8', 'default' => '8', 'title' => '', 'required' => false],
'FontSize' => ['description' => 'Clock font size.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '72', 'minimum' => '0', 'example' => '30', 'default' => '30', 'title' => '', 'required' => false],
'Alpha' => ['description' => 'Transparency.', 'type' => 'number', 'format' => 'double', 'maximum' => '1', 'minimum' => '0', 'example' => '0.9', 'default' => '1', 'title' => '', 'required' => false],
'FontColor' => [
'title' => '',
'description' => 'Font color.',
'type' => 'object',
'properties' => [
'R' => ['description' => 'R.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '255', 'title' => '', 'required' => false],
'G' => ['description' => 'G.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '255', 'title' => '', 'required' => false],
'B' => ['description' => 'B.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '255', 'title' => '', 'required' => false],
],
'required' => false,
'example' => '',
],
'Font' => ['description' => 'Font.'."\n"
."\n"
.'- **0**: Alibaba PuHuiTi Regular'."\n"
."\n"
.'- **1**: Alibaba PuHuiTi Light'."\n"
."\n"
.'- **2**: Alibaba PuHuiTi Medium'."\n"
."\n"
.'- **3**: Alibaba PuHuiTi Bold'."\n"
."\n"
.'- **4**: Alibaba PuHuiTi Heavy'."\n"
."\n"
.'- **5**: Ali Mama ShuHeiTi'."\n"
."\n"
.'- **6**: DingTalk JinBuTi'."\n"
."\n"
.'- **7**: Ali Mama DaoLiTi'."\n"
."\n"
.'- **8**: Ali Mama DongFang DaKai'."\n"
."\n"
.'- **9**: Ali Mama FangYuanTi', 'type' => 'integer', 'format' => 'int32', 'maximum' => '9', 'minimum' => '0', 'example' => '0', 'default' => '0', 'title' => '', 'required' => false],
'X' => ['description' => 'The horizontal coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'example' => '0.2', 'title' => ''],
'Y' => ['description' => 'The vertical coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'example' => '0.2', 'title' => ''],
'Layer' => ['description' => 'The z-axis layer.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '100', 'minimum' => '0', 'example' => '0', 'default' => '0', 'title' => '', 'required' => false],
'HasBox' => ['description' => 'Whether to draw a rectangle box.', 'type' => 'boolean', 'default' => 'false', 'title' => '', 'required' => false, 'example' => ''],
'BoxColor' => [
'title' => '',
'description' => 'Rectangle box color.',
'type' => 'object',
'properties' => [
'R' => ['description' => 'R.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '30', 'title' => '', 'required' => false],
'G' => ['description' => 'G.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '30', 'title' => '', 'required' => false],
'B' => ['description' => 'B.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '30', 'title' => '', 'required' => false],
],
'required' => false,
'example' => '',
],
'BoxAlpha' => ['description' => 'Rectangle box transparency.', 'type' => 'number', 'format' => 'double', 'maximum' => '1', 'minimum' => '0', 'example' => '0.6', 'default' => '0.6', 'title' => '', 'required' => false],
'BoxBorderw' => ['description' => 'Rectangle box border width.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '10', 'minimum' => '1', 'example' => '5', 'default' => '5', 'title' => '', 'required' => false],
],
'required' => false,
'description' => '',
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 3,
'example' => '',
],
],
[
'name' => 'LayoutSpecifiedUsers',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'A list that specifies users for layout generation. It supports both blacklists and whitelists.'."\n"
."\n"
.'Whitelist: Specifies the users whose video streams are subscribed to in the channel.'."\n"
."\n"
.'- The auto-fill feature uses this list for sequential filling.'."\n"
."\n"
.'- During multi-layout switching, only users in the whitelist are included.'."\n"
."\n"
.'Blacklist: Specifies the users whose video streams are not subscribed to in the channel.'."\n"
."\n"
.'- During multi-layout switching, only users not in the blacklist are included.',
'title' => 'Blacklist/Whitelist Settings. ',
'type' => 'object',
'properties' => [
'Type' => [
'title' => 'User list type: blacklist is "black", whitelist is "white". ',
'description' => 'The type of the user list. Valid values: \\`black\\` for a blacklist and \\`white\\` for a whitelist.',
'type' => 'string',
'required' => true,
'enum' => ['white', 'black'],
'example' => 'white',
],
'Ids' => [
'minItems' => 1,
'maxItems' => 16,
'description' => 'The list of specified user IDs.',
'title' => 'List of specified User IDs. ',
'type' => 'array',
'items' => ['title' => 'Specific User ID. ', 'description' => 'A user ID.', 'type' => 'string', 'required' => true, 'example' => '123'],
'required' => true,
'example' => '',
],
],
'required' => false,
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'result',
'description' => 'Result',
'type' => 'object',
'properties' => [
'TaskId' => ['description' => 'The task ID for this cloud recording.', 'type' => 'string', 'example' => '123', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8', 'title' => ''],
],
'example' => '',
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TaskId\\": \\"123\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\"\\n}","type":"json"}]',
'title' => 'Update a cloud recording job ',
'description' => '### Usage'."\n"
."\n"
.'Updates a cloud recording task for an online channel.'."\n"
."\n"
.'### QPS limit'."\n"
."\n"
.'This API supports up to 10 requests per second per user. Exceeding this limit triggers rate limiting, which may affect your service. Call the API responsibly.',
'requestParamsDescription' => '>'."\n"
."\n"
.'Additional notes'."\n"
."\n"
.'>'."\n"
."\n"
.'The total number of local image watermarks, local background images, global image watermarks, and global background images cannot exceed 16.'."\n"
."\n"
.''."\n"
."\n"
.''."\n"
."\n"
.'Advanced watermark layering'."\n"
."\n"
.'
'."\n"
."\n"
.'The RTC media server generates the final image in the following steps:'."\n"
."\n"
.'Render video > Render images > Render text'."\n"
."\n"
.'Video, images, and text are rendered separately. Within the final image, text has the highest priority, followed by images, and then video. Text appears on top of images, and images appear on top of video.'."\n"
."\n"
.'1. Arrange video frames according to the defined layout.'."\n"
."\n"
.' a. Pane images and global images share the same layering space.'."\n"
."\n"
.' b. Layer 0 is the bottommost layer. Higher layer values appear above lower ones. Valid layer values range from 0 to 100.'."\n"
."\n"
.'2. Images include your custom PNG or JPG files.'."\n"
."\n"
.' a. Images are rendered based on their configured width, height, position, transparency, and other properties.'."\n"
."\n"
.' b. Pane images and global images are layered together.'."\n"
."\n"
.'3. Text includes pane text, global text, and timestamp text.'."\n"
."\n"
.' a. Within each text type, layers determine rendering order. Layer 0 is the bottom layer. A higher layer value places the text on top. Valid layer values range from 0 to 100.'."\n"
."\n"
.' b. Priority among text types is as follows: timestamp text > global text > pane text. When text overlaps, lower-priority text is covered.'."\n"
."\n"
.'Handling overlaps:'."\n"
."\n"
.'1. By default, higher-priority content covers lower-priority content in overlapping areas.'."\n"
."\n"
.'2. To prevent lower-priority content from being covered, set the transparency of the higher-priority content to 0.'."\n"
."\n"
.' ',
'changeSet' => [
['createdAt' => '2025-04-15T09:35:58.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2025-02-21T05:57:36.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2025-02-12T10:01:31.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2024-12-16T05:55:21.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2024-11-06T09:37:51.000Z', 'description' => 'Request parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateCloudRecord'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'rtc:UpdateCloudRecord',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
'UpdateMPUTask' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
'name' => 'LayoutIds',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Layout ID data.',
'type' => 'array',
'items' => ['description' => 'Layout ID data. You can specify multiple layouts in one task. The system switches based on the number of people in the channel at that time. For details, see [Layout](~~109587~~).', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1', 'title' => ''],
'required' => false,
'maxItems' => 64,
'title' => '',
'example' => '',
],
],
[
'name' => 'SubSpecUsers',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The list of users subscribed to by this task.',
'type' => 'array',
'items' => ['description' => 'The list of users subscribed to by this task. By default, all users in the channel are subscribed. The array subscript value range is **1** to **16**.'."\n"
.'>The array subscript must start from 1 and increase from smallest to largest. It cannot be interrupted and must be continuous.', 'type' => 'string', 'required' => false, 'example' => 'userID', 'title' => ''],
'required' => false,
'maxItems' => 64,
'title' => '',
'example' => '',
],
],
[
'name' => 'SubSpecAudioUsers',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Specifies the users in the room whose audio streams are subscribed to.',
'type' => 'array',
'items' => ['description' => 'Specifies the users in the room whose audio streams are subscribed to (entering allStream means mixing all users\' audio). The array subscript value range is **1** to **64**.'."\n"
.'>The array subscript must start from 1 and increase from smallest to largest. It cannot be interrupted and must be continuous.', 'type' => 'string', 'required' => false, 'example' => 'audioUserID', 'title' => ''],
'required' => false,
'maxItems' => 64,
'title' => '',
'example' => '',
],
],
[
'name' => 'SubSpecShareScreenUsers',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Specifies the users in the room whose shared video streams are subscribed to.',
'type' => 'array',
'items' => ['description' => 'Specifies the users in the room whose shared video streams are subscribed to (entering allStream means mixing all users\' shared video). The array subscript value range is **1** to **64**.'."\n"
.'>The array subscript must start from 1 and increase from smallest to largest. It cannot be interrupted and must be continuous.', 'type' => 'string', 'required' => false, 'example' => 'videoUserID', 'title' => ''],
'required' => false,
'maxItems' => 64,
'title' => '',
'example' => '',
],
],
[
'name' => 'SubSpecCameraUsers',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Specifies the users in the room whose camera video streams are subscribed to.',
'type' => 'array',
'items' => ['description' => 'Specifies the users in the room whose camera video streams are subscribed to (entering allStream means mixing all users\' camera video). The array subscript value range is **1** to **64**.'."\n"
.'>The array subscript must start from 1 and increase from smallest to largest. It cannot be interrupted and must be continuous.', 'type' => 'string', 'required' => false, 'example' => 'cameraUserID', 'title' => ''],
'required' => false,
'maxItems' => 64,
'title' => '',
'example' => '',
],
],
[
'name' => 'UnsubSpecAudioUsers',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Specifies the users in the room whose audio streams are not subscribed to.',
'type' => 'array',
'items' => ['description' => 'Specifies the users in the room whose audio streams are not subscribed to (entering allStream means not mixing all users\' audio). The array subscript value range is **1** to **64**.'."\n"
."\n"
.'> The array subscript must start from 1 and increase from smallest to largest. It cannot be interrupted and must be continuous.', 'type' => 'string', 'required' => false, 'example' => 'audioUserID2', 'title' => ''],
'required' => false,
'maxItems' => 64,
'title' => '',
'example' => '',
],
],
[
'name' => 'UnsubSpecShareScreenUsers',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Specifies the users in the room whose shared video streams are not subscribed to.',
'type' => 'array',
'items' => ['description' => 'Specifies the users in the room whose shared video streams are not subscribed to (entering allStream means not mixing all users\' shared video). The array subscript value range is **1** to **64**.'."\n"
."\n"
.'> The array subscript must start from 1 and increase from smallest to largest. It cannot be interrupted and must be continuous.', 'type' => 'string', 'required' => false, 'example' => 'videoUserID2', 'title' => ''],
'required' => false,
'maxItems' => 64,
'title' => '',
'example' => '',
],
],
[
'name' => 'UnsubSpecCameraUsers',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Specifies the users in the room whose camera video streams are not subscribed to.',
'type' => 'array',
'items' => ['description' => 'Specifies the users in the room whose camera video streams are not subscribed to (entering allStream means not mixing all users\' camera video). The array subscript value range is **1** to **64**.'."\n"
.'>The array subscript must start from 1 and increase from smallest to largest. It cannot be interrupted and must be continuous.', 'type' => 'string', 'required' => false, 'example' => 'cameraUserID2', 'title' => ''],
'required' => false,
'maxItems' => 64,
'title' => '',
'example' => '',
],
],
[
'name' => 'UserPanes',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Layout parameters.',
'type' => 'array',
'items' => [
'description' => 'Layout parameters. Transparency configuration is not supported for pane images.',
'type' => 'object',
'properties' => [
'Images' => [
'description' => 'The list of image pane positions for the current layout.',
'type' => 'array',
'items' => [
'description' => 'The image pane position for the current layout.',
'type' => 'object',
'properties' => [
'Width' => ['description' => 'Pane width, normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.2456', 'title' => ''],
'Height' => ['description' => 'Pane height, normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.2456', 'title' => ''],
'Y' => ['description' => 'Y coordinate, normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
'Url' => ['description' => 'HTTP or HTTPS address of the image.', 'type' => 'string', 'required' => false, 'example' => 'https://www.example.com/image.jpg', 'title' => ''],
'Display' => ['description' => 'Image display. Values:'."\n"
."\n"
.'- **0 (None)**: not displayed.'."\n"
.'- **1 (Always)**: always displayed.'."\n"
.'- **2 (Backup)**: displayed when the current user has no video stream.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
'ZOrder' => ['description' => 'Stacking order. 0 is the bottom layer, layer 1 is above layer 0, and so on.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'X' => ['description' => 'X coordinate, normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 10,
'title' => '',
'example' => '',
],
'SegmentType' => ['description' => 'Portrait segmentation type. Values:'."\n"
."\n"
.'- **0**: no portrait segmentation (default).'."\n"
."\n"
.'- **1**: portrait segmentation. Only effective after the enhancement parameter (portrait segmentation feature) is enabled.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'UserId' => ['description' => 'The user ID corresponding to the layout pane. Values: **1** to **16**.', 'type' => 'string', 'required' => false, 'example' => 'TestUserID', 'title' => ''],
'Texts' => [
'description' => 'The list of text pane positions for the current layout.',
'type' => 'array',
'items' => [
'description' => 'The text pane position for the current layout. A maximum of 16 texts are supported.',
'type' => 'object',
'properties' => [
'FontType' => ['description' => 'Font type. Values:'."\n"
."\n"
.'- **0** (default): NOTO_SERIF_CJKSC_REGULAR'."\n"
.'- **1**: ALIBABA_PUHUITI_REGULAR'."\n"
.'- **2**: ALIBABA_PUHUITI_BOLD'."\n"
.'- **3**: ALIBABA_PUHUITI_Heavy'."\n"
.'- **4**: ALIBABA_PUHUITI_LIGHT'."\n"
.'- **5**: ALIBABA_PUHUITI_MEDIUM', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'FontColor' => ['description' => 'Text color (RGB).'."\n"
."\n"
.'The calculation formula is `R + G × 256 + B × 65536`. Values of R (red), G (green), and B (blue): **0** to **255**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'Y' => ['description' => 'Y coordinate, normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
'Text' => ['description' => 'Text content.', 'type' => 'string', 'required' => false, 'example' => 'text', 'title' => ''],
'ZOrder' => ['description' => 'Stacking order. 0 is the bottom layer, layer 1 is above layer 0, and so on.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'X' => ['description' => 'X coordinate, normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
'FontSize' => ['description' => 'Font size. Value range: **0** to **72**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
'BorderWidth' => ['description' => 'Text border width (unit: pixels). The default value is 0.', 'type' => 'integer', 'format' => 'int32', 'minimum' => '0', 'required' => false, 'example' => '1', 'title' => ''],
'BorderColor' => ['description' => 'Text border color.'."\n"
.'The calculation formula is `R + G × 256 + B × 65536`. Values of R (red), G (green), and B (blue): **0** to **255**.', 'type' => 'integer', 'format' => 'int64', 'minimum' => '0', 'required' => false, 'example' => '0', 'title' => ''],
'Box' => ['description' => 'Whether to display a text box. Values:'."\n"
."\n"
.'- false (default): not displayed.'."\n"
.'- true: displayed.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
'BoxColor' => ['description' => 'Text box color.'."\n"
.'The calculation formula is `R + G × 256 + B × 65536`. Values of R (red), G (green), and B (blue): **0** to **255**.', 'type' => 'integer', 'format' => 'int64', 'minimum' => '0', 'required' => false, 'example' => '0', 'title' => ''],
'BoxBorderWidth' => ['description' => 'Text box width (unit: pixels). The default value is 0.', 'type' => 'integer', 'format' => 'int32', 'minimum' => '0', 'required' => false, 'example' => '0', 'title' => ''],
'Alpha' => ['description' => 'Transparency of the text box and text. 0.0 indicates transparent, and 1.0 indicates completely opaque.', 'type' => 'number', 'format' => 'float', 'minimum' => '0', 'required' => false, 'example' => '0', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 16,
'title' => '',
'example' => '',
],
'SourceType' => ['description' => 'User video input corresponding to the layout. Values:'."\n"
."\n"
.'- **camera**: camera stream.'."\n"
."\n"
.'- **shareScreen**: shared screen stream.'."\n", 'type' => 'string', 'required' => false, 'example' => 'camera', 'title' => ''],
'PaneId' => ['description' => 'Pane ID. Value range: **0** to **15**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 16,
'title' => '',
'example' => '',
],
],
[
'name' => 'Backgrounds',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The list of canvas background image pane positions.',
'type' => 'array',
'items' => [
'description' => 'Canvas background image pane position. Transparency configuration is not supported for background images.',
'type' => 'object',
'properties' => [
'Width' => ['description' => 'Pane width, normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.2456', 'title' => ''],
'Height' => ['description' => 'Pane height, normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.2456', 'title' => ''],
'Y' => ['description' => 'Y coordinate, normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
'Url' => ['description' => 'HTTP or HTTPS address of the image.', 'type' => 'string', 'required' => false, 'example' => 'https://www.example.com/image.jpg', 'title' => ''],
'Display' => ['description' => 'Image display. Values:'."\n"
."\n"
.'- **0 (None)**: not displayed.'."\n"
.'- **1 (Always)**: always displayed.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
'ZOrder' => ['description' => 'Stacking order. 0 is the bottom layer, layer 1 is above layer 0, and so on.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'X' => ['description' => 'X coordinate, normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 10,
'title' => '',
'example' => '',
],
],
[
'name' => 'Watermarks',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The list of watermark image pane positions.',
'type' => 'array',
'items' => [
'description' => 'Watermark image pane position.',
'type' => 'object',
'properties' => [
'Alpha' => ['description' => 'Transparency. 0.0 indicates transparent, and 1.0 indicates completely opaque.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0', 'title' => ''],
'Width' => ['description' => 'Pane width, normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.2456', 'title' => ''],
'Height' => ['description' => 'Pane height, normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.2456', 'title' => ''],
'Y' => ['description' => 'Y coordinate, normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
'Url' => ['description' => 'HTTP or HTTPS address of the image.', 'type' => 'string', 'required' => false, 'example' => 'https://www.example.com/image.jpg', 'title' => ''],
'Display' => ['description' => 'Image display. Values:'."\n"
."\n"
.'- **0 (None)**: not displayed.'."\n"
.'- **1 (Always)**: always displayed.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
'ZOrder' => ['description' => 'Stacking order. 0 is the bottom layer, layer 1 is above layer 0, and so on.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'X' => ['description' => 'X coordinate, normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 10,
'title' => '',
'example' => '',
],
],
[
'name' => 'ClockWidgets',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Clock widget.',
'type' => 'array',
'items' => [
'description' => 'Clock widget. Currently, only a single clock widget is supported.',
'type' => 'object',
'properties' => [
'FontType' => ['description' => 'Font type. Values:'."\n"
."\n"
.'- **0** (default): NOTO_SERIF_CJKSC_REGULAR'."\n"
.'- **1**: ALIBABA_PUHUITI_REGULAR'."\n"
.'- **2**: ALIBABA_PUHUITI_BOLD'."\n"
.'- **3**: ALIBABA_PUHUITI_Heavy'."\n"
.'- **4**: ALIBABA_PUHUITI_LIGHT'."\n"
.'- **5**: ALIBABA_PUHUITI_MEDIUM', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'FontColor' => ['description' => 'Text color (RGB).'."\n"
."\n"
.'The calculation formula is `R + G × 256 + B × 65536`. Values of R (red), G (green), and B (blue): **0** to **255**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'Y' => ['description' => 'Y coordinate, normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
'ZOrder' => ['description' => 'Stacking order. 0 is the bottom layer, layer 1 is above layer 0, and so on.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'X' => ['description' => 'X coordinate, normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
'FontSize' => ['description' => 'Font size. Value range: **0** to **72**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
'BorderWidth' => ['description' => 'Text border width (unit: pixels). The default value is 0.', 'type' => 'integer', 'format' => 'int32', 'minimum' => '0', 'required' => false, 'example' => '1', 'title' => ''],
'BorderColor' => ['description' => 'Text border color.'."\n"
.'The calculation formula is `R + G × 256 + B × 65536`. Values of R (red), G (green), and B (blue): **0** to **255**.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '0', 'title' => ''],
'Box' => ['description' => 'Whether to display a text box. Values:'."\n"
."\n"
.'- false (default): not displayed.'."\n"
.'- true: displayed.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
'BoxColor' => ['description' => 'Text box color.'."\n"
.'The calculation formula is `R + G × 256 + B × 65536`. Values of R (red), G (green), and B (blue): **0** to **255**.', 'type' => 'integer', 'format' => 'int64', 'minimum' => '0', 'required' => false, 'example' => '0', 'title' => ''],
'BoxBorderWidth' => ['description' => 'Text box width (unit: pixels). The default value is 0.', 'type' => 'integer', 'format' => 'int32', 'minimum' => '0', 'required' => false, 'example' => '0', 'title' => ''],
'Alpha' => ['description' => 'Transparency of the text box and text. 0.0 indicates transparent, and 1.0 indicates completely opaque.', 'type' => 'number', 'format' => 'float', 'minimum' => '0', 'required' => false, 'example' => '0', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 1,
'title' => '',
'example' => '',
],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'Application ID. Only a single ID can be passed.'."\n"
."\n"
.'You can create and query it in the console.', 'type' => 'string', 'required' => true, 'example' => 'yourAppId', 'title' => ''],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'Task ID. Only a single ID can be passed. It is consistent with the input parameter TaskId in [StartMpuTask](~~93183~~).', 'type' => 'string', 'required' => true, 'example' => 'testId', 'title' => ''],
],
[
'name' => 'CropMode',
'in' => 'query',
'schema' => ['description' => 'Video cropping mode. Values:'."\n"
."\n\n"
.'- **1**: crop while maintaining ratio.'."\n"
."\n"
.'- **2** (default): keep margins while maintaining ratio.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'MediaEncode',
'in' => 'query',
'schema' => ['description' => 'Encoding option. See the MediaEncode enumeration values below.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2', 'title' => ''],
],
[
'name' => 'MixMode',
'in' => 'query',
'schema' => ['description' => 'Stream mixing mode. Values:'."\n"
."\n"
.'- **0**: single-stream relay. No stream mixing or transcoding. Only the original single stream is relayed. No need to configure stream mixing and transcoding parameters.'."\n"
.'- **1**: stream mixing and transcoding (default). Supports stream mixing and transcoding output.'."\n"
."\n"
.'> - Valid parameters in single-stream relay mode: **StreamType**, **SourceType**.'."\n"
.'- Valid parameters in stream mixing and transcoding mode: **MediaEncode**, **LayoutIds**, **BackgroundColor**, **SubSpecUsers**, **CropMode**, **UserPanes**, **Backgrounds**, **Watermarks**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
],
[
'name' => 'SourceType',
'in' => 'query',
'schema' => ['description' => 'User video input stream in single-stream relay mode. Values:'."\n"
."\n"
.'- **camera**: camera.'."\n"
.'- **shareScreen**: screen sharing.'."\n", 'type' => 'string', 'required' => false, 'example' => 'camera', 'title' => ''],
],
[
'name' => 'StreamType',
'in' => 'query',
'schema' => ['description' => 'Audio stream relayed in single-stream relay mode. Values:'."\n"
."\n"
.'- **0** (default): relay the original stream.'."\n"
.'- **1**: relay only the audio stream.'."\n"
.'- **2**: relay only the video stream.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
],
[
'name' => 'BackgroundColor',
'in' => 'query',
'schema' => ['description' => 'Background color RGB. The default is **0** (black).'."\n"
."\n"
.'The calculation formula is `R + G × 256 + B × 65536`. Values of R (red), G (green), and B (blue): **0** to **255**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'Returned result.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'Request ID.', 'type' => 'string', 'example' => '760bad53276431c499e30dc36f6b26be', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'IllegalBackgroundColor', 'errorMessage' => '%s', 'description' => ''],
['errorCode' => 'InvalidLayoutID.Malformed', 'errorMessage' => '%s', 'description' => ''],
],
500 => [
['errorCode' => 'InternalError', 'errorMessage' => '%s', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"760bad53276431c499e30dc36f6b26be\\"\\n}","type":"json"}]',
'title' => 'Update bypass relay task',
'summary' => 'Call UpdateMPUTask to update a bypass relay task.',
'description' => '# Usage notes'."\n"
."\n"
.'- Before calling this API, you must have called [StartMpuTask](~~93183~~) to start a bypass relay task.'."\n"
.'- This API must be called while the task is running normally. Calls are invalid when the task has not started, has ended, or is in an abnormal state. You can call [GetMPUTaskStatus](~~93181~~) to obtain the task running status.'."\n"
."\n"
.'# QPS limit'."\n"
.'The per-user QPS limit of this API is 4,000 calls per minute. If the limit is exceeded, API calls are throttled, which may affect your business. Please call reasonably. For more information, see [QPS Limits](~~341645~~).',
'requestParamsDescription' => 'The **MediaEncode** enumeration values are shown below.'."\n"
."\n"
.'| ID | Width | Height | Bitrate (kps) | Frame rate (fps) '."\n"
.'| ----------- | ----- | ------ | ----------- | --- '."\n"
.'| 0 | 0 | 0 | 64 | 0 '."\n"
.'| 1 | 640 | 360 | 500 | 15 '."\n"
.'| 54 | 360 | 640 | 500 | 30 '."\n"
.'| 53 | 360 | 640 | 500 | 15 '."\n"
.'| 52 | 640 | 360 | 500 | 30 '."\n"
.'| 10 | 960 | 540 | 700 | 24 '."\n"
.'| 20 | 1280 | 720 | 1024 | 25 '."\n"
.'| 22 | 720 | 1280 | 1024 | 30 '."\n"
.'| 23 | 800 | 600 | 1024 | 30 '."\n"
.'| 30 | 1920 | 1080 | 2048 | 30 '."\n"
.'| 31 | 1080 | 1920 | 2048 | 30 '."\n"
.'| 24 | 750 | 780 | 1024 | 30 '."\n"
.'| 25 | 750 | 540 | 700 | 30 '."\n"
.'| 26 | 720 | 1280 | 2048 | 30 '."\n"
.'| 27 | 1280 | 720 | 2048 | 30 '."\n"
.'| 28 | 1280 | 720 | 3096 | 30 '."\n"
.'| 32 | 1024 | 768 | 1024 | 24 '."\n"
.'| 33 | 1280 | 960 | 1024 | 24 '."\n"
.'| 34 | 1024 | 768 | 2048 | 24 '."\n"
.'| 35 | 1280 | 960 | 2048 | 24 '."\n"
.'| 36 | 1280 | 720 | 1024 | 24 '."\n"
.'| 37 | 1280 | 720 | 2048 | 24 '."\n"
.'| 38 | 540 | 960 | 750 | 15 '."\n"
.'| 39 | 540 | 960 | 1500 | 30 '."\n"
.'| 40 | 1280 | 720 | 1200 | 15 '."\n"
.'| 41 | 720 | 1280 | 1200 | 15 '."\n"
.'| 42 | 720 | 1280 | 1500 | 15 '."\n"
.'| 43 | 540 | 960 | 1200 | 15 '."\n"
."\n"
.'> Note the issues users should pay attention to when using pure audio live streaming, then jump directly to [Pure Audio Live Streaming](https://helpcdn.aliyun.com/document_detail/159390.html?spm=a2c4g.11174283.6.729.445a3c3d4LDYq5) in the FAQ.'."\n",
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '4000', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateMPUTask'],
],
],
'ramActions' => [],
],
'UpdateRecordTask' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
'name' => 'SubSpecUsers',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Specifies the list of users that the task subscribes to.',
'type' => 'array',
'items' => ['description' => 'Specifies the list of users that the task subscribes to. By default, all users in the channel are subscribed. N indicates the array index, with a value range of **1 to 16**.'."\n"
.'> N must start from 1 and increase in ascending order without interruption, and must be consecutive.', 'type' => 'string', 'required' => false, 'example' => 'userID', 'title' => ''],
'required' => false,
'example' => 'userID',
'maxItems' => 64,
'title' => '',
],
],
[
'name' => 'SubSpecAudioUsers',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Specifies which users\' audio streams to subscribe to in the room.',
'type' => 'array',
'items' => ['description' => 'Specifies which users\' audio streams to subscribe to in the room (enter allStream to mix the audio streams of all users). N indicates the array index, with a value range of 1 to 16.'."\n"
."\n"
.'> N must start from 1 and increase in ascending order without interruption, and must be consecutive.', 'type' => 'string', 'required' => false, 'example' => 'audioUserID', 'title' => ''],
'required' => false,
'maxItems' => 64,
'title' => '',
'example' => '',
],
],
[
'name' => 'SubSpecShareScreenUsers',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Specifies which users\' screen sharing streams to subscribe to in the room.',
'type' => 'array',
'items' => ['description' => 'Specifies which users\' screen sharing streams to subscribe to in the room (enter allStream to mix the screen sharing streams of all users). N indicates the array index, with a value range of 1 to 16.'."\n"
."\n"
.'> N must start from 1 and increase in ascending order without interruption, and must be consecutive.', 'type' => 'string', 'required' => false, 'example' => 'videoUserID', 'title' => ''],
'required' => false,
'maxItems' => 64,
'title' => '',
'example' => '',
],
],
[
'name' => 'SubSpecCameraUsers',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Specifies which users\' camera streams to subscribe to in the room.',
'type' => 'array',
'items' => ['description' => 'Specifies which users\' camera streams to subscribe to in the room (enter allStream to mix the camera streams of all users). N indicates the array index, with a value range of 1 to 16.'."\n"
."\n"
.'> N must start from 1 and increase in ascending order without interruption, and must be consecutive.', 'type' => 'string', 'required' => false, 'example' => 'cameraUserID', 'title' => ''],
'required' => false,
'maxItems' => 64,
'title' => '',
'example' => '',
],
],
[
'name' => 'UnsubSpecAudioUsers',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Specifies which users\' audio streams in the room are not subscribed to.',
'type' => 'array',
'items' => ['description' => 'Specifies which users\' audio streams in the room are not subscribed to (enter allStream to mix the audio streams of all users). N indicates the array index, with a value range of 1 to 16.'."\n"
."\n"
.'> N must start from 1 and increase in ascending order without interruption, and must be consecutive.', 'type' => 'string', 'required' => false, 'example' => 'audioUserID2', 'title' => ''],
'required' => false,
'maxItems' => 64,
'title' => '',
'example' => '',
],
],
[
'name' => 'UnsubSpecShareScreenUsers',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Specifies which users\' screen sharing streams in the room are not subscribed to.',
'type' => 'array',
'items' => ['description' => 'Specifies which users\' screen sharing streams in the room are not subscribed to (enter allStream to mix the screen sharing streams of all users). N indicates the array index, with a value range of 1 to 16.'."\n"
."\n"
.'> N must start from 1 and increase in ascending order without interruption, and must be consecutive.', 'type' => 'string', 'required' => false, 'example' => 'videoUserID2', 'title' => ''],
'required' => false,
'maxItems' => 64,
'title' => '',
'example' => '',
],
],
[
'name' => 'UnsubSpecCameraUsers',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Specifies which users\' camera streams in the room are not subscribed to.',
'type' => 'array',
'items' => ['description' => 'Specifies which users\' camera streams in the room are not subscribed to (enter allStream to mix the camera streams of all users). N indicates the array index, with a value range of 1 to 16.'."\n"
."\n"
.'> N must start from 1 and increase in ascending order without interruption, and must be consecutive.', 'type' => 'string', 'required' => false, 'example' => 'cameraUserID2', 'title' => ''],
'required' => false,
'maxItems' => 64,
'title' => '',
'example' => '',
],
],
[
'name' => 'UserPanes',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Layout parameter list.',
'type' => 'array',
'items' => [
'description' => 'Layout parameters. Transparency configuration is not currently supported for pane images.',
'type' => 'object',
'properties' => [
'Images' => [
'description' => 'List of image pane positions in the current layout.',
'type' => 'array',
'items' => [
'description' => 'Image pane position in the current layout.',
'type' => 'object',
'properties' => [
'Width' => ['description' => 'Pane width, as a normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.2456', 'title' => ''],
'Height' => ['description' => 'Pane height, as a normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.2456', 'title' => ''],
'Y' => ['description' => 'Y coordinate, as a normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
'Url' => ['description' => 'HTTP or HTTPS address of the image.', 'type' => 'string', 'required' => false, 'example' => 'https://www.example.com/image.jpg', 'title' => ''],
'Display' => ['description' => 'Image display. Valid values:'."\n"
."\n"
.'- **0** (None): Not displayed.'."\n"
.'- **1** (Always): Always displayed.'."\n"
.'- **2** (Backup): Displayed when the current user has no video stream.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
'ZOrder' => ['description' => 'Stacking order. 0 is the bottommost layer, layer 1 is above layer 0, and so on.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'X' => ['description' => 'X coordinate, as a normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 16,
'title' => '',
'example' => '',
],
'UserId' => ['description' => 'User ID corresponding to the layout pane. N value: **1 to 16**.', 'type' => 'string', 'required' => false, 'example' => 'TestId', 'title' => ''],
'Texts' => [
'description' => 'List of text pane positions in the current layout.',
'type' => 'array',
'items' => [
'description' => 'Text pane position in the current layout. Up to 16 texts are supported.',
'type' => 'object',
'properties' => [
'FontType' => ['description' => 'Font type. Valid values:'."\n"
."\n"
.'- **0** (default): NOTO_SERIF_CJKSC_REGULAR.'."\n"
.'- **1**: ALIBABA_PUHUITI_REGULAR.'."\n"
.'- **2**: ALIBABA_PUHUITI_BOLD.'."\n"
.'- **3**: ALIBABA_PUHUITI_Heavy.'."\n"
.'- **4**: ALIBABA_PUHUITI_LIGHT.'."\n"
.'- **5**: ALIBABA_PUHUITI_MEDIUM.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'FontColor' => ['description' => 'Text color (RGB). The formula is R+G×256+B×65536, where R (Red), G (Green), and B (Blue) have values from **0 to 255**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'Y' => ['description' => 'Y coordinate, as a normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
'Text' => ['description' => 'Text content.', 'type' => 'string', 'required' => false, 'example' => 'text', 'title' => ''],
'ZOrder' => ['description' => 'Stacking order. 0 is the bottommost layer, layer 1 is above layer 0, and so on.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'X' => ['description' => 'X coordinate, as a normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
'FontSize' => ['description' => 'Font size. Valid range: **(0, 72]**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 16,
'title' => '',
'example' => '',
],
'SourceType' => ['description' => 'User video input corresponding to the layout. Valid values:'."\n"
."\n"
.'- **camera** (default): Video stream.'."\n"
.'- **shareScreen**: Screen sharing stream.'."\n"
."\n"
.'N value: **1 to 16**.', 'type' => 'string', 'required' => false, 'example' => 'camera', 'title' => ''],
'PaneId' => ['description' => 'Pane ID. N value: **1 to 16**. PaneID value: **0 to 15**.'."\n"
."\n"
.'> If the user specified by PaneId cannot be found, other streams are displayed by default. The streams are determined based on the order in which users join the channel.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 16,
'title' => '',
'example' => '',
],
],
[
'name' => 'LayoutIds',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Layout ID group.',
'type' => 'array',
'items' => ['description' => 'Layout ID data. You can specify multiple layouts in a single task, and the system will switch based on the number of people in the channel at the time. The array index value range is **1** to **16**, meaning up to 16 layouts can be set simultaneously in a bypass task. For details, see [Layout](~~109587~~).'."\n"
.'> - The array index must start from 1 and increase in ascending order without interruption, and must be consecutive.'."\n"
.'- The number of panes in the configured layouts cannot be the same. Example: Layout IDs 2 and 3 on the official website cannot be set at the same time because they both have 2 panes.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1', 'title' => ''],
'required' => false,
'maxItems' => 64,
'title' => '',
'example' => '',
],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'Application ID. Created and queried through the console. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'yourAppId', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'Channel ID. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'yourChannelId', 'title' => ''],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'Task ID. Only a single ID is supported, and it must be the same as the TaskId input parameter of [StartRecordTask](~~193528~~).', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'yourTaskId', 'title' => ''],
],
[
'name' => 'TemplateId',
'in' => 'query',
'schema' => ['description' => 'Configuration template ID. To obtain the template ID, see [AddRecordTemplate](~~193625~~).', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '76dasgb****', 'title' => ''],
],
[
'name' => 'TaskProfile',
'in' => 'query',
'schema' => ['type' => 'string', 'required' => false, 'description' => '', 'title' => '', 'example' => ''],
],
[
'name' => 'CropMode',
'in' => 'query',
'schema' => ['type' => 'integer', 'format' => 'int64', 'description' => '', 'required' => false, 'title' => '', 'example' => ''],
],
[
'name' => 'MediaEncode',
'in' => 'query',
'schema' => ['type' => 'integer', 'format' => 'int64', 'description' => '', 'required' => false, 'title' => '', 'example' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'Request ID.', 'type' => 'string', 'example' => '760bad53276431c499e30dc36f6b26be', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"760bad53276431c499e30dc36f6b26be\\"\\n}","type":"json"}]',
'title' => 'Update Video Recording Task',
'summary' => 'Calls UpdateRecordTask to update a video recording task.',
'description' => '# Usage Notes'."\n"
.'Before calling this API, you must have already called [StartRecordTask](~~193528~~) to start the video recording task.'."\n"
.'# QPS Limit'."\n"
.'The single-user QPS limit for this API is 100 calls per second. If the limit is exceeded, API calls will be throttled, which may affect your business. Please call the API reasonably. For more information, see [QPS Limit](~~341645~~).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Special Error Codes'."\n"
."\n"
.'|Error Code|Description|HTTP Status Code|Meaning|'."\n"
.'|-----|-------|---|----------|'."\n"
.'| InternalError | The request processing has failed due to some unknown error, exception or failure. | 500 | Internal error. |'."\n"
.'| TaskExisted | task is already existed | 200 | Task already exists. |'."\n"
.'| InvalidLayoutID.Malformed | The specified layout ID is malformed | 400 | The LayoutId parameter is invalid. |'."\n"
.'| InvalidMediaEncode.Malformed | The specifed MediaEncode is malformed | 400 | The MediaEncode parameter is invalid.|'."\n"
.'| InvalidBackgroundColor.Malformed | The specifed background color is malformed | 400 | The BackgroundColor parameter is invalid. |'."\n"
.'| InternalError | The request processing has failed due to some unknown error, exception or failure. | 500 | Internal error. |'."\n",
'changeSet' => [
['createdAt' => '2022-06-20T13:09:12.000Z', 'description' => 'Request parameters changed, Error codes changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateRecordTask'],
],
],
'ramActions' => [],
],
'UpdateRecordTemplate' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
'name' => 'LayoutIds',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Layout ID group.',
'type' => 'array',
'items' => ['description' => 'Layout ID data. You can specify multiple layouts in a single task, and the system switches layouts based on the number of users in the channel at that time. N indicates the subscript of the array, with a value range of 1 to 16, which means a bypass task can have up to 16 layouts set at the same time. For details, see [Layout description](~~109587~~).'."\n"
.'> - N must start from 1 and increase from small to large, must not be interrupted, and must be consecutive.'."\n"
.'- The number of panes for the configured layouts must not be the same. For example, layout IDs 2 and 3 on the official website cannot be set at the same time, because both of them have the same number of panes, which is 2.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '2', 'title' => ''],
'required' => true,
'example' => '1111',
'maxItems' => 64,
'title' => '',
],
],
[
'name' => 'Formats',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Recording file format.',
'type' => 'array',
'items' => ['description' => 'Recording file format. Currently, only the following file formats are supported: **m3u8, mp4, flv**.'."\n"
."\n"
.'> File formats only support lowercase.', 'type' => 'string', 'required' => false, 'example' => 'mp4', 'title' => ''],
'required' => true,
'example' => 'mp4',
'maxItems' => 3,
'title' => '',
],
],
[
'name' => 'Backgrounds',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Background image information.',
'type' => 'array',
'items' => [
'description' => 'Background image information list.',
'type' => 'object',
'properties' => [
'Width' => ['description' => 'Pane width, normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.2456', 'title' => ''],
'Height' => ['description' => 'Pane height, normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.2456', 'title' => ''],
'Y' => ['description' => 'Y coordinate, normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
'Url' => ['description' => 'HTTP or HTTPS address of the image.', 'type' => 'string', 'required' => false, 'example' => 'https://www.example.com/image.jpg', 'title' => ''],
'Display' => ['description' => 'Image display. Valid values:'."\n"
."\n"
.'- **0** (None): Not displayed.'."\n"
.'- **1** (Always): Always displayed.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'ZOrder' => ['description' => 'Stacking order. 0 is the bottom layer, layer 1 is on top of layer 0, and so on.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'X' => ['description' => 'X coordinate, normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 1,
'title' => '',
'example' => '',
],
],
[
'name' => 'Watermarks',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Watermark information.',
'type' => 'array',
'items' => [
'description' => 'Watermark information list.',
'type' => 'object',
'properties' => [
'Alpha' => ['description' => 'Transparency. 0.0 means transparent, 1.0 means completely opaque.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0', 'title' => ''],
'Width' => ['description' => 'Pane width, normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.2456', 'title' => ''],
'Height' => ['description' => 'Pane height, normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.2456', 'title' => ''],
'Y' => ['description' => 'Y coordinate, normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
'Url' => ['description' => 'HTTP or HTTPS address of the watermark.', 'type' => 'string', 'required' => false, 'example' => 'https://www.example.com/image.jpg', 'title' => ''],
'Display' => ['description' => 'Watermark display. Valid values:'."\n"
."\n"
.'- **0** (None): Not displayed.'."\n"
.'- **1** (Always): Always displayed.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'ZOrder' => ['description' => 'Stacking order. 0 is the bottom layer, layer 1 is on top of layer 0, and so on.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'X' => ['description' => 'X coordinate, normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 1,
'title' => '',
'example' => '',
],
],
[
'name' => 'ClockWidgets',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'Clock information.',
'type' => 'array',
'items' => [
'description' => 'Clock information list.',
'type' => 'object',
'properties' => [
'FontType' => ['description' => 'Clock font type. Valid values:'."\n"
."\n"
.'- **0** (default): NOTO_SERIF_CJKSC_REGULAR'."\n"
.'- **1**: ALIBABA_PUHUITI_REGULAR'."\n"
.'- **2**: ALIBABA_PUHUITI_BOLD'."\n"
.'- **3**: ALIBABA_PUHUITI_Heavy'."\n"
.'- **4**: ALIBABA_PUHUITI_LIGHT'."\n"
.'- **5**: ALIBABA_PUHUITI_MEDIUM', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'FontColor' => ['description' => 'Clock text color (RGB).'."\n"
."\n"
.'The calculation formula is `R + G × 256 + B × 65536`. The values of R (red), G (green), and B (blue) range from **0** to **255**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'Y' => ['description' => 'Clock Y coordinate, normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
'ZOrder' => ['description' => 'Clock stacking order. 0 is the bottom layer, layer 1 is on top of layer 0, and so on.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
'X' => ['description' => 'Clock X coordinate, normalized percentage.', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.7576', 'title' => ''],
'FontSize' => ['description' => 'Clock font size. The reasonable range of the font is **(0, 72]**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 1,
'title' => '',
'example' => '',
],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'Application ID. Created and queried through the console. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'yourAppId', 'title' => ''],
],
[
'name' => 'Name',
'in' => 'query',
'schema' => ['description' => 'Recording configuration template name.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '录制模板', 'title' => ''],
],
[
'name' => 'TemplateId',
'in' => 'query',
'schema' => ['description' => 'Configuration template ID. To obtain the template ID, see [AddRecordTemplate](~~193625~~).'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '76dasgb****', 'title' => ''],
],
[
'name' => 'TaskProfile',
'in' => 'query',
'schema' => ['description' => 'Task billing configuration.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '4IN_1080P', 'title' => ''],
],
[
'name' => 'MediaEncode',
'in' => 'query',
'schema' => ['description' => 'Encoding option.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'example' => '20', 'title' => ''],
],
[
'name' => 'BackgroundColor',
'in' => 'query',
'schema' => ['description' => 'Background color RGB. The default value is 0 (black). The calculation formula is R+G×256+B×65536. The values of R (red), G (green), and B (blue) range from **0 to 255**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''],
],
[
'name' => 'OssBucket',
'in' => 'query',
'schema' => ['description' => 'OSS bucket for storing recording files.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'rtc-record-pre', 'title' => ''],
],
[
'name' => 'OssFilePrefix',
'in' => 'query',
'schema' => ['description' => 'Recording file naming rule.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'record/{AppId}/{ChannelId_TaskId}/{EscapedStartTime}_{EscapedEndTime}', 'title' => ''],
],
[
'name' => 'MnsQueue',
'in' => 'query',
'schema' => ['description' => 'Recording event callback message queue.', 'type' => 'string', 'required' => false, 'example' => 'record-callback-queue', 'title' => ''],
],
[
'name' => 'HttpCallbackUrl',
'in' => 'query',
'schema' => ['description' => 'Recording event HTTP callback URL.', 'type' => 'string', 'required' => false, 'example' => 'http://example.com/callback', 'title' => ''],
],
[
'name' => 'FileSplitInterval',
'in' => 'query',
'schema' => ['description' => 'Recording file split duration (greater than or equal to 1800). Unit: seconds.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'example' => '1800', 'title' => ''],
],
[
'name' => 'DelayStopTime',
'in' => 'query',
'schema' => ['description' => 'Delayed recording stop time. Unit: seconds. The default value is **180** seconds.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '86400', 'minimum' => '5', 'default' => '180', 'example' => '180', 'title' => ''],
],
[
'name' => 'EnableM3u8DateTime',
'in' => 'query',
'schema' => ['description' => 'Whether the recorded m3u8 file needs to include ts file timestamps.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
],
[
'name' => 'OssEndpoint',
'in' => 'query',
'schema' => ['type' => 'string', 'description' => '', 'required' => false, 'title' => '', 'example' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'TemplateId' => ['description' => 'Recording configuration template ID.'."\n", 'type' => 'string', 'example' => '76dasgb****', 'title' => ''],
'RequestId' => ['description' => 'The request ID of this task.', 'type' => 'string', 'example' => '760bad53276431c499e30dc36f6b26be', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
200 => [
['errorCode' => 'TaskExisted', 'errorMessage' => 'the task is existed', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TemplateId\\": \\"76dasgb****\\",\\n \\"RequestId\\": \\"760bad53276431c499e30dc36f6b26be\\"\\n}","type":"json"}]',
'title' => 'Update Recording Configuration Template',
'summary' => 'Calls UpdateRecordTemplate to update a recording configuration template.',
'description' => '# Usage notes'."\n"
.'Before you call this operation, you must have already called [AddRecordTemplate](~~193625~~) to add a recording configuration template.'."\n"
.'# QPS limit'."\n"
.'The per-user QPS limit for this operation is 100 calls per second. If you exceed this limit, API calls will be throttled, which may affect your business. Please call this operation reasonably. For more information, see [QPS limit](~~341645~~).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Special error codes'."\n"
."\n"
.'|Error ID|Error Code|Description|HTTP Status Code|Semantics|'."\n"
.'|-----|-------|---|----------|----|'."\n"
.'| InternalError | The request processing has failed due to some unknown error, exception or failure. | 500 | Internal error |',
'changeSet' => [
['createdAt' => '2022-06-21T06:53:43.000Z', 'description' => 'Request parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateRecordTemplate'],
],
],
'ramActions' => [],
],
'UpdateStreamingOut' => [
'summary' => 'Updates a bypass stream ingest task.',
'methods' => ['post', 'get'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'paid'],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the application. Create and find the application ID in the console. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'eo85****', 'title' => ''],
],
[
'name' => 'ChannelId',
'in' => 'query',
'schema' => ['description' => 'The ID of an existing channel. Only a single ID is supported.', 'type' => 'string', 'required' => true, 'example' => 'testid', 'title' => ''],
],
[
'name' => 'TemplateId',
'in' => 'query',
'schema' => ['description' => 'The template ID.'."\n"
.'>When you update the template ID, you can update only the layout. You cannot update the resolution.>', 'type' => 'string', 'required' => true, 'example' => '567', 'maxLength' => 128, 'minLength' => 1, 'title' => ''],
],
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'The ID of the bypass stream ingest task. Only a single ID is supported. The ID can contain uppercase letters, lowercase letters, digits, underscores (\\_), and hyphens (-). The maximum length is 55 bytes.', 'type' => 'string', 'required' => true, 'example' => '123', 'maxLength' => 55, 'minLength' => 1, 'pattern' => '^[0-9a-zA-Z_-]+$', 'title' => ''],
],
[
'name' => 'CropMode',
'in' => 'query',
'schema' => [
'title' => 'Crop mode. Valid values:'."\n"
.'- **1**: Crop while maintaining aspect ratio.'."\n"
.'- **2**: Maintain aspect ratio with padding.'."\n"
.'- **3**: Stretch to fill.'."\n",
'description' => 'The clipping mode. Valid values:'."\n"
."\n"
.'- **1**: Clips the stream while maintaining the aspect ratio.'."\n"
."\n"
.'- **2**: Scales the stream proportionally and adds black borders.'."\n"
."\n"
.'- **3**: Stretches the stream to fill the entire layout.',
'type' => 'integer',
'format' => 'int32',
'example' => '2',
'enum' => ['1', '2', '3'],
'required' => false,
],
],
[
'name' => 'Panes',
'in' => 'query',
'style' => 'flat',
'schema' => [
'title' => '',
'description' => 'The cell settings. Configure up to 16 cells.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'VideoOrder' => [
'title' => 'Fill order when SourceType is video. '."\n"
."\n"
.'- screenFirst: Screen sharing prioritized (Default Value) '."\n"
.'- cameraFirst: Camera prioritized',
'description' => 'The fill order when SourceType is set to video.'."\n"
."\n"
.'- screenFirst: Prioritizes screen sharing streams. (Default)'."\n"
."\n"
.'- cameraFirst: Prioritizes camera streams.',
'type' => 'string',
'required' => false,
'example' => 'cameraFirst',
'default' => 'screenFirst',
'enum' => ['cameraFirst', 'screenFirst'],
],
'SourceType' => [
'description' => 'The media type of the cell. Valid values:'."\n"
."\n"
.'- **video**: User camera or screen sharing stream. (Default)'."\n"
."\n"
.'- **camera**: Camera stream.'."\n"
."\n"
.'- **screen**: Screen sharing stream.'."\n"
."\n"
.'- **whiteboard**: Whiteboard.',
'type' => 'string',
'required' => false,
'example' => 'video',
'default' => 'video',
'enum' => ['video', 'camera', 'screen', 'whiteboard'],
'title' => '',
],
'Images' => [
'title' => '',
'description' => 'The local image watermarks for the pane.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'PaneImageCropMode' => [
'description' => 'The clipping mode. Valid values:'."\n"
."\n"
.'- **1**: Clips the stream while maintaining the aspect ratio.'."\n"
."\n"
.'- **2**: Scales the stream proportionally and adds black borders.'."\n"
."\n"
.'- **3**: Stretches the stream to fill the entire layout.',
'type' => 'integer',
'format' => 'int32',
'example' => '2',
'enum' => ['1', '2', '3'],
'title' => '',
'required' => false,
],
'Alpha' => ['description' => 'The transparency.', 'type' => 'number', 'format' => 'double', 'maximum' => '1', 'minimum' => '0', 'example' => '0.9', 'default' => '1.0', 'title' => '', 'required' => false],
'X' => ['description' => 'The x-coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'exclusiveMinimum' => true, 'example' => '0.2', 'title' => ''],
'Y' => ['description' => 'The y-coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'exclusiveMinimum' => true, 'example' => '0.2', 'title' => ''],
'Height' => ['description' => 'The height.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'exclusiveMinimum' => true, 'example' => '0.2', 'title' => ''],
'Width' => ['description' => 'The width.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'exclusiveMinimum' => true, 'example' => '0.2', 'title' => ''],
'Layer' => ['description' => 'The z-order layer.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '100', 'minimum' => '0', 'example' => '0', 'default' => '0', 'title' => '', 'required' => false],
'Url' => ['description' => 'The URL of the image. The image content cannot be updated during stream ingest.', 'type' => 'string', 'required' => true, 'example' => 'https://aliyun.com/123.jpg', 'maxLength' => 1024, 'minLength' => 1, 'title' => ''],
'Display' => [
'title' => 'Watermark display timing. '."\n"
.'- streamOnly: Display when the user has a video stream (default value). '."\n"
.'- backup: Display when the user does not have a video stream. '."\n"
.'- always: Always display. ',
'description' => 'When to display the watermark.'."\n"
."\n"
.'- streamOnly: Displays the watermark only when the user has a video stream. (Default)'."\n"
."\n"
.'- backup: Displays the watermark when the user does not have a video stream.'."\n"
."\n"
.'- always: Always displays the watermark.',
'type' => 'string',
'example' => 'backup',
'default' => 'streamOnly',
'enum' => ['streamOnly', 'backup', 'always'],
'required' => false,
],
],
'required' => false,
'description' => '',
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 3,
'example' => '',
],
'Texts' => [
'title' => '',
'description' => 'The local text watermarks for the pane.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'BoxBorderw' => ['description' => 'The border width of the text box.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '10', 'minimum' => '1', 'example' => '5', 'default' => '5', 'title' => '', 'required' => false],
'FontColor' => [
'title' => '',
'description' => 'The font color.',
'type' => 'object',
'properties' => [
'R' => ['description' => 'The R value.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '255', 'title' => '', 'required' => false],
'B' => ['description' => 'The B value.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '255', 'title' => '', 'required' => false],
'G' => ['description' => 'The G value.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '255', 'title' => '', 'required' => false],
],
'required' => false,
'example' => '',
],
'Texture' => ['description' => 'The text of the watermark.', 'type' => 'string', 'required' => true, 'example' => '文字水印', 'maxLength' => 128, 'minLength' => 1, 'title' => ''],
'Layer' => ['description' => 'The z-order layer.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '100', 'minimum' => '0', 'example' => '0', 'default' => '0', 'title' => '', 'required' => false],
'Font' => ['description' => 'The font.'."\n"
."\n"
.'- **0**: Alibaba PuHuiTi Regular'."\n"
."\n"
.'- **1**: Alibaba PuHuiTi Light'."\n"
."\n"
.'- **2**: Alibaba PuHuiTi Medium'."\n"
."\n"
.'- **3**: Alibaba PuHuiTi Bold'."\n"
."\n"
.'- **4**: Alibaba PuHuiTi Heavy'."\n"
."\n"
.'- **5**: Alimama ShuHeiTi'."\n"
."\n"
.'- **6**: DingTalk JinBuTi'."\n"
."\n"
.'- **7**: Alimama DaoLiTi'."\n"
."\n"
.'- **8**: Alimama DongFangDaKai'."\n"
."\n"
.'- **9**: Alimama FangYuanTi', 'type' => 'integer', 'format' => 'int32', 'maximum' => '9', 'minimum' => '0', 'example' => '0', 'default' => '0', 'title' => '', 'required' => false],
'BoxColor' => [
'title' => '',
'description' => 'The color of the rectangular box.',
'type' => 'object',
'properties' => [
'R' => ['description' => 'The R value.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '30', 'title' => '', 'required' => false],
'B' => ['description' => 'The B value.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '30', 'title' => '', 'required' => false],
'G' => ['description' => 'The G value.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '30', 'title' => '', 'required' => false],
],
'required' => false,
'example' => '',
],
'FontSize' => ['description' => 'The font size.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '72', 'minimum' => '0', 'example' => '36', 'default' => '30', 'title' => '', 'required' => false],
'Alpha' => ['description' => 'The transparency of the watermark.', 'type' => 'number', 'format' => 'double', 'maximum' => '1', 'minimum' => '0', 'example' => '0.9', 'default' => '1', 'title' => '', 'required' => false],
'X' => ['description' => 'The x-coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'example' => '0.2', 'title' => ''],
'HasBox' => ['description' => 'Specifies whether to include a rectangular box.', 'type' => 'boolean', 'default' => 'false', 'title' => '', 'required' => false, 'example' => ''],
'Y' => ['description' => 'The y-coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'example' => '0.2', 'title' => ''],
'BoxAlpha' => ['description' => 'The transparency of the text box.', 'type' => 'number', 'format' => 'double', 'maximum' => '1', 'minimum' => '0', 'example' => '0.6', 'default' => '0.6', 'title' => '', 'required' => false],
'Display' => [
'title' => 'When the watermark is displayed:'."\n"
.'- streamOnly: Displayed when the user has a video stream (default value).'."\n"
.'- backup: Displayed when the user does not have a video stream.'."\n"
.'- always: Always displayed.',
'description' => 'When to display the watermark.'."\n"
."\n"
.'- streamOnly: Displays the watermark only when the user has a video stream. (Default)'."\n"
."\n"
.'- backup: Displays the watermark when the user does not have a video stream.'."\n"
."\n"
.'- always: Always displays the watermark.',
'type' => 'string',
'example' => 'always',
'default' => 'streamOnly',
'enum' => ['streamOnly', 'backup', 'always'],
'required' => false,
],
],
'required' => false,
'description' => '',
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 3,
'example' => '',
],
'PaneCropMode' => [
'description' => 'The clipping mode. Valid values:'."\n"
."\n"
.'- **1**: Clips the stream while maintaining the aspect ratio.'."\n"
."\n"
.'- **2**: Scales the stream proportionally and adds black borders.'."\n"
."\n"
.'- **3**: Stretches the stream to fill the entire layout.',
'type' => 'integer',
'format' => 'int32',
'example' => '2',
'enum' => ['1', '2', '3'],
'title' => '',
'required' => false,
],
'PaneId' => ['description' => 'The layout ID.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '15', 'minimum' => '0', 'example' => '1', 'title' => '', 'required' => false],
'Source' => ['description' => 'The media source for the cell. You can specify a user ID. To specify a user type, you can use a wildcard character. The following wildcards are supported:'."\n"
."\n"
.'- **$ActiveSpeaker**: The current active speaker in the channel.'."\n"
."\n"
.'- **$ScreenShare**: The user who is sharing their screen. If multiple users share their screens, the streams are filled in order.', 'type' => 'string', 'example' => '22', 'title' => '', 'required' => false],
'Backgrounds' => [
'maxItems' => 3,
'description' => 'The background images for the pane.',
'title' => 'Local background image for the pane.',
'type' => 'array',
'items' => [
'description' => '',
'type' => 'object',
'properties' => [
'Alpha' => ['title' => 'Transparency.', 'description' => 'The transparency.', 'type' => 'number', 'format' => 'double', 'maximum' => '1', 'minimum' => '0', 'example' => '0.9', 'default' => '1.0', 'required' => false],
'X' => ['description' => 'The x-coordinate.', 'type' => 'number', 'title' => '', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'exclusiveMinimum' => true, 'example' => '0.2'],
'Y' => ['description' => 'The y-coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'exclusiveMinimum' => true, 'example' => '0.95', 'title' => ''],
'PaneBackgroundCropMode' => [
'title' => 'Cropping mode. Valid values: '."\n"
.'- **1**: Crop while maintaining aspect ratio. '."\n"
.'- **2**: Maintain aspect ratio with padding. '."\n"
.'- **3**: Stretch to fill.',
'description' => 'The clipping mode. Valid values:'."\n"
."\n"
.'- **1**: Clips the stream while maintaining the aspect ratio.'."\n"
."\n"
.'- **2**: Scales the stream proportionally and adds black borders.'."\n"
."\n"
.'- **3**: Stretches the stream to fill the entire layout.',
'type' => 'integer',
'format' => 'int32',
'example' => '1',
'enum' => ['1', '2', '3'],
'required' => false,
],
'Height' => ['description' => 'The height.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'exclusiveMinimum' => true, 'example' => '0.79', 'title' => ''],
'Width' => ['description' => 'The width.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'exclusiveMinimum' => true, 'example' => '0.3', 'title' => ''],
'Layer' => ['title' => 'z-axis level.', 'description' => 'The z-order layer.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '100', 'minimum' => '0', 'example' => '1', 'default' => '0', 'required' => false],
'Url' => ['title' => 'Image URL.', 'description' => 'The URL of the image.', 'type' => 'string', 'required' => true, 'example' => 'https://aliyun.com/123xx.jpg', 'maxLength' => 1024, 'minLength' => 1],
'Display' => [
'title' => 'Watermark display timing. '."\n"
.'- streamOnly: Display when the current user has a video stream (default value). '."\n"
.'- backup: Display when the current user does not have a video stream. '."\n"
.'- always: Always display. ',
'description' => 'When to display the watermark.'."\n"
."\n"
.'- streamOnly: Displays the watermark only when the user has a video stream. (Default)'."\n"
."\n"
.'- backup: Displays the watermark when the user does not have a video stream.'."\n"
."\n"
.'- always: Always displays the watermark.',
'type' => 'string',
'example' => 'backup',
'default' => 'streamOnly',
'enum' => ['streamOnly', 'backup', 'always'],
'required' => false,
],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'example' => '',
],
'Whiteboard' => [
'description' => 'The whiteboard configuration.',
'title' => 'Whiteboard Settings.',
'type' => 'object',
'properties' => [
'WhiteboardId' => ['title' => 'Whiteboard ID.', 'description' => 'The whiteboard ID. The default value is default.', 'type' => 'string', 'required' => false, 'example' => 'default', 'default' => 'default'],
],
'required' => false,
'example' => '',
],
'ReservePaneForOfflineUser' => ['title' => 'Reserve pane for users who have not joined the meeting. '."\n"
.'The default value is true, which means that when a specific user or wildcard character user specified in the grid layout is offline, the pane remains reserved. '."\n"
.'If set to false, when a specific user or wildcard character user specified in the grid layout is offline, video streams are displayed according to the Auto Fill order. ', 'description' => 'Specifies whether to reserve a pane for an offline user.'."\n"
.'The default value is true. This means that when a specified user or a user matching a wildcard goes offline, their pane is reserved.'."\n"
.'If set to false, when the user goes offline, the pane is filled with another video stream based on the auto-fill order.', 'type' => 'boolean', 'default' => 'true', 'required' => false, 'example' => ''],
],
'required' => false,
'description' => '',
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 16,
'example' => '2',
],
],
[
'name' => 'Images',
'in' => 'query',
'style' => 'flat',
'schema' => [
'title' => '',
'description' => 'The global image watermarks.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Alpha' => ['description' => 'The transparency.', 'type' => 'number', 'format' => 'double', 'maximum' => '1', 'minimum' => '0', 'example' => '0.9', 'default' => '1.0', 'title' => '', 'required' => false],
'X' => ['description' => 'The x-coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'exclusiveMinimum' => true, 'example' => '0.2', 'title' => ''],
'Y' => ['description' => 'The y-coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'exclusiveMinimum' => true, 'example' => '0.2', 'title' => ''],
'Height' => ['description' => 'The height.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'exclusiveMinimum' => true, 'example' => '0.2', 'title' => ''],
'ImageCropMode' => [
'description' => 'The clipping mode. Valid values:'."\n"
."\n"
.'- **1**: Clips the stream while maintaining the aspect ratio.'."\n"
."\n"
.'- **2**: Scales the stream proportionally and adds black borders.'."\n"
."\n"
.'- **3**: Stretches the stream to fill the entire layout.',
'type' => 'integer',
'format' => 'int32',
'example' => '2',
'enum' => ['1', '2', '3'],
'title' => '',
'required' => false,
],
'Width' => ['description' => 'The width.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'exclusiveMinimum' => true, 'example' => '0.2', 'title' => ''],
'Layer' => ['description' => 'The z-order layer.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '100', 'minimum' => '0', 'example' => '0', 'default' => '0', 'title' => '', 'required' => false],
'Url' => ['description' => 'The URL of the image. The image content cannot be updated during stream ingest.', 'type' => 'string', 'required' => true, 'example' => 'https://aliyun.com/123.jpg', 'maxLength' => 1024, 'minLength' => 1, 'title' => ''],
],
'required' => false,
'description' => '',
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 3,
'example' => '',
],
],
[
'name' => 'Backgrounds',
'in' => 'query',
'style' => 'flat',
'schema' => [
'maxItems' => 3,
'description' => 'The background images.',
'title' => 'Background image. ',
'type' => 'array',
'items' => [
'description' => '',
'type' => 'object',
'properties' => [
'BackgroundCropMode' => [
'title' => 'Crop mode. Valid values: '."\n"
.'- **1**: Crop while maintaining aspect ratio. '."\n"
.'- **2**: Maintain aspect ratio with padding. '."\n"
.'- **3**: Stretch to fill. ',
'description' => 'The clipping mode. Valid values:'."\n"
."\n"
.'- **1**: Clips the stream while maintaining the aspect ratio.'."\n"
."\n"
.'- **2**: Scales the stream proportionally and adds black borders.'."\n"
."\n"
.'- **3**: Stretches the stream to fill the entire layout.',
'type' => 'integer',
'format' => 'int32',
'example' => '2',
'enum' => ['1', '2', '3'],
'required' => false,
],
'Alpha' => ['title' => 'Transparency. ', 'description' => 'The transparency.', 'type' => 'number', 'format' => 'double', 'maximum' => '1', 'minimum' => '0', 'example' => '0.9', 'default' => '1.0', 'required' => false],
'X' => ['title' => 'X-coordinate. ', 'description' => 'The x-coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'exclusiveMinimum' => true, 'example' => '0.2'],
'Y' => ['title' => 'Y-coordinate. ', 'description' => 'The y-coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'exclusiveMinimum' => true, 'example' => '0.2'],
'Height' => ['title' => 'Height. ', 'description' => 'The height.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'exclusiveMinimum' => true, 'example' => '0.2'],
'Width' => ['title' => 'Width. ', 'description' => 'The width.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'exclusiveMinimum' => true, 'example' => '0.2'],
'Layer' => ['title' => 'z-axis level.', 'description' => 'The z-order layer.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '100', 'minimum' => '0', 'example' => '0', 'default' => '0', 'required' => false],
'Url' => ['title' => 'Image URL. ', 'description' => 'The URL of the image.', 'type' => 'string', 'required' => true, 'example' => 'https://aliyun.com/123.jpg', 'maxLength' => 1024, 'minLength' => 1],
],
'required' => false,
'title' => '',
'example' => '',
],
'required' => false,
'example' => '',
],
],
[
'name' => 'Texts',
'in' => 'query',
'style' => 'flat',
'schema' => [
'title' => '',
'description' => 'The global text watermarks.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'BoxBorderw' => ['description' => 'The border width of the text box.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '10', 'minimum' => '1', 'example' => '5', 'default' => '5', 'title' => '', 'required' => false],
'BoxColor' => [
'title' => '',
'description' => 'Rectangle box color.',
'type' => 'object',
'properties' => [
'R' => ['description' => 'The R value.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '30', 'title' => '', 'required' => false],
'B' => ['description' => 'The B value.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '30', 'title' => '', 'required' => false],
'G' => ['description' => 'The G value.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '30', 'title' => '', 'required' => false],
],
'required' => false,
'example' => '',
],
'FontSize' => ['description' => 'The font size.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '72', 'minimum' => '0', 'example' => '36', 'default' => '30', 'title' => '', 'required' => false],
'Alpha' => ['description' => 'The transparency of the watermark.', 'type' => 'number', 'format' => 'double', 'maximum' => '1', 'minimum' => '0', 'example' => '0.1', 'default' => '1', 'title' => '', 'required' => false],
'FontColor' => [
'title' => '',
'description' => 'The font color.',
'type' => 'object',
'properties' => [
'R' => ['description' => 'The R value.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '255', 'title' => ''],
'B' => ['description' => 'The B value.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '255', 'title' => '', 'required' => false],
'G' => ['description' => 'The G value.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '255', 'title' => '', 'required' => false],
],
'required' => false,
'example' => '',
],
'X' => ['description' => 'The x-coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'example' => '0.2', 'title' => ''],
'HasBox' => ['description' => 'Specifies whether a bounding box is required.', 'type' => 'boolean', 'default' => 'false', 'title' => '', 'required' => false, 'example' => ''],
'Y' => ['description' => 'The y-coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'example' => '0.2', 'title' => ''],
'Texture' => ['description' => 'The text of the watermark.', 'type' => 'string', 'required' => true, 'example' => '文字水印', 'maxLength' => 128, 'minLength' => 1, 'title' => ''],
'Layer' => ['description' => 'The z-order layer.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '100', 'minimum' => '0', 'example' => '0', 'default' => '0', 'title' => '', 'required' => false],
'Font' => ['description' => 'The font.'."\n"
."\n"
.'- **0**: Alibaba PuHuiTi Regular'."\n"
."\n"
.'- **1**: Alibaba PuHuiTi Light'."\n"
."\n"
.'- **2**: Alibaba PuHuiTi Medium'."\n"
."\n"
.'- **3**: Alibaba PuHuiTi Bold'."\n"
."\n"
.'- **4**: Alibaba PuHuiTi Heavy'."\n"
."\n"
.'- **5**: Alimama ShuHeiTi'."\n"
."\n"
.'- **6**: DingTalk JinBuTi'."\n"
."\n"
.'- **7**: Alimama DaoLiTi'."\n"
."\n"
.'- **8**: Alimama DongFangDaKai'."\n"
."\n"
.'- **9**: Alimama FangYuanTi', 'type' => 'integer', 'format' => 'int32', 'maximum' => '9', 'minimum' => '0', 'example' => '0', 'default' => '0', 'title' => '', 'required' => false],
'BoxAlpha' => ['description' => 'The transparency of the rectangular box.', 'type' => 'number', 'format' => 'double', 'maximum' => '1', 'minimum' => '0', 'example' => '0.6', 'default' => '0.6', 'title' => '', 'required' => false],
],
'required' => false,
'description' => '',
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 3,
'example' => '',
],
],
[
'name' => 'ClockWidgets',
'in' => 'query',
'style' => 'flat',
'schema' => [
'title' => '',
'description' => 'The global clock watermarks.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'BoxBorderw' => ['description' => 'The border width of the text box.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '10', 'minimum' => '1', 'example' => '5', 'default' => '5', 'title' => '', 'required' => false],
'BoxColor' => [
'title' => '',
'description' => 'The color of the bounding box.',
'type' => 'object',
'properties' => [
'R' => ['description' => 'The R value.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '30', 'title' => '', 'required' => false],
'B' => ['description' => 'The B value.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '30', 'title' => '', 'required' => false],
'G' => ['description' => 'The G value.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '30', 'title' => '', 'required' => false],
],
'required' => false,
'example' => '',
],
'FontSize' => ['description' => 'The font size of the clock.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '72', 'minimum' => '0', 'example' => '30', 'default' => '30', 'title' => '', 'required' => false],
'Zone' => ['description' => 'The time zone.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '12', 'exclusiveMaximum' => true, 'minimum' => '-12', 'example' => '8', 'default' => '8', 'title' => '', 'required' => false],
'Alpha' => ['description' => 'The transparency.', 'type' => 'number', 'format' => 'double', 'maximum' => '1', 'minimum' => '0', 'example' => '0.9', 'default' => '1', 'title' => '', 'required' => false],
'FontColor' => [
'title' => '',
'description' => 'The font color.',
'type' => 'object',
'properties' => [
'R' => ['description' => 'The R value.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '255', 'title' => '', 'required' => false],
'B' => ['description' => 'The B value.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '255', 'title' => '', 'required' => false],
'G' => ['description' => 'The G value.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '0', 'example' => '255', 'default' => '255', 'title' => '', 'required' => false],
],
'required' => false,
'example' => '',
],
'X' => ['description' => 'The x-coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'example' => '0.2', 'title' => ''],
'HasBox' => ['description' => 'Specifies whether a bounding box is required.', 'type' => 'boolean', 'default' => 'false', 'title' => '', 'required' => false, 'example' => ''],
'Y' => ['description' => 'The y-coordinate.', 'type' => 'number', 'format' => 'double', 'required' => true, 'maximum' => '1', 'minimum' => '0', 'example' => '0.2', 'title' => ''],
'Layer' => ['description' => 'The z-order layer.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '100', 'minimum' => '0', 'example' => '0', 'default' => '0', 'title' => '', 'required' => false],
'Font' => ['description' => 'The font.'."\n"
."\n"
.'- **0**: Alibaba PuHuiTi Regular'."\n"
."\n"
.'- **1**: Alibaba PuHuiTi Light'."\n"
."\n"
.'- **2**: Alibaba PuHuiTi Medium'."\n"
."\n"
.'- **3**: Alibaba PuHuiTi Bold'."\n"
."\n"
.'- **4**: Alibaba PuHuiTi Heavy'."\n"
."\n"
.'- **5**: Alimama ShuHeiTi'."\n"
."\n"
.'- **6**: DingTalk JinBuTi'."\n"
."\n"
.'- **7**: Alimama DaoLiTi'."\n"
."\n"
.'- **8**: Alimama DongFangDaKai'."\n"
."\n"
.'- **9**: Alimama FangYuanTi', 'type' => 'integer', 'format' => 'int32', 'maximum' => '9', 'minimum' => '0', 'example' => '0', 'default' => '0', 'title' => '', 'required' => false],
'BoxAlpha' => ['description' => 'Transparency of the rectangular box.', 'type' => 'number', 'format' => 'double', 'maximum' => '1', 'minimum' => '0', 'example' => '0.6', 'default' => '0.6', 'title' => '', 'required' => false],
],
'required' => false,
'description' => '',
'title' => '',
'example' => '',
],
'required' => false,
'maxItems' => 3,
'example' => '',
],
],
[
'name' => 'RegionColor',
'in' => 'query',
'style' => 'flat',
'schema' => [
'description' => 'The global background color for panes.',
'title' => 'Global grid background color.',
'type' => 'object',
'properties' => [
'R' => ['title' => 'R.', 'description' => 'The R value.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '-1', 'example' => '255', 'default' => '0', 'required' => false],
'G' => ['title' => 'G.', 'description' => 'G.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '-1', 'example' => '255', 'default' => '0', 'required' => false],
'B' => ['title' => 'B.', 'description' => 'B.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '-1', 'example' => '255', 'default' => '0', 'required' => false],
],
'required' => false,
'example' => '',
],
],
[
'name' => 'BgColor',
'in' => 'query',
'style' => 'flat',
'schema' => [
'description' => 'The global background color.',
'title' => 'Global background color.',
'type' => 'object',
'properties' => [
'R' => ['title' => 'R.', 'description' => 'R.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '-1', 'example' => '255', 'default' => '0', 'required' => false],
'G' => ['title' => 'G.', 'description' => 'The value of G.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '-1', 'example' => '255', 'default' => '0', 'required' => false],
'B' => ['title' => 'B.', 'description' => 'The B value.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '255', 'minimum' => '-1', 'example' => '255', 'default' => '0', 'required' => false],
],
'required' => false,
'example' => '',
],
],
[
'name' => 'LayoutSpecifiedUsers',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'The list of users for the layout. This list can act as a whitelist or a blacklist.'."\n"
."\n"
.'Whitelist: Lists the user video streams to subscribe to in the channel.'."\n"
."\n"
.'- After you configure the whitelist, auto-fill populates panes in the order shown in this list.'."\n"
."\n"
.'- When switching between multiple layouts in a template, only users in the whitelist are used.'."\n"
."\n"
.'Blacklist: Lists the user video streams not to subscribe to in the channel.'."\n"
."\n"
.'- When switching between multiple layouts in a template, only users not in the blacklist are used.',
'title' => 'Blacklist/Whitelist settings. ',
'type' => 'object',
'properties' => [
'Type' => [
'title' => 'User list type: blacklist is "black", whitelist is "white". ',
'description' => 'The type of user list. Valid values: black (blacklist) and white (whitelist).',
'type' => 'string',
'required' => true,
'enum' => ['white', 'black'],
'example' => 'white',
],
'Ids' => [
'minItems' => 1,
'maxItems' => 16,
'description' => 'The list of specified user IDs.',
'title' => 'List of specified User IDs. ',
'type' => 'array',
'items' => ['title' => 'Specific User ID.', 'description' => 'A specific user ID.', 'type' => 'string', 'required' => true, 'example' => '123'],
'required' => true,
'example' => '',
],
],
'required' => false,
'example' => '',
],
],
[
'name' => 'SpecMixedUserList',
'in' => 'query',
'style' => 'flat',
'schema' => [
'maxItems' => 25,
'description' => 'The list of users whose audio to mix.',
'title' => 'The list of users to be mixed.',
'type' => 'array',
'items' => ['title' => 'User ID.', 'description' => 'A user ID.', 'type' => 'string', 'required' => false, 'example' => ''],
'required' => false,
'example' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'result',
'description' => 'result',
'type' => 'object',
'properties' => [
'TaskId' => ['description' => 'The ID of the bypass stream ingest task.', 'type' => 'string', 'example' => '123', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8', 'title' => ''],
],
'example' => '',
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TaskId\\": \\"123\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\"\\n}","type":"json"}]',
'title' => 'Update a bypass stream ingest job ',
'description' => '### Usage notes'."\n"
."\n"
.'This API updates a bypass stream ingest task for an online channel.'."\n"
."\n"
.'### QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 10 calls per second. If you exceed this limit, API calls are subject to rate limiting. This may affect your business. Call this API at a reasonable rate.',
'requestParamsDescription' => '>'."\n"
."\n"
.'Additional information'."\n"
."\n"
.'>'."\n"
."\n"
.'The total number of local image watermarks, local background images, global image watermarks, or global background images cannot exceed 16.'."\n"
."\n"
.''."\n"
."\n"
.''."\n"
."\n"
.'Advanced watermark layering'."\n"
."\n"
.'
'."\n"
."\n"
.'The RTC media server generates the final video as follows:'."\n"
."\n"
.'Draw video → Draw images → Draw text'."\n"
."\n"
.'Video, images, and text are completely separate. For the entire frame, the priority is: Text > Images > Video.'."\n"
."\n"
.'1. The video frames are arranged based on the layout you define.'."\n"
."\n"
.' a. The layers of images in panes and global images are arranged together.'."\n"
."\n"
.' b. Layer 0 is at the bottom. A larger layer value means the image is placed on top of images with smaller layer values. The layer value ranges from 0 to 100.'."\n"
."\n"
.'2. Images include custom PNG and JPG files.'."\n"
."\n"
.' a. Images are drawn based on the configured width, height, position, and transparency.'."\n"
."\n"
.' b. Layer 0 is at the bottom. A larger layer value means the image is placed on top of images with smaller layer values. The layer value ranges from 0 to 100.'."\n"
."\n"
.'3. Text is divided into three types: pane text, global text, and timestamp text.'."\n"
."\n"
.' a. Text of the same type is drawn in order of its layer. Layer 0 is at the bottom. A larger layer value means the text is placed on top of text with smaller layer values. The layer value ranges from 0 to 100.'."\n"
."\n"
.' b. The priority for different text types is: Timestamp text > Global text > Pane text. If text overlaps, the text with lower priority is covered.'."\n"
."\n"
.'Display of overlapping parts:'."\n"
."\n"
.'1. For overlapping parts, higher-priority content covers lower-priority content by default.'."\n"
."\n"
.'2. To prevent lower-priority content from being covered, set the transparency property of the higher-priority content to 0.'."\n"
."\n"
.' ',
'changeSet' => [
['createdAt' => '2025-04-15T09:35:58.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2025-02-21T05:57:35.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2025-02-12T10:01:31.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2024-12-16T05:55:21.000Z', 'description' => 'Request parameters changed'],
['createdAt' => '2024-11-06T09:37:51.000Z', 'description' => 'Request parameters changed'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateStreamingOut'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'rtc:UpdateStreamingOut',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
],
],
'endpoints' => [
['regionId' => 'cn-shanghai', 'regionName' => 'China (Shanghai)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'rtc.aliyuncs.com', 'endpoint' => 'rtc.aliyuncs.com', 'vpc' => ''],
['regionId' => 'cn-north-2-gov-1', 'regionName' => 'Beijing Government Cloud', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'rtc.aliyuncs.com', 'endpoint' => 'rtc.aliyuncs.com', 'vpc' => ''],
],
'errorCodes' => [
['code' => 'ApiParamError', 'message' => 'API %s.', 'http_code' => 400, 'description' => 'API parameter error'],
['code' => 'App.InternalError', 'message' => 'App operate internal error', 'http_code' => 500, 'description' => ''],
['code' => 'App.NotExist', 'message' => 'App not existed', 'http_code' => 404, 'description' => ''],
['code' => 'App.Stop', 'message' => 'App stopped', 'http_code' => 200, 'description' => ''],
['code' => 'AppId.Disable', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'AppId.InsufficientBalance', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'AppId.TypeMismatch', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'BizAppError', 'message' => 'A business application permission error occurred.', 'http_code' => 403, 'description' => 'Business application permission error'],
['code' => 'BizCreatedTsError', 'message' => 'A business CreatedTs error occurred.', 'http_code' => 403, 'description' => 'Parameter meeting creation time is inaccurate.'],
['code' => 'BizUidError', 'message' => 'A business UID error occurred.', 'http_code' => 403, 'description' => 'Business primary account error'],
['code' => 'Channel.AlreadyStarted', 'message' => 'Channel already started', 'http_code' => 400, 'description' => ''],
['code' => 'Channel.CapacityExceed', 'message' => 'Channel capacity exceed', 'http_code' => 400, 'description' => ''],
['code' => 'Channel.NotExist', 'message' => 'Channel not existed', 'http_code' => 404, 'description' => ''],
['code' => 'ErrorAPIGetPlayDomainInfoError', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorAPIIllegalAutoBypassRuleId', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorAPIIllegalBgColor', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorAPIIllegalEncodeMode', 'message' => '%s..', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorAPIIllegalFengkongRuleId', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorAPIIllegalFengkongTemplateId', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorAPIIllegalLayoutID', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorAPIIllegalSignature', 'message' => '%s.', 'http_code' => 401, 'description' => ''],
['code' => 'ErrorAPIInvalidAppID', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorAPIInvalidAppID', 'message' => 'The AppID API request is invalid: %s', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorAPIInvalidSubscribeId', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorAPINoAppId', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorAPINoBackgroudColor', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorAPINoCallBack', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorAPINoChannelPrefix', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorAPINoCropMode', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorAPINoLayoutIds', 'message' => '%s..', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorAPINoMediaEncode', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorAPINoPlayDomain', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorAPINoRuleId', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorAPINoSignature', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorAPINoTaskProfile', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorAPIPlayDomainNotOnline', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorAPIQueryRow', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorAPIQueryRow', 'message' => '%s..', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorAPIQueryRow', 'message' => 'The QueryRow request is invalid: %s', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorAPIRuleMax', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorCallBackURLTOOLONG', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorCreateAutoBypassRule', 'message' => '%s.', 'http_code' => 500, 'description' => ''],
['code' => 'ErrorCreateFengkongRule', 'message' => '%s.', 'http_code' => 400, 'description' => 'english description1'],
['code' => 'ErrorDeleteAutoBypassRule', 'message' => '%s.', 'http_code' => 500, 'description' => ''],
['code' => 'ErrorDeleteFengkongRule', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorDisableFengkongRule', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorEnableAutoBypassRule', 'message' => '%s.', 'http_code' => 500, 'description' => ''],
['code' => 'ErrorEnableFengkongRule', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorEncodeExceedTaskProfile', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorIdempotent', 'message' => '%s..', 'http_code' => 200, 'description' => ''],
['code' => 'ErrorIdempotentParameterMismatch', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorInvalidCallBackURL', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorInvalidMAUCallBackURL', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorInvalidProfile', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorListAutoBypassRule', 'message' => '%s.', 'http_code' => 500, 'description' => ''],
['code' => 'ErrorListFengkongRule', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorNoSuchLayout', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'ErrorNotMatchRuleId', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'Function.Disable', 'message' => 'The specified resource %s %s must enable.', 'http_code' => 400, 'description' => 'The functional state of the resource must be enabled'],
['code' => 'Function.Disable', 'message' => '%s.', 'http_code' => 400, 'description' => 'Function status is invalid, please request in function enabled state.'],
['code' => 'IllegalAliUId', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'IllegalBackgroundColor', 'message' => 'strconv background_color', 'http_code' => 400, 'description' => 'Invalid BackgroundColor'],
['code' => 'InternalError', 'message' => '%s.', 'http_code' => 500, 'description' => ''],
['code' => 'InternalError', 'message' => '%s..', 'http_code' => 500, 'description' => ''],
['code' => 'InternalError', 'message' => 'The request processing has failed due to some unknown error, exception or failure.%s', 'http_code' => 500, 'description' => ''],
['code' => 'InternalError', 'message' => 'An internal error occurred. Please contact the administrator.', 'http_code' => 500, 'description' => 'The request processing has failed due to some unknown error, exception or failure.'],
['code' => 'InternalError', 'message' => 'Failed to stop', 'http_code' => 500, 'description' => ''],
['code' => 'InternalError', 'message' => 'service internal error', 'http_code' => 500, 'description' => ''],
['code' => 'InternalError', 'message' => 'The request processing has failed due to some unknown error, exception or failure.%s.', 'http_code' => 500, 'description' => 'english description'],
['code' => 'InternalError.', 'message' => 'InternalError.%s.', 'http_code' => 500, 'description' => ''],
['code' => 'InternalException', 'message' => '%s.', 'http_code' => 500, 'description' => ''],
['code' => 'InvalidAppID.AliveTaskExceedLimit', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'InvalidAppId.NotFound', 'message' => '%s.', 'http_code' => 404, 'description' => ''],
['code' => 'InvalidAudioMixCount.Malformed', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'InvalidConferenceId.NotFound', 'message' => '%s.', 'http_code' => 404, 'description' => ''],
['code' => 'InvalidCropMode.Malformed', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'InvalidDuration.Unauthorized', 'message' => 'Duration invalid integer.', 'http_code' => 401, 'description' => 'english description'],
['code' => 'InvalidLayout.NotFound', 'message' => 'The specified layout ID %s does not exist.', 'http_code' => 400, 'description' => 'Specified layoutId is not exist'],
['code' => 'InvalidLayoutID.Malformed', 'message' => 'Failed to parse layout ID.', 'http_code' => 400, 'description' => 'failed to parse layoutID'],
['code' => 'InvalidLiveURL', 'message' => 'InvalidLiveURL.%s', 'http_code' => 400, 'description' => ''],
['code' => 'InvalidMaxUserNum.Unauthorized', 'message' => 'MaxUserNum invalid integer', 'http_code' => 401, 'description' => ''],
['code' => 'InvalidPane.Malformed', 'message' => 'The pane is invalid.', 'http_code' => 400, 'description' => 'invalid pane'],
['code' => 'InvalidPane.Malformed', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'InvalidParameter.', 'message' => 'AutoLiveStreamRule exist:%s.', 'http_code' => 400, 'description' => 'english description'],
['code' => 'InvalidParameter.', 'message' => 'Subscribe msgHub fail:%s.', 'http_code' => 400, 'description' => 'english description'],
['code' => 'InvalidParameter.Format', 'message' => 'The request parameter is invalid: %s', 'http_code' => 400, 'description' => ''],
['code' => 'InvalidParameter.Format', 'message' => 'ChannelIds and ChannelIdPrefixes exist at the same time:%s.', 'http_code' => 400, 'description' => 'english description'],
['code' => 'InvalidParameter.Format', 'message' => 'API query row error:%s.', 'http_code' => 400, 'description' => 'english description'],
['code' => 'InvalidParameter.Format', 'message' => 'Get playDomain schema error:%s.', 'http_code' => 400, 'description' => 'english description'],
['code' => 'InvalidParameter.Format', 'message' => 'Get playDomain info error:%s.', 'http_code' => 400, 'description' => 'english description'],
['code' => 'InvalidParameter.Format', 'message' => 'The mediaEncode is illegal:%s.', 'http_code' => 400, 'description' => 'english description'],
['code' => 'InvalidParameter.Format', 'message' => 'The callBack parameter is invalid:%s.', 'http_code' => 400, 'description' => 'english description'],
['code' => 'InvalidParameter.Format', 'message' => 'The appId is invalid:%s.', 'http_code' => 400, 'description' => 'english description'],
['code' => 'InvalidParameter.Format', 'message' => 'The length of callBack parameter is too long:%s.', 'http_code' => 400, 'description' => 'english description'],
['code' => 'InvalidParameter.Format', 'message' => 'The playDomain is invalid:%s..', 'http_code' => 400, 'description' => 'english description'],
['code' => 'InvalidParameter.Format', 'message' => 'The channelIdS or channelIdPrefixes is invalid:%s.', 'http_code' => 400, 'description' => 'english description'],
['code' => 'InvalidParameter.Format', 'message' => 'The ruleName is invalid:%s.', 'http_code' => 400, 'description' => 'english description'],
['code' => 'InvalidParameter.Format', 'message' => 'Specified parameter format is not valid.', 'http_code' => 400, 'description' => 'english description'],
['code' => 'InvalidStartTime.Unauthorized', 'message' => 'StartTime invalid integer.', 'http_code' => 401, 'description' => ''],
['code' => 'InvalidTask.IDError', 'message' => 'taskid is invalid', 'http_code' => 400, 'description' => ''],
['code' => 'InvalidTask.NotFound', 'message' => 'no such task', 'http_code' => 404, 'description' => ''],
['code' => 'MissingParameter', 'message' => '%s.', 'http_code' => 200, 'description' => ''],
['code' => 'NotFound', 'message' => '%s.', 'http_code' => 404, 'description' => 'The requested resource does not exist'],
['code' => 'ParameterError', 'message' => '%s.', 'http_code' => 400, 'description' => ''],
['code' => 'ParameterError', 'message' => 'A parameter error occurred.', 'http_code' => 400, 'description' => 'The request Params contain error.'],
['code' => 'Quota.Invalid', 'message' => 'The specified resource %s does not have enough quota.', 'http_code' => 400, 'description' => 'Resource quota is insufficient, please submit a work order to increase the quota'],
['code' => 'Quota.Invalid', 'message' => '%s.', 'http_code' => 400, 'description' => 'Resource quota is insufficient, please submit a work order to increase the quota'],
['code' => 'request.authinvalid', 'message' => 'auth invalid', 'http_code' => 401, 'description' => ''],
['code' => 'Request.Channel.InvalidChar', 'message' => 'Channel contain invalid character', 'http_code' => 400, 'description' => ''],
['code' => 'Request.Channel.LenLessThan1', 'message' => 'Channel length less than 1', 'http_code' => 400, 'description' => ''],
['code' => 'Request.Channel.LenMoreThan64', 'message' => 'Channel length more than 64', 'http_code' => 400, 'description' => ''],
['code' => 'request.illegalauth', 'message' => 'illegal auth', 'http_code' => 401, 'description' => ''],
['code' => 'request.noaliuid', 'message' => 'no aliuid', 'http_code' => 400, 'description' => ''],
['code' => 'request.noappid', 'message' => 'no appid', 'http_code' => 400, 'description' => ''],
['code' => 'request.nochannelid', 'message' => 'no channelid', 'http_code' => 400, 'description' => ''],
['code' => 'request.norequestid', 'message' => 'no request', 'http_code' => 400, 'description' => ''],
['code' => 'request.nouserid', 'message' => 'no userid', 'http_code' => 400, 'description' => ''],
['code' => 'ServerInternalError', 'message' => 'An internal error occurred.', 'http_code' => 500, 'description' => 'Server Internal Error'],
['code' => 'Service.GenerateKey', 'message' => 'Failed to generate key', 'http_code' => 500, 'description' => ''],
['code' => 'Service.InternalError', 'message' => 'service internal error.', 'http_code' => 500, 'description' => ''],
['code' => 'service.NotPublishing', 'message' => 'user not publishing', 'http_code' => 400, 'description' => ''],
['code' => 'service.signalrequesterror', 'message' => 'signal request error', 'http_code' => 400, 'description' => ''],
['code' => 'service.signalrequesterror', 'message' => 'signal send msg error', 'http_code' => 500, 'description' => ''],
['code' => 'TaskExisted', 'message' => 'the task is existed', 'http_code' => 200, 'description' => ''],
],
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeChannelAllUsers'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateAppStreamingOutTemplate'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeChannel'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeCallList'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeQualityAreaDistributionStatData'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeEndPointEventList'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeStreamingOutStatus'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeQualityDistributionStatData'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateAgent'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyAppLayout'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeAppRecordingFiles'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyAppAgentFunctionStatus'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RtcSipInviteMember'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartCloudNote'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeUsageDistributionStatData'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeAppStreamingOutTemplates'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyAppCallbackStatus'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopStreamingOut'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeChannelDistributionStatData'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeSystemLayoutList'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RtcSipMute'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeAppCallStatus'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeCloudNotes'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeAppRecordTemplates'],
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeChannelUsers'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeQoeMetricData'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeQualityOsSdkVersionDistributionStatData'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeQualityOverallData'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateAppLayout'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyAppAgentTemplate'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RtcCancelSipInvite'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateCloudRecord'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyAppLiveStreamStatus'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopCloudRecord'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyAppViewTemplate'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateCloudNotePhrases'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyAppRecordTemplate'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopChannel'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyAppStreamingOutTemplate'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeAppAgentTemplates'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeUsageOverallData'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateAppAgentTemplate'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeFaultDiagnosisUserDetail'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteAppViewTemplate'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeCloudNotePhrases'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyCloudNotePhrases'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribePubUserListBySubUser'],
['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeApps'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartAgent'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyStreamingProperty'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopCloudNote'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartView'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAgent'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeCall'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeChannelAreaDistributionStatData'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RemoveUsers'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeAppCallbackSecretKey'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeAppViewTemplates'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopCategoryCallback'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeUsageAreaDistributionStatData'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeFaultDiagnosisFactorDistributionStat'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateAppRecordTemplate'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyViewLayout'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeAppAgentFunctionStatus'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeChannelUser'],
['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeAppKey'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteAppLayout'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteAppRecordTemplate'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteAppAgentTemplate'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'NotifyAgent'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeFaultDiagnosisOverallData'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeChannelOverallData'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeUsageOsSdkVersionDistributionStatData'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeAppRecordStatus'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeAppLayouts'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateAppViewTemplate'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartStreamingOut'],
['threshold' => '200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyApp'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyCallbackMeta'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeCallbacks'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateStreamingOut'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartCloudRecord'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeChannelTopPubUserList'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteAppStreamingOutTemplate'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopAgent'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeAllCallback'],
['threshold' => '4000', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetMPUTaskStatus'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeAppLiveStreamStatus'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeChannelUserMetrics'],
['threshold' => '1000', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeChannelParticipants'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeAppViewStatus'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeFaultDiagnosisUserList'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyAppRecordStatus'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopView'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartCategoryCallback'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyAppViewStatus'],
['threshold' => '1000', 'countWindow' => 60, 'regionId' => '*', 'api' => 'RemoveTerminals'],
],
],
'ram' => [
'productCode' => 'RTC',
'productName' => 'Real-Time Communication',
'ramCodes' => ['rtc', 'rtc-white-board'],
'ramLevel' => 'OPERATION',
'ramConditions' => [],
'ramActions' => [
[
'apiName' => 'CreateAppStreamingOutTemplate',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:CreateAppStreamingOutTemplate',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'ModifyApp',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'rtc:ModifyApp',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'StopAgent',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:StopAgent',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'StartAgent',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'rtc:StartAgent',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'UpdateStreamingOut',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'rtc:UpdateStreamingOut',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeAppLayouts',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:DescribeAppLayouts',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'ModifyViewLayout',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'rtc:ModifyViewLayout',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeChannelOverallData',
'description' => '',
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeChannelOverallData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeAppViewTemplates',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'rtc:DescribeAppViewTemplates',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DeleteAppViewTemplate',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'rtc:DeleteAppViewTemplate',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeAppCallStatus',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:DescribeAppCallStatus',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeCallList',
'description' => '',
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeCallList',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeAppAgentFunctionStatus',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:DescribeAppAgentFunctionStatus',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeQualityDistributionStatData',
'description' => '',
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeQualityDistributionStatData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'ModifyAppRecordTemplate',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:ModifyAppRecordTemplate',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'ModifyAppLiveStreamStatus',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:ModifyAppLiveStreamStatus',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeEndPointEventList',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'rtc:DescribeEndPointEventList',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'ModifyAppCallbackStatus',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:ModifyAppCallbackStatus',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeQualityAreaDistributionStatData',
'description' => '',
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeQualityAreaDistributionStatData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeStreamingOutStatus',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'rtc:DescribeStreamingOutStatus',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeFaultDiagnosisUserDetail',
'description' => '',
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeFaultDiagnosisUserDetail',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeFaultDiagnosisFactorDistributionStat',
'description' => '',
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeFaultDiagnosisFactorDistributionStat',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeAppRecordStatus',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:DescribeAppRecordStatus',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeAppStreamingOutTemplates',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:DescribeAppStreamingOutTemplates',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'StartCloudNote',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'rtc:StartCloudNote',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeChannelAllUsers',
'description' => '',
'operationType' => 'list',
'ramAction' => [
'action' => 'rtc:DescribeChannelAllUsers',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'CreateAppAgentTemplate',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:CreateAppAgentTemplate',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeChannels',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:DescribeChannels',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeUsageDistributionStatData',
'description' => '',
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeUsageDistributionStatData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'ModifyCallbackMeta',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'rtc:ModifyCallbackMeta',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeAppKey',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'rtc:DescribeAppKey',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DeleteCloudNotePhrases',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'rtc:DeleteCloudNotePhrases',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'ModifyCloudNotePhrases',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'rtc:ModifyCloudNotePhrases',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'StartCloudRecord',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'rtc:StartCloudRecord',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'StopCloudRecord',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'rtc:StopCloudRecord',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'StopChannel',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'rtc:StopChannel',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeUsageOverallData',
'description' => '',
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeUsageOverallData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'ModifyAppViewTemplate',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'rtc:ModifyAppViewTemplate',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeAppAgentTemplates',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:DescribeAppAgentTemplates',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeCloudNotePhrases',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'rtc:DescribeCloudNotePhrases',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'RemoveUsers',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'rtc:RemoveUsers',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'RtcCancelSipInvite',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'rtc:RtcCancelSipInvite',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeCall',
'description' => '',
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeCall',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeQualityOverallData',
'description' => '',
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeQualityOverallData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeCloudRecordStatus',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'rtc:DescribeCloudRecordStatus',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeAppRecordingFiles',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:DescribeAppRecordingFiles',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'ModifyAppLayout',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:ModifyAppLayout',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeAppRecordTemplates',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:DescribeAppRecordTemplates',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeCloudNotes',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:DescribeCloudNotes',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'UpdateCloudRecord',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'rtc:UpdateCloudRecord',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'StartStreamingOut',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'rtc:StartStreamingOut',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'StopCategoryCallback',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:StopCategoryCallback',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'RtcSipInviteMember',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:RtcSipInviteMember',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'GetAgent',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:GetAgent',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeUsageAreaDistributionStatData',
'description' => '',
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeUsageAreaDistributionStatData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeCallbacks',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:DescribeCallbacks',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'UpdateAgent',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:UpdateAgent',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeAppViewStatus',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'rtc:DescribeAppViewStatus',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeUsageOsSdkVersionDistributionStatData',
'description' => '',
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeUsageOsSdkVersionDistributionStatData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'CreateAppViewTemplate',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'rtc:CreateAppViewTemplate',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'ModifyAppAgentTemplate',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:ModifyAppAgentTemplate',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeChannelAreaDistributionStatData',
'description' => '',
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeChannelAreaDistributionStatData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'StopView',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'rtc:StopView',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'ModifyAppAgentFunctionStatus',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:ModifyAppAgentFunctionStatus',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeChannel',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'rtc:DescribeChannel',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'StartView',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'rtc:StartView',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DeleteAppStreamingOutTemplate',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:DeleteAppStreamingOutTemplate',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DeleteAppAgentTemplate',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:DeleteAppAgentTemplate',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeChannelDistributionStatData',
'description' => '',
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeChannelDistributionStatData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'ModifyAppViewStatus',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'rtc:ModifyAppViewStatus',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'ModifyStreamingProperty',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'rtc:ModifyStreamingProperty',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeQualityOsSdkVersionDistributionStatData',
'description' => '',
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeQualityOsSdkVersionDistributionStatData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeQoeMetricData',
'description' => '',
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeQoeMetricData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'RtcSipMute',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'rtc:RtcSipMute',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'CreateAppLayout',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:CreateAppLayout',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeChannelUser',
'description' => '',
'operationType' => 'list',
'ramAction' => [
'action' => 'rtc:DescribeChannelUser',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'ModifyAppRecordStatus',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:ModifyAppRecordStatus',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'NotifyAgent',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:NotifyAgent',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'ModifyAppStreamingOutTemplate',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:ModifyAppStreamingOutTemplate',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribePubUserListBySubUser',
'description' => '',
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribePubUserListBySubUser',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeAppCallbackSecretKey',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:DescribeAppCallbackSecretKey',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeApps',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'rtc:DescribeApps',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DeleteAppLayout',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:DeleteAppLayout',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeAppLiveStreamStatus',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:DescribeAppLiveStreamStatus',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeFaultDiagnosisUserList',
'description' => '',
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeFaultDiagnosisUserList',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'StopStreamingOut',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'rtc:StopStreamingOut',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeEndPointMetricData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'rtc:DescribeEndPointMetricData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'CreateCloudNotePhrases',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'rtc:CreateCloudNotePhrases',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeChannelTopPubUserList',
'description' => '',
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeChannelTopPubUserList',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DeleteAppRecordTemplate',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:DeleteAppRecordTemplate',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeFaultDiagnosisOverallData',
'description' => '',
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeFaultDiagnosisOverallData',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'CreateAppRecordTemplate',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:CreateAppRecordTemplate',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'DescribeChannelUserMetrics',
'description' => '',
'operationType' => '',
'ramAction' => [
'action' => 'rtc:DescribeChannelUserMetrics',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'StopCloudNote',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'rtc:StopCloudNote',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
[
'apiName' => 'StartCategoryCallback',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'rtc:StartCategoryCallback',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'RTC', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
],
],
],
],
'resourceTypes' => [
['validationType' => 'always', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/{#AppId}'],
['validationType' => 'always', 'resourceType' => 'App', 'arn' => 'acs:rtc::{#accountId}:app/{#AppId}'],
['validationType' => 'always', 'resourceType' => 'App', 'arn' => 'acs:rtc:*:{#accountId}:app/*'],
],
],
];