'1.0',
'info' => ['style' => 'RPC', 'product' => 'vod', 'version' => '2017-03-21'],
'directories' => [
[
'children' => ['CreateUploadVideo', 'RefreshUploadVideo', 'CreateUploadImage', 'CreateUploadAttachedMedia', 'GetUploadDetails', 'RegisterMedia'],
'type' => 'directory',
'title' => 'Media upload',
],
[
'children' => ['GetVideoPlayAuth'],
'type' => 'directory',
'title' => 'Audio and video playback',
],
[
'children' => [
[
'children' => ['GetVideoInfo', 'GetVideoInfos', 'GetMezzanineInfo', 'UpdateVideoInfo', 'UpdateVideoInfos', 'DeleteMezzanines', 'DeleteStream', 'DeleteVideo'],
'type' => 'directory',
'title' => 'Audio and video management',
],
[
'children' => ['GetAttachedMediaInfo', 'UpdateAttachedMediaInfos'],
'type' => 'directory',
'title' => 'Auxiliary media asset management',
],
[
'children' => ['GetImageInfos', 'UpdateImageInfos'],
'type' => 'directory',
'title' => 'Image management',
],
],
'type' => 'directory',
'title' => 'Media asset management',
],
[
'children' => [
[
'children' => ['SubmitTranscodeJobs', 'SubmitPreprocessJobs', 'SubmitWorkflowJob'],
'type' => 'directory',
'title' => 'Initiate processing',
],
[
'children' => ['AddTranscodeTemplateGroup', 'UpdateTranscodeTemplateGroup', 'GetTranscodeTemplateGroup'],
'type' => 'directory',
'title' => 'Transcoding templates',
],
[
'children' => ['ListVodTemplate'],
'type' => 'directory',
'title' => 'Snapshot templates',
],
[
'children' => ['AddWatermark', 'GetWatermark', 'ListWatermark'],
'type' => 'directory',
'title' => 'Image and text watermark templates',
],
[
'children' => ['GetJobDetail'],
'type' => 'directory',
'title' => 'Task management',
],
],
'type' => 'directory',
'title' => 'Media processing',
],
[
'children' => [
'ProduceEditingProjectVideo',
[
'children' => ['AddEditingProject'],
'type' => 'directory',
'title' => 'Online editing project management',
],
],
'type' => 'directory',
'title' => 'Video editing (online editing)',
],
[
'children' => [
[
'children' => ['SubmitAIMediaAuditJob', 'SubmitAIImageAuditJob', 'GetAIMediaAuditJob', 'GetMediaAuditResult', 'GetMediaAuditAudioResultDetail'],
'type' => 'directory',
'title' => 'Automated review',
],
],
'type' => 'directory',
'title' => 'Media review',
],
[
'children' => [
[
'children' => ['AddAITemplate'],
'type' => 'directory',
'title' => 'AI templates',
],
[
'children' => ['ListAIJob', 'SubmitAIJob'],
'type' => 'directory',
'title' => 'AI jobs',
],
[
'children' => ['GetAIVideoTagResult'],
'type' => 'directory',
'title' => 'Smart tagging',
],
[
'children' => ['SubmitAIImageJob'],
'type' => 'directory',
'title' => 'Smart thumbnail',
],
],
'type' => 'directory',
'title' => 'Video AI',
],
[
'children' => ['ListLiveRecordVideo'],
'type' => 'directory',
'title' => 'Live to VOD',
],
[
'children' => [
[
'children' => [
[
'children' => ['DescribeVodDomainTrafficData', 'DescribeVodRangeDataByLocateAndIspService'],
'type' => 'directory',
'title' => 'Resource access data',
],
[
'children' => ['DescribeVodDomainRealTimeByteHitRateData'],
'type' => 'directory',
'title' => 'Real-time access data',
],
],
'type' => 'directory',
'title' => 'Monitoring and query',
],
[
'children' => ['AddVodDomain'],
'type' => 'directory',
'title' => 'Domain name management',
],
[
'children' => ['DescribeVodDomainConfigs', 'DescribeVodCertificateList', 'DescribeVodDomainCertificateInfo'],
'type' => 'directory',
'title' => 'Domain name configuration',
],
[
'children' => ['RefreshMediaPlayUrls'],
'type' => 'directory',
'title' => 'Purge and prefetch',
],
],
'type' => 'directory',
'title' => 'VOD CDN',
],
[
'children' => [
[
'children' => ['SubmitDigitalWatermarkExtractJob'],
'type' => 'directory',
'title' => 'Digital watermarking',
],
],
'type' => 'directory',
'title' => 'Video security',
],
[
'children' => [
[
'children' => ['DescribeVodTieringStorageData', 'DescribeVodTieringStorageRetrievalData'],
'type' => 'directory',
'title' => 'Usage data',
],
[
'children' => ['DescribeVodPlayerMetricData', 'DescribeVodPlayerCollectData', 'DescribeVodPlayerDimensionData'],
'type' => 'directory',
'title' => 'Playback quality (QoS/QoE)',
],
[
'children' => ['GetDailyPlayRegionStatis', 'DescribeVodMediaPlayData'],
'type' => 'directory',
'title' => 'Playback data (new)',
],
[
'children' => ['DescribePlayTopVideos', 'DescribePlayVideoStatis'],
'type' => 'directory',
'title' => 'Playback data (legacy)',
],
],
'type' => 'directory',
'title' => 'Data statistics',
],
[
'children' => [
[
'children' => ['CreateAppInfo', 'ListAppInfo'],
'type' => 'directory',
'title' => 'Application management',
],
[
'children' => ['AttachAppPolicyToIdentity'],
'type' => 'directory',
'title' => 'Authorization management',
],
[
'children' => ['GetAppPlayKey', 'SetAppPlayKey'],
'type' => 'directory',
'title' => 'Playback key',
],
],
'type' => 'directory',
'title' => 'Multi-application system',
],
[
'children' => [
[
'children' => ['SetMessageCallback'],
'type' => 'directory',
'title' => 'Event notification',
],
],
'type' => 'directory',
'title' => 'Global configuration',
],
[
'children' => [
'DescribeVodDomainMax95BpsData', 'DescribeVodSSLCertificateList', 'SetVodDomainSSLCertificate', 'DescribeVodEditingUsageData', 'DescribeVodUserVipsByDomain', 'AddCategory', 'AddEditingProjectMaterials', 'AddVodStorageForApp', 'AddVodTemplate', 'BatchGetMediaInfos', 'BatchSetVodDomainConfigs', 'BatchStartVodDomain', 'BatchStopVodDomain', 'CancelUrlUploadJobs', 'ChangeResourceGroup', 'CreateAudit', 'DecryptKMSDataKey', 'DeleteAIImageInfos', 'DeleteAITemplate', 'DeleteAppInfo',
'DeleteAttachedMedia', 'DeleteCategory', 'DeleteDynamicImage', 'DeleteEditingProject', 'DeleteEditingProjectMaterials', 'DeleteImage', 'DeleteMessageCallback', 'DeleteMultipartUpload', 'DeleteTranscodeTemplateGroup', 'DeleteVodDomain', 'DeleteVodSpecificConfig', 'DeleteVodTemplate', 'DeleteWatermark', 'DescribeMediaDistribution', 'DescribePlayUserAvg', 'DescribePlayUserTotal', 'DescribeVodAIData', 'DescribeVodDomainBpsData', 'DescribeVodDomainBpsDataByLayer', 'DescribeVodDomainDetail',
'DescribeVodDomainHitRateData', 'DescribeVodDomainLog', 'DescribeVodDomainQpsData', 'DescribeVodDomainRealTimeBpsData', 'DescribeVodDomainRealTimeDetailData', 'DescribeVodDomainRealTimeHttpCodeData', 'DescribeVodDomainRealTimeQpsData', 'DescribeVodDomainRealTimeReqHitRateData', 'DescribeVodDomainRealTimeTrafficData', 'DescribeVodDomainReqHitRateData', 'DescribeVodDomainSrcBpsData', 'DescribeVodDomainSrcTrafficData', 'DescribeVodDomainUsageData', 'DescribeVodRefreshQuota', 'DescribeVodRefreshTasks', 'DescribeVodStorageData', 'DescribeVodTranscodeData', 'DescribeVodUserDomains', 'DescribeVodVerifyContent', 'DetachAppPolicyFromIdentity',
'GenerateDownloadSecretKey', 'GenerateKMSDataKey', 'GetAIImageJobs', 'GetAITemplate', 'GetAppInfos', 'GetAuditHistory', 'GetCategories', 'GetDefaultAITemplate', 'GetDigitalWatermarkExtractResult', 'GetEditingProject', 'GetEditingProjectMaterials', 'GetImageInfo', 'GetMediaAuditResultDetail', 'GetMediaAuditResultTimeline', 'GetMediaDNAResult', 'GetMediaRefreshJobs', 'GetMessageCallback', 'GetPlayInfo', 'GetTranscodeSummary', 'GetTranscodeTask',
'GetURLUploadInfos', 'GetVideoList', 'GetVodTemplate', 'ListAIImageInfo', 'ListAITemplate', 'ListAppPoliciesForIdentity', 'ListAuditSecurityIp', 'ListDynamicImage', 'ListJobInfo', 'ListSnapshots', 'ListTranscodeTask', 'ListTranscodeTemplateGroup', 'MoveAppResource', 'PreloadVodObjectCaches', 'RefreshVodObjectCaches', 'RestoreMedia', 'SearchEditingProject', 'SearchMedia', 'SetAuditSecurityIp', 'SetCrossdomainContent',
'SetDefaultAITemplate', 'SetDefaultTranscodeTemplateGroup', 'SetDefaultWatermark', 'SetEditingProjectMaterials', 'SetVodDomainCertificate', 'SubmitDynamicImageJob', 'SubmitMediaDNADeleteJob', 'SubmitSnapshotJob', 'UpdateAITemplate', 'UpdateAppInfo', 'UpdateCategory', 'UpdateEditingProject', 'UpdateMediaStorageClass', 'UpdateVodDomain', 'UpdateVodTemplate', 'UpdateWatermark', 'UploadMediaByURL', 'UploadStreamByURL', 'VerifyVodDomainOwner',
],
'type' => 'directory',
'title' => 'Others',
],
],
'components' => [
'schemas' => [
'AppInfoDTO' => [
'title' => 'A short description of struct',
'description' => '应用信息',
'type' => 'object',
'properties' => [
'ItemId' => ['title' => '应用标识', 'type' => 'string', 'backendName' => 'itemId'],
'AppName' => ['title' => '应用名称', 'type' => 'string', 'backendName' => 'appName'],
'UserId' => ['title' => '用户ID', 'type' => 'integer', 'format' => 'int64', 'backendName' => 'userId'],
'AppType' => ['title' => '应用类型', 'type' => 'integer', 'format' => 'int32', 'example' => '1-普通应用,2-内嵌SDK.', 'backendName' => 'appType'],
'GmtCreate' => ['title' => '创建时间', 'type' => 'string', 'backendName' => 'gmtCreate'],
'Platforms' => [
'title' => '应用包含的平台信息列表',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Type' => ['title' => '平台类型', 'type' => 'integer', 'format' => 'int64', 'backendName' => 'type'],
'PlatformType' => ['title' => '平台类型', 'type' => 'integer', 'format' => 'int64', 'backendName' => 'type'],
'PkgName' => ['title' => '包名', 'type' => 'string', 'backendName' => 'pkgName'],
'PkgSignature' => ['title' => '包签名', 'type' => 'string', 'backendName' => 'pkgSignature'],
'ItemId' => ['title' => '平台标志', 'type' => 'string', 'backendName' => 'itemId'],
'LicenseItemIds' => [
'title' => '授权列表',
'type' => 'array',
'items' => ['type' => 'string', 'example' => '授权itemId'],
'backendName' => 'licenseItemIds',
'itemName' => 'licenseItemIds',
],
],
],
'backendName' => 'platforms',
],
'CreationTime' => ['title' => '创建时间', 'type' => 'string', 'backendName' => 'creationTime'],
'ModificationTime' => ['title' => '更新时间', 'type' => 'string', 'backendName' => 'modificationTime'],
'GmtModified' => ['title' => '更新时间', 'type' => 'string', 'backendName' => 'gmtModified'],
],
],
'LicenseInstanceAppDTO' => [
'title' => 'A short description of struct',
'type' => 'object',
'properties' => [
'ItemId' => ['title' => 'itemId', 'type' => 'string', 'backendName' => 'itemId'],
'UserId' => ['title' => 'userId', 'type' => 'integer', 'format' => 'int64', 'backendName' => 'userId'],
'BeginOn' => ['title' => 'beginOn', 'type' => 'string', 'backendName' => 'beginOn'],
'ExpiredOn' => ['title' => 'expiredOn', 'type' => 'string', 'backendName' => 'expiredOn'],
'Status' => ['title' => 'status', 'type' => 'string', 'backendName' => 'status'],
'InstanceId' => ['title' => 'instanceId', 'type' => 'string', 'backendName' => 'instanceId'],
'ContractNo' => ['title' => 'contractNo', 'type' => 'string', 'backendName' => 'contractNo'],
'CreationTime' => ['title' => 'creationTime', 'type' => 'string', 'backendName' => 'creationTime'],
'ModificationTime' => ['title' => 'modificationTime', 'type' => 'string', 'backendName' => 'modificationTime'],
'AppId' => ['title' => 'appId', 'type' => 'string', 'backendName' => 'appId'],
'LicenseConfigs' => [
'title' => 'LicenseConfigDTOS',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'SubscriptionImp' => ['title' => 'subscriptionImp', 'type' => 'string', 'backendName' => 'subscriptionImp'],
'SubscriptionPkg' => ['title' => 'subscriptionPkg', 'type' => 'string', 'backendName' => 'subscriptionPkg'],
'SdkId' => ['title' => 'sdkId', 'type' => 'integer', 'format' => 'int32', 'backendName' => 'sdkId'],
'BusinessType' => ['title' => 'businessType', 'type' => 'string', 'backendName' => 'businessType'],
'SdkName' => ['title' => 'sdkName', 'type' => 'string', 'backendName' => 'sdkName'],
'Subscription' => ['title' => 'subscription', 'type' => 'string', 'backendName' => 'subscription'],
'FeatureIds' => ['title' => 'featureIds', 'type' => 'string', 'backendName' => 'featureIds'],
'IsTrial' => ['title' => 'isTrial', 'type' => 'boolean', 'backendName' => 'isTrial'],
],
],
'backendName' => 'licenseConfigDTOS',
],
],
],
],
],
'apis' => [
'AddAITemplate' => [
'summary' => 'Call this operation to add an AI template for automated review and intelligent thumbnail tasks.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39782',
'abilityTreeNodes' => ['FEATUREvodW76Z9M'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'TemplateName',
'in' => 'query',
'schema' => ['description' => 'The name of the AI template. The name can be up to 128 bytes in length.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'title' => '', 'example' => 'AI-media-test'],
],
[
'name' => 'TemplateType',
'in' => 'query',
'schema' => ['description' => 'The type of the AI template. Valid values:'."\n"
."\n"
.'- **AIMediaAudit**: automated review.'."\n"
.'- **AIImage**: intelligent thumbnail.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'title' => '', 'example' => 'AIMediaAudit'],
],
[
'name' => 'TemplateConfig',
'in' => 'query',
'schema' => ['description' => 'The detailed configurations of the AI template. The value must be a JSON string. For more information, see [AITemplateConfig](~~89863#title-vd3-499-o36~~).', 'type' => 'string', 'required' => true, 'docRequired' => true, 'title' => '', 'example' => '{"AuditItem":["terrorism","porn"],"AuditRange":["image-cover","text-title","video"],"AuditContent":["screen"],"AuditAutoBlock":"yes"}'],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned results.',
'type' => 'object',
'properties' => [
'TemplateId' => ['description' => 'The ID of the AI template.', 'type' => 'string', 'title' => '', 'example' => '1706a0063dd733f6a823ef32e0a5****'],
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'title' => '', 'example' => '25818875-5F78-4A13-BEF6-****'],
],
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'AddAITemplate',
'description' => '- This operation is supported in the following regions: **China (Beijing)**, **China (Shanghai)**, and **Singapore**.'."\n"
.'- Before you add an AI template for automated review and intelligent thumbnail tasks, make sure that you have activated [Automated Review](https://ai.aliyun.com/vi/censor) or [Intelligent Thumbnail](https://ai.aliyun.com/vi/cover).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-10T08:32:38.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:36:20.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:34:48.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddAITemplate'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:AddAITemplate',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TemplateId\\": \\"1706a0063dd733f6a823ef32e0a5****\\",\\n \\"RequestId\\": \\"25818875-5F78-4A13-BEF6-****\\"\\n}","type":"json"}]',
],
'AddCategory' => [
'summary' => 'Creates a category to classify media assets that are stored in ApsaraVideo VOD. This helps you query and manage resources in a more efficient and convenient way.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39783',
'abilityTreeNodes' => ['FEATUREvodUYOK6S'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'CateName',
'in' => 'query',
'schema' => ['description' => 'The name of the category.'."\n"
."\n"
.'* The value can be up to 64 bytes in length.'."\n"
.'* The value must be encoded in UTF-8.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'Comedy', 'title' => ''],
],
[
'name' => 'ParentId',
'in' => 'query',
'schema' => ['description' => 'The ID of the parent category.'."\n"
."\n"
.'To obtain the category ID, perform the following steps: Log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com). Choose **Configuration Management** > **Media Management** > **Categories**. On the **Audio and Video / Image Category** or **Short Video Material Category** tab, view the category ID.'."\n"
."\n"
.'> * If you specify this parameter, the system creates a subcategory under the parent category. If you leave this parameter empty, the system creates a level 1 category.'."\n"
.'>* You cannot modify, add, or delete level 1 categories of short video materials. You can create only subcategories under level 1 categories for short video materials. This parameter is required when you set `Type` to `material`.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '100012****', 'title' => ''],
],
[
'name' => 'Type',
'in' => 'query',
'schema' => ['description' => 'The type of the category. Valid values:'."\n"
."\n"
.'* **default** (default): audio, video, and image files'."\n"
.'* **material**: short video materials'."\n", 'type' => 'string', 'required' => false, 'example' => 'default', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4AF6-D7393642CA58****', 'title' => ''],
'Category' => [
'description' => 'The information about the category.'."\n",
'type' => 'object',
'properties' => [
'Type' => ['description' => 'The type of the category. Valid values:'."\n"
."\n"
.'* **default**: audio, video, and image files'."\n"
.'* **material**: short video materials'."\n", 'type' => 'string', 'example' => 'default', 'title' => ''],
'ParentId' => ['description' => 'The ID of the parent category.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '100012', 'title' => ''],
'CateName' => ['description' => 'The name of the category.'."\n", 'type' => 'string', 'example' => 'Comedy', 'title' => ''],
'CateId' => ['description' => 'The ID of the category. You can use the value of this parameter when you call the [UpdateCategory](~~UpdateCategory~~), [DeleteCategory](~~DeleteCategory~~), and [GetCategories](~~GetCategories~~) operations.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '10020', 'title' => ''],
'Level' => ['description' => 'The level of the category. Valid values:'."\n"
."\n"
.'* **0**: level 1 category'."\n"
.'* **1**: level 2 category'."\n"
.'* **1**: level 3 category'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4AF6-D7393642CA58****\\",\\n \\"Category\\": {\\n \\"Type\\": \\"default\\",\\n \\"ParentId\\": 100012,\\n \\"CateName\\": \\"Comedy\\",\\n \\"CateId\\": 10020,\\n \\"Level\\": 1\\n }\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]',
'title' => 'AddCategory',
'description' => '* You can create a maximum of 3 levels of categories for audio, video, and image files and 2 levels of categories for short video materials. Each category level can contain a maximum of 100 subcategories. To create categories for audio and video files, set `Type` to `default`. To create categories for short video materials, set `Type` to `material`.'."\n"
.'* After you create a category, you can categorize media resources during upload or categorize the uploaded media resources. For more information, see [Manage video categories](~~86070~~).'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return.'."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| LevelExceededMax | The level of categories exceeded maximum. | 400 | The error message returned because the number of category levels exceeds the upper limit. |'."\n"
.'| SubTotalExceededMax | The total of sub categories exceeded maximum. | 400 | The error message returned because the number of subcategories exceeds the upper limit. |'."\n"
.'| InvalidCateId.NotFound | The CateId not exist. | 404 | The error message returned because the specified ID of the parent category does not exist. |',
'changeSet' => [
['createdAt' => '2025-07-10T08:32:59.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:35:51.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:34:28.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddCategory'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:AddCategory',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'AddEditingProject' => [
'summary' => 'Call this operation to create an online editing project (video editing task).',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39785',
'abilityTreeNodes' => ['FEATUREvod89J0DP'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'Title',
'in' => 'query',
'schema' => ['description' => 'The title of the online editing project.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'title' => '', 'example' => 'testtimeline'],
],
[
'name' => 'Description',
'in' => 'query',
'schema' => ['description' => 'The description of the online editing project.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'testtimeline001desciption'],
],
[
'name' => 'Timeline',
'in' => 'query',
'schema' => ['description' => 'The timeline of the online editing project. The value must be a JSON string. For more information about the data structure, see [Timeline](~~52839~~).'."\n"
."\n"
.'If this parameter is left empty, an empty timeline is created and the total duration of the online editing project is 0.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '{"VideoTracks":[{"VideoTrackClips":[{"MediaId":"cc3308ac5006aed55a54328bc3443****"},{"MediaId":"95948ddba24446b6aed5db985e78****"}]}]}'],
],
[
'name' => 'CoverURL',
'in' => 'query',
'schema' => ['description' => 'The thumbnail of the online editing project. If this parameter is left empty and materials exist in the video track of the timeline, the thumbnail of the first material in the timeline is used as the thumbnail of the online editing project.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'https://demo.aliyundoc.com/6AB4D0E1E1C74468883516C2349D1FC2-6-2.png'],
],
[
'name' => 'Division',
'in' => 'query',
'schema' => ['description' => 'The region where the service is activated.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'cn-shanghai'],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'title' => '', 'example' => 'E4EBD2BF-5EB0-4476-8829-9D94E1B1****'],
'Project' => [
'description' => 'The online editing project. For more information about the data structure, see [EditingProject](~~52839~~).',
'type' => 'object',
'properties' => [
'CreationTime' => ['description' => 'The time when the online editing project was created. The time follows the *yyyy-MM-dd*T*HH:mm:ss*Z format in the UTC time zone.', 'type' => 'string', 'title' => '', 'example' => '2017-01-11T12:00:00Z'],
'Status' => ['description' => 'The status of the online editing project. Valid values:'."\n"
."\n"
.'- **Normal**: The project is a draft.'."\n"
.'- **Producing**: The video is being produced.'."\n"
.'- **Produced**: The video was produced.'."\n"
.'- **ProduceFailed**: The video failed to be produced.', 'type' => 'string', 'title' => '', 'example' => 'Normal'],
'ModifiedTime' => ['description' => 'The time when the online editing project was last modified. The time follows the *yyyy-MM-dd*T*HH:mm:ss*Z format in the UTC time zone.', 'type' => 'string', 'title' => '', 'example' => '2017-01-11T13:00:00Z'],
'Description' => ['description' => 'The description of the online editing project.', 'type' => 'string', 'title' => '', 'example' => 'testtimeline001desciption'],
'ProjectId' => ['description' => 'The ID of the online editing project.', 'type' => 'string', 'title' => '', 'example' => 'fb2101bf24bf4df34c4cb3187****'],
'Title' => ['description' => 'The title of the online editing project.', 'type' => 'string', 'title' => '', 'example' => 'testtimeline'],
],
'title' => '',
],
],
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'AddEditingProject',
'description' => '- For more information about online editing, see [Online editing](~~95482~~).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-10T08:32:25.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:35:43.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:34:35.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddEditingProject'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:AddEditingProject',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"E4EBD2BF-5EB0-4476-8829-9D94E1B1****\\",\\n \\"Project\\": {\\n \\"CreationTime\\": \\"2017-01-11T12:00:00Z\\",\\n \\"Status\\": \\"Normal\\",\\n \\"ModifiedTime\\": \\"2017-01-11T13:00:00Z\\",\\n \\"Description\\": \\"testtimeline001desciption\\",\\n \\"ProjectId\\": \\"fb2101bf24bf4df34c4cb3187****\\",\\n \\"Title\\": \\"testtimeline\\"\\n }\\n}","type":"json"}]',
],
'AddEditingProjectMaterials' => [
'summary' => 'Adds one or more materials to an editing project.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39786',
'abilityTreeNodes' => ['FEATUREvod89J0DP'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'ProjectId',
'in' => 'query',
'schema' => ['description' => 'The ID of the online editing project.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'afa31b483b5c41609185de0e1b790579', 'title' => ''],
],
[
'name' => 'MaterialIds',
'in' => 'query',
'schema' => ['description' => 'Separate multiple material IDs with commas (,). You can specify up to 10 IDs.'."\n"
."\n"
.'> If you specify multiple materials, make sure that the materials are of the same type as specified in MaterialType.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'd3251979f9fd41f2acb29ccda5a6f772', 'title' => ''],
],
[
'name' => 'MaterialType',
'in' => 'query',
'schema' => ['description' => 'The type of the material. Valid values:'."\n"
."\n"
.'* **video**'."\n"
.'* **audio**'."\n"
.'* **image**'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'video', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '85237CDA-0B54-5CED-BA10-A8A71AA13C1A', 'title' => ''],
'MaterialList' => [
'description' => 'The materials.'."\n",
'type' => 'array',
'items' => [
'description' => 'The details of the material.'."\n",
'type' => 'object',
'properties' => [
'Status' => ['description' => 'The status of the material. Valid values:'."\n"
."\n"
.'* **Normal**'."\n"
.'* **Uploading**'."\n"
.'* **UploadFail**'."\n", 'type' => 'string', 'example' => 'Normal', 'title' => ''],
'CateId' => ['description' => 'The ID of the category.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1000487543', 'title' => ''],
'CreateTime' => ['description' => 'The time when the material was created. The time follows the ISO 8601 standard in the *YYYY-MM-DD**Thh:mm:ss* format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2019-10-02T08:26Z', 'title' => ''],
'MaterialType' => ['description' => 'The type of the material. Valid values:'."\n"
."\n"
.'* **video**'."\n"
.'* **audio**'."\n"
.'* **image**'."\n", 'type' => 'string', 'example' => 'video', 'title' => ''],
'Tags' => ['description' => 'The tag of the material. Multiple tags are separated by commas (,).'."\n", 'type' => 'string', 'example' => 'tag1,tag2', 'title' => ''],
'SpriteConfig' => ['description' => 'The configuration of the sprite snapshot.'."\n", 'type' => 'string', 'example' => 'xxx', 'title' => ''],
'CateName' => ['description' => 'The category name of the material.'."\n", 'type' => 'string', 'example' => 'Category 1', 'title' => ''],
'Description' => ['description' => 'The description of the material.'."\n", 'type' => 'string', 'example' => 'Material description', 'title' => ''],
'MaterialId' => ['description' => 'The ID of the material.'."\n", 'type' => 'string', 'example' => '85befc4118b84c6723e53b80b1****', 'title' => ''],
'Size' => ['description' => 'The size of the material.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1682694', 'title' => ''],
'CoverURL' => ['description' => 'The thumbnail URL.'."\n", 'type' => 'string', 'example' => 'http://example.aliyundoc.com/aivideocover/46fa444aa34065cb9250f6c****/image_01.jpg', 'title' => ''],
'Duration' => ['description' => 'The duration of the material. Unit: seconds. The value is accurate to four decimal places.'."\n", 'type' => 'number', 'format' => 'float', 'example' => '3690.2332', 'title' => ''],
'CustomerId' => ['description' => 'The ID of the user.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1234751840694470', 'title' => ''],
'Title' => ['description' => 'The title of the material.'."\n", 'type' => 'string', 'example' => 'test', 'title' => ''],
'ModifyTime' => ['description' => 'The time when the material was last updated. The time follows the ISO 8601 standard in the *YYYY-MM-DD**Thh:mm:ss* format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2022-11-25T07:28:34Z', 'title' => ''],
'Sprites' => [
'description' => 'The URLs of sprite snapshots.'."\n",
'type' => 'array',
'items' => ['description' => 'The URL of the sprite snapshot.'."\n", 'type' => 'string', 'example' => '"http://example.aliyundoc.com/material_big_snapshot/0f325c157386f2a7e91b2ff0****.jpg?auth_key=****"', 'title' => ''],
'title' => '',
'example' => '',
],
'Snapshots' => [
'description' => 'The URLs of snapshots.'."\n",
'type' => 'array',
'items' => ['description' => 'The URL of the snapshot.'."\n", 'type' => 'string', 'example' => '"http://example.aliyundoc.com/material_small_snapshot/0f325c157386f2a7e91b2ff0****.jpg?auth_key=","http://example.aliyundoc.com/material_small_snapshot/0f325c157386f2a7e91b2ff0****.jpg?auth_key="', 'title' => ''],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"85237CDA-0B54-5CED-BA10-A8A71AA13C1A\\",\\n \\"MaterialList\\": [\\n {\\n \\"Status\\": \\"Normal\\",\\n \\"CateId\\": 1000487543,\\n \\"CreateTime\\": \\"2019-10-02T08:26Z\\",\\n \\"MaterialType\\": \\"video\\",\\n \\"Tags\\": \\"tag1,tag2\\",\\n \\"SpriteConfig\\": \\"xxx\\",\\n \\"CateName\\": \\"Category 1\\",\\n \\"Description\\": \\"Material description\\",\\n \\"MaterialId\\": \\"85befc4118b84c6723e53b80b1****\\",\\n \\"Size\\": 1682694,\\n \\"CoverURL\\": \\"http://example.aliyundoc.com/aivideocover/46fa444aa34065cb9250f6c****/image_01.jpg\\",\\n \\"Duration\\": 3690.2332,\\n \\"CustomerId\\": 1234751840694470,\\n \\"Title\\": \\"test\\",\\n \\"ModifyTime\\": \\"2022-11-25T07:28:34Z\\",\\n \\"Sprites\\": [\\n \\"\\\\\\"http://example.aliyundoc.com/material_big_snapshot/0f325c157386f2a7e91b2ff0****.jpg?auth_key=****\\\\\\"\\"\\n ],\\n \\"Snapshots\\": [\\n \\"\\\\\\"http://example.aliyundoc.com/material_small_snapshot/0f325c157386f2a7e91b2ff0****.jpg?auth_key=\\\\\\",\\\\\\"http://example.aliyundoc.com/material_small_snapshot/0f325c157386f2a7e91b2ff0****.jpg?auth_key=\\\\\\"\\"\\n ]\\n }\\n ]\\n}","type":"json"}]',
'title' => 'AddEditingProjectMaterials',
'changeSet' => [
['createdAt' => '2025-07-10T08:32:08.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:35:51.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:34:24.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddEditingProjectMaterials'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:AddEditingProjectMaterials',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'AddTranscodeTemplateGroup' => [
'summary' => 'Use this operation to create a transcode template group or add transcode templates to an existing group.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39789',
'abilityTreeNodes' => ['FEATUREvodL077M7'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'Name',
'in' => 'query',
'schema' => ['description' => 'The name of the transcode template group.'."\n"
."\n"
.'- The name can be up to 128 bytes in length.'."\n"
."\n"
.'- The name must be UTF-8 encoded.'."\n"
."\n"
.'> You must specify either `TranscodeTemplateGroupId` or `Name`.', 'type' => 'string', 'required' => false, 'example' => 'transcodetemplate', 'title' => ''],
],
[
'name' => 'TranscodeTemplateList',
'in' => 'query',
'schema' => ['description' => 'The configurations of the transcode templates, specified as a JSON string. For more information about the parameter structure, see [TranscodeTemplate](~~52839~~).'."\n"
."\n"
.'> - If you do not specify this parameter, a transcoding workflow is not created, and video uploads do not trigger transcoding.'."\n"
.'>'."\n"
.'> - If you do not need to set the `Width` or `Height` properties, omit them from the request. Do not set them to an empty string, such as `"Height":""`.', 'type' => 'string', 'required' => false, 'example' => '[{"Video":{"Bitrate":"400","Codec":"H.264","Fps":"30","Height":360,"Width":640},"Definition":"SD","Container":{"Format":"mp4"},"TemplateName":"testName","MuxConfig":{},"Audio":{"Codec":"AAC","Bitrate":"64","Samplerate":"44100"}}]', 'title' => ''],
],
[
'name' => 'TranscodeTemplateGroupId',
'in' => 'query',
'schema' => ['description' => 'The ID of the transcode template group. If you specify this ID, you can add new transcode templates to the specified group.'."\n"
."\n"
.'> You must specify either `TranscodeTemplateGroupId` or `Name`.', 'type' => 'string', 'required' => false, 'example' => '4c71a339fe52b4fa6f4527****', 'title' => ''],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the application. The default value is **`app-1000000`**. For more information, see [Multi-application](~~113600~~).', 'type' => 'string', 'required' => false, 'example' => 'app-****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned parameters.',
'type' => 'object',
'properties' => [
'TranscodeTemplateGroupId' => ['description' => 'The ID of the transcode template group.', 'type' => 'string', 'example' => '34e908aa4024af7821c31f93a2a****', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '25818875-5F78-4AF6-D7393642CA58****', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'AddTranscodeTemplateGroup',
'description' => '- You cannot modify a transcode template group that is **locked** by the ApsaraVideo VOD service. To check if a group is locked, call the [GetTranscodeTemplateGroup](~~GetTranscodeTemplateGroup~~) operation and check the `Locked` parameter in the response. To modify a locked group, you must first call the [UpdateTranscodeTemplateGroup](~~UpdateTranscodeTemplateGroup~~) operation to unlock it.'."\n"
."\n"
.'- You cannot add a transcode template group without a valid storage location, as transcoding requires a storage address. To obtain a usable storage address, go to the **ApsaraVideo VOD console**, navigate to **Configuration Management > Media Asset Management > Storage Management**, and activate the **VOD system bucket**.'."\n"
."\n"
.'- You cannot add transcode templates to a **no transcoding** template group.'."\n"
."\n"
.'- You must specify either **`TranscodeTemplateGroupId`** or **`Name`**.'."\n"
."\n"
.'- You can create a maximum of 20 transcode template groups.'."\n"
."\n"
.'- You can add a maximum of 20 transcode templates to a single transcode template group.'."\n"
."\n"
.'- To generate adaptive streaming URLs, you can add a maximum of 10 video packaging templates to a transcode template group. If you add more than 10 templates, the service generates URLs for individual streams but not an adaptive streaming URL.'."\n"
."\n"
.'### QPS limit'."\n"
."\n"
.'The QPS limit for this operation is 5 per user. Calls that exceed this limit are rate-limited. For more information, see [QPS limit](~~342790~~).',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return. '."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| InvalidStorage.NotFound | The storage info dose not exist. | 404 | The error message returned because the storage path is not specified. |'."\n"
.'| InvalidTranscodeTemplateGroup.NotFound | The transcode template group does not exist. | 404 | The error message returned because the specified transcoding template group does not exist. |'."\n"
.'| Forbidden.LockedTemplateGroup | The transcode template group has been locked. | 403 | The error message returned because the specified template group is locked and cannot be managed. To manage the template group, contact the ApsaraVideo VOD technical support. |'."\n"
.'| Forbidden.SpecialTemplateGroup | The transcode template group is using for special purpose. | 403 | The error message returned because the specified transcoding template group is used for a special purpose and you cannot add transcoding templates to the group. For example, the No Transcoding and Storage Only template groups are used for special purposes. |'."\n"
.'| TrasncodeTemplateGroupExceededMax | The transcode template group size exceeded maximum. | 400 | The error message returned because the number of transcoding template groups exceeds the upper limit. You can create a maximum of 20 transcoding template groups. |'."\n"
.'| TranscodeTemplateExceededMax | The template transcode template config size exceeded maximum. | 400 | The error message returned because the number of transcoding templates that are added to the specified transcoding template group exceeds the upper limit. You can add a maximum of 20 transcoding templates to a transcoding template group. |'."\n"
.'| WatermarkExceededMax | The watermark size exceeded maximum. | 400 | The error message returned because the number of watermark IDs that are associated with a transcoding template in the transcoding template group exceeds the upper limit. You can associate a maximum of four watermark IDs with a transcoding template. |',
'changeSet' => [
['createdAt' => '2025-07-10T08:32:24.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:35:51.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:34:28.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddTranscodeTemplateGroup'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:AddTranscodeTemplateGroup',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TranscodeTemplateGroupId\\": \\"34e908aa4024af7821c31f93a2a****\\",\\n \\"RequestId\\": \\"25818875-5F78-4AF6-D7393642CA58****\\"\\n}","type":"json"}]',
],
'AddVodDomain' => [
'summary' => 'Adds a domain name to accelerate in ApsaraVideo VOD.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39790',
'abilityTreeNodes' => ['FEATUREvodHI57GB'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The domain name that you want to accelerate. Wildcard domain names that start with periods (.) are supported. Example: .example.com.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'Sources',
'in' => 'query',
'schema' => ['description' => 'The information about the addresses of origin servers. For more information, see the **Sources** table in this topic.', 'type' => 'string', 'required' => true, 'example' => '[{"content":"1.1.1.1","type":"ipaddr","priority":"20","port":80}]', 'title' => ''],
],
[
'name' => 'CheckUrl',
'in' => 'query',
'schema' => ['description' => 'The URL that is used for health checks.', 'type' => 'string', 'required' => false, 'example' => 'www.example.com/test.html', 'title' => ''],
],
[
'name' => 'Scope',
'in' => 'query',
'schema' => ['description' => 'This parameter is applicable to users of level 3 or higher in the Chinese mainland and users outside the Chinese mainland. Default value: domestic. Valid values:'."\n"
."\n"
.'- **domestic**: Chinese mainland'."\n"
."\n"
.'- **overseas**: outside the Chinese mainland'."\n"
."\n"
.'- **global**: regions in and outside the Chinese mainland', 'type' => 'string', 'required' => false, 'example' => 'domestic', 'title' => ''],
],
[
'name' => 'TopLevelDomain',
'in' => 'query',
'schema' => ['description' => 'The top-level domain.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '15C66C7B-671A-4297-****-2C4477247A74', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidDomainName.Malformed', 'errorMessage' => 'Specified DomainName is malformed.', 'description' => ''],
['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter cdnType that is mandatory for processing this request is not supplied.', 'description' => ''],
['errorCode' => 'InvalidCdnType.Malformed', 'errorMessage' => 'Specified CdnType is malformed.', 'description' => ''],
['errorCode' => 'InvalidSources.Malformed', 'errorMessage' => 'Specified Sources is malformed.', 'description' => 'The origin information is in an invalid format.'],
['errorCode' => 'InvalidSourceStr.Malformed', 'errorMessage' => 'Specified SourceStr is malformed.', 'description' => 'The format of the incoming source information is incorrect.'],
['errorCode' => 'InvalidSourceType.Malformed', 'errorMessage' => 'Specified CdnType is malformed.', 'description' => ''],
['errorCode' => 'InvalidSource.Priority.Malformed', 'errorMessage' => 'The specified Source Priority is invalid.', 'description' => ''],
['errorCode' => 'InvalidTypeAndContent.MissMatch', 'errorMessage' => 'The specified source type does not match the specified source content.', 'description' => ''],
['errorCode' => 'InvalidScope.Malformed', 'errorMessage' => 'Specified Scope is malformed.', 'description' => ''],
['errorCode' => 'DomainOverLimit', 'errorMessage' => 'The Number of Domain is over the limit', 'description' => ''],
['errorCode' => 'DomainAlreadyExist', 'errorMessage' => 'This domain name is exist already', 'description' => ''],
['errorCode' => 'DomainNotRegistration', 'errorMessage' => 'The Domain name is not registered', 'description' => ''],
['errorCode' => 'InvaildParameter', 'errorMessage' => 'Source name can not equal to domain name', 'description' => ''],
['errorCode' => 'IllegalSources', 'errorMessage' => 'The specified origin site information is invalid.', 'description' => 'The origin information of the accelerated domain name is incorrect.'],
['errorCode' => 'SourceIp.Exceed', 'errorMessage' => 'The Certificate you provided is malformed!', 'description' => ''],
['errorCode' => 'InvalidCertificate', 'errorMessage' => 'The Certificate you provided is malformed!', 'description' => ''],
['errorCode' => 'InvalidCertificate.TooLong', 'errorMessage' => 'The Certificate you provided is over the max length!', 'description' => ''],
['errorCode' => 'InnerAddDomainDenied', 'errorMessage' => 'Your account haven\'t bind aoneId, can not add domain.', 'description' => ''],
['errorCode' => 'CheckSourceHealthFailed', 'errorMessage' => 'sources ip or source domain check health failed,please input right source.', 'description' => ''],
['errorCode' => 'ExtensiveAndAllBothExist', 'errorMessage' => 'Extensive domain and the domain begins with \'all.\' can not exist at the same time.', 'description' => ''],
['errorCode' => 'CdnTypeNotSupportExtensiveDomain', 'errorMessage' => 'Extensive domain not supported for this cdn type.', 'description' => ''],
['errorCode' => 'ExtensiveAndSpecificDomainConflict', 'errorMessage' => 'Extensive domain and corresponding specific domain are mutually exclusive.', 'description' => 'Wildcard domain names and specific domain names of the same level as the wildcard domain names are mutually exclusive. Enter another domain name.'],
['errorCode' => 'DomainReserved', 'errorMessage' => 'The root domain of your domain is reserved by another account. Submit a ticket to contact customer support.', 'description' => 'The root domain name is already in use. Submit a ticket.'],
['errorCode' => 'InvalidDomainNameLevel', 'errorMessage' => 'Domain name suffixed with alicdn.com only support third level.', 'description' => ''],
['errorCode' => 'InvalidTopLevelDomain.Malformed', 'errorMessage' => 'Specified TopLevelDomain is malformed.', 'description' => ''],
['errorCode' => 'TopLevelDomain.NotFound', 'errorMessage' => 'The specified TopLevelDomain does not exist.', 'description' => ''],
['errorCode' => 'EntityNotExists.ResourceGroup', 'errorMessage' => 'The resource group does not exist.', 'description' => ''],
['errorCode' => 'InvalidStatus.ResourceGroup', 'errorMessage' => 'It\'s now allowed to do this operation because of the current status of resource-group.', 'description' => ''],
['errorCode' => 'NotInternationRealIdentity', 'errorMessage' => 'You need to do real name authentication when you use Chinese mainland resources.', 'description' => 'You have not passed real-name verification. According to the regulations issued by MIIT, you must pass real-name verification if you want to purchase IT services in the Chinese mainland. '],
['errorCode' => 'TopLevelDomain.Mismatch', 'errorMessage' => 'The specified TopLevelDomain does not match webSiteType.', 'description' => ''],
['errorCode' => 'DomainOwnerVerifyFail', 'errorMessage' => 'Owner verification of the root domain failed.', 'description' => 'Failed to verify domain ownership.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'AddVodDomain',
'description' => '- This operation is available only in the **China (Shanghai)** region.'."\n"
."\n"
.'- Before you add a domain name to accelerate, you must activate ApsaraVideo VOD and apply for an Internet content provider (ICP) filing for the domain name. For more information about how to activate ApsaraVideo VOD, see [Activate ApsaraVideo VOD](~~51512~~).'."\n"
."\n"
.'- If the content on the origin server is not stored on Alibaba Cloud, the content must be reviewed by Alibaba Cloud. The review will be complete by the end of the next business day after you submit an application.'."\n"
."\n"
.'- You can add only one domain name to accelerate in a request. You can add a maximum of 20 accelerated domain names within an Alibaba Cloud account.',
'requestParamsDescription' => '## Sources'."\n"
."\n"
.'| Parameter | Type | Required | Description |'."\n"
.'| --------- | ------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n"
.'| type | String | Yes | The type of the origin server. Valid values: **ipaddr**: an IP address. **domain**: a domain name. **oss**: the domain of an Object Storage Service (OSS) bucket. |'."\n"
.'| content | String | Yes | The address of the origin server. You can specify an IP address or a domain name. |'."\n"
.'| port | Integer | No | The port number. Valid values: **443** and **80**. Default value: **80**. If you specify **443**, requests are redirected to the origin server over HTTPS. You can also specify a custom port. |'."\n"
.'| priority | String | No | The priority of the origin server if multiple origin servers are specified. Valid values: **20** and **30**. Default value: **20**. **20** indicates that the origin server is the primary origin server. **30** indicates that the origin server is a secondary origin server. |',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the error codes that this operation can return.'."\n"
."\n"
.'|Error code|Error message|HTTP status code|Description|'."\n"
.'|---|---|---|---|'."\n"
.'|InvalidDomainName.Malformed|Specified DomainName is malformed.|400|The error message returned because the value of the DomainName parameter is invalid.|'."\n"
.'|InvalidCdnType.Malformed|Specified CdnType is malformed.|400|The error message returned because the value of the CdnType parameter is invalid.|'."\n"
.'|InvalidSourceType.Malformed|Specified SourceType is malformed.|400|The error message returned because the value of the SourceType parameter is invalid.|'."\n"
.'|InvalidSources.Malformed|Specified Sources is malformed.|400|The error message returned because the origin address does not match the origin type.|'."\n"
.'|InvalidScope.Malformed|Specified Scope is malformed.|400|The error message returned because the value of the Scope parameter is invalid.|'."\n"
.'|InvaildParameter|The Certificate you provided is malformed!|400|The error message returned because the total length of the HTTPS certificate and private key exceeds the upper limit.|'."\n"
.'|BusinessExist|Business exist do not repeated submission|400|The error message returned because the domain name is being added. You cannot add duplicate domain names.|'."\n"
.'|DomainAlreadyExist|This domain name is exist already|400|The error message returned because the domain name is already added.|'."\n"
.'|DomainOverLimit|The Number of Domain is over the limit|403|The error message returned because the number of accelerated domain names exceeds the upper limit.|'."\n"
.'|DomainNotRegistration|The Domain name is not registered|404|The error message returned because the domain name does not have an ICP filing.|'."\n"
.'|IllegalOperation|Illegal domain operate is not permitted.|403|The error message returned because you are not authorized to perform this operation.|'."\n"
.'|ServiceBusy|The specified Domain is configuring, please retry later.|403|The error message returned because the domain name is being configured. Try again later.|'."\n"
.'|InvalidDomain.NotFound|The domain provided does not belong to you.|404|The error message returned because the specified domain name does not exist or does not belong to the current account.|'."\n"
.'|InnerAddDomainDenied|Your account haven\'t bind aoneId, can not add domain.|400|The error message returned because an internal account is not bound to an Aone ID. You cannot add a domain name by using the internal account.|'."\n"
.'|ExtensiveAndAllBothExist|Extensive domain and the domain begins with \'all.\' can not exist at the same time.|400|The error message returned because a wildcard domain name and a domain name that starts with all. exist. They cannot exist at the same time.|'."\n"
.'|CdnTypeNotSupportExtensiveDomain|Extensive domain not supported for this cdn type.|400|The error message returned because wildcard domain names are not supported for the specified business type.|'."\n"
.'|ExtensiveAndSpecificDomainConflict|Extensive domain and corresponding specific domain are mutually exclusive.|400|The error message returned because the specified domain name is an exact match of an existing wildcard domain name at the same level.|'."\n"
.'|InvalidParameter|Add live region parameters have error.|400|The error message returned because the system failed to specify the region for live streaming.|'."\n"
.'|InvalidRegion.Malformed|Specified Region is malformed.|400|The error message returned because the value of the region parameter is invalid.|'."\n"
.'|InvalidResourceGroupId.Malformed|Specified ResourceGroupId is malformed.|400|The error message returned because the value of the ResourceGroupId parameter is invalid.|'."\n"
.'|EntityNotExists.ResourceGroup|The resource group does not exist.|400|The error message returned because the specified resource group does not exist.|'."\n"
.'|InvalidStatus.ResourceGroup|It\'s now allowed to do this operation because of the current status of resource-group.|400|The error message returned because the resource group is in an invalid state.|'."\n"
.'|InvalidPriorities.Malformed|The length of priorities is not the same with source.|400|The error message returned because the number of priorities does not match the number of origin servers.|'."\n"
.'|NotInternationRealIdentity|You need to do real name authentication when you use Chinese mainland resources.|400|The error message returned because you have not completed real-name verification that is required to use resources in the Chinese mainland.|',
'changeSet' => [
['createdAt' => '2025-07-16T06:25:24.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:35:39.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:34:46.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddVodDomain'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:AddVodDomain',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"15C66C7B-671A-4297-****-2C4477247A74\\"\\n}","type":"json"}]',
],
'AddVodStorageForApp' => [
'summary' => 'Binds a storage bucket to one or more applications in ApsaraVideo VOD.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '200259',
'abilityTreeNodes' => ['FEATUREvod3O95DN'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The IDs of applications. You can obtain the application ID from the `AppId` parameter in the response to the [CreateAppInfo](~~CreateAppInfo~~) or [ListAppInfo](~~ListAppInfo~~) operation.'."\n", 'type' => 'string', 'required' => true, 'example' => 'app-****', 'title' => ''],
],
[
'name' => 'StorageLocation',
'in' => 'query',
'schema' => [
'description' => 'The address of an Object Storage Service (OSS) bucket. This parameter does not take effect. You can call this operation to add only VOD buckets.'."\n",
'type' => 'string',
'required' => false,
'enumValueTitles' => [],
'example' => 'out-****.oss-cn-shanghai.aliyuncs.com',
'title' => '',
],
],
[
'name' => 'StorageType',
'in' => 'query',
'schema' => [
'description' => 'The storage class. Default value: **vod_oss_bucket**.'."\n",
'type' => 'string',
'required' => false,
'enumValueTitles' => [],
'example' => 'vod_oss_bucket',
'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4A*****F6-D7393642CA58'],
'StorageLocation' => ['description' => 'The address of the VOD bucket.'."\n", 'type' => 'string', 'example' => 'out-****.oss-cn-shanghai.aliyuncs.com', 'title' => ''],
],
],
],
[],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'AddVodStorageForApp',
'description' => 'You can call this operation to add a buckets to an ApsaraVideo VOD applications.'."\n"
."\n"
.'> You can add only one ApsaraVideo VOD bucket for each application. If you specify an AppId that does not exist or the ID of an application for which an VOD bucket is enabled, an error is returned.'."\n",
'changeSet' => [
['createdAt' => '2025-07-10T08:32:42.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:35:43.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddVodStorageForApp'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:AddVodStorageForApp',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4A*****F6-D7393642CA58\\",\\n \\"StorageLocation\\": \\"out-****.oss-cn-shanghai.aliyuncs.com\\"\\n}","type":"json"}]',
],
'AddVodTemplate' => [
'summary' => 'Adds a snapshot template or frame animation template.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39791',
'abilityTreeNodes' => ['FEATUREvodL077M7'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'Name',
'in' => 'query',
'schema' => ['description' => 'The name of the template.'."\n"
."\n"
.'* The name cannot exceed 128 bytes.'."\n"
.'* The value must be encoded in UTF-8.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'test', 'title' => ''],
],
[
'name' => 'TemplateType',
'in' => 'query',
'schema' => ['description' => 'The type of the template. Set the value to **Snapshot**.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'Snapshot', 'title' => ''],
],
[
'name' => 'TemplateConfig',
'in' => 'query',
'schema' => ['description' => 'The configurations of the snapshot template. The value must be a JSON string. For more information about the data structure, see [SnapshotTemplateConfig](~~98618~~) and [DynamicImageTemplateConfig](~~98618~~).'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '{"SnapshotConfig":{"Count":10,"SpecifiedOffsetTime":0,"Interval":1,"FrameType":"normal"},"SnapshotType":"NormalSnapshot"}', 'title' => ''],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the application. Default value: **app-1000000**. For more information, see [Multi-application service](~~113600~~).'."\n", 'type' => 'string', 'required' => false, 'example' => 'app-****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'VodTemplateId' => ['description' => 'The ID of the snapshot template. You can call the [SubmitSnapshotJob](~~72213~~) operation to submit snapshot jobs.'."\n", 'type' => 'string', 'example' => 'f5b228fe6930e*****0d6bf55bd87789', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4A*****F6-D7393642CA58', 'title' => ''],
],
'description' => '',
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"VodTemplateId\\": \\"f5b228fe6930e*****0d6bf55bd87789\\",\\n \\"RequestId\\": \\"25818875-5F78-4A*****F6-D7393642CA58\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 25818875-5F78-4A*****F6-D7393642CA58\\r\\n\\tf5b228fe6930e*****0d6bf55bd87789\\r\\n","errorExample":""}]',
'title' => 'AddVodTemplate',
'description' => '* After you add a snapshot template, you can call the [SubmitSnapshotJob](~~72213~~) operation and specify the template ID to submit a snapshot job.'."\n"
."\n"
.'* You can use the HTTP (HTTPS compatible) callback or MNS callback method to receive the [SnapshotComplete](~~57337~~) callback. For more information, see [Overview](~~55627~~).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-10T08:31:41.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:35:49.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:34:48.000Z', 'description' => 'OpenAPI offline'],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:AddVodTemplate',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddVodTemplate'],
],
],
],
'AddWatermark' => [
'summary' => 'Creates an image or text watermark template. ApsaraVideo VOD allows you to create watermark templates to reuse your parameter configurations such as watermark position, size, font, and color. Each watermark template is assigned a unique ID. This simplifies the processing of watermark tasks.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39792',
'abilityTreeNodes' => ['FEATUREvodL077M7'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'Type',
'in' => 'query',
'schema' => ['description' => 'The type of the watermark template. Valid values:'."\n"
."\n"
.'* **Image** (default): image watermark template'."\n"
.'* **Text**: text watermark template'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'Image', 'title' => ''],
],
[
'name' => 'Name',
'in' => 'query',
'schema' => ['description' => 'The name of the watermark template.'."\n"
."\n"
.'* Only letters and digits are supported.'."\n"
.'* The name cannot exceed 128 bytes.'."\n"
.'* The value must be encoded in UTF-8.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'Image watermark template', 'title' => ''],
],
[
'name' => 'WatermarkConfig',
'in' => 'query',
'schema' => ['description' => 'The configuration information of the watermark such as the display position and special effects. The value must be a JSON string. The configuration parameters for image and text watermarks are different. For more information about the parameter structure, see [WatermarkConfig](~~98618#section-h01-44s-2lr~~).'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '{'."\n"
.' "Width": "55",'."\n"
.' "Height": "55",'."\n"
.' "Dx": "9",'."\n"
.' "Dy": "9",'."\n"
.' "ReferPos": "BottomLeft"'."\n"
.'}', 'title' => ''],
],
[
'name' => 'FileUrl',
'in' => 'query',
'schema' => ['description' => 'The URL of the watermark file. The URL must be an Object Storage Service (OSS) URL and cannot contain the information used for URL signing.'."\n"
."\n"
.'> * This parameter is required if you set `Type` to `Image`.'."\n"
.'> * You can obtain the URL from the `FileURL` parameter in the response to the [CreateUploadAttachedMedia](~~CreateUploadAttachedMedia~~) operation that you call to upload the watermark image to ApsaraVideo VOD.', 'type' => 'string', 'required' => false, 'example' => 'http://outin-326268*****63e1403e7.oss-cn-shanghai.aliyuncs.com/image/cover/C99345*****E7FDEC-6-2.png', 'title' => ''],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the application. Default value: **app-1000000**. If you have activated the multi-application service, specify the ID of the application to add the watermark template in the specified application. For more information, see [Overview](~~113600~~).'."\n", 'type' => 'string', 'required' => false, 'example' => 'app-****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4A*****F6-D7393642CA58', 'title' => ''],
'WatermarkInfo' => [
'description' => 'The information about the watermark template.'."\n",
'type' => 'object',
'properties' => [
'CreationTime' => ['description' => 'The time when the watermark template was created. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2018-11-07T09:05:52Z', 'title' => ''],
'Type' => ['description' => 'The type of the watermark template.'."\n"
."\n"
.'* **Image**: image watermark template'."\n"
.'* **Text**: text watermark template'."\n", 'type' => 'string', 'example' => 'Image', 'title' => ''],
'IsDefault' => ['description' => 'Indicates whether the watermark template is the default one. Valid values:'."\n"
."\n"
.'* **Default**'."\n"
.'* **NotDefault**'."\n", 'type' => 'string', 'example' => 'NotDefault', 'title' => ''],
'FileUrl' => ['description' => 'The URL of the watermark file. The URL is an Object Storage Service (OSS) URL or an Alibaba Cloud CDN URL.'."\n"
."\n"
.'> This parameter is returned only for image watermark templates.'."\n", 'type' => 'string', 'example' => 'https://outin-3262*****9f4b3e7.oss-cn-shanghai.aliyuncs.com/image/cover/E6C3448CC8B715E6F8A72EC6B-6-2.png?Expires=1541600583&OSSAccessKeyId=****&Signature=gmf1eYMoDVg%2BHQCb4UGozBW****', 'title' => ''],
'WatermarkConfig' => ['description' => 'The configuration information of the watermark such as the display position and special effects. The value is a JSON string. The configuration parameters for image and text watermarks are different. For more information about the parameter structure, see [WatermarkConfig](~~98618#section-h01-44s-2lr~~).'."\n", 'type' => 'string', 'example' => '{'."\n"
.' "Width": "55",'."\n"
.' "Height": "55",'."\n"
.' "Dx": "9",'."\n"
.' "Dy": "9",'."\n"
.' "ReferPos": "BottomLeft"'."\n"
.'}', 'title' => ''],
'Name' => ['description' => 'The name of the watermark template.'."\n", 'type' => 'string', 'example' => 'Image watermark template', 'title' => ''],
'WatermarkId' => ['description' => 'The ID of the watermark template.'."\n", 'type' => 'string', 'example' => '9bcc8bfadb84*****109a2671d0df97', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4A*****F6-D7393642CA58\\",\\n \\"WatermarkInfo\\": {\\n \\"CreationTime\\": \\"2018-11-07T09:05:52Z\\",\\n \\"Type\\": \\"Image\\",\\n \\"IsDefault\\": \\"NotDefault\\",\\n \\"FileUrl\\": \\"https://outin-3262*****9f4b3e7.oss-cn-shanghai.aliyuncs.com/image/cover/E6C3448CC8B715E6F8A72EC6B-6-2.png?Expires=1541600583&OSSAccessKeyId=****&Signature=gmf1eYMoDVg%2BHQCb4UGozBW****\\",\\n \\"WatermarkConfig\\": \\"{\\\\n \\\\\\"Width\\\\\\": \\\\\\"55\\\\\\",\\\\n \\\\\\"Height\\\\\\": \\\\\\"55\\\\\\",\\\\n \\\\\\"Dx\\\\\\": \\\\\\"9\\\\\\",\\\\n \\\\\\"Dy\\\\\\": \\\\\\"9\\\\\\",\\\\n \\\\\\"ReferPos\\\\\\": \\\\\\"BottomLeft\\\\\\"\\\\n}\\",\\n \\"Name\\": \\"Image watermark template\\",\\n \\"WatermarkId\\": \\"9bcc8bfadb84*****109a2671d0df97\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]',
'title' => 'AddWatermark',
'description' => '* You can call this operation to create an `Image` watermark template or a `Text` watermark template. You can use static images in the PNG format or dynamic images in the GIF, APNG, and MOV formats as image watermarks.'."\n"
.'* After you call this operation to create a watermark template, you must call the [AddTranscodeTemplateGroup](~~AddTranscodeTemplateGroup~~) or [UpdateTranscodeTemplateGroup](~~UpdateTranscodeTemplateGroup~~) operation to associate the watermark template with a transcoding template group. This way, you can add watermarks to videos during transcoding.'."\n"
.'* For more information, see [Video watermarks](~~99369~~).'."\n",
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return.'."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| NoSuchResource | The specified resource %s does not exist. | 404 | The error message returned because the user-related resource does not exist. %s indicates the specific resource information. |',
'changeSet' => [
['createdAt' => '2025-07-10T08:32:20.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:35:50.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:34:21.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddWatermark'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:AddWatermark',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'AttachAppPolicyToIdentity' => [
'summary' => 'Grants a RAM user or RAM role permissions to access ApsaraVideo VOD applications.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'none',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39798',
'abilityTreeNodes' => ['FEATUREvodHJ3KAX'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'IdentityType',
'in' => 'query',
'schema' => ['description' => 'The identity type. Valid values:'."\n"
."\n"
.'- **RamUser**'."\n"
.'- **RamRole**', 'type' => 'string', 'required' => true, 'docRequired' => true, 'title' => '', 'example' => 'RamRole'],
],
[
'name' => 'IdentityName',
'in' => 'query',
'schema' => ['description' => 'The ID of the RAM user or the name of the RAM role.'."\n"
."\n"
.'- Specifies the RAM user ID when the IdentityType parameter is set to RamUser.'."\n"
.'- Specifies the name of the RAM role when the IdentityType parameter is set to RamRole.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'title' => '', 'example' => '****'],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. Default value: **app-1000000**. For more information, see [Multi-application](t1959305.xdita#).'."\n"
."\n"
.'> This parameter is optional only if you set PolicyNames to VODAppAdministratorAccess.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'title' => '', 'example' => 'app-****'],
],
[
'name' => 'PolicyNames',
'in' => 'query',
'schema' => ['description' => 'Only system policies are supported. Separate multiple policy names with commas (,). Valid values:'."\n"
."\n"
.'- **VODAppFullAccess**: permissions to manage all resources in an application.'."\n"
.'- **VODAppReadOnlyAccess**: permissions to read all resources in an application.'."\n"
.'- **VODAppAdministratorAccess**: application administrator permissions.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'title' => '', 'example' => 'VODAppFullAccess'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'title' => '', 'example' => '25818875-5F78-4A13-****-D7393642CA58'],
'NonExistPolicyNames' => [
'description' => 'The names of the policies that were not found.',
'type' => 'array',
'items' => ['description' => 'The names of the policies that were not found.', 'type' => 'string', 'title' => '', 'example' => 'test****1'],
'title' => '',
],
'FailedPolicyNames' => [
'description' => 'The names of the policies that failed to be granted to the RAM user or RAM role.',
'type' => 'array',
'items' => ['description' => 'The names of the policies that failed to be granted to the RAM user or RAM role.', 'type' => 'string', 'title' => '', 'example' => 'test****2'],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4A13-****-D7393642CA58\\",\\n \\"NonExistPolicyNames\\": [\\n \\"test****1\\"\\n ],\\n \\"FailedPolicyNames\\": [\\n \\"test****2\\"\\n ]\\n}","type":"json"}]',
'title' => 'AttachAppPolicyToIdentity',
'description' => '- Each RAM user or RAM role can be granted permissions to access a maximum of 10 applications.'."\n"
.'- To call this operation, you must have application administrator permissions. We recommend that you use your Alibaba Cloud account for the first call.'."\n"
.'- The AppId parameter is optional only if you set PolicyNames to VODAppAdministratorAccess.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return.'."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| OperationDenied.NotOpenAppService | The app service is not open. | 403 | The error message returned because the multi-application service has not been activated. |'."\n"
.'| Forbidden.OperateApp | User not authorized to operate app. | 403 | The error message returned because you are not authorized to manage the application. |',
'changeSet' => [
['createdAt' => '2025-07-10T08:32:25.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:36:11.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:34:02.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AttachAppPolicyToIdentity'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'vod:AttachAppPolicyToIdentity',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'BatchGetMediaInfos' => [
'summary' => 'Retrieves basic information and source file information for multiple media assets.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '257507',
'abilityTreeNodes' => ['FEATUREvodYRQNEN'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'MediaIds',
'in' => 'query',
'schema' => ['description' => 'The ID of the media asset, which is the audio or video ID (VideoId). Separate multiple IDs with commas (,). You can specify up to 20 IDs. You can obtain the ID in one of the following ways:'."\n"
."\n"
.'- For audio or video files uploaded in the console, log on to the VOD console and choose Media Assets > Audio/Video to view the audio or video ID.'."\n"
."\n"
.'- The value of the VideoId parameter that is returned after you call the operation to obtain an upload URL and credential.'."\n"
."\n"
.'- The value of the VideoId parameter that is returned after you call the SearchMedia operation.', 'type' => 'string', 'required' => true, 'docRequired' => false, 'example' => '61ccbdb06fa83012be4d8083f6****,7d2fbc380b0e08e55f****', 'title' => ''],
],
[
'name' => 'ReferenceIds',
'in' => 'query',
'schema' => ['description' => 'A list of custom IDs. Separate multiple IDs with commas (,). You can specify up to 20 IDs.', 'type' => 'string', 'example' => '123-123,1234-1234', 'title' => '', 'required' => false],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '9E290613-04F4-47F4-795D30732077****', 'title' => ''],
'NonExistMediaIds' => [
'description' => 'A list of media asset IDs that do not exist.',
'type' => 'array',
'items' => ['description' => 'A list of media asset IDs that do not exist.', 'type' => 'string', 'example' => '["bbc65bba53f6ed90de118a7849****"]', 'title' => ''],
'title' => '',
'example' => '',
],
'NonExistReferenceIds' => [
'type' => 'array',
'items' => ['description' => 'A list of custom IDs that do not exist.', 'type' => 'string', 'example' => '123-123', 'title' => ''],
'description' => 'A list of custom IDs that do not exist.',
'title' => '',
'example' => '',
],
'ForbiddenMediaIds' => [
'description' => 'A list of media asset IDs for which the operation is forbidden. This is usually because you do not have permissions on multiple applications. For more information, see [Multi-application service](~~113600~~).',
'type' => 'array',
'items' => ['description' => 'A list of media asset IDs for which the operation is forbidden. This is usually because you do not have permissions on multiple applications. For more information, see [Multi-application service](~~113600~~).', 'type' => 'string', 'example' => '["bbc65bba53f6ed90de118a7849****"]', 'title' => ''],
'title' => '',
'example' => '',
],
'MediaInfos' => [
'description' => 'A list of media assets.',
'type' => 'array',
'items' => [
'description' => 'A list of media assets.',
'type' => 'object',
'properties' => [
'MediaId' => ['description' => 'The ID of the media asset.', 'type' => 'string', 'example' => '10a5fa364a5b71ef89246733a78e****', 'title' => ''],
'MediaInfo' => [
'description' => 'The basic information about the media asset.',
'type' => 'object',
'properties' => [
'StorageLocation' => ['description' => 'The storage address of the audio or video file.', 'type' => 'string', 'example' => 'outin-***.oss-cn-shanghai.aliyuncs.com', 'title' => ''],
'CreationTime' => ['description' => 'The time when the audio or video file was created. The time is in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2017-11-14T09:15:50Z', 'title' => ''],
'Status' => ['description' => 'The status of the video. Valid values:'."\n"
."\n"
.'- **Uploading**: The video is being uploaded.'."\n"
."\n"
.'- **UploadFail**: The video failed to be uploaded.'."\n"
."\n"
.'- **UploadSucc**: The video is uploaded.'."\n"
."\n"
.'- **Transcoding**: The video is being transcoded.'."\n"
."\n"
.'- **TranscodeFail**: The video failed to be transcoded.'."\n"
."\n"
.'- **Blocked**: The video is blocked.'."\n"
."\n"
.'- **Normal**: The video is in a normal state.', 'type' => 'string', 'example' => 'Normal', 'title' => ''],
'CateId' => ['description' => 'The category ID.', 'type' => 'integer', 'format' => 'int64', 'example' => '781111****', 'title' => ''],
'MediaId' => ['description' => 'The ID of the media asset.', 'type' => 'string', 'example' => '7753d144efd74d6c45fe0570****', 'title' => ''],
'DownloadSwitch' => ['description' => 'The status of the offline download switch. After you enable offline download, users can use ApsaraVideo Player to cache videos to their local devices for offline viewing. For more information, see [Offline download](~~86107~~). Valid values:'."\n"
."\n"
.'- **on**: Offline download is enabled.'."\n"
."\n"
.'- **off**: Offline download is disabled.', 'type' => 'string', 'example' => 'on', 'title' => ''],
'Tags' => ['description' => 'The tags of the audio or video file. Separate multiple tags with commas (,).', 'type' => 'string', 'example' => 'tag1, tag2', 'title' => ''],
'ModificationTime' => ['description' => 'The time when the audio or video file was last updated. The time is in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2017-06-26T06:38:48Z', 'title' => ''],
'CateName' => ['description' => 'The category name.', 'type' => 'string', 'example' => 'cate1', 'title' => ''],
'Description' => ['description' => 'The description of the audio or video file.', 'type' => 'string', 'example' => 'Alibaba Cloud VOD video description', 'title' => ''],
'AppId' => ['description' => 'The application ID.', 'type' => 'string', 'example' => 'app-****', 'title' => ''],
'CoverURL' => ['description' => 'The URL of the thumbnail.', 'type' => 'string', 'example' => 'https://example.aliyundoc.com/****.jpg', 'title' => ''],
'TemplateGroupId' => ['description' => 'The ID of the transcoding template group.', 'type' => 'string', 'example' => 'b4039216985f4312a5382a4ed****', 'title' => ''],
'Title' => ['description' => 'The title of the audio or video file.', 'type' => 'string', 'example' => 'Alibaba Cloud VOD Video Title', 'title' => ''],
'Snapshots' => [
'description' => 'An array of video snapshot URLs.',
'type' => 'array',
'items' => ['description' => 'An array of video snapshot URLs.'."\n"
."\n"
.'> This operation returns only the data of video thumbnails. To query the data of normal snapshots, sprites, original sprite images, and WebVTT snapshots that are captured using the [snapshot](~~99368~~) feature, call the [ListSnapshots](~~ListSnapshots~~) operation.', 'type' => 'string', 'example' => '["http://example.aliyundoc.com/snapshot/****.jpg?auth_key=1498476426-0-0-f00b9455c49a423ce69cf4e27333****","http://example.aliyundoc.com/snapshot/****.jpg?auth_key=1498476426-0-0-f00b9455c49a423ce69cf4e27243****",...]', 'title' => ''],
'title' => '',
'example' => '',
],
'StorageClass' => ['description' => 'The storage class of the media asset. Valid values:'."\n"
."\n"
.'- **Standard**: Standard.'."\n"
."\n"
.'- **IA**: Infrequent Access (IA).'."\n"
."\n"
.'- **Archive**: Archive.'."\n"
."\n"
.'- **ColdArchive**: Cold Archive.'."\n"
."\n"
.'- **SourceIA**: Source IA.'."\n"
."\n"
.'- **SourceArchive**: Source Archive.'."\n"
."\n"
.'- **SourceColdArchive**: Source Cold Archive.'."\n"
."\n"
.'- **Changing**: The storage class of the media asset is being changed.'."\n"
."\n"
.'- **SourceChanging**: The storage class of the source file is being changed.', 'type' => 'string', 'example' => 'Standard', 'title' => ''],
'RestoreStatus' => ['description' => 'The restoration status of the media asset. Valid values:'."\n"
."\n"
.'- **Processing**: The media asset is being restored.'."\n"
."\n"
.'- **Success**: The media asset is restored.'."\n"
."\n"
.'- **Failed**: The media asset failed to be restored.', 'type' => 'string', 'example' => 'Success', 'title' => ''],
'RestoreExpiration' => ['description' => 'The expiration time of the restored media asset.', 'type' => 'string', 'example' => '2023-03-30T10:14:14Z', 'title' => ''],
'UserData' => ['description' => 'The custom parameters.', 'type' => 'string', 'example' => '{"Extend":"xxx","MessageCallback":"xxx"}', 'title' => ''],
'ReferenceId' => ['description' => 'The custom ID. The ID can contain lowercase letters, uppercase letters, digits, hyphens (-), and underscores (\\_). The ID must be 6 to 64 characters in length and unique for a user.', 'type' => 'string', 'example' => '123-123', 'title' => ''],
],
'title' => '',
'example' => '',
],
'MezzanineInfo' => [
'description' => 'The information about the source file.',
'type' => 'object',
'properties' => [
'CreationTime' => ['description' => 'The time when the file was created. The time is in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2017-11-14T09:15:50Z', 'title' => ''],
'Status' => ['description' => 'The status of the file. Valid values:'."\n"
."\n"
.'- **Uploading**: The file is being uploaded. This is the initial state.'."\n"
."\n"
.'- **Normal**: The file is uploaded.'."\n"
."\n"
.'- **UploadFail**: The file failed to be uploaded.'."\n"
."\n"
.'- **Deleted**: The file is deleted.', 'type' => 'string', 'example' => 'Normal', 'title' => ''],
'FileURL' => ['description' => 'The URL of the source file.', 'type' => 'string', 'example' => 'http://example-bucket-****.oss-cn-shanghai.aliyuncs.com/27ffc438-164h67f57ef-0005-6884-51a-1****.mp4', 'title' => ''],
'MediaId' => ['description' => 'The ID of the media asset.', 'type' => 'string', 'example' => '1f1a6fc03ca04814031b8a6559e****', 'title' => ''],
'Height' => ['description' => 'The height of the file in pixels (px).', 'type' => 'integer', 'format' => 'int64', 'example' => '540', 'title' => ''],
'Bitrate' => ['description' => 'The bitrate of the file in Kbps.', 'type' => 'string', 'example' => '771.2280', 'title' => ''],
'FileName' => ['description' => 'The name of the file.', 'type' => 'string', 'example' => '27ffc438-164h67f57ef-0005-6884-51a-1****.mp4'."\n", 'title' => ''],
'Width' => ['description' => 'The width of the file in pixels (px).', 'type' => 'integer', 'format' => 'int64', 'example' => '960', 'title' => ''],
'Size' => ['description' => 'The size of the file in bytes.', 'type' => 'integer', 'format' => 'int64', 'example' => '4096477', 'title' => ''],
'Duration' => ['description' => 'The duration of the file in seconds.', 'type' => 'string', 'example' => '42.4930', 'title' => ''],
'Fps' => ['description' => 'The frame rate of the file in frames per second.', 'type' => 'string', 'example' => '25.0000', 'title' => ''],
'AudioStreamList' => [
'description' => 'The information about the audio stream.',
'type' => 'array',
'items' => [
'description' => 'The details of the audio stream.',
'type' => 'object',
'properties' => [
'Index' => ['description' => 'The sequence number of the audio stream. This number indicates the position of the audio stream in the media stream.', 'type' => 'string', 'example' => '0', 'title' => ''],
'Timebase' => ['description' => 'The time base.', 'type' => 'string', 'example' => '0.000000', 'title' => ''],
'SampleFmt' => ['description' => 'The sampling format.', 'type' => 'string', 'example' => 'fltp', 'title' => ''],
'SampleRate' => ['description' => 'The sample rate.', 'type' => 'string', 'example' => '44100', 'title' => ''],
'ChannelLayout' => ['description' => 'The output layout of the sound channel. Valid values:'."\n"
."\n"
.'- **mono**: mono.'."\n"
."\n"
.'- **stereo**: stereo.', 'type' => 'string', 'example' => 'mono', 'title' => ''],
'Lang' => ['description' => 'The language.', 'type' => 'string', 'example' => 'und', 'title' => ''],
'CodecLongName' => ['description' => 'The long name of the encoding format.', 'type' => 'string', 'example' => 'AAC (Advanced Audio Coding)'."\n", 'title' => ''],
'Channels' => ['description' => 'The number of sound channels.', 'type' => 'string', 'example' => '1', 'title' => ''],
'NumFrames' => ['description' => 'The total number of frames.', 'type' => 'string', 'example' => '1', 'title' => ''],
'Bitrate' => ['description' => 'The bitrate.', 'type' => 'string', 'example' => '62.885', 'title' => ''],
'CodecTagString' => ['description' => 'The tag text of the encoding format.', 'type' => 'string', 'example' => 'mp4a', 'title' => ''],
'StartTime' => ['description' => 'The start time. The time is in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2017-01-11T12:00:00Z', 'title' => ''],
'CodecName' => ['description' => 'The short name of the encoding format.', 'type' => 'string', 'example' => 'aac', 'title' => ''],
'Duration' => ['description' => 'The duration.', 'type' => 'string', 'example' => '3.227574', 'title' => ''],
'CodecTag' => ['description' => 'The tag of the encoding format.', 'type' => 'string', 'example' => '0x6134706d', 'title' => ''],
'CodecTimeBase' => ['description' => 'The codec time base.', 'type' => 'string', 'example' => '1/44100', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'VideoStreamList' => [
'description' => 'The information about the video stream.',
'type' => 'array',
'items' => [
'description' => 'The details of the video stream.',
'type' => 'object',
'properties' => [
'Timebase' => ['description' => 'The time base.', 'type' => 'string', 'example' => '0.000000', 'title' => ''],
'Index' => ['description' => 'The sequence number of the video stream. This number indicates the position of the video stream in the media stream.', 'type' => 'string', 'example' => '1', 'title' => ''],
'AvgFPS' => ['description' => 'The average frame rate.', 'type' => 'string', 'example' => '30.0', 'title' => ''],
'PixFmt' => ['description' => 'The pixel format.', 'type' => 'string', 'example' => 'yuv420p', 'title' => ''],
'Lang' => ['description' => 'The language.', 'type' => 'string', 'example' => 'und', 'title' => ''],
'Sar' => ['description' => 'The sample aspect ratio (SAR).', 'type' => 'string', 'example' => '0:1', 'title' => ''],
'Height' => ['description' => 'The height of the video.', 'type' => 'string', 'example' => '320', 'title' => ''],
'CodecLongName' => ['description' => 'The long name of the encoding format.', 'type' => 'string', 'example' => 'H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10', 'title' => ''],
'NumFrames' => ['description' => 'The total number of frames.', 'type' => 'string', 'example' => '0', 'title' => ''],
'Bitrate' => ['description' => 'The bitrate of the file in Kbps.', 'type' => 'string', 'example' => '500', 'title' => ''],
'Rotate' => ['description' => 'The rotation angle of the video. Valid values: \\[0, 360).', 'type' => 'string', 'example' => '90', 'title' => ''],
'CodecTagString' => ['description' => 'The tag text of the encoding format.', 'type' => 'string', 'example' => 'avc1', 'title' => ''],
'HasBFrames' => ['description' => 'Indicates whether B-frames exist.', 'type' => 'string', 'example' => '0', 'title' => ''],
'Profile' => ['description' => 'The codec profile.', 'type' => 'string', 'example' => 'Main', 'title' => ''],
'StartTime' => ['description' => 'The start time. The time is in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2017-01-11T12:00:00Z', 'title' => ''],
'Dar' => ['description' => 'The display aspect ratio (DAR).', 'type' => 'string', 'example' => '0:1', 'title' => ''],
'CodecName' => ['description' => 'The short name of the encoding format.', 'type' => 'string', 'example' => 'h264', 'title' => ''],
'Width' => ['description' => 'The width of the video.', 'type' => 'string', 'example' => '568', 'title' => ''],
'Duration' => ['description' => 'The duration.', 'type' => 'string', 'example' => '3.166667', 'title' => ''],
'Fps' => ['description' => 'The frame rate.', 'type' => 'string', 'example' => '30.0', 'title' => ''],
'CodecTag' => ['description' => 'The tag of the encoding format.', 'type' => 'string', 'example' => '0x31637661', 'title' => ''],
'CodecTimeBase' => ['description' => 'The codec time base.', 'type' => 'string', 'example' => '1/60', 'title' => ''],
'Level' => ['description' => 'The encoding level.', 'type' => 'string', 'example' => '30', 'title' => ''],
'HDRType' => ['description' => 'The High Dynamic Range (HDR) type of the video stream.', 'type' => 'string', 'title' => '', 'example' => 'HDR'],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'FileMD5' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''],
],
'title' => '',
'example' => '',
],
'PlayInfoList' => [
'description' => 'The playback information about the audio or video file. This is the stream information.',
'type' => 'array',
'items' => [
'description' => 'The details of the audio or video file.',
'type' => 'object',
'properties' => [
'CreationTime' => ['description' => 'The time when the stream was created. The time is in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2022-04-18T07:37:15Z'."\n", 'title' => ''],
'Status' => ['description' => 'The status of the media stream. Valid values:'."\n"
."\n"
.'- **Normal**: The media stream is in the normal state. This status is assigned to the latest transcoded stream of each definition and format.'."\n"
."\n"
.'- **Invisible**: The media stream is invisible. If multiple streams are transcoded for the same definition and format, the latest transcoded stream is marked as Normal and the other streams are marked as Invisible.', 'type' => 'string', 'example' => 'Normal', 'title' => ''],
'Specification' => ['description' => 'The output specifications of audio and video transcoding. For more information about the valid values and descriptions, see [Output specifications: Specification](~~124671#section-6bv-l0g-opq~~).', 'type' => 'string', 'example' => 'H264.LD', 'title' => ''],
'NarrowBandType' => ['description' => 'The transcoding type. Valid values:'."\n"
."\n"
.'- **0**: normal transcoding.'."\n"
."\n"
.'- **1.0**: Narrowband HD 1.0 transcoding.'."\n"
."\n"
.'- **2.0**: Narrowband HD 2.0 transcoding.', 'type' => 'string', 'example' => '0', 'title' => ''],
'Height' => ['description' => 'The height of the media stream in pixels (px).', 'type' => 'integer', 'format' => 'int64', 'example' => '640', 'title' => ''],
'Bitrate' => ['description' => 'The bitrate of the media stream in Kbps.', 'type' => 'string', 'example' => '450.878', 'title' => ''],
'ModificationTime' => ['description' => 'The time when the stream was last updated. The time is in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2022-04-20T06:32:19Z', 'title' => ''],
'WatermarkId' => ['description' => 'The ID of the watermark template that is associated with the media stream.', 'type' => 'string', 'example' => 'dgfn26457856****', 'title' => ''],
'Encrypt' => ['description' => 'Indicates whether the media stream is encrypted. Valid values:'."\n"
."\n"
.'- **0**: no.'."\n"
."\n"
.'- **1**: yes.', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
'Definition' => ['description' => 'The definition of the video stream. Valid values:'."\n"
."\n"
.'- **FD**: low definition.'."\n"
."\n"
.'- **LD**: standard definition.'."\n"
."\n"
.'- **SD**: high definition.'."\n"
."\n"
.'- **HD**: ultra-high definition'."\n"
."\n"
.'- **OD**: original quality.'."\n"
."\n"
.'- **2K**: 2K.'."\n"
."\n"
.'- **4K**: 4K.'."\n"
."\n"
.'- **SQ**: standard-quality audio.'."\n"
."\n"
.'- **HQ**: high-quality audio.'."\n"
."\n"
.'- **AUTO**: adaptive bitrate.', 'type' => 'string', 'example' => 'LD', 'title' => ''],
'EncryptType' => ['description' => 'The encryption type of the media stream. Valid values:'."\n"
."\n"
.'- **AliyunVoDEncryption**: Alibaba Cloud proprietary cryptography.'."\n"
."\n"
.'- **HLSEncryption**: HLS encryption.'."\n"
."\n"
.'> If the encryption type is **AliyunVoDEncryption**, you can play the stream only using ApsaraVideo Player SDK.', 'type' => 'string', 'example' => 'AliyunVoDEncryption', 'title' => ''],
'EncryptMode' => ['description' => 'The encryption mode of the media stream. Valid values:'."\n"
."\n"
.'- **License**: local decryption mode.'."\n"
."\n"
.'> If the encryption mode is **License**, you can play the stream only using ApsaraVideo Player SDK.', 'type' => 'string', 'example' => 'License', 'title' => ''],
'StreamType' => ['description' => 'The type of the media stream.'."\n"
.'If the media stream is a video stream, the value is **video**. If the media stream is an audio-only stream, the value is **audio**.', 'type' => 'string', 'example' => 'video', 'title' => ''],
'JobId' => ['description' => 'The ID of the transcoding job for the media stream. This ID serves as the unique identifier of the media stream.', 'type' => 'string', 'example' => '80e9c6580e754a798c3c19c59b16****', 'title' => ''],
'Size' => ['description' => 'The size of the media stream in bytes.', 'type' => 'integer', 'format' => 'int64', 'example' => '418112', 'title' => ''],
'Width' => ['description' => 'The width of the media stream in pixels (px).', 'type' => 'integer', 'format' => 'int64', 'example' => '360', 'title' => ''],
'Fps' => ['description' => 'The frame rate of the media stream in frames per second.', 'type' => 'string', 'example' => '25', 'title' => ''],
'Duration' => ['description' => 'The duration of the media stream in seconds.', 'type' => 'string', 'example' => '9.0464', 'title' => ''],
'PlayURL' => ['description' => 'The playback URL of the video stream.', 'type' => 'string', 'example' => 'https://example.aliyundoc.com/d52ee123f331466aabf6ab32a93d****/a777f9e24e6e47a2a942467d5c38ea37-8ee8e04293c6657fdda282bc422704****.m3u8', 'title' => ''],
'Format' => ['description' => 'The format of the media stream.'."\n"
."\n"
.'- If the media file is a video, valid values are **mp4** and **m3u8**.'."\n"
."\n"
.'- If the media file is audio-only, the value is **mp3**.', 'type' => 'string', 'example' => 'm3u8', 'title' => ''],
'HDRType' => ['description' => 'The HDR type of the media stream. Valid values:'."\n"
."\n"
.'- HDR'."\n"
."\n"
.'- HDR10'."\n"
."\n"
.'- HLG'."\n"
."\n"
.'- DolbyVision'."\n"
."\n"
.'- HDRVivid'."\n"
."\n"
.'- SDR+', 'type' => 'string', 'title' => '', 'example' => 'HLG'],
'BitDepth' => ['description' => 'The color depth. The value is an integer.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '8'],
'JobType' => ['description' => 'The type of the digital watermark. Valid values:'."\n"
."\n"
.'- **1**: tracing watermark.'."\n"
."\n"
.'- **2**: copyright watermark.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''],
'JobExt' => ['description' => 'The custom watermark information for the copyright watermark. This parameter is returned only when `JobType` is `2`.', 'type' => 'string', 'example' => 'CopyrightMarkTest', 'title' => ''],
'CodecName' => ['description' => 'The short name of the encoding format.', 'type' => 'string', 'example' => 'h264', 'title' => ''],
'TemplateId' => ['description' => 'The ID of the transcoding template.', 'type' => 'string', 'example' => 'a86a4338dd2e83da45154004a541****', 'title' => ''],
'TemplateGroupId' => ['description' => 'The ID of the transcoding template group.', 'type' => 'string', 'example' => 'fb0716154b21a4ecb5b70a26ccc8****', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9E290613-04F4-47F4-795D30732077****\\",\\n \\"NonExistMediaIds\\": [\\n \\"[\\\\\\"bbc65bba53f6ed90de118a7849****\\\\\\"]\\"\\n ],\\n \\"NonExistReferenceIds\\": [\\n \\"123-123\\"\\n ],\\n \\"ForbiddenMediaIds\\": [\\n \\"[\\\\\\"bbc65bba53f6ed90de118a7849****\\\\\\"]\\"\\n ],\\n \\"MediaInfos\\": [\\n {\\n \\"MediaId\\": \\"10a5fa364a5b71ef89246733a78e****\\",\\n \\"MediaInfo\\": {\\n \\"StorageLocation\\": \\"outin-***.oss-cn-shanghai.aliyuncs.com\\",\\n \\"CreationTime\\": \\"2017-11-14T09:15:50Z\\",\\n \\"Status\\": \\"Normal\\",\\n \\"CateId\\": 0,\\n \\"MediaId\\": \\"7753d144efd74d6c45fe0570****\\",\\n \\"DownloadSwitch\\": \\"on\\",\\n \\"Tags\\": \\"tag1, tag2\\",\\n \\"ModificationTime\\": \\"2017-06-26T06:38:48Z\\",\\n \\"CateName\\": \\"cate1\\",\\n \\"Description\\": \\"Alibaba Cloud VOD video description\\",\\n \\"AppId\\": \\"app-****\\",\\n \\"CoverURL\\": \\"https://example.aliyundoc.com/****.jpg\\",\\n \\"TemplateGroupId\\": \\"b4039216985f4312a5382a4ed****\\",\\n \\"Title\\": \\"Alibaba Cloud VOD Video Title\\",\\n \\"Snapshots\\": [\\n \\"[\\\\\\"http://example.aliyundoc.com/snapshot/****.jpg?auth_key=1498476426-0-0-f00b9455c49a423ce69cf4e27333****\\\\\\",\\\\\\"http://example.aliyundoc.com/snapshot/****.jpg?auth_key=1498476426-0-0-f00b9455c49a423ce69cf4e27243****\\\\\\",...]\\"\\n ],\\n \\"StorageClass\\": \\"Standard\\",\\n \\"RestoreStatus\\": \\"Success\\",\\n \\"RestoreExpiration\\": \\"2023-03-30T10:14:14Z\\",\\n \\"UserData\\": \\"{\\\\\\"Extend\\\\\\":\\\\\\"xxx\\\\\\",\\\\\\"MessageCallback\\\\\\":\\\\\\"xxx\\\\\\"}\\",\\n \\"ReferenceId\\": \\"123-123\\"\\n },\\n \\"MezzanineInfo\\": {\\n \\"CreationTime\\": \\"2017-11-14T09:15:50Z\\",\\n \\"Status\\": \\"Normal\\",\\n \\"FileURL\\": \\"http://example-bucket-****.oss-cn-shanghai.aliyuncs.com/27ffc438-164h67f57ef-0005-6884-51a-1****.mp4\\",\\n \\"MediaId\\": \\"1f1a6fc03ca04814031b8a6559e****\\",\\n \\"Height\\": 540,\\n \\"Bitrate\\": \\"771.2280\\",\\n \\"FileName\\": \\"27ffc438-164h67f57ef-0005-6884-51a-1****.mp4\\\\n\\",\\n \\"Width\\": 960,\\n \\"Size\\": 4096477,\\n \\"Duration\\": \\"42.4930\\",\\n \\"Fps\\": \\"25.0000\\",\\n \\"AudioStreamList\\": [\\n {\\n \\"Index\\": \\"0\\",\\n \\"Timebase\\": \\"0.000000\\",\\n \\"SampleFmt\\": \\"fltp\\",\\n \\"SampleRate\\": \\"44100\\",\\n \\"ChannelLayout\\": \\"mono\\",\\n \\"Lang\\": \\"und\\",\\n \\"CodecLongName\\": \\"AAC (Advanced Audio Coding)\\\\n\\",\\n \\"Channels\\": \\"1\\",\\n \\"NumFrames\\": \\"1\\",\\n \\"Bitrate\\": \\"62.885\\",\\n \\"CodecTagString\\": \\"mp4a\\",\\n \\"StartTime\\": \\"2017-01-11T12:00:00Z\\",\\n \\"CodecName\\": \\"aac\\",\\n \\"Duration\\": \\"3.227574\\",\\n \\"CodecTag\\": \\"0x6134706d\\",\\n \\"CodecTimeBase\\": \\"1/44100\\"\\n }\\n ],\\n \\"VideoStreamList\\": [\\n {\\n \\"Timebase\\": \\"0.000000\\",\\n \\"Index\\": \\"1\\",\\n \\"AvgFPS\\": \\"30.0\\",\\n \\"PixFmt\\": \\"yuv420p\\",\\n \\"Lang\\": \\"und\\",\\n \\"Sar\\": \\"0:1\\",\\n \\"Height\\": \\"320\\",\\n \\"CodecLongName\\": \\"H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10\\",\\n \\"NumFrames\\": \\"0\\",\\n \\"Bitrate\\": \\"500\\",\\n \\"Rotate\\": \\"90\\",\\n \\"CodecTagString\\": \\"avc1\\",\\n \\"HasBFrames\\": \\"0\\",\\n \\"Profile\\": \\"Main\\",\\n \\"StartTime\\": \\"2017-01-11T12:00:00Z\\",\\n \\"Dar\\": \\"0:1\\",\\n \\"CodecName\\": \\"h264\\",\\n \\"Width\\": \\"568\\",\\n \\"Duration\\": \\"3.166667\\",\\n \\"Fps\\": \\"30.0\\",\\n \\"CodecTag\\": \\"0x31637661\\",\\n \\"CodecTimeBase\\": \\"1/60\\",\\n \\"Level\\": \\"30\\",\\n \\"HDRType\\": \\"HDR\\"\\n }\\n ],\\n \\"FileMD5\\": \\"\\"\\n },\\n \\"PlayInfoList\\": [\\n {\\n \\"CreationTime\\": \\"2022-04-18T07:37:15Z\\\\n\\",\\n \\"Status\\": \\"Normal\\",\\n \\"Specification\\": \\"H264.LD\\",\\n \\"NarrowBandType\\": \\"0\\",\\n \\"Height\\": 640,\\n \\"Bitrate\\": \\"450.878\\",\\n \\"ModificationTime\\": \\"2022-04-20T06:32:19Z\\",\\n \\"WatermarkId\\": \\"dgfn26457856****\\",\\n \\"Encrypt\\": 1,\\n \\"Definition\\": \\"LD\\",\\n \\"EncryptType\\": \\"AliyunVoDEncryption\\",\\n \\"EncryptMode\\": \\"License\\",\\n \\"StreamType\\": \\"video\\",\\n \\"JobId\\": \\"80e9c6580e754a798c3c19c59b16****\\",\\n \\"Size\\": 418112,\\n \\"Width\\": 360,\\n \\"Fps\\": \\"25\\",\\n \\"Duration\\": \\"9.0464\\",\\n \\"PlayURL\\": \\"https://example.aliyundoc.com/d52ee123f331466aabf6ab32a93d****/a777f9e24e6e47a2a942467d5c38ea37-8ee8e04293c6657fdda282bc422704****.m3u8\\",\\n \\"Format\\": \\"m3u8\\",\\n \\"HDRType\\": \\"HLG\\",\\n \\"BitDepth\\": 8,\\n \\"JobType\\": 2,\\n \\"JobExt\\": \\"CopyrightMarkTest\\",\\n \\"CodecName\\": \\"h264\\",\\n \\"TemplateId\\": \\"a86a4338dd2e83da45154004a541****\\",\\n \\"TemplateGroupId\\": \\"fb0716154b21a4ecb5b70a26ccc8****\\"\\n }\\n ]\\n }\\n ]\\n}","type":"json"}]',
'title' => 'BatchGetMediaInfos',
'description' => '- You can retrieve information for up to 20 audio or video files in a single request.'."\n"
."\n"
.'- The media asset information is generated asynchronously because Video on Demand (VOD) analyzes the source file after it is uploaded. You can configure [event notifications](~~55627~~) for [Audio/Video Analysis Complete](~~99935~~). After you receive the notification, call this operation to retrieve the audio or video information.',
'changeSet' => [
['createdAt' => '2025-07-10T08:32:00.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:36:03.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:34:18.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchGetMediaInfos'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:BatchGetMediaInfos',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'BatchSetVodDomainConfigs' => [
'summary' => 'Configures one or more domain names for CDN.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39799',
'abilityTreeNodes' => ['FEATUREvodHI57GB'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'DomainNames',
'in' => 'query',
'schema' => ['description' => 'The domain name for CDN. Separate multiple domain names with commas (,).'."\n", 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'Functions',
'in' => 'query',
'schema' => ['description' => 'The features to configure.'."\n"
."\n"
.'* Set this parameter in the following format: `[{"functionArgs":[{"argName":"domain_name","argValue":"www.example.com"}],"functionName":"set_req_host_header"}]`.'."\n"
.'* Specific features, such as filetype_based_ttl_set, support more than one configuration record. To update one of the configuration records, use the configId field to specify the record. `[{"functionArgs":[{"argName":"file_type","argValue":"jpg"},{"argName":"ttl","argValue":"18"},{"argName":"weight","argValue":"30"}],"functionName":"filetype_based_ttl_set","configId":5068995}]`'."\n"
.'* For more information, see the **Feature description** section.'."\n", 'type' => 'string', 'required' => true, 'example' => '[{"functionArgs":[{"argName":"domain_name","argValue":"www.example.com"}],"functionName":"set_req_host_header"}]', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => '',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '04F0F334-1335-436C-****-6C044FE73368', 'title' => ''],
],
'title' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidFunctions.Malformed', 'errorMessage' => 'The specified Functions is incorrectly formatted.', 'description' => ''],
['errorCode' => 'InvalidArgValue.Malformed', 'errorMessage' => 'The specified ArgValue is invalid.', 'description' => ''],
['errorCode' => 'Invalid%s.ValueNotSupported', 'errorMessage' => '[%s] is not supported.', 'description' => ''],
['errorCode' => 'Invalid%s.Malformed', 'errorMessage' => 'The specified ArgValue [%s] is invalid.', 'description' => ''],
['errorCode' => 'MissingParameter%s', 'errorMessage' => 'The specified value of ArgName[%s] is missing.', 'description' => ''],
['errorCode' => 'InvalidFunctionArgs.Malformed', 'errorMessage' => 'The specified FunctionArgs is invalid.', 'description' => ''],
['errorCode' => 'MissingParameter', 'errorMessage' => 'The specified ArgValue is missing.', 'description' => ''],
['errorCode' => 'InvalidHeaderKey.ValueNotSupported', 'errorMessage' => 'The specified value of parameter HeaderKey is not supported.', 'description' => ''],
['errorCode' => 'TooManyDomains', 'errorMessage' => 'The count of domain is over 50.', 'description' => ''],
['errorCode' => 'InvalidRule.Malformed', 'errorMessage' => '%s', 'description' => ''],
['errorCode' => 'InvalidFunction.NotSupported', 'errorMessage' => 'The domain is not supported to set the function.', 'description' => ''],
['errorCode' => 'InvalidDomain.BelongToConfigGroup', 'errorMessage' => 'This Domain activated in configuration group and should modify by config group.', 'description' => ''],
['errorCode' => 'EntityNotExist.Role', 'errorMessage' => 'EntityNotExist.Role', 'description' => ''],
['errorCode' => 'MissingParameterFunctions', 'errorMessage' => 'The specified value of Functions is missing.', 'description' => ''],
['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The current user does not have permission to create servicelinkedrole. Please contact the Alibaba Cloud account or administrator to authorize AliyunCDNFullAccess or custom policy:Service Name:cdn-ddos.cdn.aliyuncs.com,Role: AliyunServiceRoleForCDNAccessingDDoS,Permission: ram: CreateServiceLinkedRole', 'description' => ''],
['errorCode' => 'ConfigExceedLimit', 'errorMessage' => 'Count of config entries exceeds the limit.', 'description' => ''],
['errorCode' => 'EdgeScriptCountExceedLimit', 'errorMessage' => 'The number of rules exceeds the default limit (1). To increase the limit, submit a ticket.', 'description' => 'You can configure only one script. To increase the limit, submit a ticket.'],
['errorCode' => 'EdgeScripOptionsHasInnerConfig', 'errorMessage' => 'The extension has a background configuration or a parameter of this configuration is invalid. For more information, submit a ticket.', 'description' => ''],
['errorCode' => 'EdgeScriptGrammarNotSupport', 'errorMessage' => 'A background customization rule exists or a parameter of this configuration is invalid. For more information, submit a ticket.', 'description' => ''],
['errorCode' => 'EdgeScriptNotSupportJs', 'errorMessage' => 'JavaScript rules are not supported. For more information, submit a ticket.', 'description' => ''],
['errorCode' => 'ServiceInvokeFailed', 'errorMessage' => 'Failed to invoke service.', 'description' => ''],
['errorCode' => 'ConfigurationConflicts', 'errorMessage' => 'Failed to modify the parameter settings in the production environment because the parameter settings are different from those in the staging'."\n"
.'environment. Set parameters in the staging environment before you publish them to the production environment.', 'description' => 'Failed to modify the parameter settings in the production environment because the parameter settings are different from those in the staging environment. Set parameters in the staging environment before you publish them to the production environment.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-****-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n04F0F334-1335-436C-****-6C044FE73368\\r\\n","errorExample":""}]',
'title' => 'BatchSetVodDomainConfigs',
'description' => '> This operation is available only in the **China (Shanghai)** region.'."\n",
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return.'."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| InvalidFunctions.Malformed | Specified Functions is malformed. | 400 | The error message returned because the value of the Functions parameter is invalid. |'."\n"
.'| InvalidFunctionName.ValueNotSupported | FunctionName %s is not supported. | 400 | The error message returned because the %s feature name is invalid. |'."\n"
.'| InvalidArgName.ValueNotSupported | ArgName %s is not supported. | 400 | The error message returned because the %s parameter is invalid. |'."\n"
.'| InvalidArgValue.Malformed | Specified ArgValue is malformed. | 400 | The error message returned because the value of the argValue field is invalid. |',
'changeSet' => [
['createdAt' => '2025-07-16T06:25:44.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:35:58.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:34:12.000Z', 'description' => 'OpenAPI offline'],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:BatchSetVodDomainConfigs',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'requestParamsDescription' => '## Feature description'."\n"
."\n"
.'All parameter values are of the string type.'."\n"
."\n"
.'| Feature | Description | Parameter |'."\n"
.'| ------- | ----------- | --------- |'."\n"
.'| referer_white_list_set | Specifies the referer whitelist. | refer_domain_allow_list: the referers to be added to the whitelist. Separate multiple referers with commas (,).
allow_empty: specifies whether an empty referer is allowed. Valid values: **on and off**. |'."\n"
.'| referer_black_list_set | Specifies the referer blacklist. | refer_domain_deny_list: the referers to be added to the blacklist. Separate multiple referers with commas (,).
allow_empty: specifies whether an empty referer is allowed. Valid values: **on and off**. |'."\n"
.'| filetype_based_ttl_set | Specifies the time period after which a file expires. | ttl: the expiration time of the cached content. Unit: seconds.
file_type: the file type. Separate multiple file types with commas (,). Example: txt,jpg.
weight: the weight of the file in the cache. Valid values: **1** to **199**. |'."\n"
.'| path_based_ttl_set | Specifies the time period after which a directory expires. | ttl: the expiration time of the cached content. Unit: seconds.
path: the directory, which must start with a forward slash (/).
weight: the weight of the directory in the cache. Valid values: **1** to **99**. |'."\n"
.'| oss_auth | Configures authentication for the access to an Object Storage Service (OSS) bucket. | oss_bucket_id: the ID of the bucket. |'."\n"
.'| ip_black_list_set | Specifies the IP address blacklist. | ip_list: the IP addresses to be added to the whitelist. Separate multiple IP addresses with commas (,). |'."\n"
.'| ip_allow_list_set | Specifies the IP address whitelist. | ip_list: the IP addresses to be added to the whitelist. Separate multiple IP addresses with commas (,). |'."\n"
.'| ip_white_list_set | Specifies the self-defined rules for the rate limit. | ip_list: the IP addresses to be added to the whitelist. Separate multiple IP addresses with commas (,). |'."\n"
.'| error_page | Redirects an error page to a specified page. | error_code: the error code.
rewrite_page: the page to which the error page is redirected. |'."\n"
.'| set_req_host_header | Modifies the custom header of back-to-origin requests. | domain_name: the custom host header of back-to-origin requests. |'."\n"
.'| set_hashkey_args | Ignores the specified URL parameters. | hashkey_args: the parameters to be reserved. Separate multiple parameters with commas (,).
disable: specifies whether to ignore all parameters. A value of on indicates that all parameters are ignored. A value of off indicates that none of the parameters are ignored. |'."\n"
.'| aliauth | Configures Alibaba Cloud authentication. | auth_type: the authentication type. Valid values: **no_auth**, **type_a**, **type_b**, and **type_c**.
auth_key1: the primary authentication key.
auth_key2: the secondary authentication key.
ali_auth_delta: the custom buffer time for authentication.
ali_auth_remote_desc: the pattern matching string. |'."\n"
.'| set_resp_header | Specifies a response header. To verify the setting, you can check the response message in a browser. | key: the name of the response header. Valid values: **Content-Type**, **Cache-Control**, **Content-Disposition**, **Content-Language**, **Expires**, **Access-Control-Allow-Origin**, **Access-Control-Allow-Methods**, **Access-Control-Allow-Headers**, **Access-Control-Max-Age**, and **Access-Control-Expose-Headers**.
value: the content of the response header. If you want to delete the header, enter null. |'."\n"
.'| https_force | Configures force redirect to HTTPS. | enable: specifies whether to enable force redirect to HTTPS. Valid values: **on and off**. |'."\n"
.'| http_force | Configures force redirect to HTTP. | enable: specifies whether to enable force redirect to HTTP. Valid values: **on and off**. |'."\n"
.'| l2_oss_key | Configures private key authentication for back-to-origin requests from L2 nodes to private OSS buckets. | private_oss_auth: specifies whether to authenticate the access to a private OSS bucket. Valid values: **on and off**. |'."\n"
.'| green_manager | Configures pornography detection. | enable: specifies whether to enable pornography detection. Valid values: **on and off**. |'."\n"
.'| range | Configures object chunking. | enable: specifies whether to enable object chunking. Valid values: on, off, and force. |'."\n"
.'| video_seek | Configures video seeking. | enable: specifies whether to enable video seeking. Valid values: on and off. |'."\n"
.'| set_hashkey_args | Ignores the specified URL parameters. | hashkey_args: the parameters to be reserved. Separate multiple parameters with commas (,).
disable: specifies whether to ignore all parameters. A value of on indicates that all parameters are ignored. A value of off indicates that none of the parameters are ignored. |'."\n"
.'| tmd_signature | Specifies the self-defined rules for the rate limit. | name: the name of the rule, which must be unique in the domain name.
path: the URI path. You can specify duplicate URI paths. However, you must verify their validity.
pathType: the matching rule. Valid values: 0 and 1. A value of **0** indicates a prefix match. A value of **1** indicates an exact match.
interval: the interval at which data is monitored. Unit: seconds. The interval must be greater than or equal to **10** seconds.
count: the number of visits from an IP address.
action: the operation to be performed after the specified conditions are met. Valid values: 0 and 1. A value of **0** indicates blocking. A value of **1** indicates bot detection.
ttl: the time period during which access is blocked. Unit: seconds. |'."\n"
.'| ali_business | Configures custom features. | ali_business_type: required. The business type.
ali_business_table: the pattern matching string. |'."\n"
.'| hls_token_rewrite | Configures M3U8 encryption and rewriting. | enable: required. Specifies whether to enable M3U8 encryption and rewriting. Valid values: on and off.
hls_token_arg_name: the name of the appended parameter. If you do not specify the name, the parameter name MtsHlsUriToken is used. |',
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchSetVodDomainConfigs'],
],
],
],
'BatchStartVodDomain' => [
'summary' => 'Enables accelerated domain names that are in the disabled state.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39800',
'abilityTreeNodes' => ['FEATUREvodHI57GB'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'DomainNames',
'in' => 'query',
'schema' => ['description' => 'The accelerated domain name. Separate multiple domain names with commas (,).'."\n", 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '15C66C7B-671A-4297-****-2C4477247A74', 'title' => ''],
],
'description' => '',
'title' => '',
],
],
],
'errorCodes' => [
403 => [
['errorCode' => 'ServiceBusy', 'errorMessage' => 'The specified Domain is configuring, please retry later', 'description' => ''],
],
[
['errorCode' => 'InvalidDomain.NotFound', 'errorMessage' => 'The domain provided does not belong to you.', 'description' => ''],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"15C66C7B-671A-4297-****-2C4477247A74\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 15C66C7B-671A-4297-****-2C4477247A74\\r\\n","errorExample":""}]',
'title' => 'BatchStartVodDomain',
'description' => '* This operation is available only in the **China (Shanghai)** region.'."\n"
."\n"
.'* If the domain name that you want to enable is invalid or your Alibaba Cloud account has overdue payments, you cannot call this operation to enable the domain name.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2025-07-16T06:25:43.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:35:43.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:33:57.000Z', 'description' => 'OpenAPI offline'],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:BatchStartVodDomain',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchStartVodDomain'],
],
],
],
'BatchStopVodDomain' => [
'summary' => 'Disables accelerated domain names.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39801',
'abilityTreeNodes' => ['FEATUREvodHI57GB'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'DomainNames',
'in' => 'query',
'schema' => ['description' => 'The accelerated domain name. Separate multiple domain names with commas (,).'."\n", 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '15C66C7B-671A-4297-****-2C4477247A74', 'title' => ''],
],
'description' => '',
'title' => '',
],
],
],
'errorCodes' => [
403 => [
['errorCode' => 'ServiceBusy', 'errorMessage' => 'The specified Domain is configuring, please retry later', 'description' => ''],
],
[
['errorCode' => 'InvalidDomain.NotFound', 'errorMessage' => 'The domain provided does not belong to you.', 'description' => ''],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"15C66C7B-671A-4297-****-2C4477247A74\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 15C66C7B-671A-4297-****-2C4477247A74\\r\\n","errorExample":""}]',
'title' => 'BatchStopVodDomain',
'description' => '* This operation is available only in the **China (Shanghai)** region.'."\n"
.'* After you disable an accelerated domain name, the information about the domain name is retained. The system automatically reroutes all the requests that are destined for the domain name to the origin server.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2025-07-16T06:25:19.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:35:43.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:33:57.000Z', 'description' => 'OpenAPI offline'],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:BatchStopVodDomain',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchStopVodDomain'],
],
],
],
'CancelUrlUploadJobs' => [
'summary' => 'Cancels URL-based upload jobs in the queue.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '46269',
'abilityTreeNodes' => ['FEATUREvodVQ27S4'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'JobIds',
'in' => 'query',
'schema' => ['description' => 'The IDs of the upload jobs. You can obtain the job IDs from PlayInfo in the response to the [GetPlayInfo](~~56124~~) operation.'."\n"
."\n"
.'* You can specify a maximum of 10 IDs.'."\n"
.'* Separate multiple IDs with commas (,).'."\n"
."\n"
.'> You must specify either JobIds or UploadUrls. If you specify both the JobIds and UploadUrls parameters, only the value of the JobIds parameter takes effect.'."\n", 'type' => 'string', 'required' => false, 'example' => '341c92e6c18dc435ee31253685****,0193d395194a83ad6ee2ef27a5b5****', 'title' => ''],
],
[
'name' => 'UploadUrls',
'in' => 'query',
'schema' => ['description' => 'The upload URLs of source video files. Separate multiple URLs with commas (,). You can specify a maximum of 10 URLs.'."\n"
."\n"
.'> * You must encode the URLs before you use the URLs.'."\n"
.'> * You must specify either JobIds or UploadUrls. If you specify both the JobIds and UploadUrls parameters, only the value of the JobIds parameter takes effect.', 'type' => 'string', 'required' => false, 'example' => 'http://www.example.aliyundoc.com/***/video01.mp4,http://www.example.aliyundoc.com/***/video02.mp4', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4D5C-3C3D-D7393642****', 'title' => ''],
'CanceledJobs' => [
'description' => 'The IDs of canceled jobs.'."\n",
'type' => 'array',
'items' => ['description' => 'The ID of the canceled job. The return value is JobId.'."\n", 'type' => 'string', 'example' => '341c92e6c18dc435ee31253685****,0193d395194a83ad6ee2ef27a5b5****', 'title' => ''],
'title' => '',
],
'NonExists' => [
'description' => 'The jobs that do not exist.'."\n",
'type' => 'array',
'items' => ['description' => 'The job ID or URL that does not exist.'."\n"
."\n"
.'If you specify JobIds in the request, the job IDs that do not exist are returned. If you specify UploadURL in the request, the upload URLs that do not exist are returned.'."\n", 'type' => 'string', 'example' => 'http://www.example.aliyundoc.com/***/video01.mp4,http://www.example.aliyundoc.com/***/video02.mp4', 'title' => ''],
'title' => '',
],
],
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'CancelUrlUploadJobs',
'description' => '* You can cancel only URL-based upload jobs in the **Pending** state. You can query the status of a URL-based upload job by calling the [GetURLUploadInfos](~~106830~~) operation.'."\n"
.'* You cannot cancel an upload job that already starts.'."\n"
.'* You must specify either JobIds or UploadUrls. If you specify both parameters, only JobIds takes effect.',
'changeSet' => [
['createdAt' => '2025-07-10T08:32:00.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:35:50.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:34:25.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CancelUrlUploadJobs'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:CancelUrlUploadJobs',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4D5C-3C3D-D7393642****\\",\\n \\"CanceledJobs\\": [\\n \\"341c92e6c18dc435ee31253685****,0193d395194a83ad6ee2ef27a5b5****\\"\\n ],\\n \\"NonExists\\": [\\n \\"http://www.example.aliyundoc.com/***/video01.mp4,http://www.example.aliyundoc.com/***/video02.mp4\\"\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 25818875-5F78-4D5C-3C3D-D7393642****\\n 341c92e6c18dc435ee31253685****,0193d395194a83ad6ee2ef27a5b5****\\n http://www.example.aliyundoc.com/***/video01.mp4,http://www.example.aliyundoc.com/***/video02.mp4\\n","errorExample":""}]',
],
'ChangeResourceGroup' => [
'summary' => 'Transfers a resource to a specified resource group.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
'abilityTreeCode' => '161156',
'abilityTreeNodes' => ['FEATUREvod7FWSSO'],
],
'parameters' => [
[
'name' => 'ResourceType',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The type of resource', 'type' => 'string', 'required' => false, 'example' => 'AppInfo', 'default' => 'Storage'],
],
[
'name' => 'ResourceId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The ID of resource', 'type' => 'string', 'required' => true, 'example' => 'app-xxxxxxx'],
],
[
'name' => 'ResourceRegionId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The ID of the region.', 'type' => 'string', 'required' => true, 'example' => 'cn-shanghai'],
],
[
'name' => 'ResourceGroupId',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The ID of the resource group.'."\n", 'type' => 'string', 'required' => true, 'example' => 'rg-aekzko7fsuj****'],
],
],
'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' => '25818875-5F78-4A*****F6-D7393642CA58'],
],
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'NoPermission.ChangeResourceGroup', 'errorMessage' => 'You are not authorized to change resourcegroup', 'description' => ''],
['errorCode' => 'MissingParameter.ResourceRegionId', 'errorMessage' => 'The ResourceRegionId parameters that are required for processing this request are missing', 'description' => ''],
['errorCode' => 'MissingParameter.ResourceId', 'errorMessage' => 'The ResourceId parameters that are required for processing this request are missing', 'description' => ''],
['errorCode' => 'MissingParameter.ResourceGroupId', 'errorMessage' => 'The ResourceGroupId parameters that are required for processing this request are missing', 'description' => ''],
['errorCode' => 'InvalidResourceGroup', 'errorMessage' => 'The specified ResourceGroupId is invalid', 'description' => ''],
['errorCode' => 'SystemError', 'errorMessage' => 'A system error occurred while processing your request', 'description' => ''],
['errorCode' => 'ResourceNotFound', 'errorMessage' => ' The specified resource is not found', 'description' => ''],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4A*****F6-D7393642CA58\\"\\n}","type":"json"}]',
'title' => 'ChangeResourceGroup',
'description' => '调用该接口将资源转移至另一个资源组下。',
'changeSet' => [
['createdAt' => '2025-07-10T08:32:24.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:35:39.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:34:20.000Z', 'description' => 'OpenAPI offline'],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:ChangeResourceGroup',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ChangeResourceGroup'],
],
],
],
'CreateAppInfo' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39806',
'abilityTreeNodes' => ['FEATUREvodHJ3KAX'],
],
'parameters' => [
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the application. The name must be unique.'."\n"
."\n"
.'- The name can be up to 128 characters in length and can contain Chinese characters, uppercase and lowercase letters, digits, periods (.), hyphens (-), and at signs (@).'."\n"
."\n"
.'- The name must be encoded in UTF-8.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'test'],
],
[
'name' => 'Description',
'in' => 'query',
'schema' => ['description' => 'The description of the application.'."\n"
."\n"
.'- The description can be up to 512 characters in length.'."\n"
."\n"
.'- The description must be encoded in UTF-8.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'myfirstapp'],
],
[
'name' => 'ResourceGroupId',
'in' => 'query',
'schema' => ['type' => 'string', 'required' => false, 'description' => 'The ID of the resource group.', 'title' => '', 'example' => 'rg-aekzko7fsuj****'],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response.',
'type' => 'object',
'properties' => [
'AppId' => ['description' => 'The ID of the application.', 'type' => 'string', 'title' => '', 'example' => 'app-****'],
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'title' => '', 'example' => '25818875-5F78-4A13-34D5-D7393642****'],
],
'title' => '',
'example' => '',
],
],
],
'title' => 'CreateAppInfo',
'summary' => 'You can call this API operation to create a new application.',
'description' => 'Each account can have a maximum of 10 applications. For more information, see [Multi-application development guide](~~113600~~).'."\n"
."\n"
.'### QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 50 calls per second. If you exceed this limit, API calls are throttled, which may affect your business. Call this API operation at a reasonable frequency. For more information, see [QPS limit](~~342790~~).',
'changeSet' => [
['createdAt' => '2025-07-10T08:32:04.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:36:04.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:34:02.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-06-19T08:27:34.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-06-18T07:27:36.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-06-17T07:30:27.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateAppInfo'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:CreateAppInfo',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"AppId\\": \\"app-****\\",\\n \\"RequestId\\": \\"25818875-5F78-4A13-34D5-D7393642****\\"\\n}","type":"json"}]',
],
'CreateAudit' => [
'summary' => 'Performs manual review on media files, such as audio and video files.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39808',
'abilityTreeNodes' => ['FEATUREvodL077M7'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'AuditContent',
'in' => 'query',
'schema' => ['description' => 'The review content. You can specify up to **100** audio or video files in a request. The value must be converted to a string.\\'."\n"
.'For more information about this parameter, see the **AuditContent** section of this topic.'."\n", 'type' => 'string', 'required' => true, 'example' => '[{"VideoId":"93ab850b4f*****b54b6e91d24d81d4","Status":"Normal"},{"VideoId":"f867fbfb58*****8bbab65c4480ae1d","Status":"Blocked","Reason":"Pornographic video","Comment":"Contains explicit content"}]', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4A*****F6-D7393642CA58', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4A*****F6-D7393642CA58\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 25818875-5F78-4A*****F6-D7393642CA58\\r\\n","errorExample":""}]',
'title' => 'CreateAudit',
'requestParamsDescription' => '## AuditContent'."\n"
."\n"
.'|Field|Type|Required|Description|'."\n"
.'|---|---|---|---|'."\n"
.'|VideoId|String|Yes|The ID of the audio or video file.|'."\n"
.'|Status|String|Yes|The review status of the audio or video file. Value values: **Blocked** and **Normal**.|'."\n"
.'|Reason|String|No|The reason for blocking the audio or video file if you set Status to Blocked. The reason can be up to 128 bytes in length.|'."\n"
.'|Comment|String|No|The remarks of the review. The remarks can be up to 512 bytes in length.|',
'responseParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-10T08:32:17.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:35:40.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:34:05.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateAudit'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:CreateAudit',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'CreateUploadAttachedMedia' => [
'summary' => 'Obtain an upload credential and create auxiliary media assets, such as watermarks and subtitles. The upload URL and credential are provided by ApsaraVideo VOD to resolve authorization and security issues, prevent malicious uploads, and automatically create media IDs (Mediaid) for management and processing.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39816',
'abilityTreeNodes' => ['FEATUREvodVQ27S4'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'Title',
'in' => 'query',
'schema' => ['description' => 'The title of the auxiliary media asset. The following rules apply:'."\n"
."\n"
.'* The title cannot exceed 128 bytes.'."\n"
.'* The title must be encoded in UTF-8.'."\n", 'type' => 'string', 'required' => false, 'example' => 'Test', 'title' => ''],
],
[
'name' => 'BusinessType',
'in' => 'query',
'schema' => ['description' => 'The type of the auxiliary media asset. Valid values:'."\n"
."\n"
.'* **watermark**'."\n"
.'* **subtitle**'."\n"
.'* **material**'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'watermark', 'title' => ''],
],
[
'name' => 'MediaExt',
'in' => 'query',
'schema' => [
'description' => 'The file name extension of the auxiliary media asset.'."\n"
."\n"
.'* Valid values for watermarks: **png, gif, apng, and mov**'."\n"
.'* Valid values for subtitles: **srt, ass, stl, ttml, and vtt**'."\n"
.'* Valid values for materials: **jpg, gif, png, mp4, mat, zip, and apk**'."\n",
'type' => 'string',
'required' => false,
'docRequired' => true,
'enumValueTitles' => [
'ass' => 'ass', 'jpg' => 'jpg', 'zip' => 'zip', 'mat' => 'mat', 'gif' => 'gif', 'apng' => 'apng', 'png' => 'png', 'ttml' => 'ttml', 'stl' => 'stl', 'mp4' => 'mp4',
'srt' => 'srt', 'mov' => 'mov', 'vtt' => 'vtt', 'apk' => 'apk',
],
'example' => 'png',
'title' => '',
],
],
[
'name' => 'FileName',
'in' => 'query',
'schema' => ['description' => 'The source file URL of the auxiliary media asset.'."\n"
."\n"
.'> The file name extension is optional. If the file name extension that you specified for this parameter is different from the value of MediaExt, the value of MediaExt takes effect.'."\n", 'type' => 'string', 'required' => false, 'example' => 'D:\\test.png', 'title' => ''],
],
[
'name' => 'FileSize',
'in' => 'query',
'schema' => ['description' => 'The size of the auxiliary media asset. Unit: byte.'."\n", 'type' => 'string', 'required' => false, 'example' => '123', 'title' => ''],
],
[
'name' => 'Tags',
'in' => 'query',
'schema' => ['description' => 'The one or more tags of the auxiliary media asset. Take note of the following items:'."\n"
."\n"
.'* You can specify a maximum of 16 tags.'."\n"
.'* If you need to specify multiple tags, separate the tags with commas (,).'."\n"
.'* Each tag can be up to 32 characters in length.'."\n"
.'* The value must be encoded in UTF-8.'."\n", 'type' => 'string', 'required' => false, 'example' => 'tag1,tag2', 'title' => ''],
],
[
'name' => 'StorageLocation',
'in' => 'query',
'schema' => ['description' => 'The storage address. Perform the following operations to obtain the storage address:'."\n"
."\n"
.'Log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com). In the left-side navigation pane, choose **Configuration Management** > **Media Management** > **Storage**. On the Storage page, view the storage address.'."\n"
."\n"
.'> If you leave this parameter empty, the auxiliary media asset is uploaded to the default storage address. If you specify this parameter, the auxiliary media asset is uploaded to the specified storage address.'."\n", 'type' => 'string', 'required' => false, 'example' => 'out-****.oss-cn-shanghai.aliyuncs.com', 'title' => ''],
],
[
'name' => 'Description',
'in' => 'query',
'schema' => ['description' => 'The description of the auxiliary media asset. Take note of the following items:'."\n"
."\n"
.'* The description can be up to 1,024 bytes in length.'."\n"
.'* The value must be encoded in UTF-8.'."\n", 'type' => 'string', 'required' => false, 'example' => 'uploadTest', 'title' => ''],
],
[
'name' => 'UserData',
'in' => 'query',
'schema' => ['description' => 'The custom configurations. For example, you can specify callback configurations and upload acceleration configurations. The value must be a JSON string. For more information, see [Request parameters](~~86952#section-6fg-qll-v3w~~).'."\n"
."\n"
.'> * The callback configurations take effect only after you specify the HTTP callback URL and select the specific callback events in the ApsaraVideo VOD console. For more information about how to configure HTTP callback settings in the ApsaraVideo VOD console, see [Configure callback settings](~~86071~~).'."\n"
.'> * If you want to enable the upload acceleration feature, submit a ticket. For more information, see [Overview](~~55396~~). For more information about how to submit a ticket, see [Contact us](~~464625~~).', 'type' => 'string', 'required' => false, 'example' => '{"MessageCallback":{"CallbackURL":"http://example.aliyundoc.com"},"Extend":{"localId":"xxx","test":"www"}}', 'title' => ''],
],
[
'name' => 'CateIds',
'in' => 'query',
'schema' => ['description' => 'The ID of the category. Separate multiple IDs with commas (,). You can specify up to five IDs. You can use one of the following methods to obtain the ID:'."\n"
."\n"
.'* Log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com). In the left-side navigation pane, choose **Configuration Management** > **Media Management** > **Categories** to view the category ID of the media file.'."\n"
.'* Obtain the category ID from the response to the [AddCategory](~~AddCategory~~) operation that you call to create a category.'."\n"
.'* Obtain the category ID from the response to the [GetCategories](~~GetCategories~~) operation that you call to query categories.'."\n", 'type' => 'string', 'required' => false, 'example' => '1298****,0813****', 'title' => ''],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the application. Default value: **app-1000000**. If you have activated the multi-application service, specify the ID of the application to add the watermark template in the specified application. For more information, see [Overview](~~113600~~).'."\n", 'type' => 'string', 'required' => false, 'example' => 'app-****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.'."\n",
'type' => 'object',
'properties' => [
'FileURL' => ['description' => 'The URL of the auxiliary media asset file. The URL is an Object Storage Service (OSS) URL and does not contain the information used for URL signing.'."\n"
."\n"
.'You can use specify this value for the `FileUrl` parameter when you call the [AddWatermark](~~AddWatermark~~) operation to create a watermark template.'."\n", 'type' => 'string', 'example' => 'https://****.oss-cn-shanghai.aliyuncs.com/watermark/****.mov', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '73254DE5-F260-4720-D06856B63C01****', 'title' => ''],
'UploadAddress' => ['description' => 'The upload URL.'."\n"
."\n"
.'> The upload URL returned by this operation is Base64-encoded. Before you can use an SDK or an API operation to upload a media asset based on the upload URL, you must decode the upload URL by using the Base64 algorithm. You must parse the upload URL only if you use native OSS SDKs or OSS API for uploads.'."\n", 'type' => 'string', 'example' => 'LWNuLXNoYW5naGFpLmFsaXl1b****', 'title' => ''],
'MediaId' => ['description' => 'The ID of the auxiliary media asset.'."\n", 'type' => 'string', 'example' => '97dc17a5abc3668489b84ce9****', 'title' => ''],
'MediaURL' => ['description' => 'The URL of the auxiliary media asset.'."\n"
."\n"
.'If a domain name for Alibaba Cloud CDN is specified, a CDN URL is returned. Otherwise, an OSS URL is returned.'."\n"
."\n"
.'> If you enable the URL signing feature of ApsaraVideo VOD, you may be unable to access the returned URL of the auxiliary media asset by using a browser and the HTTP status code 403 may be returned. To resolve this issue, you can disable the [URL signing](~~86090~~) feature or [generate a signed URL](~~57007~~).'."\n", 'type' => 'string', 'example' => 'http://example.aliyundoc.com/watermark/****.mov?auth_key=****', 'title' => ''],
'UploadAuth' => ['description' => 'The upload credential.'."\n"
."\n"
.'> The upload credential returned by this operation is Base64-encoded. Before you can use an SDK or an API operation to upload a media asset based on the upload credential, you must decode the upload credential by using the Base64 algorithm. You must parse the upload credential only if you use native OSS SDKs or OSS API for uploads.'."\n", 'type' => 'string', 'example' => 'UzFnUjFxNkZ0NUIZTaklyNWJoQ00zdHF****', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"FileURL\\": \\"https://****.oss-cn-shanghai.aliyuncs.com/watermark/****.mov\\",\\n \\"RequestId\\": \\"73254DE5-F260-4720-D06856B63C01****\\",\\n \\"UploadAddress\\": \\"LWNuLXNoYW5naGFpLmFsaXl1b****\\",\\n \\"MediaId\\": \\"97dc17a5abc3668489b84ce9****\\",\\n \\"MediaURL\\": \\"http://example.aliyundoc.com/watermark/****.mov?auth_key=****\\",\\n \\"UploadAuth\\": \\"UzFnUjFxNkZ0NUIZTaklyNWJoQ00zdHF****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n https://****.oss-cn-shanghai.aliyuncs.com/watermark/****.mov\\n 73254DE5-F260-4720-D06856B63C01****\\n LWNuLXNoYW5naGFpLmFsaXl1b****\\n 97dc17a5abc3668489b84ce9****\\n http://example.aliyundoc.com/watermark/****.mov?auth_key=****\\n UzFnUjFxNkZ0NUI*****ZTaklyNWJoQ00zdHF\\n","errorExample":""}]',
'title' => 'CreateUploadAttachedMedia',
'description' => '* **Make sure that you understand the billing method and prices of ApsaraVideo VOD before you call this operation. You are charged storage fees after you upload media files to ApsaraVideo VOD. For more information, see [Billing of media asset storage](~~188308#section_e97\\_xrp_mzz~~). If you have activated the acceleration service, you are charged acceleration fees when you upload media files to ApsaraVideo VOD. For more information, see [Billing of acceleration traffic](~~188310#section_sta_zm2\\_tsv~~).**'."\n"
.'* You can call this operation only to obtain the upload URLs and credentials for media files and create media assets in ApsaraVideo VOD. You cannot call this operation to upload media files. For more information about how to upload media files by calling API operations, see [Upload media files by calling API operations](~~476208~~).'."\n"
.'* If the upload credential expires after 3,000 seconds, you can call the CreateUploadAttachedMedia operation again to obtain a new upload URL and a new upload credential.'."\n"
.'* You can configure a callback to receive an [AttachedMediaUploadComplete](~~103250~~) event notification to determine whether the upload is successful.'."\n"
.'* You must obtain a URL and a credential before you upload a media file to ApsaraVideo VOD. ApsaraVideo VOD supports multiple upload methods. Each method has different requirements on upload URLs and credentials. For more information, see [Upload URLs and credentials](~~55397~~).'."\n",
'requestParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-10T08:31:44.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:36:12.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:33:51.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateUploadAttachedMedia'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:CreateUploadAttachedMedia',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'CreateUploadImage' => [
'summary' => 'ApsaraVideo VOD returns the upload URL and credential to ensure authorization and security, prevent malicious uploads, and automatically create an image ID for management. Obtains an upload URL and an upload credential for uploading an audio or video file and generates the audio or video ID.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39817',
'abilityTreeNodes' => ['FEATUREvodVQ27S4'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'Title',
'in' => 'query',
'schema' => ['description' => 'The title of the image. The following rules apply:'."\n"
."\n"
.'* The title can be up to 128 characters in length.'."\n"
.'* The value must be encoded in UTF-8.'."\n", 'type' => 'string', 'required' => false, 'example' => 'mytitle', 'title' => ''],
],
[
'name' => 'ImageType',
'in' => 'query',
'schema' => ['description' => 'The type of the image. Valid values:'."\n"
."\n"
.'* **default**: the default image type.'."\n"
.'* **cover**: the thumbnail.'."\n"
."\n"
.'> You can manage only images of the **default** type in the ApsaraVideo VOD console.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'default', 'title' => ''],
],
[
'name' => 'ImageExt',
'in' => 'query',
'schema' => ['description' => 'The file name extension of the image. Valid values:'."\n"
."\n"
.'* **png** (default)'."\n"
.'* **jpg**'."\n"
.'* **jpeg**'."\n"
.'* **gif**'."\n", 'type' => 'string', 'required' => false, 'example' => 'png', 'title' => ''],
],
[
'name' => 'OriginalFileName',
'in' => 'query',
'schema' => ['description' => 'The name of the source file.'."\n"
."\n"
.'> The name must contain a file name extension. The file name extension is not case-sensitive.'."\n", 'type' => 'string', 'required' => false, 'example' => 'D:\\picture_01', 'title' => ''],
],
[
'name' => 'Tags',
'in' => 'query',
'schema' => ['description' => 'The tags of the image. The following rules apply:'."\n"
."\n"
.'* Each tag can be up to 32 characters in length.'."\n"
.'* You can specify a maximum of 16 tags for an image.'."\n"
.'* Separate multiple tags with commas (,).'."\n"
.'* The value must be encoded in UTF-8.'."\n", 'type' => 'string', 'required' => false, 'example' => 'Test', 'title' => ''],
],
[
'name' => 'StorageLocation',
'in' => 'query',
'schema' => ['description' => 'The storage address. Perform the following operations to obtain the storage address: Log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com). In the left-side navigation pane, choose **Configuration Management** > **Media Management** > **Storage**. On the Storage page, view the storage address.'."\n"
."\n"
.'> If you specify a storage address, media files are uploaded to the specified address.'."\n", 'type' => 'string', 'required' => false, 'example' => 'outin-****..oss-cn-shanghai.aliyuncs.com', 'title' => ''],
],
[
'name' => 'CateId',
'in' => 'query',
'schema' => ['description' => 'The category ID of the image. You can use one of the following methods to obtain the category ID:'."\n"
."\n"
.'* Log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com). In the left-side navigation pane, choose **Configuration Management** > **Media Management** > **Categories**. On the Categories page, you can view the category ID of the image.'."\n"
.'* Obtain the value of CateId from the response to the [AddCategory](~~56401~~) operation.'."\n"
.'* Obtain the value of CateId from the response to the [GetCategories](~~56406~~) operation.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '100036****', 'title' => ''],
],
[
'name' => 'UserData',
'in' => 'query',
'schema' => ['description' => 'The custom configurations, including callback configurations and upload acceleration configurations. The value must be a JSON string. For more information, see the "UserData: specifies the custom configurations for media upload" section of the [Request parameters](~~86952~~) topic.'."\n"
."\n"
.'> * The callback configurations take effect only after you specify the HTTP callback URL and select specific callback events in the ApsaraVideo VOD console. For more information about how to configure HTTP callback settings in the ApsaraVideo VOD console, see [Configure callback settings](~~86071~~).'."\n"
.'> * If you want to enable the upload acceleration feature, submit a ticket. For more information, see [Overview](~~55396~~). For more information about how to submit a ticket, see [Contact us](~~464625~~).', 'type' => 'string', 'required' => false, 'example' => '{"MessageCallback":{"CallbackURL":"http://example.aliyundoc.com"},"Extend":{"localId":"xxx","test":"www"}}', 'title' => ''],
],
[
'name' => 'Description',
'in' => 'query',
'schema' => ['description' => 'The description of the image.'."\n"
."\n"
.'* The description can be up to 1,024 characters in length.'."\n"
.'* The value must be encoded in UTF-8.'."\n", 'type' => 'string', 'required' => false, 'example' => 'Image upload test', 'title' => ''],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the application. Default value: **app-1000000**. For more information, see [Overview](~~113600~~).'."\n", 'type' => 'string', 'required' => false, 'example' => 'app-1000000', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
'FileURL' => ['description' => 'The OSS URL of the file. The URL does not contain the information used for URL signing. You can specify FileUrl when you call the [AddWatermark](~~98617~~) operation.'."\n", 'type' => 'string', 'example' => 'http://example.aliyundoc.com/cover/2017-34DB-4F4C-9373-003AA060****.png', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-AEF6-D7393642****', 'title' => ''],
'UploadAddress' => ['description' => 'The upload URL.'."\n"
."\n"
.'> The returned upload URL is a Base64-encoded URL. You must decode the Base64-encoded URL before you use an SDK or call an API operation to upload auxiliary media assets. You need to parse UploadAddress only if you use the OSS SDK or call an OSS API operation to upload auxiliary media assets.'."\n", 'type' => 'string', 'example' => 'eyJTZWN1cmuIjoiQ0FJU3p3TjF****', 'title' => ''],
'ImageURL' => ['description' => 'The URL of the image.'."\n"
."\n"
.'> If the returned URL is inaccessible from a browser and the HTTP 403 status code is returned, the URL signing feature in ApsaraVideo VOD is enabled. To resolve this issue, you can disable the [URL signing](~~86090~~) feature or [generate a signed URL](~~57007~~).'."\n", 'type' => 'string', 'example' => 'http://example.aliyundoc.com/cover/2017-34DB-4F4C-9373-003AA060****.png', 'title' => ''],
'ImageId' => ['description' => 'The ID of the image file.'."\n", 'type' => 'string', 'example' => '93ab850b4f6f46e91d24d81d4****', 'title' => ''],
'UploadAuth' => ['description' => 'The upload credential.'."\n"
."\n"
.'> The returned upload credential is a Base64-encoded value. You must decode the Base64-encoded credential before you use an SDK or call an API operation to upload auxiliary media assets. You need to parse UploadAuth only if you use the OSS SDK or call an OSS API operation to upload auxiliary media assets.'."\n", 'type' => 'string', 'example' => 'eyJFbmmRCI6Im****', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"FileURL\\": \\"http://example.aliyundoc.com/cover/2017-34DB-4F4C-9373-003AA060****.png\\",\\n \\"RequestId\\": \\"25818875-5F78-AEF6-D7393642****\\",\\n \\"UploadAddress\\": \\"eyJTZWN1cmuIjoiQ0FJU3p3TjF****\\",\\n \\"ImageURL\\": \\"http://example.aliyundoc.com/cover/2017-34DB-4F4C-9373-003AA060****.png\\",\\n \\"ImageId\\": \\"93ab850b4f6f46e91d24d81d4****\\",\\n \\"UploadAuth\\": \\"eyJFbmmRCI6Im****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n http://example.aliyundoc.com/cover/2017-34DB-4F4C-9373-003AA060****.png\\n 25818875-5F78-AEF6-D7393642****\\n eyJTZWN1cmuIjoiQ0FJU3p3TjF****\\n http://example.aliyundoc.com/cover/2017-34DB-4F4C-9373-003AA060****.png\\n 93ab850b4f6f46e91d24d81d4****\\n eyJFbmmRCI6Im****\\n","errorExample":""}]',
'title' => 'CreateUploadImage',
'description' => '* **Make sure that you understand the billing method and price of ApsaraVideo VOD before you call this operation. You are charged storage fees after you upload media files to ApsaraVideo VOD. For more information, see [Billing of media asset storage](~~188308#section_e97\\_xrp_mzz~~). If you have activated the acceleration service, you are charged acceleration fees when you upload media files to ApsaraVideo VOD. For more information, see [Billing of acceleration traffic](~~188310#section_sta_zm2\\_tsv~~).**'."\n"
.'* You must obtain a URL and a credential before you upload an image to ApsaraVideo VOD. ApsaraVideo VOD provides multiple upload methods. You can upload files by using server upload SDKs, client upload SDKs, URLs, Object Storage Service (OSS) API, or OSS SDKs. Each upload method has different requirements for obtaining upload URLs and credentials. For more information, see the "Usage notes" section of the [Upload URLs and credentials](~~55397~~) topic.'."\n"
.'* You cannot refresh the upload URL or credential when you upload images. If the image upload credential expires, you can call this operation to obtain a new upload URL and credential. By default, the validity period of an image upload credential is 3,000 seconds.'."\n"
.'* You can call the [CreateUploadAttachedMedia](~~98467~~) operation to upload image watermarks.'."\n"
.'* You can configure a callback for [ImageUploadComplete](~~91968~~) to receive notifications about the image upload status.'."\n",
'changeSet' => [
['createdAt' => '2025-07-10T08:32:24.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:36:11.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:33:56.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateUploadImage'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:CreateUploadImage',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'CreateUploadVideo' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39819',
'abilityTreeNodes' => ['FEATUREvodVQ27S4'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'CoverURL',
'in' => 'query',
'schema' => ['description' => 'The URL of the custom video cover.', 'type' => 'string', 'required' => false, 'example' => 'https://example.aliyundoc.com/image/D22F553TEST****.jpeg', 'title' => ''],
],
[
'name' => 'Description',
'in' => 'query',
'schema' => ['description' => 'The description of the media file that is displayed in ApsaraVideo VOD after the upload is complete.'."\n"
."\n"
.'- The description can be up to 1,024 characters in length.'."\n"
."\n"
.'- The value must be encoded in UTF-8.', 'type' => 'string', 'required' => false, 'example' => 'UploadTest', 'title' => ''],
],
[
'name' => 'FileName',
'in' => 'query',
'schema' => ['description' => 'The path of the source media file to upload.'."\n"
."\n"
.'- The file name must include an extension, which is case-insensitive.'."\n"
."\n"
.'- For a list of supported file extensions, see [Upload overview](~~55396~~).', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'D:\\video_01.mp4', 'title' => ''],
],
[
'name' => 'FileSize',
'in' => 'query',
'schema' => ['description' => 'The size of the source media file, in bytes.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '123', 'title' => ''],
],
[
'name' => 'Title',
'in' => 'query',
'schema' => ['description' => 'The title of the media file that is displayed in ApsaraVideo VOD after the upload is complete.'."\n"
."\n"
.'- The title can be up to 128 characters in length.'."\n"
."\n"
.'- The value must be encoded in UTF-8.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'UploadTest', 'title' => ''],
],
[
'name' => 'CateId',
'in' => 'query',
'schema' => ['description' => 'The category ID. You can obtain the category ID in one of the following ways:'."\n"
."\n"
.'- Log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com) and choose **Settings** > **Media Asset Management** > **Category Management** to view the category ID.'."\n"
."\n"
.'- The category ID is the value of the `CateId` parameter in the response to the [AddCategory](~~AddCategory~~) operation.'."\n"
."\n"
.'- The category ID is the value of the `CateId` parameter in the response to the [GetCategories](~~GetCategories~~) operation.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '100036****', 'title' => ''],
],
[
'name' => 'Tags',
'in' => 'query',
'schema' => ['description' => 'The tags of the media file.'."\n"
."\n"
.'- A maximum of 16 tags are supported.'."\n"
."\n"
.'- To add multiple tags, separate them with commas (,).'."\n"
."\n"
.'- A single tag can be up to 32 characters in length.'."\n"
."\n"
.'- The value must be encoded in UTF-8.', 'type' => 'string', 'required' => false, 'example' => 'tag1,tag2', 'title' => ''],
],
[
'name' => 'UserData',
'in' => 'query',
'schema' => ['description' => 'Custom settings in a JSON string format. This parameter lets you configure features such as message callbacks and upload acceleration. For more information, see [UserData](~~86952~~).'."\n"
."\n"
.'> - To use message callbacks, you must configure an HTTP callback URL and select the corresponding event types in the ApsaraVideo VOD console. Otherwise, the callback settings are ignored. If you do not specify a callback URL for subsequent tasks, event notifications are sent to the configured URL by default. For more information about how to configure HTTP callbacks in the console, see [Callback settings](~~86071~~).'."\n"
.'>'."\n"
.'> - To use the upload acceleration feature, you must [fill out a form on Yida](https://yida.alibaba-inc.com/o/ticketapply) to activate the feature. For more information, see [Upload-related instructions](~~55396~~).', 'type' => 'string', 'required' => false, 'example' => '{"MessageCallback":{"CallbackURL":"http://example.aliyundoc.com"},"Extend":{"localId":"*****","test":"www"}}', 'title' => ''],
],
[
'name' => 'TemplateGroupId',
'in' => 'query',
'schema' => ['description' => 'The ID of the transcoding template group. You can obtain the ID in one of the following ways:'."\n"
."\n"
.'- Log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com) and choose **Settings** > **Media Processing Settings** > **Transcoding Template Group** to view the transcoding template group ID.'."\n"
."\n"
.'- The ID is the value of the `TranscodeTemplateGroupId` parameter in the response to the [AddTranscodeTemplateGroup](~~102665~~) operation.'."\n"
."\n"
.'- The ID is the value of the `TranscodeTemplateGroupId` parameter in the response to the [ListTranscodeTemplateGroup](~~102669~~) operation.'."\n"
."\n"
.'> * If you specify both `WorkflowId` and `TemplateGroupId`, `WorkflowId` takes precedence.'."\n"
.'>'."\n"
.'> * If you do not specify this parameter, the default transcoding template group is used. If you specify this parameter, the specified template group is used.'."\n"
.'>'."\n"
.'> * If you set this parameter to the built-in **No Transcoding** template group, only the [UploadComplete](~~55630~~) event notification is sent after the upload. No [TranscodeComplete](~~55636~~) event notification is sent.'."\n"
.'>'."\n"
.'> * This parameter triggers an [asynchronous task](~~3027551~~). After the request is sent, the task is queued for background processing.'."\n"
.'>'."\n"
.'> * To ensure proper playback, if you use the built-in **No Transcoding** template group, only the following formats can be played directly without transcoding: MP4, FLV, MP3, M3U8, and WEBM. Other formats can only be stored (the format is determined by the extension in `FileName`). If you use Alibaba Cloud Player, its version must be 3.1.0 or later.', 'type' => 'string', 'required' => false, 'example' => '405477f9e214d19ea2c7c854****', 'title' => ''],
],
[
'name' => 'WorkflowId',
'in' => 'query',
'schema' => ['description' => 'The workflow ID. To view the workflow ID, log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com) and choose **Settings** > **Media Processing Settings** > **Workflow Management**.'."\n"
."\n"
.'> - If you specify both `WorkflowId` and `TemplateGroupId`, `WorkflowId` takes precedence. For more information, see [Workflows](~~115347~~).'."\n"
.'>'."\n"
.'> - This parameter triggers an [asynchronous task](~~3027551~~). After the request is sent, the task is queued for background processing.', 'type' => 'string', 'required' => false, 'example' => '613efff3887ec34af685714cc461****', 'title' => ''],
],
[
'name' => 'StorageLocation',
'in' => 'query',
'schema' => ['description' => 'The storage location. To view the storage location, log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com) and choose **Settings** > **Media Asset Management** > **Storage Management**.'."\n"
."\n"
.'> If you do not specify this parameter, the media file is uploaded to the default storage location. If no default storage location is specified, the file is uploaded to the first storage location in the list. If you specify this parameter, the file is uploaded to the specified storage location.', 'type' => 'string', 'required' => false, 'example' => 'out-****.oss-cn-shanghai.aliyuncs.com', 'title' => ''],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. Default value: **app-1000000**. For more information, see [Multi-application](~~113600~~).', 'type' => 'string', 'required' => false, 'example' => 'app-1000000', 'title' => ''],
],
[
'name' => 'ReferenceId',
'in' => 'query',
'schema' => ['description' => 'A custom ID. It can contain only lowercase letters, uppercase letters, digits, hyphens (-), and underscores (\\_). The ID must be 6 to 64 characters in length and must be unique for each user.', 'type' => 'string', 'example' => '123-123', 'title' => '', 'required' => false],
],
[
'name' => 'EnableFirstFrameCover',
'in' => 'query',
'schema' => ['type' => 'boolean', 'description' => '', 'title' => '', 'example' => ''],
],
[
'name' => 'GenerateThumbnail',
'in' => 'query',
'schema' => ['type' => 'boolean', 'description' => '', 'title' => '', 'example' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '25818875-5F78-4AF6-04D5-D7393642****', 'title' => ''],
'UploadAddress' => ['description' => 'The upload address.'."\n"
."\n"
.'> The upload address returned by this operation is Base64-encoded. You must Base64-decode the address before you use it to upload a media file. This parsing is required only when using an OSS SDK or an OSS API to upload files.', 'type' => 'string', 'example' => 'eyJTZWN1cml0a2VuIjoiQ0FJU3p3TjF****', 'title' => ''],
'VideoId' => ['description' => 'The ID of the media file. Use this ID as a request parameter for operations such as media asset management, media processing, and media moderation.', 'type' => 'string', 'example' => '93ab850b4f6f54b6e91d24d81d44****', 'title' => ''],
'UploadAuth' => ['description' => 'The upload credential.'."\n"
."\n"
.'> The upload credential returned by this operation is Base64-encoded. You must Base64-decode the credential before you use it to upload a media file. This parsing is required only when using an OSS SDK or an OSS API to upload files.', 'type' => 'string', 'example' => 'eyJFbmRwb2ludCI6Imm****', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'CreateUploadVideo',
'summary' => 'ApsaraVideo VOD provides an upload address and credential for secure and authorized uploads. Call this operation to obtain the upload address and credential, create a media ID (returned as VideoId), and set basic information for the media file.',
'description' => '- **Before you use this operation, make sure you understand the billing methods and pricing of ApsaraVideo VOD. Uploading a media file incurs media storage fees. For more information, see [Media storage billing](~~188308#section_e97_xrp_mzz~~). If you have enabled storage and transfer acceleration, you are also charged for upload acceleration. For more information, see [Storage and transfer acceleration billing](~~188310#section_sta_zm2_tsv~~). Storage fees are calculated after the file is successfully uploaded. Acceleration fees are charged for uploads after the feature is enabled. Calling this operation alone does not incur any charges.**'."\n"
."\n"
.'- Obtaining an upload address and credential is the first step for every upload to ApsaraVideo VOD. The service supports various upload methods, each with different requirements for obtaining the address and credential. For more information, see [Upload address and credential](~~55397~~).'."\n"
."\n"
.'- This operation only obtains the upload address, credential, and basic media information. It does not upload the media file itself. For a complete example of how to upload a media file by using an API, see [Upload a media file by using the ApsaraVideo VOD API](~~476208~~).'."\n"
."\n"
.'- You can call this operation to obtain the upload address and credential for both video and audio files. For more information, see [Upload address and credential](~~55397~~).'."\n"
."\n"
.'- If the upload credential expires (the default validity period is 3,000 seconds), call the [RefreshUploadVideo](~~RefreshUploadVideo~~) operation to obtain a new one.'."\n"
."\n"
.'- After the upload is complete, you can configure a callback to receive an [event notification](~~55396~~) or call the [GetMezzanineInfo](~~59624~~) operation to check the file status and verify that the upload was successful.'."\n"
."\n"
.'- Use the returned `VideoId` for media asset lifecycle management or media processing.',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the error codes that this operation can return.'."\n"
."\n"
.'|Error code|Error message|HTTP status code|Description|'."\n"
.'|---|---|---|---|'."\n"
.'|InvalidFileName.Extension|The specified FileName’s extension is illegal.|400|The error message returned because the file name extension in the FileName parameter is invalid. For more information about file name extensions supported in ApsaraVideo VOD, see [Overview](~~55396~~).|'."\n"
.'|IllegalCharacters|The specified $Parameter contains illegal emoticon or special characters.|400|The error message returned because the value of a request parameter such as Title, Description, or Tags contains emoticons.|'."\n"
.'|LengthExceededMax|The specified $Parameter length has exceeded $MaxLength bytes.|400|The error message returned because the value length of a request parameter such as Title, Description, or Tags exceeds the upper limit. For more information about the length limit of parameter values, see the description of the request parameters in this topic.|'."\n"
.'|TagsExceededMax|The specified Tags count has exceeded 16.|400|The error message returned because more than 16 tags were specified for the video.|'."\n"
.'|InvalidTemplateGroupId.NotFound|The TemplateGroupId does not exist.|404|The error message returned because the specified template group ID does not exist.|'."\n"
.'|InvalidStorage.NotFound|The StorageLocation does not exist.|404|The error message returned because the specified storage address does not exist. Log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com). Choose **Configuration Management** > **Media Management** > **Storage**. On the Storage page, check whether the storage address exists.|'."\n"
.'|Forbidden.InitFailed|Initialization of your account has failed while opening service.|403|The error message returned because your account failed to be initialized when the service was activated.|'."\n"
.'|AddVideoFailed|Adding video has failed due to some unknown error.|503|The error message returned because the video ID failed to be generated. Try again later.|',
'changeSet' => [
['createdAt' => '2025-07-10T08:31:55.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:35:58.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:34:20.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '80', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateUploadVideo'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:CreateUploadVideo',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4AF6-04D5-D7393642****\\",\\n \\"UploadAddress\\": \\"eyJTZWN1cml0a2VuIjoiQ0FJU3p3TjF****\\",\\n \\"VideoId\\": \\"93ab850b4f6f54b6e91d24d81d44****\\",\\n \\"UploadAuth\\": \\"eyJFbmRwb2ludCI6Imm****\\"\\n}","type":"json"}]',
],
'DecryptKMSDataKey' => [
'methods' => ['get', 'post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'abilityTreeCode' => '146055',
'abilityTreeNodes' => ['FEATUREvodMVRCEC'],
],
'parameters' => [
[
'name' => 'CipherText',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The ciphertext to be decrypted.', 'type' => 'string', 'required' => true, 'example' => 'DZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmaaSl+TztSIMe43nbTH/Z1Wr4XfLftKhAciUmDQXuMRl4WTvKhxjMThjK****'],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned results.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4A*****F6-D7393642CA58'],
'KeyId' => ['description' => 'The ID of the customer master key (CMK) that was used to decrypt the ciphertext.'."\n", 'type' => 'string', 'example' => '202b9877-5a25-46e3-a763-e20791b5****'],
'Plaintext' => ['description' => 'The plaintext that is generated after decryption.'."\n", 'type' => 'string', 'example' => 'tRYXuCwgja12xxO1N/gZERDDCLw9doZEQiPDk/Bv****'],
],
],
],
],
'errorCodes' => [
403 => [
['errorCode' => 'EntityNotExist.Role', 'errorMessage' => 'AliyunVODDefaultRole is not authorized by your account.', 'description' => 'The AliyunVODDefaultRole does not have permissions to access the resources. Authorize the role based on the documentation.'],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4A*****F6-D7393642CA58\\",\\n \\"KeyId\\": \\"202b9877-5a25-46e3-a763-e20791b5****\\",\\n \\"Plaintext\\": \\"tRYXuCwgja12xxO1N/gZERDDCLw9doZEQiPDk/Bv****\\"\\n}","type":"json"}]',
'title' => 'DecryptKMSDataKey',
'summary' => 'Decrypts the ciphertext specified by CiphertextBlob in the Key Management Service (KMS) data key.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DecryptKMSDataKey'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DecryptKMSDataKey',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DeleteAIImageInfos' => [
'summary' => 'Deletes the information about one or more images that are submitted for AI processing.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39822',
'abilityTreeNodes' => ['FEATUREvodIPBMLH'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'AIImageInfoIds',
'in' => 'query',
'schema' => ['description' => 'The IDs of the images that are submitted for AI processing. You can obtain the value of AIImageInfoId from the response to the [ListAIImageInfo](~~ListAIImageInfo~~) operation.'."\n"
."\n"
.'- You can specify a maximum of 10 IDs.'."\n"
.'- Separate multiple IDs with commas (,).', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'b89a6aabf144*****6197ebd6fe6cf29', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned data.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'FCDC80EA-363C-41*****B8-0DF14033D643', 'title' => ''],
],
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"FCDC80EA-363C-41*****B8-0DF14033D643\\"\\n}","errorExample":""},{"type":"xml","example":"\\n FCDC80EA-363C-41*****B8-0DF14033D643\\n","errorExample":""}]',
'title' => 'DeleteAIImageInfos',
'description' => '* Regions that support this operation: **China (Beijing)** and **China (Shanghai)**.'."\n"
.'* This operation deletes only information about images that are submitted for AI processing. The image files are not deleted.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-10T08:31:44.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:35:50.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:34:07.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteAIImageInfos'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteAIImageInfos',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DeleteAITemplate' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39823',
'abilityTreeNodes' => ['FEATUREvodW76Z9M'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'TemplateId',
'in' => 'query',
'schema' => ['description' => 'The ID of the AI template. You can use one of the following methods to obtain the ID of the AI template:'."\n"
."\n"
.'* Call the [AddAITemplate](~~102930~~) operation to add an AI template if no AI template exists. The value of TemplateId in the response is the ID of the AI template.'."\n"
.'* Call the [ListAITemplate](~~102936~~) operation if the template already exists. The value of TemplateId in the response is the ID of the AI template.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '1706a0063dd733f6a823ef32e0a5****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.'."\n",
'type' => 'object',
'properties' => [
'TemplateId' => ['description' => 'The ID of the AI template.'."\n", 'type' => 'string', 'example' => '1706a0063dd733f6a823ef32e0a5****', 'title' => ''],
'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4A13-BEF6-****', 'title' => ''],
],
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DeleteAITemplate',
'summary' => 'Deletes an AI template.',
'description' => '* Regions that support this operation: **China (Beijing)**, **China (Shanghai)**, and **Singapore**.'."\n"
.'* You cannot delete an AI template that is set as the default template.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-10T08:31:34.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:36:04.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:33:59.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteAITemplate'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteAITemplate',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"type":"json","example":"{\\n \\"TemplateId\\": \\"1706a0063dd733f6a823ef32e0a5****\\",\\n \\"RequestId\\": \\"25818875-5F78-4A13-BEF6-****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 1706a0063dd733f6a823ef32e0a5****\\n 25818875-5F78-4A13-BEF6-****\\n","errorExample":""}]',
],
'DeleteAppInfo' => [
'summary' => 'Deletes the information about applications.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'delete',
'abilityTreeCode' => '39824',
'abilityTreeNodes' => ['FEATUREvodHJ3KAX'],
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the application. Default value: **app-1000000**. For more information, see [Overview](~~113600~~).'."\n", 'type' => 'string', 'required' => true, 'example' => 'app-****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned data.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4A13-BEF6-****', 'title' => ''],
],
'title' => '',
],
],
],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4A13-BEF6-****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 25818875-5F78-4A13-BEF6-****\\n","errorExample":""}]',
'title' => 'DeleteAppInfo',
'description' => 'Application with resources can not be deleted.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return.'."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| OperationDenied.NotOpenAppService | The app service is not open. | 403 | The error message returned because the multi-application service has not been activated. |'."\n"
.'| Forbidden.OperateApp | User not authorized to operate app. | 403 | The error message returned because you are not authorized to manage the application. |'."\n"
.'| Forbidden.ResourceNotEmpty | The App: app-**** has **** resource, can not be deleted. | 403 | The error message returned because the application has resources. |',
'changeSet' => [
['createdAt' => '2025-07-10T08:31:46.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:35:40.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:33:52.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteAppInfo'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteAppInfo',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DeleteAttachedMedia' => [
'summary' => 'Deletes auxiliary media assets from ApsaraVideo VOD. You can delete one or more auxiliary media assets such as watermark images, subtitle files, and materials in a batch.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39826',
'abilityTreeNodes' => ['FEATUREvod8R2V42'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'MediaIds',
'in' => 'query',
'schema' => ['description' => 'The ID of the auxiliary media asset that you want to delete.'."\n"
."\n"
.'* Separate multiple IDs with commas (,). You can specify up to 20 IDs.'."\n"
.'* You can obtain the ID from the response to the [CreateUploadAttachedMedia](~~CreateUploadAttachedMedia~~) operation that you call to obtain the upload URL and credential.'."\n", 'type' => 'string', 'required' => true, 'example' => '8bc8e94fe4e55abde85718****,eb186180e989dd56****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned results.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4AF6-D7393642CA58****', 'title' => ''],
'NonExistMediaIds' => [
'description' => 'The IDs of the auxiliary media assets that failed to be deleted.'."\n",
'type' => 'array',
'items' => ['description' => 'The ID of the auxiliary media asset that failed to be deleted.'."\n", 'type' => 'string', 'example' => '["8bc8e94fe4e55abde85718****"]', 'title' => ''],
'title' => '',
],
],
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4AF6-D7393642CA58****\\",\\n \\"NonExistMediaIds\\": [\\n \\"[\\\\\\"8bc8e94fe4e55abde85718****\\\\\\"]\\"\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 25818875-5F78-4AF6-D7393642CA58****\\n [\\"8bc8e94fe4e55abde85718****\\"]\\n","errorExample":""}]',
'title' => 'DeleteAttachedMedia',
'description' => '* **This operation physically deletes auxiliary media assets. You cannot recover the auxiliary media assets that you deleted. Exercise caution when you call this operation.**'."\n"
.'* You can delete a maximum of 20 auxiliary media assets in one request.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2025-07-10T08:31:44.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:36:12.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:33:32.000Z', 'description' => 'OpenAPI offline'],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteAttachedMedia',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteAttachedMedia'],
],
],
],
'DeleteCategory' => [
'summary' => 'Deletes a category and its subcategories.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39827',
'abilityTreeNodes' => ['FEATUREvodUYOK6S'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'CateId',
'in' => 'query',
'schema' => ['description' => 'The ID of the category. You can specify only one ID. You can use one of the following methods to obtain the ID:'."\n"
."\n"
.'* Log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com). Choose **Configuration Management** > **Media Management** > **Categories**. On the Audio and Video / Image Category or Short Video Material Category tab, view the category ID.'."\n"
.'* Obtain the category ID from the response to the [AddCategory](~~AddCategory~~) operation.'."\n"
."\n"
.'> If you specify the ID of a parent category, all subcategories under the parent category are deleted at the same time.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => true, 'docRequired' => true, 'example' => '3300****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4AF6-D7393642CA58****', 'title' => ''],
],
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DeleteCategory',
'description' => '* **After you call this operation to delete a category, all subcategories including level 2 and level 3 categories are deleted at the same time. Exercise caution when you call this operation.**'."\n"
.'* If you have classified specific media resources to a category, the category names labeled on these media resources are automatically deleted when you delete the category.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return.'."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| InvalidCateId.NotFound | The CateId not exist. | 404 | The error message returned because the specified category ID does not exist. |',
'changeSet' => [
['createdAt' => '2025-07-10T08:31:33.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:35:59.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:34:05.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteCategory'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteCategory',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4AF6-D7393642CA58****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 25818875-5F78-4AF6-D7393642CA58****\\n","errorExample":""}]',
],
'DeleteDynamicImage' => [
'summary' => 'Deletes the information about animated stickers.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39831',
'abilityTreeNodes' => ['FEATUREvod3O95DN'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'VideoId',
'in' => 'query',
'schema' => ['description' => 'The ID of the video associated with the animated stickers whose information you want to delete.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '2321077d460b028700ef6c2f4d****', 'title' => ''],
],
[
'name' => 'DynamicImageIds',
'in' => 'query',
'schema' => ['description' => 'The IDs of the animated stickers.'."\n"
."\n"
.'- Separate multiple IDs with commas (,). You can specify a maximum of 10 IDs.'."\n"
.'- If you do not set this parameter, the system finds the video specified by the VideoId parameter and deletes the information about the animated stickers associated with the video. If more than 10 animated stickers are associated with the video specified by the VideoId parameter, the deletion request is denied.', 'type' => 'string', 'required' => false, 'example' => 'beafec3834a4e52ea52042a4****,8281c8519847fd8970e79e80b6****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '0C8F0FDD-A99F-4188-B41934C97A54****', 'title' => ''],
],
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DeleteDynamicImage',
'description' => '> This operation deletes only the information about animated stickers, but not the animated stickers themselves.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2025-07-10T08:32:08.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:36:04.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:33:51.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDynamicImage'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteDynamicImage',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0C8F0FDD-A99F-4188-B41934C97A54****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0C8F0FDD-A99F-4188-B41934C97A54****\\n","errorExample":""}]',
],
'DeleteEditingProject' => [
'summary' => 'Deletes online editing projects.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39832',
'abilityTreeNodes' => ['FEATUREvod8R2V42'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'ProjectIds',
'in' => 'query',
'schema' => ['description' => 'The ID of the online editing project. Separate multiple IDs with commas (,).'."\n", 'type' => 'string', 'required' => true, 'example' => 'fb2101bf24bf41*****cb318787dc', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4A*****F6-D7393642CA58', 'title' => ''],
],
'description' => '',
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4A*****F6-D7393642CA58\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 25818875-5F78-4A*****F6-D7393642CA58\\r\\n","errorExample":""}]',
'title' => 'DeleteEditingProject',
'description' => '* You can call this operation to delete multiple online editing projects at a time.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-10T08:31:39.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:35:43.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:34:08.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteEditingProject'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteEditingProject',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DeleteEditingProjectMaterials' => [
'summary' => 'Deletes the materials to be edited for an online editing project.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39833',
'abilityTreeNodes' => ['FEATUREvod8R2V42'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'ProjectId',
'in' => 'query',
'schema' => ['description' => 'The ID of the online editing project.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '198236101*****1093374', 'title' => ''],
],
[
'name' => 'MaterialIds',
'in' => 'query',
'schema' => ['description' => 'The material ID. Separate multiple material IDs with commas (,).', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '9e3101bf24bf41c*****123318788ca', 'title' => ''],
],
[
'name' => 'MaterialType',
'in' => 'query',
'schema' => ['description' => 'The type of the material. Valid values:'."\n"
."\n"
.'* **video**'."\n"
.'* **audio**'."\n"
.'* **image**'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'video', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '746FFA07-8BBB-46*****B1-3E94E3B2915E', 'title' => ''],
],
'description' => '',
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DeleteEditingProjectMaterials',
'changeSet' => [
['createdAt' => '2025-07-10T08:31:47.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:35:58.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:33:52.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteEditingProjectMaterials'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteEditingProjectMaterials',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"746FFA07-8BBB-46*****B1-3E94E3B2915E\\"\\n}","type":"json"}]',
],
'DeleteImage' => [
'summary' => 'Deletes uploaded images and video snapshots that are automatically captured.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39834',
'abilityTreeNodes' => ['FEATUREvod8R2V42'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'DeleteImageType',
'in' => 'query',
'schema' => ['description' => 'The method that is used to delete images. Valid values:'."\n"
."\n"
.'* **ImageURL**: deletes images based on URLs.'."\n"
.'* **ImageId**: deletes images based on image IDs.'."\n"
.'* **VideoId**: deletes images associated with a video based on the video ID.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'VideoId', 'title' => ''],
],
[
'name' => 'ImageURLs',
'in' => 'query',
'schema' => ['description' => 'The URL of the image. You can obtain the value of `ImageURL` from the response to the [CreateUploadImage](~~CreateUploadImage~~) operation. You can specify up to 20 URLs and separate them with commas (,).'."\n"
."\n"
.'> This parameter takes effect and is required only if you set **DeleteImageType** to **ImageURL**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'https://example.aliyundoc.com/image/default/41AE7ADABBE*****.png', 'title' => ''],
],
[
'name' => 'ImageIds',
'in' => 'query',
'schema' => ['description' => 'The ID of the image. You can specify up to 20 image IDs and separate them with commas (,). You can use one of the following methods to obtain the image ID:'."\n"
."\n"
.'* Log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com). In the left-side navigation pane, choose **Media Files** > **Image** to view the image ID.'."\n"
.'* Obtain the image ID from the response to the [CreateUploadImage](~~CreateUploadImage~~) operation that you call to obtain the upload credential and URL.'."\n"
.'* Obtain the image ID from the response to the [SearchMedia](~~SearchMedia~~) operation that you call to query images.'."\n"
."\n"
.'> This parameter takes effect and is required only if you set **DeleteImageType** to **ImageId**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'bbc65bba53fed90de118a7849****,594228cdd14b4d069fc17a8c4a****', 'title' => ''],
],
[
'name' => 'VideoId',
'in' => 'query',
'schema' => ['description' => 'The ID of the video. You can specify only one ID. You can use one of the following methods to obtain the ID:'."\n"
."\n"
.'* Log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com). In the left-side navigation pane, choose **Media Files** > **Audio/Video**. On the Video and Audio page, view the ID of the media file.'."\n"
.'* Obtain the video ID from the response to the [CreateUploadVideo](~~CreateUploadVideo~~) operation that you call to obtain the upload credential and URL.'."\n"
.'* Obtain the video ID from the response to the [SearchMedia](~~SearchMedia~~) operation that you call to query videos.'."\n"
."\n"
.'> This parameter takes effect and is required only if you set **DeleteImageType** to **VideoId**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'eb1861d2c9a8842340e989dd56****', 'title' => ''],
],
[
'name' => 'ImageType',
'in' => 'query',
'schema' => ['description' => 'The type of images that you want to delete. The images are associated with the video. Valid values:'."\n"
."\n"
.'* **CoverSnapshot**: thumbnail snapshot.'."\n"
.'* **NormalSnapshot**: regular snapshot.'."\n"
.'* **SpriteSnapshot**: sprite snapshot.'."\n"
.'* **SpriteOriginSnapshot**: sprite source snapshot.'."\n"
.'* **All**: images of all the preceding types. You can specify multiple types other than `All` for this parameter. Separate multiple types with commas (,).'."\n"
."\n"
.'> This parameter takes effect and is required only if you set **DeleteImageType** to **VideoId**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'All', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4AF6-D7393642CA58****', 'title' => ''],
],
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4AF6-D7393642CA58****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 25818875-5F78-4AF6-D7393642CA58****\\n","errorExample":""}]',
'title' => 'DeleteImage',
'description' => '* **After you call this operation to delete an image, the source file is permanently deleted and cannot be recovered. Exercise caution when you call this operation.**'."\n"
.'* If some images are cached on Alibaba Cloud CDN points of presence (POPs), the image URLs do not immediately become invalid.'."\n"
.'* You can call this operation to delete uploaded images and video snapshots.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return.'."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| NoSuchResource | The specified resource does not exist. | 404 | The error message returned because the specified image does not exist. |',
'changeSet' => [
['createdAt' => '2025-07-10T08:31:33.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:36:12.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:33:38.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteImage'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteImage',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DeleteMessageCallback' => [
'summary' => 'Deletes the callback method, callback URL, and event type of an event notification.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39838',
'abilityTreeNodes' => ['FEATUREvod9NUA3V'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the application. If you do not set this parameter, the default value **app-1000000** is used.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'app-1000000', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4A13-****-D7393642CA58', 'title' => ''],
],
'description' => '',
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DeleteMessageCallback',
'description' => '> For more information, see [Overview](~~55627~~).'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2025-07-10T08:31:31.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:36:19.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:33:39.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteMessageCallback'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteMessageCallback',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4A13-****-D7393642CA58\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 25818875-5F78-4A13-****-D7393642CA58\\r\\n","errorExample":""}]',
],
'DeleteMezzanines' => [
'summary' => 'Deletes the source files for one or more audio or video files.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39839',
'abilityTreeNodes' => ['FEATUREvod8R2V42'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'VideoIds',
'in' => 'query',
'schema' => ['description' => 'The IDs of the audio or video files whose source files are to be deleted. You can specify up to 20 IDs. Separate multiple IDs with commas (,). Obtain the IDs in one of the following ways:'."\n"
."\n"
.'- For audio or video files uploaded in the console, log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com) and choose **Media Library** > **Audio/Video** to view the IDs.'."\n"
."\n"
.'- The audio or video ID is the value of the VideoId parameter in the response to the [CreateUploadVideo](~~55407~~) operation.'."\n"
."\n"
.'- After an audio or video file is uploaded, you can call the [SearchMedia](~~86044~~) operation to query the audio or video ID. The ID is the value of the VideoId parameter in the response.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'title' => '', 'example' => '23ab850b4f654b6e91d24d8157****,93ab850b4f6f4b6e91d24d81d4****'],
],
[
'name' => 'Force',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to force delete the source file. Valid values:'."\n"
."\n"
.'- **false**: No. This is the default value.'."\n"
."\n"
.'- **true**: Yes.'."\n"
."\n"
.'> If the video transcoding mode is no transcoding or asynchronous transcoding, the source file is used for playback in the original quality. By default, you cannot delete the source file of the video. To force delete the source file, set this parameter to **true**.', 'type' => 'boolean', 'required' => false, 'title' => '', 'example' => 'false'],
],
[
'name' => 'ReferenceIds',
'in' => 'query',
'schema' => ['type' => 'string', 'title' => '', 'description' => 'The list of custom IDs. You can specify up to 20 IDs. Separate multiple IDs with commas (,).', 'required' => false, 'example' => '123-123,1234-1234'],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned data.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '25818875-5F78-4AF6-D7393642CA58****'],
'UnRemoveableVideoIds' => [
'description' => 'The list of IDs of audio or video files that cannot be deleted.'."\n"
."\n"
.'> Deletion may fail because the source file is used for playback in original quality or because you lack the required [permissions](~~113600~~). If the video transcoding mode is no transcoding or asynchronous transcoding, the source file is used for playback in original quality and cannot be deleted by default.',
'type' => 'array',
'items' => ['description' => 'The list of IDs of audio or video files that cannot be deleted.'."\n"
."\n"
.'> Deletion may fail because the source file is used for playback in original quality or because you lack the required [permissions](~~113600~~). If the video transcoding mode is no transcoding or asynchronous transcoding, the source file is used for playback in original quality and cannot be deleted by default.', 'type' => 'string', 'title' => '', 'example' => '23ab850b4f6f44b6e91d24d8157****'],
'title' => '',
'example' => '',
],
'NonExistVideoIds' => [
'description' => 'A list of IDs of audio or video files that do not exist.',
'type' => 'array',
'items' => ['description' => 'A list of IDs of audio or video files that do not exist.', 'type' => 'string', 'title' => '', 'example' => '93ab850b4f6f4b6e91d24d81d4****'],
'title' => '',
'example' => '',
],
'NonExistReferenceIds' => [
'type' => 'array',
'items' => ['type' => 'string', 'description' => 'A list of custom IDs that do not exist.', 'title' => '', 'example' => '123-123'],
'description' => 'A list of custom IDs that do not exist.',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4AF6-D7393642CA58****\\",\\n \\"UnRemoveableVideoIds\\": [\\n \\"23ab850b4f6f44b6e91d24d8157****\\"\\n ],\\n \\"NonExistVideoIds\\": [\\n \\"93ab850b4f6f4b6e91d24d81d4****\\"\\n ],\\n \\"NonExistReferenceIds\\": [\\n \\"123-123\\"\\n ]\\n}","type":"json"}]',
'title' => 'DeleteMezzanines',
'description' => 'All media processing operations in ApsaraVideo VOD, such as transcoding, snapshotting, and reviewing, are performed on source files. If a source file is deleted, subsequent media processing operations cannot be performed. Therefore, delete source files with caution.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-10T08:31:15.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:36:12.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:33:37.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteMezzanines'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteMezzanines',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DeleteMultipartUpload' => [
'summary' => 'Deletes the parts generated during an upload.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39840',
'abilityTreeNodes' => ['FEATUREvod8R2V42'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'MediaId',
'in' => 'query',
'schema' => ['description' => 'The ID of the media file (VideoId). You can use one of the following methods to obtain the ID:'."\n"
."\n"
.'* After you upload a video in the [ApsaraVideo VOD console](https://vod.console.aliyun.com), you can log on to the ApsaraVideo VOD console and choose **Media Files** > **Audio/Video** to view the ID of the video.'."\n"
.'* Obtain the value of VideoId from the response to the [CreateUploadVideo](~~55407~~) operation that you called to obtain the upload URL and credential.'."\n"
.'* Obtain the value of VideoId from the response to the [SearchMedia](~~86044~~) operation that you called to query media information after the audio or video file is uploaded.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '61ccbdb06fa3012be4d8083f6****', 'title' => ''],
],
[
'name' => 'MediaType',
'in' => 'query',
'schema' => ['description' => 'The type of the media file. Set the value to **video**. video indicates audio and video files.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'video', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned results.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4AF6-D7393642CA58****', 'title' => ''],
],
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4AF6-D7393642CA58****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 25818875-5F78-4AF6-D7393642CA58****\\n","errorExample":""}]',
'title' => 'DeleteMultipartUpload',
'description' => '* During multipart upload, useless parts may be retained if the upload fails. These useless parts are automatically deleted after 7 days. You can call this operation to delete the generated parts after the upload is successful or fails.'."\n"
.'* This operation does not delete the source file or transcoded file, but deletes only the parts generated during the upload.'."\n"
.'* If you call the [DeleteVideo](~~52837~~) operation, the entire video file is deleted, including the generated parts.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return. '."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| InvalidParameter | The specified parameter "MediaType" is invalid. | 400 | The error message returned because the MediaType parameter is invalid. |'."\n"
.'| InvalidMultipartUpload.NotFound | The multipart upload not exist. | 400 | The error message returned because the fragments do not exist. |'."\n"
.'| InvalidVideo.NotFound | The video does not exist. | 400 | The error message returned because the video does not exist. |'."\n"
.'| InvalidFile.NotFound | The file does not exist. | 400 | The error message returned because the video file does not exist. |'."\n"
.'| InvalidStorage.NotFound | can\'t find storage. | 400 | The error message returned because the specified storage location does not exist. |'."\n"
.'| AccessDenied | Access denied by authorizer\'s policy. | 400 | The error message returned because ApsaraVideo VOD is not authorized to access the self-managed Object Storage Service (OSS) bucket and you are not authorized to perform the operation. |',
'changeSet' => [
['createdAt' => '2025-07-10T08:31:43.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:36:04.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:33:23.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteMultipartUpload'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteMultipartUpload',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DeleteStream' => [
'summary' => 'Deletes the information and stored files that are associated with media streams, such as video and audio streams.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39842',
'abilityTreeNodes' => ['FEATUREvod8R2V42'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'JobIds',
'in' => 'query',
'schema' => ['description' => 'The IDs of the transcoding jobs for the media streams. You can specify one or more job IDs.'."\n"
."\n"
.'- Separate multiple IDs with commas (,). You can specify up to 20 job IDs for a single video.'."\n"
."\n"
.'- You can obtain the job ID from the PlayInfo struct returned by the [GetPlayInfo](~~56124~~) operation. Each media stream has a unique job ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'title' => '', 'example' => '35eb4dbda18c49cc0025df374b46****'],
],
[
'name' => 'VideoId',
'in' => 'query',
'schema' => ['description' => 'The ID of the video. You can obtain the video ID in one of the following ways:'."\n"
."\n"
.'- For a video uploaded in the console, log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com) and choose **Media Files** > **Audio/Video** to view the video ID.'."\n"
."\n"
.'- The value of VideoId in the response to the [CreateUploadVideo](~~55407~~) operation.'."\n"
."\n"
.'- The value of VideoId in the response to the [SearchMedia](~~86044~~) operation, which you can call after the video is uploaded.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'title' => '', 'example' => '95948ddba24446b6aed5db985e78****'],
],
[
'name' => 'ReferenceId',
'in' => 'query',
'schema' => ['type' => 'string', 'title' => '', 'description' => 'The custom ID. The ID can contain only lowercase letters, uppercase letters, digits, hyphens (-), and underscores (\\_). It must be 6 to 64 characters in length and unique for each user.', 'required' => false, 'example' => '123-123'],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '25818875-5F78-4A7U43F6-D7393642****'],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4A7U43F6-D7393642****\\"\\n}","type":"json"}]',
'title' => 'DeleteStream',
'description' => '### Usage notes'."\n"
."\n"
.'This operation supports batch deletion.'."\n"
."\n"
.'### QPS limits'."\n"
."\n"
.'The queries-per-second (QPS) limit for this operation is 50 for each user. If you exceed the limit, API calls are throttled, which can impact your business. We recommend that you call this operation at a reasonable rate. For more information, see [QPS limits](~~342790~~).',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return.'."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| JobIdsExceededMax | The JobIds exceeded maximum. | 400 | The error message returned because the list of job IDs exceeds the maximum length. |'."\n"
.'| InvalidVideo.NotFound | The video does not exist. | 404 | The error message returned because the video does not exist. |'."\n"
.'| InvalidStream.NotFound | The stream does not exist. | 404 | The error message returned because the media stream does not exist. |'."\n"
.'| DeleteStreamFailed | Deleting stream has failed due to some unknown error. | 503 | The error message returned because the system failed to delete the media stream. Try again later. |',
'changeSet' => [
['createdAt' => '2025-07-10T08:31:37.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:35:58.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:34:04.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteStream'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteStream',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DeleteTranscodeTemplateGroup' => [
'summary' => 'Deletes one or more transcoding templates from a transcoding template group or forcibly deletes a transcoding template group.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39844',
'abilityTreeNodes' => ['FEATUREvodL077M7'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'TranscodeTemplateGroupId',
'in' => 'query',
'schema' => ['description' => 'The ID of the transcoding template group.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '4c71a339fec*****152b4fa6f4527', 'title' => ''],
],
[
'name' => 'TranscodeTemplateIds',
'in' => 'query',
'schema' => ['description' => 'The IDs of the transcoding templates that you want to delete.'."\n"
."\n"
.'* Separate multiple IDs with commas (,).'."\n"
.'* You can specify a maximum of 10 IDs.'."\n"
.'* This parameter is required if you set ForceDelGroup to false or leave ForceDelGroup empty.'."\n", 'type' => 'string', 'required' => false, 'example' => '["613702defdc4*****6a3b94cace1129e","bfd6c90253a2*****7fc054d7c5825"]', 'title' => ''],
],
[
'name' => 'ForceDelGroup',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to forcibly delete the transcoding template group. Valid values:'."\n"
."\n"
.'* **true**: deletes the transcoding template group and all the transcoding templates in the group.'."\n"
.'* **false** (default): deletes only the specified transcoding templates from the transcoding template group.'."\n", 'type' => 'string', 'required' => false, 'example' => 'true', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4A*****F6-D7393642CA58', 'title' => ''],
'NonExistTranscodeTemplateIds' => [
'description' => 'The IDs of transcoding templates that were not found.'."\n",
'type' => 'array',
'items' => ['description' => 'The ID of the transcoding template that was not found.'."\n", 'type' => 'string', 'example' => '["613702defdc4*****6a3b94cace1129e","bfd6c90253a2*****7fc054d7c5825"]', 'title' => ''],
'title' => '',
],
],
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DeleteTranscodeTemplateGroup',
'description' => '* You cannot call this operation to delete the default transcoding template. You can delete the transcoding template when it is no longer specified as the default one.'."\n"
.'* For security purposes, you cannot add, modify, or delete transcoding templates in a transcoding template group that is locked. To check whether a transcoding template group is locked, call the [GetTranscodeTemplateGroup](~~GetTranscodeTemplateGroup~~) operation and obtain the Locked parameter from the response. To modify transcoding templates within a locked transcoding template group, you must call the [UpdateTranscodeTemplateGroup](~~UpdateTranscodeTemplateGroup~~) operation to unlock the transcoding template group first.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return.'."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| InvalidTranscodeTemplateGroup.NotFound | The transcode template does not exist. | 404 | The error message returned because the specified transcoding template group does not exist. |'."\n"
.'| Forbidden.LockedTemplateGroup | The transcode template group has been locked. | 403 | The error message returned because the specified template group is locked and cannot be managed. To manage the template group, contact the ApsaraVideo VOD technical support. |'."\n"
.'| Forbidden.DefaultTemplateGroup | The transcode template group is default. | 403 | The error message returned because the specified transcoding template group is the default one that cannot be deleted. |',
'changeSet' => [
['createdAt' => '2025-07-10T08:31:20.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:35:40.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:33:49.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteTranscodeTemplateGroup'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteTranscodeTemplateGroup',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4A*****F6-D7393642CA58\\",\\n \\"NonExistTranscodeTemplateIds\\": [\\n \\"[\\\\\\"613702defdc4*****6a3b94cace1129e\\\\\\",\\\\\\"bfd6c90253a2*****7fc054d7c5825\\\\\\"]\\"\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 25818875-5F78-4A*****F6-D7393642CA58\\n 613702defdc4*****6a3b94cace1129e\\n bfd6c90253a2*****7fc054d7c5825\\n","errorExample":""}]',
],
'DeleteVideo' => [
'summary' => 'Deletes a complete video, including its source file, transcoded streams, and thumbnails.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39846',
'abilityTreeNodes' => ['FEATUREvod8R2V42'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'VideoIds',
'in' => 'query',
'schema' => ['description' => 'A list of video IDs. You can specify one or more video IDs. Separate multiple IDs with commas (,). You can specify a maximum of 20 IDs. You can obtain video IDs in the following ways:'."\n"
."\n"
.'- For videos that are uploaded using the console, log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com) and choose **Media Files** > **Audio/Video** to view the video IDs.'."\n"
."\n"
.'- If you upload a video by calling the [CreateUploadVideo](~~55407~~) operation, the video ID is the value of the VideoId parameter in the response.'."\n"
."\n"
.'- After a video is uploaded, you can call the [SearchMedia](~~86044~~) operation to query the video ID. The video ID is the value of the VideoId parameter in the response.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'title' => '', 'example' => 'e44ebf1147hdsa2d2adbea8b****,e44ebf11oj984adbea8****,73ab850b4f6f4b6e91d24d81d54****'],
],
[
'name' => 'ReferenceIds',
'in' => 'query',
'schema' => ['type' => 'string', 'title' => '', 'description' => 'A list of custom IDs. You can specify one or more custom IDs. Separate multiple IDs with commas (,). You can specify a maximum of 20 IDs.', 'required' => false, 'example' => '123-123,1234-1234'],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'E4EBD2BF-5EB0-4476-8829-9D94E1B1****'],
'ForbiddenVideoIds' => [
'description' => 'A list of video IDs for which the operation is forbidden.'."\n"
."\n"
.'> This is usually because you do not have the required [permissions](~~113600~~).',
'type' => 'array',
'items' => ['description' => 'A list of video IDs for which the operation is forbidden.'."\n"
."\n"
.'> This is usually because you do not have the required [permissions](~~113600~~).', 'type' => 'string', 'title' => '', 'example' => '73ab850b4f6f4b6e91d24d81d54****'],
'title' => '',
'example' => '',
],
'NonExistVideoIds' => [
'description' => 'A list of video IDs that do not exist.',
'type' => 'array',
'items' => ['description' => 'A list of video IDs that do not exist.'."\n"
."\n"
.'> If some of the video IDs that you want to delete do not exist, the IDs of these videos are returned. If all the video IDs that you want to delete do not exist, a 404 error is reported.', 'type' => 'string', 'title' => '', 'example' => 'e44ebf1147hdsa2d2adbea8b****'],
'title' => '',
'example' => '',
],
'NonExistReferenceIds' => [
'type' => 'array',
'items' => ['type' => 'string', 'title' => '', 'description' => 'A list of custom IDs that do not exist.', 'example' => '123-123'],
'title' => '',
'description' => 'A list of custom IDs that do not exist.',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"E4EBD2BF-5EB0-4476-8829-9D94E1B1****\\",\\n \\"ForbiddenVideoIds\\": [\\n \\"73ab850b4f6f4b6e91d24d81d54****\\"\\n ],\\n \\"NonExistVideoIds\\": [\\n \\"e44ebf1147hdsa2d2adbea8b****\\"\\n ],\\n \\"NonExistReferenceIds\\": [\\n \\"123-123\\"\\n ]\\n}","type":"json"}]',
'title' => 'DeleteVideo',
'description' => '### Usage notes'."\n"
."\n"
.'- **This operation physically deletes the video. The video cannot be recovered. Proceed with caution.**'."\n"
."\n"
.'- This operation supports batch deletion.'."\n"
."\n"
.'- When you delete a video, its source file, transcoded streams, and thumbnails are also deleted. However, the CDN cache is not purged at the same time. If needed, you can use the purge feature in the ApsaraVideo VOD console to remove obsolete data from CDN nodes. For more information, see [Refresh and prefetch](~~86098~~).'."\n"
."\n"
.'### QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for a single user is 30. If you exceed this limit, API calls are throttled. This may affect your business. We recommend that you call this API operation at a reasonable rate. For more information, see [QPS limits](~~342790~~).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return. '."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| VideoIdsExceededMax | The VideoIds exceeded maximum. | 400 | The error message returned because the list of video IDs exceeds the maximum length. |'."\n"
.'| InvalidVideo.NotFound | The video does not exist. | 404 | The error message returned because the video does not exist. |'."\n"
.'| DeleteVideoFailed | Deleting video has failed due to some unknown error. | 503 | The error message returned because the system failed to delete the video. Try again later. |',
'changeSet' => [
['createdAt' => '2025-07-10T08:31:07.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:36:12.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:33:37.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteVideo'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteVideo',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DeleteVodDomain' => [
'summary' => 'Removes a domain name for CDN from ApsaraVideo VOD.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39847',
'abilityTreeNodes' => ['FEATUREvodHI57GB'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The domain name for CDN that you want to delete.'."\n", 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '15C66C7B-671A-4297-****-2C4477247A74', 'title' => ''],
],
'description' => '',
'title' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidDomainName.Malformed', 'errorMessage' => 'The specified DomainName is invalid.', 'description' => ''],
],
403 => [
['errorCode' => 'ServiceBusy', 'errorMessage' => 'The specified Domain is configuring, please retry later', 'description' => ''],
],
[
['errorCode' => 'InvalidDomain.NotFound', 'errorMessage' => 'The domain provided does not belong to you.', 'description' => ''],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DeleteVodDomain',
'description' => '> * This operation is available only in the **China (Shanghai)** region.'."\n"
.'> * After a domain name for CDN is removed from ApsaraVideo VOD, the domain name becomes unavailable. Proceed with caution. We recommend that you restore the A record at your DNS service provider before you remove the domain name for CDN.'."\n"
.'> * After you call this operation to remove a domain name for CDN from ApsaraVideo VOD, all records that are related to the domain name are deleted. If you only want to disable a domain name for CDN, call the [BatchStopVodDomain](~~120208~~) operation.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return.'."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| InvaildParameter | The specific value of parameter DomainName is malformed. | 400 | The error message returned because the value of the DomainName parameter is invalid. |',
'changeSet' => [
['createdAt' => '2025-07-16T06:25:05.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:35:50.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:33:19.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteVodDomain'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteVodDomain',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"15C66C7B-671A-4297-****-2C4477247A74\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 15C66C7B-671A-4297-****-2C4477247A74\\r\\n","errorExample":""}]',
],
'DeleteVodSpecificConfig' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39850',
'abilityTreeNodes' => ['FEATUREvodHI57GB'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The accelerated domain name.'."\n", 'type' => 'string', 'required' => true, 'example' => 'www.example.com', 'title' => ''],
],
[
'name' => 'ConfigId',
'in' => 'query',
'schema' => ['description' => 'The ID of the configuration.'."\n", 'type' => 'string', 'required' => true, 'example' => '2317****', 'title' => ''],
],
[
'name' => 'Env',
'in' => 'query',
'schema' => ['description' => 'The environment from which the domain name configurations are deleted. Valid values:'."\n"
."\n"
.'* online: production environment'."\n"
.'* gray: simulation environment'."\n", 'type' => 'string', 'required' => false, 'example' => 'online', 'default' => 'online', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '04F0F334-1335-436C-****-6C044FE73368', 'title' => ''],
],
'description' => '',
'title' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'Invalid%s.ValueNotSupported', 'errorMessage' => 'FunctionName [%s] is not supported.', 'description' => ''],
['errorCode' => 'EdgeScriptCountExceedLimit', 'errorMessage' => 'The number of rules exceeds the default limit (1). To increase the limit, submit a ticket.', 'description' => 'You can configure only one script. To increase the limit, submit a ticket.'],
['errorCode' => 'EdgeScripOptionsHasInnerConfig', 'errorMessage' => 'The extension has a background configuration or a parameter of this configuration is invalid. For more information, submit a ticket.', 'description' => ''],
['errorCode' => 'EdgeScriptGrammarNotSupport', 'errorMessage' => 'A background customization rule exists or a parameter of this configuration is invalid. For more information, submit a ticket.', 'description' => ''],
['errorCode' => 'EdgeScriptNotSupportJs', 'errorMessage' => 'JavaScript rules are not supported. For more information, submit a ticket.', 'description' => ''],
['errorCode' => 'InvalidRule.Malformed ', 'errorMessage' => '%s', 'description' => ''],
['errorCode' => 'ConfigurationConflicts', 'errorMessage' => 'Failed to modify the parameter settings in the production environment because the parameter settings are different from those in the staging'."\n"
.'environment. Set parameters in the staging environment before you publish them to the production environment.', 'description' => 'Failed to modify the parameter settings in the production environment because the parameter settings are different from those in the staging environment. Set parameters in the staging environment before you publish them to the production environment.'],
['errorCode' => 'GrayConfigIsNull', 'errorMessage' => 'You cannot delete all gary configurations. You can clear them by rolling back the simulation environment.', 'description' => 'After you remove all rules in the staging environment, configurations on POPs are not removed. You can roll back the staging environment to remove configurations from the staging environment.'."\n"],
],
403 => [
['errorCode' => 'ServiceBusy', 'errorMessage' => 'The specified Domain is configuring, please retry later', 'description' => ''],
],
[
['errorCode' => 'InvalidDomain.NotFound', 'errorMessage' => 'The domain provided does not belong to you.', 'description' => ''],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DeleteVodSpecificConfig',
'summary' => 'Deletes the configurations of a domain name for CDN.',
'description' => '> '."\n"
."\n"
.'* This operation is available only in the **China (Shanghai)** region.'."\n"
."\n"
.'* After the configurations of a domain name for CDN are deleted, the domain name becomes unavailable. We recommend that you restore the A record at your DNS service provider before you delete the configurations of the domain name for CDN.'."\n"
."\n"
.'* After you call this operation to remove a domain name for CDN from ApsaraVideo VOD, all records that are related to the domain name are deleted. If you only want to disable a domain name for CDN, call the [BatchStopVodDomain](~~120208~~) operation.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => 'The following table describes the common errors that this operation can return. For more information about errors common to all operations, see [Common errors](https://www.alibabacloud.com/help/en/apsaravideo-for-vod/latest/api-reference-error-codes). '."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| MissingParameter | The specified value of parameter DomainName can not be empty. | 400 | The error message returned because the DomainName parameter is not specified. |'."\n"
.'| MissingParameter | The specified value of parameter ConfigId can not be empty. | 400 | The error message returned because the ConfigId parameter is not specified. |'."\n"
.'| Invalid%s.ValueNotSupported | FunctionName [%s] is not supported. | 400 | The error message returned because the value of the FunctionName parameter is invalid. |',
'changeSet' => [
['createdAt' => '2025-07-16T06:29:17.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T06:24:09.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T06:19:43.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T06:16:20.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:35:40.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:33:25.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteVodSpecificConfig'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteVodSpecificConfig',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-****-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n04F0F334-1335-436C-****-6C044FE73368\\r\\n","errorExample":""}]',
],
'DeleteVodTemplate' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39851',
'abilityTreeNodes' => ['FEATUREvodL077M7'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'VodTemplateId',
'in' => 'query',
'schema' => ['description' => 'The ID of the snapshot template.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'f5b228fe6930e*****d6bf55bd87789'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'VodTemplateId' => ['description' => 'The ID of the snapshot template.'."\n", 'type' => 'string', 'example' => 'f5b228fe6930e*****d6bf55bd87789'],
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4A*****F6-D7393642CA58'],
],
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"VodTemplateId\\": \\"f5b228fe6930e*****d6bf55bd87789\\",\\n \\"RequestId\\": \\"25818875-5F78-4A*****F6-D7393642CA58\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\t25818875-5F78-4A*****F6-D7393642CA58\\r\\n\\tf5b228fe6930e*****d6bf55bd87789\\r\\n","errorExample":""}]',
'title' => 'DeleteVodTemplate',
'summary' => 'Deletes a snapshot template.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteVodTemplate'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteVodTemplate',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DeleteWatermark' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'delete',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39852',
'abilityTreeNodes' => ['FEATUREvodL077M7'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'WatermarkId',
'in' => 'query',
'schema' => ['description' => 'The ID of watermark template that you want to delete. You can specify only one watermark template ID. You can obtain the ID by using one of the following methods:'."\n"
."\n"
.'* Obtain the watermark template ID from the response to the [AddWatermark](~~AddWatermark~~) operation that you call to create a watermark template.'."\n"
.'* Obtain the watermark template ID from the response to the [ListWatermark](~~ListWatermark~~) operation that you call to query all watermark templates within your account.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '9bcc8bfadb843f*****09a2671d0df97', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4A*****F6-D7393642CA58', 'title' => ''],
],
'description' => '',
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DeleteWatermark',
'summary' => 'Deletes an image watermark or text watermark template.',
'description' => '* **After you delete an image watermark template, the source watermark file is physically deleted and cannot be restored. Exercise caution when you call this operation.**'."\n"
.'* You cannot delete the default watermark template. To delete a default watermark template, call the [SetDefaultWatermark](~~SetDefaultWatermark~~) operation to set another watermark template as the default one.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return.'."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| NoSuchResource | The specified resource %s does not exist. | 404 | The error message returned because the user-related resource does not exist. %s indicates the specific resource information. |',
'changeSet' => [
['createdAt' => '2025-07-10T08:31:28.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:35:51.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:33:17.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteWatermark'],
],
],
'ramActions' => [
[
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteWatermark',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4A*****F6-D7393642CA58\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 25818875-5F78-4A*****F6-D7393642CA58\\r\\n","errorExample":""}]',
],
'DescribeMediaDistribution' => [
'methods' => ['post', 'get'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'list',
'abilityTreeCode' => '254961',
'abilityTreeNodes' => ['FEATUREvodYRQNEN'],
],
'parameters' => [
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC. The maximum time range to query is 6 months.'."\n", 'type' => 'string', 'required' => false, 'example' => '2017-01-11T12:00:00Z'],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. The end time must be later than the start time. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC. The maximum time range to query is 6 months.'."\n", 'type' => 'string', 'required' => false, 'example' => '2017-01-11T12:59:00Z'],
],
[
'name' => 'StorageClass',
'in' => 'query',
'schema' => ['description' => 'The hierarchical storage type. Valid values:'."\n"
."\n"
.'* Standard'."\n"
.'* IA'."\n"
.'* Archive'."\n"
.'* ColdArchive'."\n"
.'* SourceIA'."\n"
.'* SourceArchive'."\n"
.'* SourceColdArchive'."\n"
.'* Changing'."\n"
.'* SourceChanging'."\n", 'type' => 'string', 'required' => false, 'example' => 'Standard'],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => ['description' => 'The statistical interval. Default value: day. Valid values:'."\n"
."\n"
.'* hour: natural hour of the start and end time.'."\n"
.'* day: natural day of the start and end time.'."\n"
.'* week: natural week of the start and end time.'."\n"
.'* month: natural month of the start and end time.'."\n", 'type' => 'string', 'required' => false, 'example' => 'day'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'The returned data.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4AF6-D7393642CA58****'],
'Total' => ['description' => 'The total number of media assets returned.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '100'],
'MediaDistributionList' => [
'description' => 'The distribution list of media assets. The data is displayed based on the statistical cycle of the natural hour, day, week, or month of the start and end time.'."\n",
'type' => 'array',
'items' => [
'description' => 'The distribution of media assets. This parameter is empty if no data is found.'."\n",
'type' => 'object',
'properties' => [
'StartTime' => ['description' => 'The start of the time range during which data is queried (inclusive). The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2017-11-13T00:00:00Z'],
'EndTime' => ['description' => 'The end of the time range during which data is queried (exclusive). The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2017-11-14T00:00:00Z'],
'Count' => ['description' => 'The number of media assets that are queried during the specified time range.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '12'],
],
],
],
],
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4AF6-D7393642CA58****\\",\\n \\"Total\\": 100,\\n \\"MediaDistributionList\\": [\\n {\\n \\"StartTime\\": \\"2017-11-13T00:00:00Z\\",\\n \\"EndTime\\": \\"2017-11-14T00:00:00Z\\",\\n \\"Count\\": 12\\n }\\n ]\\n}","type":"json"}]',
'title' => 'DescribeMediaDistribution',
'summary' => 'Queries the distribution of media asset data by time. The maximum time range to query is 6 months.',
'description' => '* This operation is available only in the China (Shanghai) region.'."\n"
.'* If you do not set the StartTime or EndTime parameter, the request returns the data collected in the previous 7 days. If you set both the parameters, the request returns the data collected within the specified time range.'."\n",
'changeSet' => [],
'ramActions' => [
[
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:DescribeMediaDistribution',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribePlayTopVideos' => [
'summary' => 'Call this operation to obtain daily playback statistics for top videos. The statistics include view counts, unique visitors (UVs), and total playback duration.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39858',
'abilityTreeNodes' => ['FEATUREvodB8HTWV'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'BizDate',
'in' => 'query',
'schema' => ['description' => 'The date to query. The date must be in the yyyy-MM-ddTHH:mm:ssZ format in UTC.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => '2016-06-29T13:00:00Z'],
],
[
'name' => 'PageNo',
'in' => 'query',
'schema' => ['description' => 'The number of the page to return. Default value: **1**.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'default' => '1', 'title' => '', 'example' => '1'],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries to return on each page. Default value: **100**. Maximum value: **1000**.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'maximum' => '1000', 'minimum' => '10', 'title' => '', 'example' => '100'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'PageNo' => ['description' => 'The number of the page returned.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '1'],
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'title' => '', 'example' => '4B0BCF9F-2FD5-4817-****-7BEBBE3AF90B"'],
'PageSize' => ['description' => 'The number of entries returned on each page.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '100'],
'TotalNum' => ['description' => 'The total number of top videos.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '2'],
'TopPlayVideos' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'TopPlayVideoStatis' => [
'description' => 'The playback data of the top videos of the day.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Title' => ['description' => 'The title of the video.', 'type' => 'string', 'title' => '', 'example' => 'Alibaba Cloud video'],
'VV' => ['description' => 'The number of views.', 'type' => 'string', 'title' => '', 'example' => '107'],
'PlayDuration' => ['description' => 'The total playback duration. Unit: milliseconds.', 'type' => 'string', 'title' => '', 'example' => '4640369'],
'VideoId' => ['description' => 'The ID of the video.', 'type' => 'string', 'title' => '', 'example' => '2a8d4cb9ecbb487681473a15****8fda'],
'UV' => ['description' => 'The number of unique visitors.', 'type' => 'string', 'title' => '', 'example' => '1'],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidBizDate.Malformed', 'errorMessage' => 'Specified BizDate is malformed.', 'description' => ''],
['errorCode' => 'InvalidBizDate.BeyondCurrent', 'errorMessage' => 'BizDate beyond current time.', 'description' => ''],
['errorCode' => 'InvalidParamter', 'errorMessage' => '%s', 'description' => ''],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PageNo\\": 1,\\n \\"RequestId\\": \\"4B0BCF9F-2FD5-4817-****-7BEBBE3AF90B\\\\\\"\\",\\n \\"PageSize\\": 100,\\n \\"TotalNum\\": 2,\\n \\"TopPlayVideos\\": {\\n \\"TopPlayVideoStatis\\": [\\n {\\n \\"Title\\": \\"Alibaba Cloud video\\",\\n \\"VV\\": \\"107\\",\\n \\"PlayDuration\\": \\"4640369\\",\\n \\"VideoId\\": \\"2a8d4cb9ecbb487681473a15****8fda\\",\\n \\"UV\\": \\"1\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
'title' => 'DescribePlayTopVideos',
'description' => '- This endpoint is supported only in the **China (Shanghai)** region.'."\n"
.'- You can query playback statistics for up to 1,000 top videos per day. By default, the list of top videos is sorted by view count in descending order.'."\n"
.'- Only playback data collected by the ApsaraVideo Player SDK is supported.'."\n"
.'- Playback statistics for the previous day are generated at 09:00 (UTC+8) every day.'."\n"
.'- You can query data generated after January 1, 2018. The maximum query time range is 180 days.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return. '."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| InternalError | The request processing has failed due to some unknown error. | 500 | The error message returned because an unknown error has occurred. |'."\n"
.'| InvalidBizDate.Malformed | Specified BizDate is malformed. | 400 | The error message returned because the format of the time that is specified by the BizDate parameter is invalid. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC. |'."\n"
.'| InvalidBizDate.BeyondCurrent | EndTime beyond current time. | 400 | The error message returned because the time that is specified by the BizDate parameter is later than the current time. |',
'changeSet' => [
['createdAt' => '2025-07-16T06:23:55.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribePlayTopVideos'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribePlayTopVideos',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'translator' => 'machine',
],
'DescribePlayUserAvg' => [
'summary' => 'Queries the statistics on average playback each day in a specified time range. ',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39859',
'abilityTreeNodes' => ['FEATUREvodB8HTWV'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => true, 'example' => '2016-06-29T13:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. The end time must be later than the start time. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => true, 'example' => '2016-06-30T13:00:00Z', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '6C7F90B2-BDA4-4FAC-****-A38A121DFE19', 'title' => ''],
'UserPlayStatisAvgs' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'UserPlayStatisAvg' => [
'description' => 'The statistics on average playback each day.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Date' => ['description' => 'The date when the statistics were generated. The date follows the *yyyy-MM-dd* format.'."\n", 'type' => 'string', 'example' => '20170120', 'title' => ''],
'AvgPlayDuration' => ['description' => 'The average playback duration. Unit: milliseconds.'."\n", 'type' => 'string', 'example' => '1035902.8', 'title' => ''],
'AvgPlayCount' => ['description' => 'The average number of video views.'."\n", 'type' => 'string', 'example' => '170', 'title' => ''],
],
'description' => '',
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => 'The start time is in an invalid format.'],
['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => 'The end time is in an invalid format.'],
['errorCode' => 'InvalidEndTime.BeyondCurrent', 'errorMessage' => 'EndTime beyond current time.', 'description' => ''],
['errorCode' => 'InvalidParamter', 'errorMessage' => '%s', 'description' => ''],
['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'StartTime or EndTime is mismatch.', 'description' => 'The start time and end time do not match.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"6C7F90B2-BDA4-4FAC-****-A38A121DFE19\\",\\n \\"UserPlayStatisAvgs\\": {\\n \\"UserPlayStatisAvg\\": [\\n {\\n \\"Date\\": \\"20170120\\",\\n \\"AvgPlayDuration\\": \\"1035902.8\\",\\n \\"AvgPlayCount\\": \\"170\\"\\n }\\n ]\\n }\\n}","errorExample":"{\\n \\"RequestId\\":\\"1FAFB884-D5A7-47D1-82B5-8928AA9C8720\\",\\n \\"HostId\\":\\"vod.cn-shanghai.aliyuncs.com\\",\\n \\"Code\\":\\"InvalidStartTime.Malformed\\",\\n \\"Message\\":\\"Specified StartTime is malformed.\\"\\n}"},{"type":"xml","example":"\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t1035902.8\\r\\n\\t\\t\\t20171127\\r\\n\\t\\t\\t17.0\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t3113356.7\\r\\n\\t\\t\\t20171128\\r\\n\\t\\t\\t41.0\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t4290368.0\\r\\n\\t\\t\\t20171129\\r\\n\\t\\t\\t59.8\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t6C7F90B2-BDA4-4FAC-****-A38A121DFE19\\r\\n","errorExample":""}]',
'title' => 'DescribePlayUserAvg',
'description' => '> * This operation is available only in the **China (Shanghai)** region.'."\n"
.'> * You can call this operation to query only playback statistics collected on videos that are played by using ApsaraVideo Player SDKs.'."\n"
.'> * Playback statistics for the previous day are generated at 09:00 on the current day, in UTC+8.'."\n"
.'> * You can query data that is generated since January 1, 2018. The maximum time range to query is 180 days.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return. '."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| InternalError | The request processing has failed due to some unknown error. | 500 | The error message returned because an unknown error has occurred. |'."\n"
.'| InvalidStartTime.Malformed | Specified StartTime is malformed. | 400 | The error message returned because the format of the start time that is specified by the StartTime parameter is invalid. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC. |'."\n"
.'| InvalidEndTime.Malformed | Specified EndTime is malformed. | 400 | The error message returned because the format of the end time that is specified by the EndTime parameter is invalid. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC. |'."\n"
.'| InvalidEndTime.BeyondCurrent | EndTime beyond current time. | 400 | The error message returned because the end time that is specified by the EndTime parameter is later than the current time. |'."\n"
.'| InvalidEndTime.Mismatch | StartTime or EndTime is mismatch. | 400 | The error message returned because the time range that is specified by the StartTime and EndTime parameters is invalid. |',
'changeSet' => [
['createdAt' => '2025-07-16T06:26:01.000Z', 'description' => 'OpenAPI offline'],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribePlayUserAvg',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribePlayUserAvg'],
],
],
],
'DescribePlayUserTotal' => [
'summary' => 'Queries the daily playback statistics in a specified time range. The playback statistics include the total number of views, total number of viewers, total playback duration, and playback duration distribution.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39860',
'abilityTreeNodes' => ['FEATUREvodB8HTWV'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => true, 'example' => '2016-06-29T13:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.'."\n"
."\n"
.'> The end time must be later than the start time. The interval between the start time and the end time cannot exceed 180 days.'."\n", 'type' => 'string', 'required' => true, 'example' => '2016-06-30T13:00:00Z', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '1FAFB884-D5A7-47D1-****-8928AA9C8720', 'title' => ''],
'UserPlayStatisTotals' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'UserPlayStatisTotal' => [
'description' => 'The daily playback statistics.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Date' => ['description' => 'The date. The date is displayed in the yyyy-MM-dd format.'."\n", 'type' => 'string', 'example' => '20170120', 'title' => ''],
'PlayDuration' => ['description' => 'The total playback duration. Unit: milliseconds.'."\n", 'type' => 'string', 'example' => '9340070', 'title' => ''],
'PlayRange' => ['description' => 'The distribution of the playback duration.'."\n", 'type' => 'string', 'example' => '"<=1m:74.3%;>1<=5m:22.8%;>5<=10m:1.0%;>10<=15m:1.0%;>15<=30m:1.0%"', 'title' => ''],
'VV' => [
'description' => 'The total number of video views.'."\n",
'type' => 'object',
'properties' => [
'Flash' => ['description' => 'The total number of video views played by using the Flash player.'."\n", 'type' => 'string', 'example' => '2', 'title' => ''],
'iOS' => ['description' => 'The total number of video views played by using ApsaraVideo Player SDK for iOS.'."\n", 'type' => 'string', 'example' => '0', 'title' => ''],
'HTML5' => ['description' => 'The total number of video views played by using the HTML5 player.'."\n", 'type' => 'string', 'example' => '2', 'title' => ''],
'Android' => ['description' => 'The total number of video views played by using ApsaraVideo Player SDK for Android.'."\n", 'type' => 'string', 'example' => '161', 'title' => ''],
],
'title' => '',
],
'UV' => [
'description' => 'The total number of unique visitors.'."\n",
'type' => 'object',
'properties' => [
'Flash' => ['description' => 'The total number of unique visitors who use the Flash player.'."\n", 'type' => 'string', 'example' => '1', 'title' => ''],
'iOS' => ['description' => 'The total number of unique visitors who use ApsaraVideo Player SDK for iOS.'."\n", 'type' => 'string', 'example' => '0', 'title' => ''],
'HTML5' => ['description' => 'The total number of unique visitors who use the HTML5 player.'."\n", 'type' => 'string', 'example' => '1', 'title' => ''],
'Android' => ['description' => 'The total number of unique visitors who use ApsaraVideo Player SDK for Android.'."\n", 'type' => 'string', 'example' => '2', 'title' => ''],
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => 'The start time is in an invalid format.'],
['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => 'The end time is in an invalid format.'],
['errorCode' => 'InvalidEndTime.BeyondCurrent', 'errorMessage' => 'EndTime beyond current time.', 'description' => ''],
['errorCode' => 'InvalidParamter', 'errorMessage' => '%s', 'description' => ''],
['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'StartTime or EndTime is mismatch.', 'description' => 'The start time and end time do not match.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"1FAFB884-D5A7-47D1-****-8928AA9C8720\\",\\n \\"UserPlayStatisTotals\\": {\\n \\"UserPlayStatisTotal\\": [\\n {\\n \\"Date\\": \\"20170120\\",\\n \\"PlayDuration\\": \\"9340070\\",\\n \\"PlayRange\\": \\"\\\\\\"<=1m:74.3%;>1<=5m:22.8%;>5<=10m:1.0%;>10<=15m:1.0%;>15<=30m:1.0%\\\\\\"\\",\\n \\"VV\\": {\\n \\"Flash\\": \\"2\\",\\n \\"iOS\\": \\"0\\",\\n \\"HTML5\\": \\"2\\",\\n \\"Android\\": \\"161\\"\\n },\\n \\"UV\\": {\\n \\"Flash\\": \\"1\\",\\n \\"iOS\\": \\"0\\",\\n \\"HTML5\\": \\"1\\",\\n \\"Android\\": \\"2\\"\\n }\\n }\\n ]\\n }\\n}","errorExample":"{\\n \\"RequestId\\":\\"1FAFB884-D5A7-47D1-82B5-8928AA9C8720\\",\\n \\"HostId\\":\\"vod.cn-shanghai.aliyuncs.com\\",\\n \\"Code\\":\\"InvalidStartTime.Malformed\\",\\n \\"Message\\":\\"Specified StartTime is malformed.\\"\\n}"},{"type":"xml","example":"\\r\\n \\r\\n\\t\\t\\r\\n\\t\\t\\t<=1m:74.3%;>1<=5m:22.8%;>5<=10m:1.0%;>10<=15m:1.0%;>15<=30m:1.0%\\r\\n\\t\\t\\t20180101\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t101\\r\\n\\t\\t\\t\\t1\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t6215417\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t5\\r\\n\\t\\t\\t\\t1\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t<=1m:73.6%;>1<=5m:23.9%;>5<=10m:2.5%\\r\\n\\t\\t\\t20180102\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t161\\r\\n\\t\\t\\t\\t2\\r\\n\\t\\t\\t\\t1\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t9340070\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t1\\r\\n\\t\\t\\t\\t2\\r\\n\\t\\t\\t\\t1\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t0B9BA42C-8BDE-4611-****-C856BBE20898\\r\\n","errorExample":""}]',
'title' => 'DescribePlayUserTotal',
'description' => '* This operation is available only in the **China (Shanghai)** region.'."\n"
.'* You can call this operation to query only playback statistics collected on videos that are played by using ApsaraVideo Player SDKs.'."\n"
.'* Playback statistics for the current day are generated at 09:00 (UTC+8) on the next day.'."\n"
.'* You can query data that is generated since January 1, 2018. The maximum time range to query is 180 days.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return. '."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| InternalError | The request processing has failed due to some unknown error. | 500 | The error message returned because an unknown error has occurred. |'."\n"
.'| InvalidStartTime.Malformed | Specified StartTime is malformed. | 400 | The error message returned because the format of the start time that is specified by the StartTime parameter is invalid. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC. |'."\n"
.'| InvalidEndTime.Malformed | Specified EndTime is malformed. | 400 | The error message returned because the format of the end time that is specified by the EndTime parameter is invalid. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC. |'."\n"
.'| InvalidEndTime.BeyondCurrent | EndTime beyond current time. | 400 | The error message returned because the end time that is specified by the EndTime parameter is later than the current time. |'."\n"
.'| InvalidEndTime.Mismatch | StartTime or EndTime is mismatch. | 400 | The error message returned because the time range that is specified by the StartTime and EndTime parameters is invalid. |',
'changeSet' => [
['createdAt' => '2025-07-16T06:25:55.000Z', 'description' => 'OpenAPI offline'],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribePlayUserTotal',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribePlayUserTotal'],
],
],
],
'DescribePlayVideoStatis' => [
'summary' => 'Queries daily playback statistics on a video in the specified time range.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39861',
'abilityTreeNodes' => ['FEATUREvodB8HTWV'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => true, 'example' => '2016-06-29T13:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.'."\n"
."\n"
.'> The end time must be later than the start time. The interval between the start time and the end time cannot exceed 180 days.'."\n", 'type' => 'string', 'required' => true, 'example' => '2016-06-30T13:00:00Z', 'title' => ''],
],
[
'name' => 'VideoId',
'in' => 'query',
'schema' => ['description' => 'The ID of the video. You can specify only one ID. You can use one of the following methods to obtain the ID:'."\n"
."\n"
.'* Log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com). In the left-side navigation pane, choose **Media Files** > **Audio/Video**. On the page that appears, view the video ID.'."\n"
.'* Obtain the video ID from the response to the [CreateUploadVideo](~~CreateUploadVideo~~) operation that you call to obtain the upload URL and credential.'."\n"
.'* Obtain the video ID from the response to the [SearchMedia](~~SearchMedia~~) operation that you call to query the audio or video file.'."\n", 'type' => 'string', 'required' => true, 'example' => '2a8d4cb9ecbb487681473****aba8fda', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'A92D3600-A3E7-43D6-****-B6E3B4A1FE6B', 'title' => ''],
'VideoPlayStatisDetails' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'VideoPlayStatisDetail' => [
'description' => 'The daily playback statistics on the video.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'PlayDuration' => ['description' => 'The total playback duration. Unit: milliseconds.'."\n", 'type' => 'string', 'example' => '967277', 'title' => ''],
'Date' => ['description' => 'The date. The time follows the ISO 8601 standard in the *YYYY-MM-DD*T*hh:mm:ss* format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2024-06-12T16:00:00Z', 'title' => ''],
'VV' => ['description' => 'The number of video views.'."\n", 'type' => 'string', 'example' => '24', 'title' => ''],
'Title' => ['description' => 'The video title.'."\n", 'type' => 'string', 'example' => 'Alibaba Cloud video', 'title' => ''],
'UV' => ['description' => 'The number of unique visitors.'."\n", 'type' => 'string', 'example' => '1', 'title' => ''],
'PlayRange' => ['description' => 'The distribution of the playback duration.'."\n", 'type' => 'string', 'example' => '<=1m:79.2%;>1<=5m:16.7%;>5<=10m:4.2%', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => 'The start time is in an invalid format.'],
['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => 'The end time is in an invalid format.'],
['errorCode' => 'InvalidParamter', 'errorMessage' => '%s', 'description' => ''],
['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'StartTime or EndTime is mismatch.', 'description' => 'The start time and end time do not match.'],
['errorCode' => 'InvalidEndTime.BeyondCurrent', 'errorMessage' => 'EndTime beyond current time.', 'description' => ''],
['errorCode' => 'InvalidParameter', 'errorMessage' => '%s', 'description' => ''],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A92D3600-A3E7-43D6-****-B6E3B4A1FE6B\\",\\n \\"VideoPlayStatisDetails\\": {\\n \\"VideoPlayStatisDetail\\": [\\n {\\n \\"PlayDuration\\": \\"967277\\",\\n \\"Date\\": \\"2024-06-12T16:00:00Z\\",\\n \\"VV\\": \\"24\\",\\n \\"Title\\": \\"Alibaba Cloud video\\",\\n \\"UV\\": \\"1\\",\\n \\"PlayRange\\": \\"<=1m:79.2%;>1<=5m:16.7%;>5<=10m:4.2%\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]',
'title' => 'DescribePlayVideoStatis',
'description' => '* This operation is available only in the **China (Shanghai)** region.'."\n"
.'* You can call this operation to query only playback statistics collected on videos that are played by using ApsaraVideo Player SDKs.'."\n"
.'* Playback statistics for the current day are generated at 09:00 (UTC+8) on the next day.'."\n"
.'* You can query only data in the last 730 days. The maximum time range to query is 180 days.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return. '."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| InternalError | The request processing has failed due to some unknown error. | 500 | The error message returned because an unknown error has occurred. |'."\n"
.'| InvalidStartTime.Malformed | Specified StartTime is malformed. | 400 | The error message returned because the format of the start time that is specified by the StartTime parameter is invalid. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC. |'."\n"
.'| InvalidEndTime.Malformed | Specified EndTime is malformed. | 400 | The error message returned because the format of the end time that is specified by the EndTime parameter is invalid. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC. |'."\n"
.'| InvalidEndTime.BeyondCurrent | EndTime beyond current time. | 400 | The error message returned because the end time that is specified by the EndTime parameter is later than the current time. |'."\n"
.'| InvalidEndTime.Mismatch | StartTime or EndTime is mismatch. | 400 | The error message returned because the time range that is specified by the StartTime and EndTime parameters is invalid. |',
'changeSet' => [
['createdAt' => '2025-07-16T06:24:10.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribePlayVideoStatis'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribePlayVideoStatis',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeVodAIData' => [
'summary' => 'Queries the statistics on video AI of different types, such as automated review and media fingerprinting.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39873',
'abilityTreeNodes' => ['FEATUREvodB8HTWV'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => true, 'example' => '2019-02-01T13:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. The end time must be later than the start time. Specify the time in the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => true, 'example' => '2019-02-01T15:00:00Z', 'title' => ''],
],
[
'name' => 'Region',
'in' => 'query',
'schema' => ['description' => 'The region in which you want to query data. If you leave this parameter empty, data in all regions is returned. Separate multiple regions with commas (,). Valid values:'."\n"
."\n"
.'* **cn-shanghai**: China (Shanghai)'."\n"
.'* **cn-beijing**: China (Beijing)'."\n"
.'* **eu-central-1**: Germany (Frankfurt)'."\n"
.'* **ap-southeast-1**: Singapore'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-beijing', 'title' => ''],
],
[
'name' => 'AIType',
'in' => 'query',
'schema' => ['description' => 'The type of video AI. If you leave this parameter empty, statistics on video AI of all types are returned. Separate multiple types with commas (,). Valid values:'."\n"
."\n"
.'* **AIVideoCensor**: automated review'."\n"
.'* **AIVideoFPShot**: media fingerprinting'."\n"
.'* **AIVideoTag**: smart tagging'."\n", 'type' => 'string', 'required' => false, 'example' => 'AIVideoCensor', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'DataInterval' => ['description' => 'The time granularity at which the data was queried. Valid values:'."\n"
."\n"
.'* **hour**'."\n"
.'* **day**'."\n", 'type' => 'string', 'example' => 'day', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'C370DAF1-C838-4288-****-9A87633D248E', 'title' => ''],
'AIData' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'AIDataItem' => [
'description' => 'The statistics on video AI.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'TimeStamp' => ['description' => 'The timestamp of the returned data. The time follows the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2019-02-01T13:00:00Z', 'title' => ''],
'Data' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DataItem' => [
'description' => 'The statistics on video AI of each type.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Name' => ['description' => 'The type of video AI. Valid values:'."\n"
."\n"
.'* **AIVideoCensor**: automated review'."\n"
.'* **AIVideoFPShot**: media fingerprinting'."\n"
.'* **AIVideoTag**: smart tagging'."\n", 'type' => 'string', 'example' => 'AIVideoCensor', 'title' => ''],
'Value' => ['description' => 'The processing duration. Unit: seconds.'."\n", 'type' => 'string', 'example' => '111', 'title' => ''],
],
'description' => '',
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
'description' => '',
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameter', 'errorMessage' => 'InvalidParameter.', 'description' => ''],
['errorCode' => 'InvalidParameterStartTime', 'errorMessage' => 'Invalid Parameter StartTime.', 'description' => 'The StartTime parameter is invalid.'],
['errorCode' => 'InvalidParameterEndTime', 'errorMessage' => 'Invalid Parameter EndTime.', 'description' => ''],
['errorCode' => 'InvalidTimeRange', 'errorMessage' => 'Invalid StartTime and EndTime range.', 'description' => 'The time frame is not legal.'],
['errorCode' => 'InvalidParameterInterval', 'errorMessage' => 'Invalid Parameter interval.', 'description' => ''],
['errorCode' => 'InvalidParameterRegion', 'errorMessage' => 'Invalid Parameter Region.', 'description' => ''],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"DataInterval\\": \\"day\\",\\n \\"RequestId\\": \\"C370DAF1-C838-4288-****-9A87633D248E\\",\\n \\"AIData\\": {\\n \\"AIDataItem\\": [\\n {\\n \\"TimeStamp\\": \\"2019-02-01T13:00:00Z\\",\\n \\"Data\\": {\\n \\"DataItem\\": [\\n {\\n \\"Name\\": \\"AIVideoCensor\\",\\n \\"Value\\": \\"111\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\tC370DAF1-C838-4288-****-9A87633D248E\\r\\n\\tday\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t2019-02-01T16:00:00Z\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tAIVideoCensor\\r\\n\\t\\t\\t\\t\\t111\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t2019-02-02T16:00:00Z\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tAIVideoCensor\\r\\n\\t\\t\\t\\t\\t111\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tAIVideoFPShot\\r\\n\\t\\t\\t\\t\\t222\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t\\r\\n","errorExample":""}]',
'title' => 'DescribeVodAIData',
'description' => '> * This operation is available only in the **China (Shanghai)** region.'."\n"
.'>* If the time range to query is less than or equal to seven days, the system returns the statistics collected on an hourly basis. If the time range to query is greater than seven days, the system returns the statistics collected on a daily basis. The maximum time range that you can specify to query is 31 days.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the error codes that this operation can return.'."\n"
."\n"
.'|Error code|Error message|HTTP status code|Description|'."\n"
.'|---|---|---|---|'."\n"
.'|Throttling|Request was denied due to request throttling.|503|The error message returned because the request was denied due to throttling.|'."\n"
.'|OperationDenied|Your account does not open VOD service yet.|403|The error message returned because ApsaraVideo VOD is not activated for your Alibaba Cloud account.|'."\n"
.'|OperationDenied|Your VOD service is suspended.|403|The error message returned because ApsaraVideo VOD is suspended for your Alibaba Cloud account.|'."\n"
.'|InvalidParameter|Invalid Parameter.|400|The error message returned because one or more parameters are invalid.|'."\n"
.'|InvalidParameterAliUid|Invalid Parameter AliUid.|400|The error message returned because the value of the AliUid parameter is invalid.|'."\n"
.'|InvalidParameterStartTime|Invalid Parameter StartTime.|400|The error message returned because the value of the StartTime parameter is invalid.|'."\n"
.'|InvalidParameterEndTime|Invalid Parameter EndTime.|400|The error message returned because the value of the EndTime parameter is invalid.|'."\n"
.'|InvalidTimeRange|StartTime and EndTime range should less than 1 month.|400|The error message returned because the time range that is specified by the StartTime and EndTime parameters exceeds 31 days.|'."\n"
.'|InvalidParameterRegion|Invalid Parameter Region.|400|The error message returned because the value of the Region parameter is invalid.|',
'changeSet' => [
['createdAt' => '2025-07-16T06:24:09.000Z', 'description' => 'OpenAPI offline'],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodAIData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodAIData'],
],
],
],
'DescribeVodCertificateList' => [
'summary' => 'Queries the certificates of a specified domain name for CDN or all the domain names for CDN within your Alibaba Cloud account.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39875',
'abilityTreeNodes' => ['FEATUREvod0O92P0'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The domain name for CDN.'."\n", 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'FC0E34AC-0239-44A7-****-800DE522C8DA', 'title' => ''],
'CertificateListModel' => [
'description' => 'The information about each certificate.'."\n",
'type' => 'object',
'properties' => [
'Count' => ['description' => 'The number of certificates that are returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''],
'CertList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Cert' => [
'description' => 'The list of certificates.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'LastTime' => ['description' => 'The time when the certificate was issued. Unit: seconds.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1512388610', 'title' => ''],
'Fingerprint' => ['description' => 'The fingerprint of the certificate.'."\n", 'type' => 'string', 'example' => '****', 'title' => ''],
'CertName' => ['description' => 'The name of the certificate.'."\n", 'type' => 'string', 'example' => 'Certificate', 'title' => ''],
'Issuer' => ['description' => 'The certificate authority (CA) that issued the certificate.'."\n", 'type' => 'string', 'example' => '****', 'title' => ''],
'CertId' => ['description' => 'The ID of the certificate.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '235437', 'title' => ''],
'Common' => ['description' => 'The common name of the certificate.'."\n", 'type' => 'string', 'example' => 'test', 'title' => ''],
'CreateTime' => ['type' => 'integer', 'format' => 'int64', 'description' => 'The time when the certificate was created.', 'example' => '1725206400000', 'title' => ''],
'EndTime' => ['type' => 'integer', 'format' => 'int64', 'description' => 'The time when the certificate expired.', 'example' => '1725207200000', 'title' => ''],
'Algorithm' => ['type' => 'string', 'description' => 'The algorithm.'."\n", 'example' => 'RSA', 'title' => ''],
'CertIdentifier' => ['type' => 'string', 'description' => 'The ID of the certificate.'."\n", 'example' => '14173772-cn-hangzhou', 'title' => ''],
'DomainMatchCert' => ['type' => 'boolean', 'description' => 'DomainMatchCert.', 'example' => 'false', 'title' => ''],
'InstanceId' => ['type' => 'string', 'description' => 'The ID of the instance.'."\n", 'example' => 'cert-cn-cd806ae0fdfbfa60', 'title' => ''],
'SignAlgorithm' => ['type' => 'string', 'description' => 'The signAlgorithm.', 'example' => 'sha256withrsa', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"FC0E34AC-0239-44A7-****-800DE522C8DA\\",\\n \\"CertificateListModel\\": {\\n \\"Count\\": 2,\\n \\"CertList\\": {\\n \\"Cert\\": [\\n {\\n \\"LastTime\\": 1512388610,\\n \\"Fingerprint\\": \\"****\\",\\n \\"CertName\\": \\"Certificate\\",\\n \\"Issuer\\": \\"****\\",\\n \\"CertId\\": 235437,\\n \\"Common\\": \\"test\\",\\n \\"CreateTime\\": 1725206400000,\\n \\"EndTime\\": 1725207200000,\\n \\"Algorithm\\": \\"RSA\\",\\n \\"CertIdentifier\\": \\"14173772-cn-hangzhou\\",\\n \\"DomainMatchCert\\": false,\\n \\"InstanceId\\": \\"cert-cn-cd806ae0fdfbfa60\\",\\n \\"SignAlgorithm\\": \\"sha256withrsa\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]',
'title' => 'DescribeVodCertificateList',
'description' => '> This operation is available only in the **China (Shanghai)** region.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2025-07-16T06:25:38.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:35:58.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:33:05.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodCertificateList'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodCertificateList',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeVodDomainBpsData' => [
'summary' => 'Queries the bandwidth for one or more specified domain names for CDN.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39876',
'abilityTreeNodes' => ['FEATUREvodB8HTWV'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The domain name to be queried. If you do not specify this parameter, the merged data of all your domain names for CDN is returned. You can specify multiple domain names. Separate them with commas (,).'."\n", 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.'."\n"
."\n"
.'> The minimum query interval is 5 minutes. If you do not specify this parameter, the data in the last 24 hours is queried.'."\n", 'type' => 'string', 'required' => false, 'example' => '2015-12-10T13:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. The end time must be later than the start time. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => false, 'example' => '2015-12-10T14:00:00Z', 'title' => ''],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => ['description' => 'The query interval. Unit: seconds. Valid values: **300**, **3600**, and **86400**.'."\n"
."\n"
.'* If the time range to query is less than 3 days, valid values are **300**, **3600**, and **86400**. The default value is 300.'."\n"
.'* If the time range to query is from 3 to less than 31 days, valid values are **3600** and **86400**. The default value is 3600.'."\n"
.'* If the time range to query is from 31 to 90 days, the valid value is **86400**.'."\n", 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''],
],
[
'name' => 'IspNameEn',
'in' => 'query',
'schema' => ['description' => 'The name of the Internet service provider (ISP). If you do not specify this parameter, the data of all ISPs is returned.'."\n", 'type' => 'string', 'required' => false, 'example' => 'Alibaba', 'title' => ''],
],
[
'name' => 'LocationNameEn',
'in' => 'query',
'schema' => ['description' => 'The name of the region. If you do not specify this parameter, the data in all regions is returned. Only data in the China (Shanghai) region can be queried.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => '',
'type' => 'object',
'properties' => [
'EndTime' => ['description' => 'The end of the time range in which data was queried. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2015-12-10T14:00:00Z', 'title' => ''],
'StartTime' => ['description' => 'The beginning of the time range in which data was queried. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2015-12-10T13:00:00Z', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '3C6CCEC4-6B88-4D4A-****-D47B3D92CF8F', 'title' => ''],
'IspNameEn' => ['description' => 'The name of the ISP. By default, the data of all ISPs is returned.', 'type' => 'string', 'example' => 'Alibaba', 'title' => ''],
'LocationNameEn' => ['description' => 'The name of the region. By default, the data in all regions is returned.', 'type' => 'string', 'example' => 'cn-shanghai', 'title' => ''],
'DomainName' => ['description' => 'The domain name for CDN.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'DataInterval' => ['description' => 'The time interval between the returned entries. Unit: seconds.', 'type' => 'string', 'example' => '300', 'title' => ''],
'BpsDataPerInterval' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DataModule' => [
'description' => 'The bandwidth data that is collected for each interval.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'HttpsDomesticValue' => ['description' => 'The HTTPS bandwidth on L1 nodes in mainland China. Unit: bit/s. When the bandwidth data is queried by ISP, no value is returned.'."\n", 'type' => 'string', 'example' => '11286111', 'title' => ''],
'Value' => ['description' => 'The bandwidth. Unit: bit/s.'."\n", 'type' => 'string', 'example' => '11288111', 'title' => ''],
'OverseasValue' => ['description' => 'The bandwidth outside mainland China. Unit: bit/s. When the bandwidth data is queried by ISP, no value is returned.'."\n", 'type' => 'string', 'example' => '2000', 'title' => ''],
'HttpsValue' => ['description' => 'The total HTTPS bandwidth on L1 nodes. Unit: bit/s.'."\n", 'type' => 'string', 'example' => '11288111', 'title' => ''],
'HttpsOverseasValue' => ['description' => 'The HTTPS bandwidth on L1 nodes outside mainland China. Unit: bit/s. When the bandwidth data is queried by ISP, no value is returned.'."\n", 'type' => 'string', 'example' => '2000', 'title' => ''],
'TimeStamp' => ['description' => 'The timestamp of the returned data. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2015-12-10T13:00:00Z', 'title' => ''],
'DomesticValue' => ['description' => 'The bandwidth in mainland China. Unit: bit/s. When the bandwidth data is queried by ISP, no value is returned.'."\n", 'type' => 'string', 'example' => '11286111', 'title' => ''],
],
'description' => '',
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
'title' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => 'The start time is in an invalid format.'],
['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => 'The end time is in an invalid format.'],
['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => ''],
['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'End time is earlier than start time'],
['errorCode' => 'Invalid.IspNameEn', 'errorMessage' => 'The IspNameEn is invalid.', 'description' => ''],
['errorCode' => 'Invalid.LocationNameEn', 'errorMessage' => 'The LocationNameEn is invalid.', 'description' => ''],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DescribeVodDomainBpsData',
'description' => 'If you specify neither the StartTime parameter nor the EndTime parameter, the data in the last 24 hours is queried. Alternatively, you can specify both the StartTime and EndTime parameters to query data that is generated in the specified duration. You can query data for the last 90 days at most.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return.'."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| InvalidStartTime.Malformed | Specified StartTime is malformed. | 400 | The error message returned because the format of the start time is invalid. |'."\n"
.'| InvalidEndTime.Malformed | Specified EndTime is malformed. | 400 | The error message returned because the format of the end time is invalid. |'."\n"
.'| InvalidStartTime.ValueNotSupported | The specified value of parameter StartTime is not supported. | 400 | The error message returned because the time range that is specified by the EndTime and StartTime parameters exceeds 90 days. |'."\n"
.'| InvalidEndTime.Mismatch | Specified EndTime does not math the specified StartTime. | 400 | The error message returned because the end time is earlier than the start time. |',
'changeSet' => [
['createdAt' => '2025-07-16T06:25:33.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainBpsData'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainBpsData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2015-12-10T14:00:00Z\\",\\n \\"StartTime\\": \\"2015-12-10T13:00:00Z\\",\\n \\"RequestId\\": \\"3C6CCEC4-6B88-4D4A-****-D47B3D92CF8F\\",\\n \\"IspNameEn\\": \\"Alibaba\\",\\n \\"LocationNameEn\\": \\"cn-shanghai\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"BpsDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"HttpsDomesticValue\\": \\"11286111\\",\\n \\"Value\\": \\"11288111\\",\\n \\"OverseasValue\\": \\"2000\\",\\n \\"HttpsValue\\": \\"11288111\\",\\n \\"HttpsOverseasValue\\": \\"2000\\",\\n \\"TimeStamp\\": \\"2015-12-10T13:00:00Z\\",\\n \\"DomesticValue\\": \\"11286111\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n \\n \\n 2015-12-10T13:00:00Z\\n 11288111\\n 11286111\\n 2000\\n 11288111\\n 11286111\\n 2000\\n \\n \\n 2015-12-10T13:05:00Z\\n 12124821\\n 12112821\\n 12000\\n 11288111\\n 11286111\\n 2000\\n \\n \\n example.com\\n 300\\n 3C6CCEC4-6B88-4D4A-****-D47B3D92CF8F\\n 2015-12-10T13:00:00Z\\n 2015-12-10T14:00:00Z\\n","errorExample":""}]',
],
'DescribeVodDomainBpsDataByLayer' => [
'summary' => 'Queries the bandwidth data for one or more accelerated domain names by the protocol type.',
'methods' => ['get', 'post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '178978',
'abilityTreeNodes' => ['FEATUREvodB8HTWV'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The accelerated domain name. You can specify a maximum of 500 accelerated domain names. Separate multiple domain names with commas (,).'."\n", 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query.'."\n"
."\n"
.'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => false, 'example' => '2019-01-23T12:35:12Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query.'."\n"
."\n"
.'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => false, 'example' => '2019-01-23T12:40:12Z', 'title' => ''],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => ['description' => 'The time interval between the data entries. Unit: seconds.'."\n"
."\n"
.'The time granularity varies based on the maximum time range per query. Valid values: 300 (5 minutes), 3600 (1 hour), and 86400 (1 day). For more information, see the supported time granularity described in Usage notes.'."\n", 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''],
],
[
'name' => 'IspNameEn',
'in' => 'query',
'schema' => ['description' => 'The name of the Internet service provider (ISP).'."\n", 'type' => 'string', 'required' => false, 'example' => 'unicom', 'title' => ''],
],
[
'name' => 'LocationNameEn',
'in' => 'query',
'schema' => ['description' => 'The name of the region.'."\n", 'type' => 'string', 'required' => false, 'example' => 'beijing', 'title' => ''],
],
[
'name' => 'Layer',
'in' => 'query',
'schema' => ['description' => 'The layer at which you want to query the data.'."\n"
."\n"
.'Network layer: IPv4 and IPv6. Application layer: http, https, and quic. all: specifies that both the network and application layers are included. Default value: all.'."\n", 'type' => 'string', 'required' => false, 'example' => 'IPv4', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'DataInterval' => ['description' => 'The time interval between the entries returned. Unit: seconds.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '300', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4A*****F6-D7393642CA58', 'title' => ''],
'BpsDataInterval' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DataModule' => [
'description' => 'The bandwidth returned at each time interval. Unit: bit/s.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Value' => ['description' => 'The peak bandwidth. Unit: bit/s.'."\n", 'type' => 'number', 'format' => 'double', 'example' => '75.33', 'title' => ''],
'TrafficValue' => ['description' => 'The total traffic. Unit: bytes.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1000', 'title' => ''],
'TimeStamp' => ['description' => 'The timestamp of the data returned. The time follows the ISO 8601 standard in the yyyy-MM-ddThh:mm:ssZ format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2024-02-08T10:09:19Z', 'title' => ''],
],
'description' => '',
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => 'The start time is in an invalid format.'],
['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => 'The end time is in an invalid format.'],
['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'StartTime or EndTime is mismatch.', 'description' => 'The start time and end time do not match.'],
['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified start time has invalid value.', 'description' => 'The start time is invalid.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DataInterval\\": 300,\\n \\"RequestId\\": \\"25818875-5F78-4A*****F6-D7393642CA58\\",\\n \\"BpsDataInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"Value\\": 75.33,\\n \\"TrafficValue\\": 1000,\\n \\"TimeStamp\\": \\"2024-02-08T10:09:19Z\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
'title' => 'DescribeVodDomainBpsDataByLayer',
'description' => 'You can call this API operation up to 20 times per second per account. If you do not set the StartTime or EndTime parameter, the request returns the data collected in the last 24 hours. If you set both these parameters, the request returns the data collected within the specified time range. Time granularity'."\n"
."\n"
.'The time granularity supported by Interval, the maximum time period within which historical data is available, and the data delay vary based on the time range to query, as described in the following table.'."\n"
."\n"
.'|Time granularity|Time range per query|Historical data available|Data delay|'."\n"
.'|---|---|---|---|'."\n"
.'|15 minutes|3 days|93 days|15 minutes|'."\n"
.'|1 hour|31 days|186 days|3 to 4 hours|'."\n"
.'|1 day|90 days|366 days|4 hours in most cases, not more than 24 hours|',
'changeSet' => [
['createdAt' => '2025-07-16T06:25:48.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T06:19:45.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T06:16:22.000Z', 'description' => 'OpenAPI offline'],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainBpsDataByLayer',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainBpsDataByLayer'],
],
],
],
'DescribeVodDomainCertificateInfo' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39877',
'abilityTreeNodes' => ['FEATUREvodHI57GB'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The accelerated domain name added to ApsaraVideo for VOD.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'HeraApiAutoVersion',
'in' => 'query',
'schema' => ['type' => 'string', 'default' => '15682584300', 'description' => '', 'title' => '', 'example' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The data returned.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5C1E43DC-9E51-4771-****-7D5ECEB547A1', 'title' => ''],
'CertInfos' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'CertInfo' => [
'description' => 'The certificate information.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'CertExpireTime' => ['description' => 'The time when the certificate expires. The time is in UTC and formatted as *yyyy-MM-dd*T*HH:mm:ss*Z.', 'type' => 'string', 'example' => '2018-06-03T13:03:39Z', 'title' => ''],
'CertLife' => ['description' => 'The validity period of the certificate.', 'type' => 'string', 'example' => '3 months', 'title' => ''],
'Status' => ['description' => 'The status of the certificate.'."\n"
."\n"
.'- **success**: The certificate is active.'."\n"
."\n"
.'- **checking**: The system is checking if the domain name has been added to ApsaraVideo for VOD.'."\n"
."\n"
.'- **cname\\_error**: The domain name is not mapped to the CNAME provided by ApsaraVideo for VOD.'."\n"
."\n"
.'- **domain\\_invalid**: The domain name contains invalid characters.'."\n"
."\n"
.'- **unsupport\\_wildcard**: Wildcard domains are not supported.'."\n"
."\n"
.'- **applying**: The certificate application is in progress.'."\n"
."\n"
.'- **failed**: The certificate application failed.'."\n"
."\n"
.'> This parameter is empty for other certificate types.', 'type' => 'string', 'example' => 'success', 'title' => ''],
'CertUpdateTime' => ['description' => 'The time when the certificate was last updated.', 'type' => 'string', 'example' => '2023-04-26T20:23:38Z', 'title' => ''],
'CertDomainName' => ['description' => 'The domain name that matches the certificate.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'ServerCertificateStatus' => ['description' => 'Indicates whether HTTPS is enabled for the domain.'."\n"
."\n"
.'- **on**: Enabled'."\n"
."\n"
.'- **off**: Disabled', 'type' => 'string', 'example' => 'on', 'title' => ''],
'CertOrg' => ['description' => 'The certificate authority (CA) that issued the certificate.', 'type' => 'string', 'example' => 'Let\'s Encrypt', 'title' => ''],
'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'CertStartTime' => ['description' => 'The time when the certificate\'s validity begins.', 'type' => 'string', 'example' => '2023-04-26T20:23:38Z', 'title' => ''],
'CertType' => ['description' => 'The type of the certificate. Valid values:'."\n"
."\n"
.'- **free**: free certificate'."\n"
."\n"
.'- **cas**: CAS certificate'."\n"
."\n"
.'- **upload**: A custom certificate that was uploaded', 'type' => 'string', 'example' => 'free', 'title' => ''],
'CertName' => ['description' => 'The name of the certificate.', 'type' => 'string', 'example' => 'cert-example.com', 'title' => ''],
'DomainCnameStatus' => ['description' => 'The CNAME status of the domain name:'."\n"
."\n"
.'- **ok**: The domain name is mapped to the CNAME provided by ApsaraVideo for VOD. **cname\\_error**: The domain name cannot be mapped to the CNAME.'."\n"
."\n"
.'- **op\\_domain\\_cname\\_error**: The domain name cannot be mapped because the CNAME of the root domain is invalid.'."\n"
."\n"
.'- **unsupport\\_wildcard**: Wildcard domains are not supported.', 'type' => 'string', 'example' => 'ok', 'title' => ''],
'ServerCertificate' => ['description' => 'The certificate public key.', 'type' => 'string', 'example' => '****', 'title' => ''],
'CertId' => ['description' => 'The certificate ID.', 'type' => 'string', 'example' => '13227737-cn-hangzhou', 'title' => ''],
'CertRegion' => ['description' => 'The service region where the certificate is used.', 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DescribeVodDomainCertificateInfo',
'summary' => 'This operation queries the certificate information for a specified accelerated domain name.',
'description' => 'This operation is available only in the **China (Shanghai)** service region.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## 接口错误码'."\n"
."\n"
.'下表列举了本接口特有的错误码。'."\n"
.'| 错误代码 | 错误信息 | HTTP 状态码 | 说明 |'."\n"
.'| ------------- |------------ | ----- | ------ |'."\n"
.'| InvalidDomain.NotFound | The domain provided does not belong to you. | 404 | 域名不存在或不属于当前用户。|',
'changeSet' => [
['createdAt' => '2025-07-16T06:24:47.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainCertificateInfo'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainCertificateInfo',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5C1E43DC-9E51-4771-****-7D5ECEB547A1\\",\\n \\"CertInfos\\": {\\n \\"CertInfo\\": [\\n {\\n \\"CertExpireTime\\": \\"2018-06-03T13:03:39Z\\",\\n \\"CertLife\\": \\"3 months\\",\\n \\"Status\\": \\"success\\",\\n \\"CertUpdateTime\\": \\"2023-04-26T20:23:38Z\\",\\n \\"CertDomainName\\": \\"example.com\\",\\n \\"ServerCertificateStatus\\": \\"on\\",\\n \\"CertOrg\\": \\"Let\'s Encrypt\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"CertStartTime\\": \\"2023-04-26T20:23:38Z\\",\\n \\"CertType\\": \\"free\\",\\n \\"CertName\\": \\"cert-example.com\\",\\n \\"DomainCnameStatus\\": \\"ok\\",\\n \\"ServerCertificate\\": \\"****\\",\\n \\"CertId\\": \\"13227737-cn-hangzhou\\",\\n \\"CertRegion\\": \\"cn-hangzhou\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
],
'DescribeVodDomainConfigs' => [
'summary' => 'Queries the feature configurations of a domain name.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39879',
'abilityTreeNodes' => ['FEATUREvodB8HTWV'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The accelerated domain name for ApsaraVideo VOD. You can query only one domain name.', 'type' => 'string', 'required' => true, 'example' => 'www.example.com', 'title' => ''],
],
[
'name' => 'FunctionNames',
'in' => 'query',
'schema' => ['description' => 'The name of the feature. You can query the configurations of multiple features at a time. Separate multiple feature names with commas (,). For features that can be configured for accelerated domain names for ApsaraVideo VOD and the names of the features, see [Functions for domain name configurations](~~2411639~~).', 'type' => 'string', 'required' => true, 'example' => 'filetype_based_ttl_set,set_req_host_header', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'F8AA0364-0FDB-4AD5-****-D69FAB8924ED', 'title' => ''],
'DomainConfigs' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DomainConfig' => [
'description' => 'The configurations of the domain name.',
'type' => 'array',
'items' => [
'description' => 'The details of the domain name configuration.',
'type' => 'object',
'properties' => [
'Status' => ['description' => 'The status of the domain name configuration. Valid values:'."\n"
."\n"
.'- **success**: The configuration is successful.'."\n"
."\n"
.'- **testing**: The configuration is being tested.'."\n"
."\n"
.'- **failed**: The configuration failed.'."\n"
."\n"
.'- **configuring**: The feature is being configured.', 'type' => 'string', 'example' => 'success', 'title' => ''],
'ConfigId' => ['description' => 'The ID of the configuration.', 'type' => 'string', 'example' => '5003576', 'title' => ''],
'FunctionName' => ['description' => 'The name of the feature.', 'type' => 'string', 'example' => 'set_req_host_header', 'title' => ''],
'FunctionArgs' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'FunctionArg' => [
'description' => 'The details of the feature configuration.',
'type' => 'array',
'items' => [
'description' => 'The details of the feature configuration.',
'type' => 'object',
'properties' => [
'ArgName' => ['description' => 'The name of the parameter, which is a configuration item of functionName.', 'type' => 'string', 'example' => 'domain_name', 'title' => ''],
'ArgValue' => ['description' => 'The value of the parameter, which is the value of the configuration item for functionName.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'Invalid%s.ValueNotSupported', 'errorMessage' => 'FunctionName [%s] is not supported.', 'description' => ''],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DescribeVodDomainConfigs',
'description' => '- Supported endpoint: **China (Shanghai)** region only.',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return.'."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| DeleteFunctionFailed | Batch delete functions failed. | 400 | The error message returned because you failed to delete multiple features. |'."\n"
.'| InvalidFunctionName.ValueNotSupported | FunctionName %s is not supported. | 400 | The error message returned because the %s feature name is invalid. |',
'changeSet' => [
['createdAt' => '2025-07-16T06:25:16.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:36:11.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:33:11.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainConfigs'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainConfigs',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F8AA0364-0FDB-4AD5-****-D69FAB8924ED\\",\\n \\"DomainConfigs\\": {\\n \\"DomainConfig\\": [\\n {\\n \\"Status\\": \\"success\\",\\n \\"ConfigId\\": \\"5003576\\",\\n \\"FunctionName\\": \\"set_req_host_header\\",\\n \\"FunctionArgs\\": {\\n \\"FunctionArg\\": [\\n {\\n \\"ArgName\\": \\"domain_name\\",\\n \\"ArgValue\\": \\"example.com\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","type":"json"}]',
],
'DescribeVodDomainDetail' => [
'summary' => 'Queries the basic information about a specified domain name for CDN.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39880',
'abilityTreeNodes' => ['FEATUREvodHI57GB'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The domain name for CDN.'."\n", 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned datas.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '09ABE829-6CD3-4FE0-556113E2****', 'title' => ''],
'DomainDetail' => [
'description' => 'The basic information about the domain name for CDN.'."\n",
'type' => 'object',
'properties' => [
'GmtCreated' => ['description' => 'The time when the domain name for CDN was added. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2017-11-27T06:51:26Z', 'title' => ''],
'Weight' => ['description' => 'The weight of the origin server.', 'type' => 'string', 'example' => '1', 'title' => ''],
'SSLPub' => ['description' => 'The public key of the certificate. The value of this parameter is returned if HTTPS is enabled.'."\n", 'type' => 'string', 'example' => 'yourSSLPub', 'title' => ''],
'Description' => ['description' => 'The description of the domain name for CDN.'."\n", 'type' => 'string', 'example' => 'testDescription', 'title' => ''],
'SSLProtocol' => ['description' => 'Indicates whether the Secure Sockets Layer (SSL) certificate is enabled. Valid values:'."\n"
.'* **on**: indicates that the SSL certificate is enabled.'."\n"
.'* **off**: indicates that the SSL certificate is disabled.', 'type' => 'string', 'example' => 'on', 'title' => ''],
'CertName' => ['description' => 'The name of the certificate. The value of this parameter is returned if HTTPS is enabled.'."\n", 'type' => 'string', 'example' => 'testCertName', 'title' => ''],
'Scope' => ['description' => 'This parameter is applicable to users of level 3 or higher in mainland China and users outside mainland China. Valid values:'."\n"
.'* **domestic**: mainland China. This is the default value.'."\n"
.'* **overseas**: outside mainland China.'."\n"
.'* **global**: regions in and outside mainland China.', 'type' => 'string', 'example' => 'domestic', 'title' => ''],
'Cname' => ['description' => 'The CNAME that is assigned to the domain name for CDN. You must add a CNAME record in the system of your Domain Name System (DNS) service provider to map the domain name for CDN to the CNAME.'."\n", 'type' => 'string', 'example' => 'example.com.w.alikunlun.net', 'title' => ''],
'DomainStatus' => ['description' => 'The status of the domain name for CDN. Value values:'."\n"
.'* **online**: indicates that the domain name is enabled.'."\n"
.'* **offline**: indicates that the domain name is disabled.'."\n"
.'* **configuring**: indicates that the domain name is being configured.'."\n"
.'* **configure_failed**: indicates that the domain name failed to be configured.'."\n"
.'* **checking**: indicates that the domain name is under review.'."\n"
.'* **check_failed**: indicates that the domain name failed the review.', 'type' => 'string', 'example' => 'online', 'title' => ''],
'GmtModified' => ['description' => 'The last time when the domain name for CDN was modified. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2017-11-27T06:55:26Z', 'title' => ''],
'DomainName' => ['description' => 'The domain name for CDN.'."\n", 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'Sources' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Source' => [
'description' => 'The information about the origin server.',
'type' => 'array',
'items' => [
'description' => 'The information about the origin server.',
'type' => 'object',
'properties' => [
'Type' => ['description' => 'The type of the origin server. Valid values:'."\n"
.'* **ipaddr**: a server that you can access by using an IP address.'."\n"
.'* **domain**: a server that you can access by using a domain name.'."\n"
.'* **oss**: the URL of an Object Storage Service (OSS) bucket.', 'type' => 'string', 'example' => 'oss', 'title' => ''],
'Priority' => ['description' => 'The priority of the origin server.'."\n", 'type' => 'string', 'example' => '50', 'title' => ''],
'Port' => ['description' => 'The port number. Valid values: 443 and 80.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '80', 'title' => ''],
'Content' => ['description' => 'The address of the origin server.'."\n", 'type' => 'string', 'example' => '****.oss-cn-hangzhou.aliyuncs.com', 'title' => ''],
'Enabled' => ['description' => 'The status of the origin server. Valid values:'."\n"
.'* **online**: indicates that the origin server is enabled.'."\n"
.'* **offline**: indicates that the origin server is disabled.', 'type' => 'string', 'example' => 'online', 'title' => ''],
'Weight' => ['type' => 'string', 'description' => 'The weight of the origin server if multiple origin servers have been specified.', 'example' => '10', 'title' => ''],
],
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
'title' => '',
],
],
'title' => '',
],
],
],
'errorCodes' => [
404 => [
['errorCode' => 'InvalidDomain.NotFound', 'errorMessage' => 'The domain provided does not belong to you.', 'description' => ''],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"09ABE829-6CD3-4FE0-556113E2****\\",\\n \\"DomainDetail\\": {\\n \\"GmtCreated\\": \\"2017-11-27T06:51:26Z\\",\\n \\"Weight\\": \\"1\\",\\n \\"SSLPub\\": \\"yourSSLPub\\",\\n \\"Description\\": \\"testDescription\\",\\n \\"SSLProtocol\\": \\"on\\",\\n \\"CertName\\": \\"testCertName\\",\\n \\"Scope\\": \\"domestic\\",\\n \\"Cname\\": \\"example.com.w.alikunlun.net\\",\\n \\"DomainStatus\\": \\"online\\",\\n \\"GmtModified\\": \\"2017-11-27T06:55:26Z\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"Sources\\": {\\n \\"Source\\": [\\n {\\n \\"Type\\": \\"oss\\",\\n \\"Priority\\": \\"50\\",\\n \\"Port\\": 80,\\n \\"Content\\": \\"****.oss-cn-hangzhou.aliyuncs.com\\",\\n \\"Enabled\\": \\"online\\",\\n \\"Weight\\": \\"10\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 09ABE829-6CD3-4FE0-556113E2****\\n \\n 2017-11-27T06:51:26Z\\n 1\\n yourSSLPub\\n testDescription\\n on\\n testCertName\\n domestic\\n example.com.w.alikunlun.net\\n online\\n 2017-11-27T06:55:26Z\\n example.com\\n \\n oss\\n 50\\n 80\\n ****.oss-cn-hangzhou.aliyuncs.com\\n online\\n \\n \\n","errorExample":""}]',
'title' => 'DescribeVodDomainDetail',
'description' => '> This operation is available only in the **China (Shanghai)** region.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => 'The following table describes the common errors that this operation can return. For more information about errors common to all operations, see [Error codes](https://www.alibabacloud.com/help/en/apsaravideo-for-vod/latest/api-reference-error-codes#topic-1235485). '."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| InvalidDomain.NotFound | The domain provided does not belong to you. | 404 | The error message returned because the specified domain name does not exist or does not belong to you. |'."\n"
.'| ServiceBusy | The specified Domain is configuring, please retry again later. | 403 | The error message returned because the domain name is being configured. Try again later. |',
'changeSet' => [
['createdAt' => '2025-07-16T06:24:48.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:35:40.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T07:33:25.000Z', 'description' => 'OpenAPI offline'],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainDetail',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainDetail'],
],
],
],
'DescribeVodDomainHitRateData' => [
'summary' => 'Queries the byte hit ratios of accelerated domain names. Byte hit ratios are measured in percentage.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39881',
'abilityTreeNodes' => ['FEATUREvodB8HTWV'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The accelerated domain name.'."\n"
."\n"
.'* If you leave this parameter empty, the merged data of all your accelerated domain names is returned.'."\n"
.'* You can specify multiple domain names and separate them with commas (,). You can specify a maximum of 500 domain names in each call.'."\n"
.'* To obtain the accelerated domain name, perform the following steps: Log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com). In the left-side navigation pane, choose **Configuration Management > CDN Configuration > Domain Names**. On the Domain Names page, view the accelerated domain names. Alternatively, you can call the [DescribeVodUserDomains](~~DescribeVodUserDomains~~) operation to query the accelerated domain names.'."\n", 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => false, 'example' => '2024-01-20T13:59:58Z'."\n", 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query.'."\n"
."\n"
.'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n"
."\n"
.'> The end time must be later than the start time.'."\n", 'type' => 'string', 'required' => false, 'example' => '2024-01-20T14:59:58Z', 'title' => ''],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => ['description' => 'The time granularity. Unit: seconds. Valid values: **300**, **3600**, and **86400**. If you leave this parameter empty or specify an invalid value, the default value is used. The supported time granularity varies based on the time range specified by `EndTime` and `StartTime`. The following content describes the supported time granularity.'."\n"
."\n"
.'* Time range per query < 3 days: **300** (default), **3600**, and **86400**'."\n"
.'* 3 days ≤ Time range per query < 31 days: **3600** (default) and **86400**'."\n"
.'* 31 days ≤ Time range per query ≤ 90 days: **86400** (default)'."\n", 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned results.'."\n",
'type' => 'object',
'properties' => [
'EndTime' => ['description' => 'The end of the time range.'."\n", 'type' => 'string', 'example' => '2024-01-20T14:59:58Z', 'title' => ''],
'StartTime' => ['description' => 'The beginning of the time range.'."\n", 'type' => 'string', 'example' => '2024-01-20T13:59:58Z', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'D94E471F-1A27-442E-552D-D4D2000C****', 'title' => ''],
'DomainName' => ['description' => 'The accelerated domain name.'."\n", 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'DataInterval' => ['description' => 'The time interval at which data is returned, which is the time granularity. Unit: seconds.'."\n", 'type' => 'string', 'example' => '300', 'title' => ''],
'HitRateInterval' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DataModule' => [
'description' => 'The byte hit rate data at each time interval.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Value' => ['description' => 'The total byte hit rate.'."\n", 'type' => 'string', 'example' => '100', 'title' => ''],
'TimeStamp' => ['description' => 'The timestamp of the data returned. The time follows the ISO 8601 standard in the yyyy-MM-ddThh:mm:ssZ format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2024-01-20T13:59:58Z', 'title' => ''],
'HttpsValue' => ['description' => 'The HTTPS byte hit rate.'."\n", 'type' => 'string', 'example' => '50', 'title' => ''],
],
'description' => '',
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
'title' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => 'Both start time and end must be specified'],
['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => ''],
['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => ''],
['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'End time is earlier than start time'],
['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => ''],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"EndTime\\": \\"2024-01-20T14:59:58Z\\",\\n \\"StartTime\\": \\"2024-01-20T13:59:58Z\\",\\n \\"RequestId\\": \\"D94E471F-1A27-442E-552D-D4D2000C****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"HitRateInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"Value\\": \\"100\\",\\n \\"TimeStamp\\": \\"2024-01-20T13:59:58Z\\",\\n \\"HttpsValue\\": \\"50\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
'title' => 'DescribeVodDomainHitRateData',
'description' => '* This operation is supported only in the **China (Shanghai)** region.'."\n"
.'* You can specify a maximum of 500 accelerated domain names.'."\n"
.'* If you specify neither `StartTime` nor `EndTime`, the data of the last 24 hours is queried. You can specify both `StartTime` and `EndTime` parameters to query data of a specified time range.'."\n"
."\n"
.'**Time granularity**'."\n"
."\n"
.'The time granularity varies with the time range specified by the `StartTime` and `EndTime` parameters. The following table describes the time period within which historical data is available and the data delay when you do not set `Interval`.'."\n"
."\n"
.'|Time granularity|Time range per query|Historical data available|Data delay|'."\n"
.'|---|---|---|---|'."\n"
.'|5 minutes|Time range per query < 3 days|93 days|15 minutes|'."\n"
.'|1 hour|3 days ≤ Time range per query < 31 days|186 days|3 to 4 hours|'."\n"
.'|1 day|31 days ≤ Time span of a single query ≤ 366 days|366 days|4 hours in most cases, not more than 24 hours|',
'changeSet' => [
['createdAt' => '2025-07-16T06:25:28.000Z', 'description' => 'OpenAPI offline'],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainHitRateData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainHitRateData'],
],
],
],
'DescribeVodDomainLog' => [
'summary' => 'Queries the information about the CDN access logs for a domain name, including the log path.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39884',
'abilityTreeNodes' => ['FEATUREvodB8HTWV'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The domain name for CDN.'."\n"
."\n"
.'> You can specify only one domain name in each query.'."\n", 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries per page.'."\n"
."\n"
.'* Default value: **300**.'."\n"
.'* Valid values: **1 to 1000**.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'maximum' => '1000', 'minimum' => '1', 'example' => '300', 'default' => '300', 'title' => ''],
],
[
'name' => 'PageNumber',
'in' => 'query',
'schema' => ['description' => 'The page number. Default value: **1**.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'minimum' => '1', 'example' => '1', 'default' => '1', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => false, 'example' => '2016-10-20T04:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. The end time must be later than the start time. The maximum time range that can be specified is one year. Specify the time in the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => false, 'example' => '2016-10-20T05:00:00Z', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '077D0284-F041-4A41-4D3C-B48377FD****', 'title' => ''],
'DomainLogDetails' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DomainLogDetail' => [
'description' => 'The details of CDN logs.'."\n",
'type' => 'array',
'items' => [
'description' => 'The detailed data of Alibaba Cloud CDN logs.',
'type' => 'object',
'properties' => [
'LogCount' => ['description' => 'The total number of entries returned on the current page.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '2', 'title' => ''],
'DomainName' => ['description' => 'The domain name.'."\n", 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'LogInfos' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'LogInfoDetail' => [
'description' => 'The queried CDN logs.'."\n",
'type' => 'array',
'items' => [
'description' => 'The detailed information about Alibaba Cloud CDN logs.',
'type' => 'object',
'properties' => [
'EndTime' => ['description' => 'The end of the time range during which data was queried. The time follows the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2018-05-31T05:00:00Z', 'title' => ''],
'LogSize' => ['description' => 'The size of the log file.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '2645401', 'title' => ''],
'StartTime' => ['description' => 'The beginning of the time range during which data was queried. The time follows the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2018-05-31T04:00:00Z', 'title' => ''],
'LogName' => ['description' => 'The name of the log file.'."\n", 'type' => 'string', 'example' => 'example.com_2018_03_25_180000_19****.gz', 'title' => ''],
'LogPath' => ['description' => 'The path of the log file.'."\n", 'type' => 'string', 'example' => 'example.com/2018_03_25/example.com_2018_03_25_180000_19****.gz?Expires=1522659931&OSSAccessKeyId=****&Signature=****', 'title' => ''],
],
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
'PageInfos' => [
'description' => 'The pagination information.'."\n",
'type' => 'object',
'properties' => [
'PageNumber' => ['description' => 'The page number.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
'PageSize' => ['description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '300', 'title' => ''],
'Total' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '2', 'title' => ''],
],
'title' => '',
],
],
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
'title' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => 'The start time is in an invalid format.'],
['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => 'The end time is in an invalid format.'],
['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => ''],
['errorCode' => 'InvalidTime.ValueNotSupported', 'errorMessage' => 'StartTime or EndTime is miss match.', 'description' => ''],
['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter \\ is not valid.', 'description' => ''],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"077D0284-F041-4A41-4D3C-B48377FD****\\",\\n \\"DomainLogDetails\\": {\\n \\"DomainLogDetail\\": [\\n {\\n \\"LogCount\\": 2,\\n \\"DomainName\\": \\"example.com\\",\\n \\"LogInfos\\": {\\n \\"LogInfoDetail\\": [\\n {\\n \\"EndTime\\": \\"2018-05-31T05:00:00Z\\",\\n \\"LogSize\\": 2645401,\\n \\"StartTime\\": \\"2018-05-31T04:00:00Z\\",\\n \\"LogName\\": \\"example.com_2018_03_25_180000_19****.gz\\",\\n \\"LogPath\\": \\"example.com/2018_03_25/example.com_2018_03_25_180000_19****.gz?Expires=1522659931&OSSAccessKeyId=****&Signature=****\\"\\n }\\n ]\\n },\\n \\"PageInfos\\": {\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 300,\\n \\"Total\\": 2\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 077D0284-F041-4A41-4D3C-B48377FD****\\n \\n 2\\n example.com\\n \\n 2018-05-31T05:00:00Z\\n 2645401\\n 2018-05-31T04:00:00Z\\n example.com_2018_03_25_180000_19****.gz\\n example.com/2018_03_25/example.com_2018_03_25_180000_19****.gz?Expires=1522659931&OSSAccessKeyId=****&Signature=****\\n \\n \\n 1\\n 300\\n 2\\n \\n \\n","errorExample":""}]',
'title' => 'DescribeVodDomainLog',
'description' => '* This operation is available only in the **China (Shanghai)** region.'."\n"
.'* For more information about the log format and latency, see [Download logs](~~86099~~).'."\n"
.'* If you specify neither the StartTime parameter nor the EndTime parameter, the log data in the last 24 hours is queried.'."\n"
.'* You can specify both the StartTime and EndTime parameters to query the log data that is generated in the specified time range.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2025-07-16T06:25:26.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainLog'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainLog',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeVodDomainMax95BpsData' => [
'summary' => 'Queries the 95th percentile bandwidth data of an accelerated domain name.',
'methods' => ['get'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '235311',
'abilityTreeNodes' => ['FEATUREvodB8HTWV'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The domain name to be queried for acceleration. If the parameter is empty, the data merged from all accelerated domain names will be returned by default.'."\n"
."\n"
.'> Batch domain name queries are not supported.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'Start time point. The date format follows the ISO8601 representation and uses UTC time, in the format yyyy-MM-dd\'T\'HH:mm:ssZ.', 'type' => 'string', 'required' => false, 'example' => '2017-01-11T12:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'End time point. The date format follows the ISO8601 representation and uses UTC time, in the format yyyy-MM-dd\'T\'HH:mm:ssZ.', 'type' => 'string', 'required' => false, 'example' => '2017-01-12T13:00:00Z', 'title' => ''],
],
[
'name' => 'TimePoint',
'in' => 'query',
'schema' => ['description' => 'The start time point for getting the data. The date format follows the ISO8601 representation and uses UTC time, in the format yyyy-MM-dd\'T\'HH:mm:ssZ.', 'type' => 'string', 'required' => false, 'example' => '2017-12-21T10:00:00Z', 'title' => ''],
],
[
'name' => 'Cycle',
'in' => 'query',
'schema' => [
'description' => 'The cycle to query the 95th percentile bandwidth data. Valid values:'."\n"
."\n"
.'- day (default)'."\n"
."\n"
.'- month',
'type' => 'string',
'required' => false,
'enum' => ['day', 'month'],
'example' => 'month',
'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '25818875-5F78-4A*****F6-D7393642CA58', 'title' => ''],
'DomainName' => ['description' => 'The domain name for CDN.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'EndTime' => ['description' => 'The end of the time range to query.'."\n"
."\n"
.'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n"
."\n"
.'> The end time must be later than the start time.', 'type' => 'string', 'example' => '2017-01-11T13:00:00Z', 'title' => ''],
'StartTime' => ['description' => 'The beginning of the time range to query.'."\n"
."\n"
.'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'example' => '2017-01-11T12:00:00Z', 'title' => ''],
'DomesticMax95Bps' => ['description' => 'The 95th percentile bandwidth in the Chinese mainland.', 'type' => 'string', 'example' => '16777590.28'."\n", 'title' => ''],
'OverseasMax95Bps' => ['description' => 'The 95th percentile bandwidth outside the Chinese mainland.', 'type' => 'string', 'example' => '0', 'title' => ''],
'Max95Bps' => ['description' => 'The 95th percentile bandwidth.', 'type' => 'string', 'example' => '16777590.28'."\n", 'title' => ''],
'DetailData' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Max95Detail' => [
'description' => 'Details of the 95th percentile bandwidth.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'TimeStamp' => ['description' => 'The timestamp of the returned data.', 'type' => 'string', 'example' => '2024-01-18 10:11:32', 'title' => ''],
'Area' => ['description' => 'The billable region where the peak 95 data was collected.', 'type' => 'string', 'example' => 'CN', 'title' => ''],
'Max95BpsPeakTime' => ['description' => 'The time corresponding to the 95th percentile bandwidth peak.', 'type' => 'string', 'example' => '2015-12-11T21:05:00Z'."\n", 'title' => ''],
'Max95Bps' => ['description' => 'The 95th percentile bandwidth.', 'type' => 'number', 'format' => 'float', 'example' => '16777590.28'."\n", 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified value of parameter StartTime is malformed.', 'description' => ''],
['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified value of parameter EndTime is malformed.', 'description' => ''],
['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => ''],
['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified EndTime does not match the specified StartTime.', 'description' => ''],
['errorCode' => 'InvalidTimePoint.Malformed', 'errorMessage' => 'Specified TimePoint is malformed.', 'description' => ''],
['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => 'The time span exceeds the limit. Configure a valid time span based on the documentation.'],
['errorCode' => 'InvalidTime.Malformed', 'errorMessage' => 'Specified StartTime or EndTime is malformed.', 'description' => ''],
],
404 => [
['errorCode' => 'InvalidDomain.NotFound', 'errorMessage' => 'The domain provided does not exist in our records.', 'description' => ''],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DescribeVodDomainMax95BpsData',
'description' => '**Query methods**'."\n"
."\n"
.'- If you specify both StartTime and EndTime, the system queries the 95th percentile peak value for the day on which StartTime falls if the difference between EndTime and StartTime is within 24 hours. Otherwise, the system queries the 95th percentile peak value for the month on which StartTime falls.'."\n"
."\n"
.'- If you specify both TimePoint and Cycle, the system returns the 95th percentile peak value for the cycle in which TimePoint falls.'."\n"
."\n"
.'- If you specify StartTime and EndTime, and additionally specify Cycle, the system can return the 95th percentile peak values corresponding to all specified cycles within the query range.'."\n"
."\n"
.'If none of these three methods are specified, the 95th percentile peak value for the past 24 hours is returned by default.'."\n"
."\n"
.'- Maximum query span: 90 days'."\n"
."\n"
.'- Minimum query granularity: 1 day'."\n"
."\n"
.'- Maximum query range: 90 days'."\n"
."\n"
.'- Maximum queries per second: 100 per user.'."\n"
."\n"
.'- Data unit: bit/s.',
'changeSet' => [
['createdAt' => '2025-07-16T06:26:16.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainMax95BpsData'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainMax95BpsData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4A*****F6-D7393642CA58\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"EndTime\\": \\"2017-01-11T13:00:00Z\\",\\n \\"StartTime\\": \\"2017-01-11T12:00:00Z\\",\\n \\"DomesticMax95Bps\\": \\"16777590.28\\\\n\\",\\n \\"OverseasMax95Bps\\": \\"0\\",\\n \\"Max95Bps\\": \\"16777590.28\\\\n\\",\\n \\"DetailData\\": {\\n \\"Max95Detail\\": [\\n {\\n \\"TimeStamp\\": \\"2024-01-18 10:11:32\\",\\n \\"Area\\": \\"CN\\",\\n \\"Max95BpsPeakTime\\": \\"2015-12-11T21:05:00Z\\\\n\\",\\n \\"Max95Bps\\": 16777590.28\\n }\\n ]\\n }\\n}","type":"json"}]',
],
'DescribeVodDomainQpsData' => [
'summary' => 'Queries the number of queries per second (QPS) for one or more accelerated domain names. Data is collected every 5 minutes. You can query data collected in the last 90 days.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39886',
'abilityTreeNodes' => ['FEATUREvodB8HTWV'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'You can specify multiple domain names and separate them with commas (,). You can specify a maximum of 500 domain names in each call.'."\n"
."\n"
.'By default, this operation queries the number and proportions of HTTP status codes for all accelerated domain names that belong to your Alibaba Cloud account.'."\n", 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd**THH:mm:ssZ* format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => false, 'example' => '2024-05-02T15:50:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd**THH:mm:ssZ* format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => false, 'example' => '2024-05-02T15:59:00Z', 'title' => ''],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => ['description' => 'The interval at which to return data. Unit: seconds. Valid values: **300**, **3600**, and **86400**.'."\n", 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''],
],
[
'name' => 'IspNameEn',
'in' => 'query',
'schema' => ['description' => 'The name of the Internet service provider (ISP). If you leave this parameter empty, data of all ISPs is queried.'."\n", 'type' => 'string', 'required' => false, 'example' => 'unicom', 'title' => ''],
],
[
'name' => 'LocationNameEn',
'in' => 'query',
'schema' => ['description' => 'The name of the region. If you leave this parameter empty, data in all regions is queried.'."\n", 'type' => 'string', 'required' => false, 'example' => 'beijing', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'EndTime' => ['description' => 'The end of the time range during which data was queried. The time follows the ISO 8601 standard in the *YYYY-MM-DD**Thh:mm:ss* format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2024-05-02T15:59:00Z', 'title' => ''],
'StartTime' => ['description' => 'The beginning of the time range during which data was queried. The time follows the ISO 8601 standard in the *YYYY-MM-DD**Thh:mm:ss* format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2024-05-02T15:50:00Z', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4AF6-D7393642CA58*****', 'title' => ''],
'DomainName' => ['description' => 'The accelerated domain name.'."\n", 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'DataInterval' => ['description' => 'The time interval between the data entries returned. Unit: seconds.'."\n", 'type' => 'string', 'example' => '300', 'title' => ''],
'QpsDataInterval' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DataModule' => [
'description' => 'The list of QPS records at each interval.'."\n",
'type' => 'array',
'items' => [
'description' => '',
'type' => 'object',
'properties' => [
'AccValue' => ['description' => 'The total number of requests.'."\n", 'type' => 'string', 'example' => '0', 'title' => ''],
'AccDomesticValue' => ['description' => 'The number of requests in the Chinese mainland.'."\n", 'type' => 'string', 'example' => '0', 'title' => ''],
'AccOverseasValue' => ['description' => 'The number of requests outside the Chinese mainland.'."\n", 'type' => 'string', 'example' => '0', 'title' => ''],
'HttpsValue' => ['description' => 'The QPS that is calculated based on the HTTPS requests sent to points of presence (POPs).'."\n", 'type' => 'string', 'example' => '1', 'title' => ''],
'HttpsOverseasValue' => ['description' => 'The QPS that is calculated based on the HTTPS requests sent to POPs outside the Chinese mainland.'."\n", 'type' => 'string', 'example' => '1', 'title' => ''],
'DomesticValue' => ['description' => 'The QPS data in the Chinese mainland.'."\n", 'type' => 'string', 'example' => '0', 'title' => ''],
'HttpsAccOverseasValue' => ['description' => 'The number of HTTPS requests sent to POPs outside the Chinese mainland.'."\n", 'type' => 'string', 'example' => '1', 'title' => ''],
'HttpsDomesticValue' => ['description' => 'The QPS that is calculated based on the HTTPS requests sent to POPs in the Chinese mainland.'."\n", 'type' => 'string', 'example' => '1', 'title' => ''],
'HttpsAccValue' => ['description' => 'The number of HTTPS requests sent to POPs.'."\n", 'type' => 'string', 'example' => '1', 'title' => ''],
'Value' => ['description' => 'The total QPS.'."\n", 'type' => 'string', 'example' => '0', 'title' => ''],
'OverseasValue' => ['description' => 'The QPS data outside the Chinese mainland.'."\n", 'type' => 'string', 'example' => '0', 'title' => ''],
'TimeStamp' => ['description' => 'The timestamp of the data returned. The time follows the ISO 8601 standard in the YYYY-MM-DDThh:mm:ss format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2023-06-27 10:10:58', 'title' => ''],
'HttpsAccDomesticValue' => ['description' => 'The QPS that is calculated based on the HTTPS requests sent to POPs in the Chinese mainland.'."\n", 'type' => 'string', 'example' => '1', 'title' => ''],
],
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => 'Both start time and end must be specified'],
['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => ''],
['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => ''],
['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'End time is earlier than start time'],
['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => ''],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"EndTime\\": \\"2024-05-02T15:59:00Z\\",\\n \\"StartTime\\": \\"2024-05-02T15:50:00Z\\",\\n \\"RequestId\\": \\"25818875-5F78-4AF6-D7393642CA58*****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"QpsDataInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"AccValue\\": \\"0\\",\\n \\"AccDomesticValue\\": \\"0\\",\\n \\"AccOverseasValue\\": \\"0\\",\\n \\"HttpsValue\\": \\"1\\",\\n \\"HttpsOverseasValue\\": \\"1\\",\\n \\"DomesticValue\\": \\"0\\",\\n \\"HttpsAccOverseasValue\\": \\"1\\",\\n \\"HttpsDomesticValue\\": \\"1\\",\\n \\"HttpsAccValue\\": \\"1\\",\\n \\"Value\\": \\"0\\",\\n \\"OverseasValue\\": \\"0\\",\\n \\"TimeStamp\\": \\"2023-06-27 10:10:58\\",\\n \\"HttpsAccDomesticValue\\": \\"1\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
'title' => 'DescribeVodDomainQpsData',
'description' => '* This operation is available only in the China (Shanghai) region.'."\n"
.'* You can call this operation up to 100 times per second per account.'."\n"
.'* If you do not set the StartTime or EndTime parameter, the request returns the data collected in the last 24 hours. If you set both these parameters, the request returns the data collected within the specified time range.'."\n"
."\n"
.'**Time granularity**'."\n"
."\n"
.'The time granularity supported by the Interval parameter, the maximum time period within which historical data is available, and the data delay vary with the maximum time range per query, as described in the following table.'."\n"
."\n"
.'|Time granularity|Maximum time range per query|Historical data available|Data delay|'."\n"
.'|---|---|---|---|'."\n"
.'|5 minutes|3 days|93 days|15 minutes|'."\n"
.'|1 hour|31 days|186 days|3 to 4 hours|'."\n"
.'|1 day|366 days|366 days|4 to 24 hours|'."\n"
."\n"
.'---',
'changeSet' => [
['createdAt' => '2025-07-16T06:25:27.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainQpsData'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainQpsData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeVodDomainRealTimeBpsData' => [
'summary' => 'Queries the bandwidth data for one or more accelerated domains. The minimum time granularity is 1 minute. The minimum data latency is 5 minutes. You can query data in the last 186 days. Compared with the DescribeVodDomainBpsData operation, this operation provides a smaller time granularity, lower data latency, and allows you to query historical data within a shorter time period.',
'methods' => ['get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39887',
'abilityTreeNodes' => ['FEATUREvodB8HTWV'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'You can specify multiple domain names and separate them with commas (,). You can specify a maximum of 500 domain names in each call.'."\n", 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'IspNameEn',
'in' => 'query',
'schema' => ['description' => 'The name of the ISP. If you do not set this parameter, all ISPs are queried.'."\n", 'type' => 'string', 'required' => false, 'example' => 'telecom', 'title' => ''],
],
[
'name' => 'LocationNameEn',
'in' => 'query',
'schema' => ['description' => 'The name of the region. If you do not set this parameter, data in all regions is queried.'."\n", 'type' => 'string', 'required' => false, 'example' => 'shanghai', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query.'."\n"
."\n"
.'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => false, 'example' => '2019-11-30T05:33:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n"
."\n"
.'> The end time must be later than the start time.'."\n", 'type' => 'string', 'required' => false, 'example' => '2019-11-30T05:40:00Z', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'B49E6DDA-F413-422B-B58E-2FA23F286726', 'title' => ''],
'Data' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'BpsModel' => [
'description' => 'The returned data.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Bps' => ['description' => 'The bandwidth. Unit: bit/s.'."\n", 'type' => 'number', 'format' => 'float', 'example' => '16710625.733333332', 'title' => ''],
'TimeStamp' => ['description' => 'The timestamp of the data returned. The time follows the ISO 8601 standard. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2019-11-30T05:41:00Z', 'title' => ''],
],
'description' => '',
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidTime.Malformed', 'errorMessage' => 'Specified StartTime or EndTime is malformed.', 'description' => ''],
['errorCode' => 'InvalidDomainName.Malformed', 'errorMessage' => 'Specified domain name is malformed.', 'description' => ''],
['errorCode' => 'InvalidIspParameter', 'errorMessage' => 'The specified Isp is invalid.', 'description' => ''],
['errorCode' => 'InvalidLocName', 'errorMessage' => 'The specified LocName is not supported.', 'description' => ''],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"B49E6DDA-F413-422B-B58E-2FA23F286726\\",\\n \\"Data\\": {\\n \\"BpsModel\\": [\\n {\\n \\"Bps\\": 16710625.733333332,\\n \\"TimeStamp\\": \\"2019-11-30T05:41:00Z\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
'title' => 'DescribeVodDomainRealTimeBpsData',
'description' => '* This operation is supported only in the **China (Shanghai)** region.'."\n"
.'* You can specify a maximum of 500 accelerated domain names.'."\n"
.'* If you specify neither `StartTime` nor `EndTime`, the data of the last 1 hour is queried. You can specify both `StartTime` and `EndTime` parameters to query data of a specified time range.'."\n"
."\n"
.'**Time granularity**'."\n"
."\n"
.'The time granularity varies with the time range specified by the `StartTime` and `EndTime` parameters. The following table describes the time period within which historical data is available and the data delay.'."\n"
."\n"
.'|Time granularity|Time range per query|Historical data available|Data delay|'."\n"
.'|---|---|---|---|'."\n"
.'|1 minute|Time range per query ≤ 1 hour|7 days|5 minutes|'."\n"
.'|5 minutes|1 Hour < Time range per query ≤ 3 days|93 days|15 minutes|'."\n"
.'|1 hour|3 days < Time range per query ≤ 31 days|186 days|3 to 4 hours|',
'changeSet' => [
['createdAt' => '2025-07-16T06:24:41.000Z', 'description' => 'OpenAPI offline'],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainRealTimeBpsData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainRealTimeBpsData'],
],
],
],
'DescribeVodDomainRealTimeByteHitRateData' => [
'summary' => 'Queries the byte hit ratio of accelerated domain names. The minimum time granularity for a query is 1 minute, and the data has a latency of at least 5 minutes. You can query data from the last 186 days.',
'methods' => ['get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39888',
'abilityTreeNodes' => ['FEATUREvodB8HTWV'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The accelerated domain name to query.'."\n"
."\n"
.'- Separate multiple domain names with commas (,). You can query a maximum of 100 domain names in a single request.'."\n"
."\n"
.'- If you query multiple domain names, the returned data is aggregated.'."\n"
."\n"
.'- Log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com). In the navigation pane on the left, choose **Configuration Management > CDN Configuration > Domain Names** to view the accelerated domain names. You can also call the [DescribeVodUserDomains](~~455030~~) operation to query the list of accelerated domain names.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2020-05-15T09:13:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n"
."\n"
.'> The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2020-05-15T09:15:00Z', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '70A26B11-3673-479C-AEA8-E03FC5D3496D', 'title' => ''],
'Data' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'ByteHitRateDataModel' => [
'description' => 'The details of the returned data.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'ByteHitRate' => ['description' => 'The byte hit ratio, in percentage.', 'type' => 'number', 'format' => 'float', 'example' => '0.8956940476262277', 'title' => ''],
'TimeStamp' => ['description' => 'The data timestamp. The time is specified in the ISO 8601 standard and is in UTC.', 'type' => 'string', 'example' => '2020-05-15T09:13:00Z', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidTime.Malformed', 'errorMessage' => 'Specified StartTime or EndTime is malformed.', 'description' => ''],
['errorCode' => 'InvalidDomainName.Malformed', 'errorMessage' => 'Specified domain name is malformed.', 'description' => ''],
['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => 'The end time is in an invalid format.'],
['errorCode' => 'InvalidParameterType', 'errorMessage' => 'The specified Type is invalid.', 'description' => 'The Type parameter is invalid. Modify the value of the Type parameter based on the documentation.'],
['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => 'The time span exceeds the limit. Configure a valid time span based on the documentation.'],
['errorCode' => 'InvalidParameter', 'errorMessage' => 'Invalid input parameter.', 'description' => 'Input parameter error.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"70A26B11-3673-479C-AEA8-E03FC5D3496D\\",\\n \\"Data\\": {\\n \\"ByteHitRateDataModel\\": [\\n {\\n \\"ByteHitRate\\": 0.8956940476262277,\\n \\"TimeStamp\\": \\"2020-05-15T09:13:00Z\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
'title' => 'DescribeVodDomainRealTimeByteHitRateData',
'description' => '- The endpoint for this operation is available only in the **China (Shanghai)** region.'."\n"
."\n"
.'- You can query data for up to 100 domain names in a single batch request.'."\n"
."\n"
.'- If you do not specify `StartTime` and `EndTime`, the operation returns data from the last hour by default. If you specify `StartTime` and `EndTime`, the operation returns data for the specified time range.'."\n"
."\n"
.'**Data granularity**'."\n"
."\n"
.'The time granularity of the returned data depends on the time range that you specify between `StartTime` and `EndTime`. The following table describes the time granularity, queryable time range, and data latency.'."\n"
."\n"
.'| Time granularity | Time span per query | Queryable time range | Data latency |'."\n"
.'| ---------------- | -------------------------------------- | -------------------- | ------------ |'."\n"
.'| 1 minute | Time span per query ≤ 1 hour | 7 days | 5 minutes |'."\n"
.'| 5 minutes | 1 hour < Time span per query < 3 days | 93 days | 15 minutes |'."\n"
.'| 1 hour | 3 days ≤ Time span per query < 31 days | 186 days | 3 to 4 hours |',
'changeSet' => [
['createdAt' => '2025-07-16T06:25:08.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainRealTimeByteHitRateData'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainRealTimeByteHitRateData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeVodDomainRealTimeDetailData' => [
'summary' => 'Queries real-time monitoring data of one or more accelerated domain names.',
'methods' => ['get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39889',
'abilityTreeNodes' => ['FEATUREvodB8HTWV'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The accelerated domain name. You can specify a maximum of 20 accelerated domain names in each call. Separate domain names with commas (,).'."\n", 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query.'."\n"
."\n"
.'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC. Example: 2019-11-30T05:33:00Z.'."\n", 'type' => 'string', 'required' => true, 'example' => '2019-01-23T12:35:12Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query.'."\n"
."\n"
.'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC. Example: 2019-11-30T05:40:00Z.'."\n", 'type' => 'string', 'required' => true, 'example' => '2019-01-23T12:40:00Z', 'title' => ''],
],
[
'name' => 'Field',
'in' => 'query',
'schema' => ['description' => 'The type of data that you want to query. You can specify multiple data types and separate them with commas (,). Valid values:'."\n"
."\n"
.'qps: the number of queries per second bps: bandwidth data http_code: HTTP status codes'."\n", 'type' => 'string', 'required' => true, 'example' => 'bps', 'title' => ''],
],
[
'name' => 'LocationNameEn',
'in' => 'query',
'schema' => ['description' => 'The name of the region. If you do not specify a region, data in all regions is queried.'."\n", 'type' => 'string', 'required' => false, 'example' => 'shanghai', 'title' => ''],
],
[
'name' => 'IspNameEn',
'in' => 'query',
'schema' => ['description' => 'The name of the Internet service provider (ISP).'."\n", 'type' => 'string', 'required' => false, 'example' => 'unicom', 'title' => ''],
],
[
'name' => 'Merge',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to return a summary value. Valid values:'."\n"
."\n"
.'true false (default)'."\n", 'type' => 'string', 'required' => false, 'example' => 'false', 'title' => ''],
],
[
'name' => 'MergeLocIsp',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to return a summary value. Valid values:'."\n"
."\n"
.'* **true**: groups the results by domain name and merges the results by region and ISP.'."\n"
.'* **false**: groups the results by domain name.'."\n"
."\n"
.'Default value: **false**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'true', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'Data' => ['description' => 'The returned results.'."\n", 'type' => 'string', 'example' => '['."\n"
.' {'."\n"
.' "time_stp": "2018-06-05T20:00:00Z",'."\n"
.' "domain_name": "example.com",'."\n"
.' "location": "Guangdong",'."\n"
.' "isp": "telecom",'."\n"
.' "qps": 10'."\n"
.' },'."\n"
.' {'."\n"
.' "time_stp": "2018-06-05T20:00:00Z",'."\n"
.' "domain_name": "example.com",'."\n"
.' "location": "Jiangsu",'."\n"
.' "isp": "unicom",'."\n"
.' "qps": 11.1'."\n"
.' }'."\n"
.']', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '1710298E-8AFA-5F6D-A3E9-47103C52177D', 'title' => ''],
],
'description' => '',
'title' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidTime.Malformed', 'errorMessage' => 'Specified StartTime or EndTime is malformed.', 'description' => ''],
['errorCode' => 'InvalidDomainName.Malformed', 'errorMessage' => 'Specified domain name is malformed.', 'description' => ''],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DescribeVodDomainRealTimeDetailData',
'description' => 'You can query data within the last seven days. Data is collected every minute. You can call this API operation up to 10 times per second per account.'."\n",
'changeSet' => [
['createdAt' => '2025-07-16T06:25:48.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainRealTimeDetailData'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainRealTimeDetailData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Data\\": \\"[\\\\n {\\\\n \\\\\\"time_stp\\\\\\": \\\\\\"2018-06-05T20:00:00Z\\\\\\",\\\\n \\\\\\"domain_name\\\\\\": \\\\\\"example.com\\\\\\",\\\\n \\\\\\"location\\\\\\": \\\\\\"Guangdong\\\\\\",\\\\n \\\\\\"isp\\\\\\": \\\\\\"telecom\\\\\\",\\\\n \\\\\\"qps\\\\\\": 10\\\\n },\\\\n {\\\\n \\\\\\"time_stp\\\\\\": \\\\\\"2018-06-05T20:00:00Z\\\\\\",\\\\n \\\\\\"domain_name\\\\\\": \\\\\\"example.com\\\\\\",\\\\n \\\\\\"location\\\\\\": \\\\\\"Jiangsu\\\\\\",\\\\n \\\\\\"isp\\\\\\": \\\\\\"unicom\\\\\\",\\\\n \\\\\\"qps\\\\\\": 11.1\\\\n }\\\\n]\\",\\n \\"RequestId\\": \\"1710298E-8AFA-5F6D-A3E9-47103C52177D\\"\\n}","type":"json"}]',
],
'DescribeVodDomainRealTimeHttpCodeData' => [
'summary' => 'Queries the total number of HTTP status codes and proportion of each HTTP status code for one or more accelerated domains. The minimum time granularity is 1 minute. The minimum data latency is 5 minutes. You can query data in the last 186 days.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39890',
'abilityTreeNodes' => ['FEATUREvodB8HTWV'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The accelerated domain name.'."\n"
."\n"
.'* You can specify multiple domain names and separate them with commas (,). You can specify at most 100 domain names in each call.'."\n"
.'* If you specify multiple domain names, merged data is returned.'."\n"
.'* To obtain the accelerated domain name, perform the following steps: Log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com). In the left-side navigation pane, choose **Configuration Management > CDN Configuration > Domain Names**. On the Domain Names page, view the accelerated domain names. Alternatively, you can call the [DescribeVodUserDomains](~~DescribeVodUserDomains~~) operation to query the accelerated domain names.'."\n", 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query.'."\n"
."\n"
.'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => false, 'example' => '2019-11-30T05:39:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query.'."\n"
."\n"
.'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n"
."\n"
.'> The end time must be later than the start time.'."\n", 'type' => 'string', 'required' => false, 'example' => '2019-11-30T05:40:00Z', 'title' => ''],
],
[
'name' => 'IspNameEn',
'in' => 'query',
'schema' => ['description' => 'The name of the ISP. If you do not set this parameter, all ISPs are queried.'."\n", 'type' => 'string', 'required' => false, 'example' => 'unicom', 'title' => ''],
],
[
'name' => 'LocationNameEn',
'in' => 'query',
'schema' => ['description' => 'The name of the region. If you do not set this parameter, data in all regions is queried.'."\n", 'type' => 'string', 'required' => false, 'example' => 'shanghai', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'EndTime' => ['description' => 'The end of the time range.'."\n", 'type' => 'string', 'example' => '2019-11-30T05:40:00Z', 'title' => ''],
'StartTime' => ['description' => 'The beginning of the time range.'."\n", 'type' => 'string', 'example' => '2019-11-30T05:39:00Z', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'BC858082-736F-4A25-867B-E5B67C85ACF7', 'title' => ''],
'DomainName' => ['description' => 'The accelerated domain name.'."\n", 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'DataInterval' => ['description' => 'The time interval at which data is returned. Unit: seconds.'."\n"
."\n"
.'The returned value varies based on the time range per query. Valid values: 60 (1 minute), 300 (5 minutes), and 3600 (1 hour). For more information, see the **Time granularity** section in the **API documentation**.'."\n", 'type' => 'string', 'example' => '60', 'title' => ''],
'RealTimeHttpCodeData' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'UsageData' => [
'description' => 'The proportion of each HTTP status code in each time interval.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'TimeStamp' => ['description' => 'The timestamp of the data returned. The time follows the ISO 8601 standard in the yyyy-MM-ddThh:mm:ssZ format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2019-11-30T05:39:00Z', 'title' => ''],
'Value' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'RealTimeCodeProportionData' => [
'description' => 'The proportion of each HTTP status code is displayed in a data list.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Code' => ['description' => 'The HTTP status code.'."\n", 'type' => 'string', 'example' => '500', 'title' => ''],
'Proportion' => ['description' => 'The proportion of the HTTP status code in percentage.'."\n", 'type' => 'string', 'example' => '28.4496124031008', 'title' => ''],
'Count' => ['description' => 'The number of the HTTP status codes.'."\n", 'type' => 'string', 'example' => '100', 'title' => ''],
],
'description' => '',
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
'description' => '',
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => 'Both start time and end must be specified'],
['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => ''],
['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => ''],
['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'End time is earlier than start time'],
['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => ''],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"EndTime\\": \\"2019-11-30T05:40:00Z\\",\\n \\"StartTime\\": \\"2019-11-30T05:39:00Z\\",\\n \\"RequestId\\": \\"BC858082-736F-4A25-867B-E5B67C85ACF7\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"60\\",\\n \\"RealTimeHttpCodeData\\": {\\n \\"UsageData\\": [\\n {\\n \\"TimeStamp\\": \\"2019-11-30T05:39:00Z\\",\\n \\"Value\\": {\\n \\"RealTimeCodeProportionData\\": [\\n {\\n \\"Code\\": \\"500\\",\\n \\"Proportion\\": \\"28.4496124031008\\",\\n \\"Count\\": \\"100\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","type":"json"}]',
'title' => 'DescribeVodDomainRealTimeHttpCodeData',
'description' => '* This operation is supported only in the **China (Shanghai)** region.'."\n"
.'* You can specify a maximum of 100 accelerated domain names.'."\n"
.'* If you specify neither `StartTime` nor `EndTime`, the data of the last 1 hour is queried. You can specify both `StartTime` and `EndTime` parameters to query data of a specified time range.'."\n"
."\n"
.'**Time granularity**'."\n"
."\n"
.'The time granularity varies with the time range specified by the `StartTime` and `EndTime` parameters. The following table describes the time period within which historical data is available and the data delay.'."\n"
."\n"
.'|Time granularity|Time range per query|Historical data available (days)|Data latency|'."\n"
.'|---|---|---|---|'."\n"
.'|1 minute|Time range per query ≤ 1 hour|7 days|5 minutes|'."\n"
.'|5 minutes|1 hour < Time range per query < 3 days|93 days|15 minutes|'."\n"
.'|1 hour|3 days ≤ Time range per query < 31 days|186 days|3 to 4 hours|',
'changeSet' => [
['createdAt' => '2025-07-16T06:24:47.000Z', 'description' => 'OpenAPI offline'],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainRealTimeHttpCodeData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainRealTimeHttpCodeData'],
],
],
],
'DescribeVodDomainRealTimeQpsData' => [
'summary' => 'Queries the number of queries per second (QPS) for one or more accelerated domains. The minimum time granularity is 1 minute. The minimum data latency is 5 minutes. You can query data in the last 186 days.',
'methods' => ['get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39892',
'abilityTreeNodes' => ['FEATUREvodB8HTWV'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'You can specify multiple domain names and separate them with commas (,). You can specify a maximum of 500 domain names in each call.'."\n", 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'IspNameEn',
'in' => 'query',
'schema' => ['description' => 'The name of the Internet service provider (ISP). If you do not set this parameter, all ISPs are queried.'."\n", 'type' => 'string', 'required' => false, 'example' => 'unicom', 'title' => ''],
],
[
'name' => 'LocationNameEn',
'in' => 'query',
'schema' => ['description' => 'The name of the region. If you do not set this parameter, data in all regions is queried.'."\n", 'type' => 'string', 'required' => false, 'example' => 'shanghai', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query.'."\n"
."\n"
.'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => false, 'example' => '2019-12-02T11:25:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query.'."\n"
."\n"
.'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n"
."\n"
.'> The end time must be later than the start time.'."\n", 'type' => 'string', 'required' => false, 'example' => '2019-12-02T11:26:00Z', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '32DC9806-E9F9-4490-BBDC-B3A9E32FCC1D', 'title' => ''],
'Data' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'QpsModel' => [
'description' => 'The returned data.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Qps' => ['description' => 'The number of queries per second.'."\n", 'type' => 'number', 'format' => 'float', 'example' => '1851.25', 'title' => ''],
'TimeStamp' => ['description' => 'The timestamp of the returned data. The time follows the ISO 8601 standard. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2019-12-02T11:25:00Z', 'title' => ''],
],
'description' => '',
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidTime.Malformed', 'errorMessage' => 'Specified StartTime or EndTime is malformed.', 'description' => ''],
['errorCode' => 'InvalidDomainName.Malformed', 'errorMessage' => 'Specified domain name is malformed.', 'description' => ''],
['errorCode' => 'InvalidIspParameter', 'errorMessage' => 'The specified Isp is invalid.', 'description' => ''],
['errorCode' => 'InvalidLocName', 'errorMessage' => 'The specified LocName is not supported.', 'description' => ''],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DescribeVodDomainRealTimeQpsData',
'description' => '* This operation is supported only in the **China (Shanghai)** region.'."\n"
.'* You can specify a maximum of 500 accelerated domain names.'."\n"
.'* If you specify neither `StartTime` nor `EndTime`, the data of the last 1 hour is queried. You can specify both `StartTime` and `EndTime` parameters to query data of a specified time range.'."\n"
."\n"
.'**Time granularity**'."\n"
."\n"
.'The time granularity varies with the time range specified by the `StartTime` and `EndTime` parameters. The following table describes the time period within which historical data is available and the data delay.'."\n"
."\n"
.'|Time granularity|Time range per query|Historical data available|Data delay|'."\n"
.'|---|---|---|---|'."\n"
.'|1 minute|Time range per query ≤ 1 hour|7 days|5 minutes|'."\n"
.'|5 minutes|1 Hour < Time range per query ≤ 3 days|93 days|15 minutes|'."\n"
.'|1 hour|3 days < Time range per query ≤ 31 days|186 days|3 to 4 hours|',
'changeSet' => [
['createdAt' => '2025-07-16T06:24:48.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainRealTimeQpsData'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainRealTimeQpsData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"32DC9806-E9F9-4490-BBDC-B3A9E32FCC1D\\",\\n \\"Data\\": {\\n \\"QpsModel\\": [\\n {\\n \\"Qps\\": 1851.25,\\n \\"TimeStamp\\": \\"2019-12-02T11:25:00Z\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
],
'DescribeVodDomainRealTimeReqHitRateData' => [
'summary' => 'Queries the request hit ratio data for one or more accelerated domain names. The minimum time granularity is 1 minute. The minimum data latency is 5 minutes. You can query data in the last 186 days.',
'methods' => ['get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39893',
'abilityTreeNodes' => ['FEATUREvodB8HTWV'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'You can specify multiple domain names and separate them with commas (,). You can specify a maximum of 100 domain names in each call. If you specify multiple domain names, merged data is returned.'."\n", 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query.'."\n"
."\n"
.'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => false, 'example' => '2024-01-02T11:23:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query.'."\n"
."\n"
.'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n"
."\n"
.'> The end time must be later than the start time.'."\n", 'type' => 'string', 'required' => false, 'example' => '2024-01-02T11:26:00Z', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '70A26B11-3673-479C-AEA8-E03FC5D3496D', 'title' => ''],
'Data' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'ReqHitRateDataModel' => [
'description' => 'The returned results.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'ReqHitRate' => ['description' => 'The cache hit ratio that is calculated based on requests. The cache hit ratio is measured in percentage.'."\n", 'type' => 'number', 'format' => 'float', 'example' => '0.8956940476262277', 'title' => ''],
'TimeStamp' => ['description' => 'The timestamp of the data returned. The time follows the ISO 8601 standard. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2024-01-02T11:26:00Z', 'title' => ''],
],
'description' => '',
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidTime.Malformed', 'errorMessage' => 'Specified StartTime or EndTime is malformed.', 'description' => ''],
['errorCode' => 'InvalidDomainName.Malformed', 'errorMessage' => 'Specified domain name is malformed.', 'description' => ''],
['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is not valid.', 'description' => 'The specified parameter is invalid.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DescribeVodDomainRealTimeReqHitRateData',
'description' => '* This operation is supported only in the **China (Shanghai)** region.'."\n"
.'* You can specify a maximum of 100 accelerated domain names.'."\n"
.'* If you specify neither `StartTime` nor `EndTime`, the data of the last 1 hour is queried. You can specify both `StartTime` and `EndTime` parameters to query data of a specified time range.'."\n"
.'* By default, the POST method is used for Go. To use the FET method, you must declare `request.Method="GET"`.'."\n"
."\n"
.'**Time granularity**'."\n"
."\n"
.'The time granularity varies with the time range specified by the `StartTime` and `EndTime` parameters. The following table describes the time period within which historical data is available and the data delay.'."\n"
."\n"
.'|Time granularity|Time range per query|Historical data available|Data delay|'."\n"
.'|---|---|---|---|'."\n"
.'|1 minute|Time range per query ≤ 1 hour|7 days|5 minutes|'."\n"
.'|5 minutes|1 hour < Time range per query < 3 days|93 days|15 minutes|'."\n"
.'|1 hour|3 days ≤ Time range per query < 31 days|186 days|3 to 4 hours|',
'changeSet' => [
['createdAt' => '2025-07-16T06:24:58.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainRealTimeReqHitRateData'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainRealTimeReqHitRateData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"70A26B11-3673-479C-AEA8-E03FC5D3496D\\",\\n \\"Data\\": {\\n \\"ReqHitRateDataModel\\": [\\n {\\n \\"ReqHitRate\\": 0.8956940476262277,\\n \\"TimeStamp\\": \\"2024-01-02T11:26:00Z\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
],
'DescribeVodDomainRealTimeTrafficData' => [
'summary' => 'Queries the traffic data for one or more accelerated domains. The minimum time granularity is 1 minute. The minimum data latency is 5 minutes. You can query data in the last 186 days. Compared with the DescribeVodDomainTrafficData operation, this operation provides a smaller time granularity, lower data latency, and allows you to query historical data within a shorter time period.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39896',
'abilityTreeNodes' => ['FEATUREvodB8HTWV'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'You can specify multiple domain names and separate them with commas (,). You can specify a maximum of 500 domain names in each call.'."\n", 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query.'."\n"
."\n"
.'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => false, 'example' => '2019-12-10T20:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query.'."\n"
."\n"
.'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n"
."\n"
.'> The end time must be later than the start time.'."\n", 'type' => 'string', 'required' => false, 'example' => '2019-12-10T20:01:00Z', 'title' => ''],
],
[
'name' => 'IspNameEn',
'in' => 'query',
'schema' => ['description' => 'The name of the ISP. If you do not set this parameter, all ISPs are queried.'."\n", 'type' => 'string', 'required' => false, 'example' => 'telecom', 'title' => ''],
],
[
'name' => 'LocationNameEn',
'in' => 'query',
'schema' => ['description' => 'The name of the region. If you do not set this parameter, data in all regions is queried.'."\n", 'type' => 'string', 'required' => false, 'example' => 'shanghai', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'EndTime' => ['description' => 'The end of the time range.'."\n", 'type' => 'string', 'example' => '2019-12-10T20:01:00Z', 'title' => ''],
'StartTime' => ['description' => 'The beginning of the time range.'."\n", 'type' => 'string', 'example' => '2019-12-10T20:00:00Z', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'A666D44F-19D6-490E-97CF-1A64AB962C57', 'title' => ''],
'DomainName' => ['description' => 'The accelerated domain name.'."\n", 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'DataInterval' => ['description' => 'The time interval at which data is returned. Unit: seconds.'."\n"
."\n"
.'The returned value varies based on the time range per query. Valid values: 60 (1 minute), 300 (5 minutes), and 3600 (1 hour). For more information, see the **Time granularity** section in the **API documentation**.'."\n", 'type' => 'string', 'example' => '60', 'title' => ''],
'RealTimeTrafficDataPerInterval' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DataModule' => [
'description' => 'The details of traffic data in each time interval.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Value' => ['description' => 'The traffic data. Unit: bytes.'."\n", 'type' => 'string', 'example' => '0', 'title' => ''],
'TimeStamp' => ['description' => 'The timestamp of the data returned. The time follows the ISO 8601 standard. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2019-12-10T20:01:00Z', 'title' => ''],
],
'description' => '',
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParameter', 'errorMessage' => 'StartTime and EndTime can not be single.', 'description' => ''],
['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => 'The start time is in an invalid format.'],
['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => 'The end time is in an invalid format.'],
['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => ''],
['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => ''],
['errorCode' => 'Abs.DomainName.Malformed', 'errorMessage' => 'The size of DomainName is too big.', 'description' => ''],
['errorCode' => 'InvalidInterval.Malformed', 'errorMessage' => 'Specified Interval is malformed.', 'description' => ''],
['errorCode' => 'InvalidIspParameter', 'errorMessage' => 'The specified Isp is invalid.', 'description' => ''],
['errorCode' => 'InvalidLocName', 'errorMessage' => 'The specified LocName is not supported.', 'description' => ''],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DescribeVodDomainRealTimeTrafficData',
'description' => '* This operation is supported only in the **China (Shanghai)** region.'."\n"
.'* You can specify a maximum of 100 accelerated domain names.'."\n"
.'* If you specify neither `StartTime` nor `EndTime`, the data of the last 1 hour is queried. You can specify both `StartTime` and `EndTime` parameters to query data of a specified time range.'."\n"
."\n"
.'**Time granularity**'."\n"
."\n"
.'The time granularity varies with the time range specified by the `StartTime` and `EndTime` parameters. The following table describes the time period within which historical data is available and the data delay.'."\n"
."\n"
.'|Time granularity|Time range per query|Historical data available|Data delay|'."\n"
.'|---|---|---|---|'."\n"
.'|1 minute|Time range per query ≤ 1 hour|7 days|5 minutes|'."\n"
.'|5 minutes|1 Hour < Time range per query ≤ 3 days|93 days|15 minutes|'."\n"
.'|1 hour|3 days < Time range per query ≤ 31 days|186 days|3 to 4 hours|',
'changeSet' => [
['createdAt' => '2025-07-16T06:25:18.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainRealTimeTrafficData'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainRealTimeTrafficData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"EndTime\\": \\"2019-12-10T20:01:00Z\\",\\n \\"StartTime\\": \\"2019-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"A666D44F-19D6-490E-97CF-1A64AB962C57\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"60\\",\\n \\"RealTimeTrafficDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"Value\\": \\"0\\",\\n \\"TimeStamp\\": \\"2019-12-10T20:01:00Z\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
],
'DescribeVodDomainReqHitRateData' => [
'summary' => 'Queries the byte hit ratio for one or more accelerated domains. Request hit ratios are measured in percentage.',
'methods' => ['get', 'post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'abilityTreeCode' => '219327',
'abilityTreeNodes' => ['FEATUREvodB8HTWV'],
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The accelerated domain name.'."\n"
."\n"
.'* If you leave this parameter empty, the merged data of all your accelerated domain names is returned.'."\n"
.'* You can specify a maximum of 500 accelerated domain names. Separate multiple domain names with commas (,).'."\n", 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => false, 'example' => '2023-12-21T08:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query.'."\n"
."\n"
.'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n"
."\n"
.'> The end time must be later than the start time.'."\n", 'type' => 'string', 'required' => false, 'example' => '2023-12-22T08:00:00Z', 'title' => ''],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => ['description' => 'The time granularity. Unit: seconds. Valid values: **300**, **3600**, and **86400**. If you leave this parameter empty or specify an invalid value, the default value is used. The supported time granularity varies based on the time range specified by `EndTime` and `StartTime`. The following content describes the supported time granularity.'."\n"
."\n"
.'* Time range per query < 3 days: **300** (default), **3600**, and **86400**'."\n"
.'* 3 days ≤ Time range per query < 31 days: **3600** (default) and **86400**'."\n"
.'* 31 days ≤ Time range per query ≤ 90 days: **86400** (default)'."\n", 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned results.'."\n",
'type' => 'object',
'properties' => [
'EndTime' => ['description' => 'The end of the time range.'."\n", 'type' => 'string', 'example' => '2023-12-22T08:00:00Z', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'D94E471F-1A27-442E-552D-D4D2000C****', 'title' => ''],
'Data' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DataModule' => [
'description' => 'The request hit rate data at each time interval.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Value' => ['description' => 'The total request hit rate.'."\n", 'type' => 'string', 'example' => '100', 'title' => ''],
'TimeStamp' => ['description' => 'The timestamp of the data returned. The time follows the ISO 8601 standard in the yyyy-MM-ddThh:mm:ssZ format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2023-12-21T08:00:00Z', 'title' => ''],
'HttpsValue' => ['description' => 'The HTTPS request hit rate.'."\n", 'type' => 'string', 'example' => '50', 'title' => ''],
],
'description' => '',
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
'StartTime' => ['description' => 'The beginning of the time range.'."\n", 'type' => 'string', 'example' => '2023-12-21T08:00:00Z', 'title' => ''],
'DomainName' => ['description' => 'The accelerated domain name.'."\n", 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'DataInterval' => ['description' => 'The time interval at which data is returned, which is the time granularity. Unit: seconds.'."\n", 'type' => 'string', 'example' => '300', 'title' => ''],
],
'title' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified value of parameter StartTime is malformed.', 'description' => ''],
['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified value of parameter EndTime is malformed.', 'description' => ''],
['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => ''],
['errorCode' => 'InvalidTime.ValueNotSupported', 'errorMessage' => 'StartTime or EndTime is miss match.', 'description' => ''],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"EndTime\\": \\"2023-12-22T08:00:00Z\\",\\n \\"RequestId\\": \\"D94E471F-1A27-442E-552D-D4D2000C****\\",\\n \\"Data\\": {\\n \\"DataModule\\": [\\n {\\n \\"Value\\": \\"100\\",\\n \\"TimeStamp\\": \\"2023-12-21T08:00:00Z\\",\\n \\"HttpsValue\\": \\"50\\"\\n }\\n ]\\n },\\n \\"StartTime\\": \\"2023-12-21T08:00:00Z\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\"\\n}","type":"json"}]',
'title' => 'DescribeVodDomainReqHitRateData',
'description' => '* This operation is supported only in the **China (Shanghai)** region.'."\n"
.'* You can specify a maximum of 500 accelerated domain names.'."\n"
.'* If you specify neither `StartTime` nor `EndTime`, the data of the last 24 hours is queried. You can specify both `StartTime` and `EndTime` parameters to query data of a specified time range.'."\n"
."\n"
.'**Time granularity**'."\n"
."\n"
.'The time granularity varies with the time range specified by the `StartTime` and `EndTime` parameters. The following table describes the time period within which historical data is available and the data delay when you do not set `Interval`.'."\n"
."\n"
.'|Time granularity|Time range per query|Historical data available|Data delay|'."\n"
.'|---|---|---|---|'."\n"
.'|5 minutes|Time range per query < 3 days|93 days|15 minutes|'."\n"
.'|1 hour|3 days ≤ Time range per query < 31 days|186 days|3 to 4 hours|'."\n"
.'|1 day|31 days ≤ Time range per query ≤ 90 days|366 days|4 hours in most cases, not more than 24 hours|',
'changeSet' => [
['createdAt' => '2025-07-16T06:25:47.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T06:19:45.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T06:16:21.000Z', 'description' => 'OpenAPI offline'],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainReqHitRateData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainReqHitRateData'],
],
],
],
'DescribeVodDomainSrcBpsData' => [
'summary' => 'Queries the bandwidth data during back-to-origin routing for one or more accelerated domain names.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39898',
'abilityTreeNodes' => ['FEATUREvodB8HTWV'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The accelerated domain name.'."\n"
."\n"
.'* If you leave this parameter empty, the merged data of all your accelerated domain names is returned.'."\n"
.'* You can specify a maximum of 500 accelerated domain names. Separate multiple domain names with commas (,).'."\n", 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => false, 'example' => '2022-04-25T16:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query.'."\n"
."\n"
.'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n"
."\n"
.'> The end time must be later than the start time.'."\n", 'type' => 'string', 'required' => false, 'example' => '2022-04-26T15:59:59Z', 'title' => ''],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => ['description' => 'The time granularity. Unit: seconds. Valid values: **300**, **3600**, and **86400**. If you leave this parameter empty or specify an invalid value, the default value is used. The supported time granularity varies based on the time range specified by `EndTime` and `StartTime`. The following content describes the supported time granularity.'."\n"
."\n"
.'* Time range per query < 3 days: **300** (default), **3600**, and **86400**'."\n"
.'* 3 days ≤ Time range per query < 31 days: **3600** (default) and **86400**'."\n"
.'* 31 days ≤ Time range per query ≤ 366 days: **86400** (default)'."\n", 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
'EndTime' => ['description' => 'The end of the time range.'."\n", 'type' => 'string', 'example' => '2022-08-23T02:02:57Z', 'title' => ''],
'StartTime' => ['description' => 'The beginning of the time range.'."\n", 'type' => 'string', 'example' => '2022-07-12T16:00:00Z', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4A13-BEF6-****', 'title' => ''],
'DomainName' => ['description' => 'The accelerated domain name whose ICP filing status you want to update.'."\n", 'type' => 'string', 'example' => 'sample.com', 'title' => ''],
'DataInterval' => ['description' => 'The time interval at which data is returned, which is the time granularity. Unit: seconds.'."\n", 'type' => 'string', 'example' => '300', 'title' => ''],
'SrcBpsDataPerInterval' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DataModule' => [
'description' => 'The origin bandwidth data at each time interval.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Value' => ['description' => 'The total origin bandwidth data. Unit: bit/s.'."\n", 'type' => 'string', 'example' => '0', 'title' => ''],
'TimeStamp' => ['description' => 'The timestamp of the data returned. The time follows the ISO 8601 standard in the yyyy-MM-ddThh:mm:ssZ format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2022-08-23T02:02:57Z'."\n", 'title' => ''],
'HttpsValue' => ['description' => 'The bandwidth consumed for fetching resources from the origin over HTTPS.'."\n", 'type' => 'string', 'example' => '0', 'title' => ''],
],
'description' => 'The origin bandwidth data at each time interval.'."\n",
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
'title' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParameter', 'errorMessage' => 'StartTime and EndTime can not be single.', 'description' => ''],
['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => 'The start time is in an invalid format.'],
['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => 'The end time is in an invalid format.'],
['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => ''],
['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => ''],
['errorCode' => 'Abs.DomainName.Malformed', 'errorMessage' => 'The size of DomainName is too big.', 'description' => ''],
['errorCode' => 'InvalidInterval.Malformed', 'errorMessage' => 'Specified Interval is malformed.', 'description' => ''],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DescribeVodDomainSrcBpsData',
'description' => '* This operation is supported only in the **China (Shanghai)** region.'."\n"
.'* You can specify a maximum of 500 accelerated domain names.'."\n"
.'* If you specify neither `StartTime` nor `EndTime`, the data of the last 24 hours is queried. You can specify both `StartTime` and `EndTime` parameters to query data of a specified time range.'."\n"
."\n"
.'**Time granularity**'."\n"
."\n"
.'The time granularity varies with the time range specified by the `StartTime` and `EndTime` parameters. The following table describes the time period within which historical data is available and the data delay when you do not set `Interval`.'."\n"
."\n"
.'|Time granularity|Time range per query|Historical data available|Data delay|'."\n"
.'|---|---|---|---|'."\n"
.'|5 minutes|Time range per query < 3 days|93 days|15 minutes|'."\n"
.'|1 hour|3 days ≤ Time range per query < 31 days|186 days|3 to 4 hours|'."\n"
.'|1 day|31 days ≤ Time span of a single query ≤ 366 days|366 days|4 hours in most cases, not more than 24 hours|',
'changeSet' => [
['createdAt' => '2025-07-16T06:24:46.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainSrcBpsData'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainSrcBpsData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"EndTime\\": \\"2022-08-23T02:02:57Z\\",\\n \\"StartTime\\": \\"2022-07-12T16:00:00Z\\",\\n \\"RequestId\\": \\"25818875-5F78-4A13-BEF6-****\\",\\n \\"DomainName\\": \\"sample.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"SrcBpsDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"Value\\": \\"0\\",\\n \\"TimeStamp\\": \\"2022-08-23T02:02:57Z\\\\n\\",\\n \\"HttpsValue\\": \\"0\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
],
'DescribeVodDomainSrcTrafficData' => [
'summary' => 'Queries origin traffic data for accelerated domain names in ApsaraVideo VOD. The traffic is measured in bytes.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39899',
'abilityTreeNodes' => ['FEATUREvodB8HTWV'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The accelerated domain name. You can specify a maximum of 500 domain names in a request. Separate multiple domain names with commas (,). If you specify multiple domain names in a request, aggregation results are returned.'."\n"
."\n"
.'If you leave this parameter empty, the origin traffic data for all accelerated domain names is queried by default.'."\n", 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n"
."\n"
.'If you leave this parameter empty, the origin traffic data that is generated in the last 24 hours is queried by default.'."\n", 'type' => 'string', 'required' => false, 'example' => '2022-03-22T16:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. The end time must be later than the start time. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => false, 'example' => '2022-09-24T15:59:59Z', 'title' => ''],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => ['description' => 'The time interval between the data entries to return. Unit: seconds. Valid values:'."\n"
."\n"
.'* **300**: 5 minutes'."\n"
.'* **3600**: 1 hour'."\n"
.'* **86400**: 1 day'."\n"
."\n"
.'> The time granularity supported by the Interval parameter varies based on the time range per query specified by using `StartTime` and `EndTime`. For more information, see the **Time granularity** section of this topic.'."\n", 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned data.'."\n",
'type' => 'object',
'properties' => [
'EndTime' => ['description' => 'The end of the time range during which data was queried. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2022-09-23T15:59:59Z', 'title' => ''],
'StartTime' => ['description' => 'The start of the time range during which data was queried. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2022-08-29T16:00:00Z', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4AF6-D7393642CA58****', 'title' => ''],
'DomainName' => ['description' => 'The accelerated domain name.'."\n", 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'TotalTraffic' => ['description' => 'The total traffic. Unit: bytes.'."\n", 'type' => 'string', 'example' => '5906662826', 'title' => ''],
'DataInterval' => ['description' => 'The time interval between the entries returned. Unit: seconds.'."\n", 'type' => 'string', 'example' => '300', 'title' => ''],
'SrcTrafficDataPerInterval' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DataModule' => [
'description' => 'Details about the origin traffic returned at each time interval. Unit: bytes.'."\n",
'type' => 'array',
'items' => [
'description' => 'The amount of origin traffic returned at each time interval.'."\n",
'type' => 'object',
'properties' => [
'Value' => ['description' => 'The traffic value at each time interval.'."\n", 'type' => 'string', 'example' => '0', 'title' => ''],
'TimeStamp' => ['description' => 'The timestamp of the returned data. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2022-09-23T15:59:59Z', 'title' => ''],
'HttpsValue' => ['description' => 'The amount of traffic generated by origin HTTPS requests.'."\n", 'type' => 'string', 'example' => '0', 'title' => ''],
],
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
'title' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParameter', 'errorMessage' => 'StartTime and EndTime can not be single.', 'description' => ''],
['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => 'The start time is in an invalid format.'],
['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => 'The end time is in an invalid format.'],
['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => ''],
['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => ''],
['errorCode' => 'Abs.DomainName.Malformed', 'errorMessage' => 'The size of DomainName is too big.', 'description' => ''],
['errorCode' => 'InvalidInterval.Malformed', 'errorMessage' => 'Specified Interval is malformed.', 'description' => ''],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DescribeVodDomainSrcTrafficData',
'description' => '* This operation is available only in the **China (Shanghai)** region.'."\n"
.'* ApsaraVideo VOD stores the origin traffic data for 90 days before the data is deleted.'."\n"
.'* If you do not set the `StartTime` or `EndTime` parameter, the request returns the data collected in the last 24 hours. If you set both the `StartTime` and `EndTime` parameters, the request returns the data collected within the specified time range.'."\n"
.'* You can specify a maximum of 500 domain names in a request. Separate multiple domain names with commas (,). If you specify multiple domain names in a request, aggregation results are returned.'."\n"
."\n"
.'### Time granularity'."\n"
."\n"
.'The time granularity supported by the Interval parameter varies based on the time range per query specified by using `StartTime` and `EndTime`. The following table describes the time period within which historical data is available and the data delay.'."\n"
."\n"
.'|Time granularity|Time range per query (days)|Historical data available (days)|Data delay|'."\n"
.'|---|---|---|---|'."\n"
.'|5 minutes|(0, 3\\]|93|15 minutes|'."\n"
.'|1 hour|(3, 31\\]|186|4 hours|'."\n"
.'|1 day|(31, 366\\]|366|04:00 on the next day|',
'changeSet' => [
['createdAt' => '2025-07-16T06:26:01.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainSrcTrafficData'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainSrcTrafficData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"EndTime\\": \\"2022-09-23T15:59:59Z\\",\\n \\"StartTime\\": \\"2022-08-29T16:00:00Z\\",\\n \\"RequestId\\": \\"25818875-5F78-4AF6-D7393642CA58****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"TotalTraffic\\": \\"5906662826\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"SrcTrafficDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"Value\\": \\"0\\",\\n \\"TimeStamp\\": \\"2022-09-23T15:59:59Z\\",\\n \\"HttpsValue\\": \\"0\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
],
'DescribeVodDomainTrafficData' => [
'summary' => 'Queries traffic data for accelerated domain names. Compared to DescribeVodDomainRealTimeTrafficData, this operation supports longer historical queries (up to 366 days) but with larger time granularity (minimum 5 minutes) and higher latency.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39903',
'abilityTreeNodes' => ['FEATUREvodB8HTWV'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The accelerated domain name that you want to query.'."\n"
."\n"
.'- If you do not specify this parameter, the pooled data of all accelerated domain names is returned by default.'."\n"
."\n"
.'- Batch queries are supported. Separate multiple domain names with commas (,). You can query a maximum of 500 domain names at a time.'."\n"
."\n"
.'- Log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com) and choose **Configuration Management > CDN Configuration > Domain Names** in the navigation pane on the left to view the accelerated domain names that are added to ApsaraVideo VOD. You can also call the [DescribeVodUserDomains](~~455030~~) operation to query the list of accelerated domain names.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query.'."\n"
."\n"
.'The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'required' => false, 'example' => '2019-01-20T13:59:58Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query.'."\n"
."\n"
.'The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n"
."\n"
.'> The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2019-01-20T14:59:58Z', 'title' => ''],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => ['description' => 'The time granularity of the data to query. Unit: seconds. Valid values: **300**, **3600**, and **86400**. If you do not set this parameter, or if you set it to an unsupported value, the default value is used. The supported time granularity varies based on the time range specified by `StartTime` and `EndTime`:'."\n"
."\n"
.'- If the time range is less than 3 days, valid values are **300** (default), **3600**, and **86400**.'."\n"
."\n"
.'- If the time range is from 3 to 31 days, valid values are **3600** (default) and **86400**.'."\n"
."\n"
.'- If the time range is more than 31 days, the valid value is **86400** (default).', 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''],
],
[
'name' => 'IspNameEn',
'in' => 'query',
'schema' => ['description' => 'The name of the carrier. If you do not set this parameter, data of all carriers is queried.', 'type' => 'string', 'required' => false, 'example' => 'unicom', 'title' => ''],
],
[
'name' => 'LocationNameEn',
'in' => 'query',
'schema' => ['description' => 'The name of the region. If you do not set this parameter, data in all regions is queried. Currently, only the Shanghai region is supported.', 'type' => 'string', 'required' => false, 'example' => 'shanghai', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response.',
'type' => 'object',
'properties' => [
'EndTime' => ['description' => 'The end of the time range.', 'type' => 'string', 'example' => '2019-01-20T14:59:58Z', 'title' => ''],
'StartTime' => ['description' => 'The beginning of the time range.', 'type' => 'string', 'example' => '2019-01-20T13:59:58Z', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'D94E471F-1A27-442E-552D-D4D2000C****', 'title' => ''],
'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'TotalTraffic' => ['description' => 'The total traffic.', 'type' => 'string', 'example' => '5906662826', 'title' => ''],
'DataInterval' => ['description' => 'The time interval between two consecutive data entries. This is the time granularity of the data. Unit: seconds.', 'type' => 'string', 'example' => '300'."\n", 'title' => ''],
'TrafficDataPerInterval' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DataModule' => [
'description' => 'The list of traffic data at each time interval.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'HttpsDomesticValue' => ['description' => 'The HTTPS traffic on L1 nodes in the Chinese mainland. Unit: bytes.', 'type' => 'string', 'example' => '0', 'title' => ''],
'Value' => ['description' => 'The total traffic. Unit: bytes.', 'type' => 'string', 'example' => '0', 'title' => ''],
'OverseasValue' => ['description' => 'The traffic outside the Chinese mainland. Unit: bytes.', 'type' => 'string', 'example' => '0', 'title' => ''],
'HttpsValue' => ['description' => 'The total HTTPS traffic on L1 nodes. Unit: bytes.', 'type' => 'string', 'example' => '0', 'title' => ''],
'HttpsOverseasValue' => ['description' => 'The HTTPS traffic on L1 nodes outside the Chinese mainland. Unit: bytes.', 'type' => 'string', 'example' => '0', 'title' => ''],
'TimeStamp' => ['description' => 'The data timestamp. The time follows the ISO 8601 standard and is displayed in UTC.', 'type' => 'string', 'example' => '2019-01-20T13:59:58Z', 'title' => ''],
'DomesticValue' => ['description' => 'The traffic in the Chinese mainland. Unit: bytes.', 'type' => 'string', 'example' => '0', 'title' => ''],
],
'description' => 'The information about the network traffic.'."\n",
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => 'Both start time and end must be specified'],
['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => ''],
['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => ''],
['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'End time is earlier than start time'],
['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => ''],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"EndTime\\": \\"2019-01-20T14:59:58Z\\",\\n \\"StartTime\\": \\"2019-01-20T13:59:58Z\\",\\n \\"RequestId\\": \\"D94E471F-1A27-442E-552D-D4D2000C****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"TotalTraffic\\": \\"5906662826\\",\\n \\"DataInterval\\": \\"300\\\\n\\",\\n \\"TrafficDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"HttpsDomesticValue\\": \\"0\\",\\n \\"Value\\": \\"0\\",\\n \\"OverseasValue\\": \\"0\\",\\n \\"HttpsValue\\": \\"0\\",\\n \\"HttpsOverseasValue\\": \\"0\\",\\n \\"TimeStamp\\": \\"2019-01-20T13:59:58Z\\",\\n \\"DomesticValue\\": \\"0\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
'title' => 'DescribeVodDomainTrafficData',
'description' => '- The endpoint for this operation is available only in the **China (Shanghai)** region.'."\n"
."\n"
.'- This operation supports batch queries. You can query data for up to 500 domain names in a single request.'."\n"
."\n"
.'- If you do not specify the `StartTime` and `EndTime` parameters, data from the last 24 hours is returned by default. If you specify `StartTime` and `EndTime`, data within the specified time range is returned.'."\n"
."\n"
.'**Data time granularity**'."\n"
."\n"
.'If you do not set the `Interval` parameter, the default time granularity of the returned data is determined by the time range that you specify between `StartTime` and `EndTime`. The following table describes the time granularity, the supported time range for historical data queries, and the data latency.'."\n"
."\n"
.'| Time granularity | Time span of a single query | Queryable time range for historical data | Data latency |'."\n"
.'| ---------------- | ------------------------------------------------------------------------------------------------------ | ---------------------------------------- | ------------------------------------------ |'."\n"
.'| 5 minutes | The time span of a single query is less than 3 days | 93 days | 15 minutes |'."\n"
.'| 1 hour | The time span of a single query is greater than or equal to 3 days and less than 31 days | 186 days | Usually 3 to 4 hours |'."\n"
.'| 1 day | The time span of a single query is greater than or equal to 31 days and less than or equal to 366 days | 366 days | Usually 4 hours, but no more than 24 hours |',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the error codes that this operation can return.'."\n"
."\n"
.'|Error code|Error message|HTTP status code|Description|'."\n"
.'|---|---|---|---|'."\n"
.'|Throttling|Request was denied due to request throttling.|503|The error message returned because the request was denied due to throttling.|'."\n"
.'|IllegalOperation|Illegal domain, operation is not permitted.|403|The error message returned because the domain name is invalid.|'."\n"
.'|OperationDenied|Your account does not open CDN service yet.|403|The error message returned because Alibaba Cloud CDN is not activated for your Alibaba Cloud account.|'."\n"
.'|OperationDenied|Your CDN service is suspended.|403|The error message returned because Alibaba Cloud CDN is suspended for your Alibaba Cloud account.|'."\n"
.'|InvalidDomain.NotFound|The domain provided does not belong to you.|404|The error message returned because the specified domain name does not exist or does not belong to the current account.|'."\n"
.'|InvalidDomain.Offline|The domain provided is offline.|404|The error message returned because the domain name is disabled.|'."\n"
.'|ServiceBusy|The specified Domain is configuring, please retry later.|403|The error message returned because the domain name is being configured. Try again later.|'."\n"
.'|InvalidDomain.Configure\\_failed|Failed to configure the provided domain.|500|The error message returned because the system failed to configure the domain name.|'."\n"
.'|MissingParameter|StartTime and EndTime can not be single.|400|The error message returned because the StartTime and EndTime parameters are not specified at the same time.|'."\n"
.'|InvalidStartTime.Malformed|Specified start time is malformed.|400|The error message returned because the format of the start time that is specified by the StartTime parameter is invalid.|'."\n"
.'|InvalidEndTime.Malformed|Specified end time is malformed.|400|The error message returned because the format of the end time that is specified by the EndTime parameter is invalid.|'."\n"
.'|InvalidEndTime.Mismatch|Specified end time does not match the specified start time.|400|The error message returned because the end time is earlier than the start time.|'."\n"
.'|InvalidStartTime.ValueNotSupported|Specified end time does not match the specified start time.|400|The error message returned because the time range that is specified by the EndTime and StartTime parameters exceeds 90 days.|',
'changeSet' => [
['createdAt' => '2025-07-16T06:25:01.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainTrafficData'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainTrafficData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeVodDomainUsageData' => [
'summary' => 'Queries the traffic or bandwidth data of one or more accelerated domain names.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39904',
'abilityTreeNodes' => ['FEATUREvodB8HTWV'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The accelerated domain name. If you leave this parameter empty, the merged data of all your accelerated domain names is returned. Separate multiple accelerated domain names with commas (,).'."\n", 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => true, 'example' => '2015-12-10T10:20:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. The end time must be later than the start time. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => true, 'example' => '2015-12-10T12:20:00Z', 'title' => ''],
],
[
'name' => 'Field',
'in' => 'query',
'schema' => ['description' => 'The type of the data to return. Valid values:'."\n"
."\n"
.'* **bps**: bandwidth'."\n"
.'* **traf**: traffic'."\n", 'type' => 'string', 'required' => true, 'example' => 'bps', 'title' => ''],
],
[
'name' => 'Type',
'in' => 'query',
'schema' => ['description' => 'The type of content that you want to query. Valid values:'."\n"
."\n"
.'* **static**: static content'."\n"
.'* **dynamic**: dynamic requests'."\n"
.'* **all**: all content'."\n", 'type' => 'string', 'required' => false, 'example' => 'static', 'title' => ''],
],
[
'name' => 'Area',
'in' => 'query',
'allowEmptyValue' => false,
'schema' => ['description' => 'The region in which you want to query data. Valid values:'."\n"
."\n"
.'* **CN**: Chinese mainland'."\n"
.'* **OverSeas**: outside the Chinese mainland'."\n", 'type' => 'string', 'required' => false, 'example' => 'CN', 'default' => 'CN', 'title' => ''],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => ['description' => 'The time interval between the data entries to return. Unit: seconds. Valid values: **300** (5 minutes), **3600** (1 hour), and **86400** (1 day).'."\n"
."\n"
.'* If **Interval** is set to **300**, you can query usage data in the last six months. The maximum time range per query that can be specified is three days.'."\n"
.'* If **Interval** is set to **3600** or **86400**, you can query usage data of the previous year.'."\n"
.'* If you do not set the **Interval** parameter, the maximum time range that you can query is one month. If you specify a time range of 1 to 3 days, the time interval between the entries that are returned is 1 hour. If you specify a time range of at least 4 days, the time interval between the entries that are returned is 1 day.'."\n", 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'EndTime' => ['description' => 'The end of the time range during which data was queried. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2015-12-10T12:20:00Z', 'title' => ''],
'Type' => ['description' => 'The type of the data. Valid values:'."\n"
."\n"
.'* **bps**: bandwidth'."\n"
.'* **traf**: traffic'."\n", 'type' => 'string', 'example' => 'static', 'title' => ''],
'StartTime' => ['description' => 'The start of the time range during which data was queried. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2015-12-10T10:20:00Z', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'B955107D-E658-4E77-****-E0AC3D31693E', 'title' => ''],
'Area' => ['description' => 'The billable region where the data was collected.'."\n", 'type' => 'string', 'example' => 'CN', 'title' => ''],
'DomainName' => ['description' => 'The accelerated domain name.'."\n", 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'DataInterval' => ['description' => 'The time interval between the entries returned. Unit: seconds.'."\n", 'type' => 'string', 'example' => '300', 'title' => ''],
'UsageDataPerInterval' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DataModule' => [
'description' => 'The traffic or bandwidth data returned at each interval.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Value' => ['description' => 'The traffic or bandwidth data. Unit: bit/s.'."\n", 'type' => 'string', 'example' => '2592.3920000000003', 'title' => ''],
'TimeStamp' => ['description' => 'The timestamp of the returned data. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2015-12-10T10:00:00Z', 'title' => ''],
],
'description' => '',
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is not valid.', 'description' => 'The specified parameter is invalid.'],
['errorCode' => 'InvalidParameterProduct', 'errorMessage' => 'The specified parameter Product is invalid.', 'description' => 'The value of Product is invalid. Set the parameter based on the parameter description in the official documentation.'],
['errorCode' => 'InvalidParameterArea', 'errorMessage' => 'The specified parameter Area is invalid.', 'description' => 'The value of Area is invalid. Set the parameter based on the parameter description in the API documentation.'],
['errorCode' => 'InvalidParameterField', 'errorMessage' => 'The specified parameter Field is invalid.', 'description' => 'The value of Field is invalid. Set the parameter based on the parameter description in the API documentation.'],
['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => 'The start time is in an invalid format.'],
['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => 'The end time is in an invalid format.'],
['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'StartTime or EndTime is mismatch.', 'description' => 'The start time and end time do not match.'],
['errorCode' => 'InvalidParameterInterval', 'errorMessage' => 'The specified Interval is invalid.', 'description' => 'The specified time granularity is invalid. Specify the time granularity based on the requirements described in the API documentation.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2015-12-10T12:20:00Z\\",\\n \\"Type\\": \\"static\\",\\n \\"StartTime\\": \\"2015-12-10T10:20:00Z\\",\\n \\"RequestId\\": \\"B955107D-E658-4E77-****-E0AC3D31693E\\",\\n \\"Area\\": \\"CN\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"UsageDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"Value\\": \\"2592.3920000000003\\",\\n \\"TimeStamp\\": \\"2015-12-10T10:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n B955107D-E658-4E77-****-E0AC3D31693E\\n 2015-12-10T10:20:00Z\\n 2015-12-10T12:21:00Z\\n CN\\n static\\n example.com\\n 300\\n \\n \\n 2015-12-10T11:00:00Z\\n 2592.3920000000003\\n \\n \\n 2015-12-10T11:05:00Z\\n 2592.3920000000003\\n \\n \\n","errorExample":""}]',
'title' => 'DescribeVodDomainUsageData',
'description' => '* This operation is available only in the **China (Shanghai)** region.'."\n"
."\n"
.'* You can specify up to 100 accelerated domain names in a request. Separate multiple domain names with commas (,). If you do not specify an accelerated domain name, the data of all accelerated domain names within your Alibaba Cloud account is returned.'."\n"
."\n"
.'* You can query data in the last year. The maximum time range that can be queried is three months. If you specify a time range of one to three days, the system returns data on an hourly basis. If you specify a time range of four days or more, the system returns data on a daily basis.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the error codes that this operation can return.'."\n"
."\n"
.'|Error code|Error message|HTTP status code|Description|'."\n"
.'|---|---|---|---|'."\n"
.'|Throttling|Request was denied due to request throttling.|503|The error message returned because the request was denied due to throttling.|'."\n"
.'|IllegalOperation|Illegal domain, operation is not permitted.|403|The error message returned because the domain name is invalid.|'."\n"
.'|OperationDenied|Your account does not open CDN service yet.|403|The error message returned because Alibaba Cloud CDN is not activated for your Alibaba Cloud account.|'."\n"
.'|OperationDenied|Your CDN service is suspended.|403|The error message returned because Alibaba Cloud CDN is suspended for your Alibaba Cloud account.|'."\n"
.'|InvalidDomain.NotFound|The domain provided does not belong to you.|404|The error message returned because the specified domain name does not exist or does not belong to the current account.|'."\n"
.'|InvalidDomain.Offline|The domain provided is offline.|404|The error message returned because the specified domain name is disabled.|'."\n"
.'|ServiceBusy|The specified Domain is configuring, please retry later.|403|The error message returned because the domain name is being configured. Try again later.|'."\n"
.'|InvalidDomain.Configure\\_failed|Failed to configure the provided domain.|500|The error message returned because the system failed to configure the domain name.|'."\n"
.'|InvalidParameter|Invalid Parameter.|400|The error message returned because one or more parameters are invalid.|'."\n"
.'|InvalidParameterProduct|Invalid Parameter Product.|400|The error message returned because the value of the Product parameter is invalid.|'."\n"
.'|InvalidParameterArea|Invalid Parameter Area.|400|The error message returned because the value of the Area parameter is invalid.|'."\n"
.'|InvalidParameterField|Invalid Parameter Field.|400|The error message returned because the value of the Field parameter is invalid.|'."\n"
.'|InvalidParameterStartTime|Invalid Parameter StartTime.|400|The error message returned because the value of the StartTime parameter is invalid.|'."\n"
.'|InvalidParameterEndTime|Invalid Parameter EndTime.|400|The error message returned because the value of the EndTime parameter is invalid.|'."\n"
.'|InvalidTimeRange|StartTime and EndTime range should less than 1 month.|400|The error message returned because the time range that is specified by the StartTime and EndTime parameters exceeds 31 days.|'."\n"
.'|InvalidParameterInterval|Invalid Parameter Interval.|400|The error message returned because the value of the Interval parameter is invalid.|.|',
'changeSet' => [
['createdAt' => '2025-07-16T06:24:58.000Z', 'description' => 'OpenAPI offline'],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainUsageData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainUsageData'],
],
],
],
'DescribeVodEditingUsageData' => [
'summary' => 'Calls DescribeVodEditingUsageData to query the usage of video-on-demand online editing.',
'methods' => ['get', 'post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'none',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '208113',
'abilityTreeNodes' => ['FEATUREvodXLM48P'],
],
'parameters' => [
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time for data retrieval. The date format follows the ISO8601 notation and uses UTC time. Format: YYYY-MM-DDThh:mmZ.'."\n"
."\n"
.'If this parameter is empty, data from the last 24 hours is read by default.', 'type' => 'string', 'required' => false, 'example' => '2024-11-06T16:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time for data retrieval. The date format follows the ISO8601 notation and uses UTC time. Format: YYYY-MM-DDThh:mmZ.', 'type' => 'string', 'required' => false, 'example' => '2024-11-07T16:00:00Z', 'title' => ''],
],
[
'name' => 'Region',
'in' => 'query',
'schema' => ['description' => 'Region. Returns all regions by default. Supports batch queries, with multiple regions separated by commas (,).', 'type' => 'string', 'required' => false, 'example' => 'cn-beijing', 'title' => ''],
],
[
'name' => 'Specification',
'in' => 'query',
'schema' => ['description' => 'Output specification.', 'type' => 'string', 'required' => false, 'example' => 'H264.SD', 'title' => ''],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'Application ID. For more information, see [Multi-application](~~113600~~).', 'type' => 'string', 'required' => false, 'example' => 'app-****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'Request ID.', 'type' => 'string', 'example' => '6CB55B62-6E5F-54D1-80BF-DFA3DE9F0***', 'title' => ''],
'StartTime' => ['description' => 'The start time for data retrieval. Format: *yyyy-MM-dd*T*HH:mm:ss*Z (UTC time).', 'type' => 'string', 'example' => '2024-11-06T16:00:00Z', 'title' => ''],
'EndTime' => ['description' => 'The end time for data retrieval. Format: *yyyy-MM-dd*T*HH:mm:ss*Z (UTC time).', 'type' => 'string', 'example' => '2024-11-07T16:00:00Z', 'title' => ''],
'EditingData' => [
'description' => 'Usage data.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Specification' => ['description' => 'Output specification.', 'type' => 'string', 'example' => 'H264.SD', 'title' => ''],
'Region' => ['description' => 'Region.', 'type' => 'string', 'example' => 'cn-beijing', 'title' => ''],
'TimeStamp' => ['description' => 'Start time of the time slice. Uses UTC time, format: *yyyy-MM-dd*T*HH:mm:ss*Z (UTC time).', 'type' => 'string', 'example' => '2024-11-06T16:00:00Z', 'title' => ''],
'Duration' => ['description' => 'Audio/video duration. Unit: seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '123', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => 'The start time is in an invalid format.'],
['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => 'The end time is in an invalid format.'],
['errorCode' => 'InvalidParameterType', 'errorMessage' => 'The specified Type is invalid.', 'description' => 'The Type parameter is invalid. Modify the value of the Type parameter based on the documentation.'],
['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => 'The time span exceeds the limit. Configure a valid time span based on the documentation.'],
['errorCode' => 'InvalidParameter', 'errorMessage' => 'Invalid input parameter.', 'description' => 'Input parameter error.'],
],
],
'title' => 'DescribeVodEditingUsageData',
'description' => '- Request rate limit per user: 10 requests per second'."\n"
."\n"
.'**Supported time granularity**:'."\n"
."\n"
.'Based on the maximum time span for a single query, the corresponding automatic rotation time granularity and queryable historical data time range are as follows:'."\n"
."\n"
.'| Time granularity | Maximum time span for a single query | Queryable historical data time range |'."\n"
.'| ---------------- | ------------------------------------ | ------------------------------------ |'."\n"
.'| 1 hour | 7 days | 31 days |'."\n"
.'| 1 day | 31 days | 366 days |',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodEditingUsageData'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'vod:DescribeVodEditingUsageData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6CB55B62-6E5F-54D1-80BF-DFA3DE9F0***\\",\\n \\"StartTime\\": \\"2024-11-06T16:00:00Z\\",\\n \\"EndTime\\": \\"2024-11-07T16:00:00Z\\",\\n \\"EditingData\\": [\\n {\\n \\"Specification\\": \\"H264.SD\\",\\n \\"Region\\": \\"cn-beijing\\",\\n \\"TimeStamp\\": \\"2024-11-06T16:00:00Z\\",\\n \\"Duration\\": 123\\n }\\n ]\\n}","type":"json"}]',
],
'DescribeVodMediaPlayData' => [
'summary' => 'Retrieves playback data for an audio or video file on a specified date using its media ID. The data includes the number of unique visitors, average playback count per user, total playback count, average playback duration per user, and total playback duration.',
'methods' => ['get', 'post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'none',
'abilityTreeCode' => '207593',
'abilityTreeNodes' => ['FEATUREvodKNCWCD'],
],
'parameters' => [
[
'name' => 'PlayDate',
'in' => 'query',
'schema' => ['description' => 'The playback date in the yyyyMMdd format.'."\n"
."\n"
.'> - You can query data by day only.'."\n"
.'>'."\n"
.'> - You can query data from the last 30 days only.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '20240322'],
],
[
'name' => 'TerminalType',
'in' => 'query',
'schema' => ['description' => 'The type of terminal that uses the player SDK. Use this parameter to query playback data for a specific terminal type. Valid values:'."\n"
."\n"
.'- **Native**: ApsaraVideo Player SDK for Android or ApsaraVideo Player SDK for iOS.'."\n"
."\n"
.'- **Web**: ApsaraVideo Player SDK for Web.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'Native'],
],
[
'name' => 'Os',
'in' => 'query',
'schema' => ['description' => 'The operating system of the client. Use this parameter to query playback data for a specific operating system. Valid values:'."\n"
."\n"
.'- **Android**'."\n"
."\n"
.'- **iOS**'."\n"
."\n"
.'- **Windows**'."\n"
."\n"
.'- **macOS**'."\n"
."\n"
.'- **Linux**', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'Android'],
],
[
'name' => 'Region',
'in' => 'query',
'schema' => ['description' => 'The service region. Use this parameter to query playback data for a specific service region. Valid values:'."\n"
."\n"
.'- **cn-beijing**: China (Beijing)'."\n"
."\n"
.'- **cn-shanghai**: China (Shanghai)'."\n"
."\n"
.'- **cn-shenzhen**: China (Shenzhen)'."\n"
."\n"
.'- **ap-northeast-1**: Japan (Tokyo)'."\n"
."\n"
.'- **ap-southeast-1**: Singapore'."\n"
."\n"
.'- **ap-southeast-5**: Indonesia (Jakarta)'."\n"
."\n"
.'- **eu-central-1**: Germany (Frankfurt)', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'cn-beijing'],
],
[
'name' => 'MediaId',
'in' => 'query',
'schema' => ['description' => 'The ID of the media asset. This is the same as the audio or video ID (VideoId). Use this parameter to query the playback data of a specific media asset. You can specify only one media ID. You can obtain the media ID in one of the following ways:'."\n"
."\n"
.'- For audio or video files uploaded in the console, log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com) and choose **Media Assets** > **Audio/Video** to view the audio or video ID.'."\n"
."\n"
.'- When you upload an audio or video file by calling the [CreateUploadVideo](~~CreateUploadVideo~~) operation, the audio or video ID is the value of the VideoId parameter in the response.'."\n"
."\n"
.'- After an audio or video file is uploaded, you can call the [SearchMedia](~~SearchMedia~~) operation to query the audio or video ID. The ID is the value of the VideoId parameter in the response.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '9ae2af636ca6c10412f44891fc****'],
],
[
'name' => 'PageNo',
'in' => 'query',
'schema' => ['description' => 'The number of the page to return.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'title' => '', 'example' => '1'],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries to return on each page. The maximum value is 100.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'title' => '', 'example' => '20'],
],
[
'name' => 'OrderType',
'in' => 'query',
'schema' => ['description' => 'The sort order. This parameter must be used with the `OrderName` parameter. Use this parameter to sort the returned data by a specific metric. Valid values:'."\n"
."\n"
.'- **ASC**: ascending order. The data is sorted from smallest to largest.'."\n"
."\n"
.'- **DESC**: descending order. The data is sorted from largest to smallest.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'ASC'],
],
[
'name' => 'OrderName',
'in' => 'query',
'schema' => ['description' => 'The metric for sorting. This parameter must be used with the `OrderType` parameter. Use this parameter to sort the returned data by a specific metric. Valid values:'."\n"
."\n"
.'- **PlaySuccessVv**: total playback count.'."\n"
."\n"
.'- **PlayPerVv**: average playback count per user.'."\n"
."\n"
.'- **PlayDuration**: total playback duration.'."\n"
."\n"
.'- **PlayDurationPerUv**: average playback duration per user.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'PlaySuccessVv'],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '25818875-5F78-4AF6-D7393642CA58****'],
'TotalCount' => ['description' => 'The total number of returned entries.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '1'],
'PageNo' => ['description' => 'The page number of the returned data.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '1'],
'PageSize' => ['description' => 'The number of entries returned on each page.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '20'],
'QoeInfoList' => [
'description' => 'The list of returned data.',
'type' => 'array',
'items' => [
'description' => 'The details of the returned data.',
'type' => 'object',
'properties' => [
'VideoTitle' => ['description' => 'The name of the audio or video file.', 'type' => 'string', 'title' => '', 'example' => 'Alibaba Cloud VOD video title'],
'VideoDuration' => ['description' => 'The duration of the audio or video file, in seconds.', 'type' => 'number', 'format' => 'float', 'title' => '', 'example' => '246'],
'MediaId' => ['description' => 'The media ID, which is the audio or video ID (VideoId).', 'type' => 'string', 'title' => '', 'example' => '9ae2af636ca6c10412f44891fc****'],
'DAU' => ['description' => 'The number of unique visitors for the audio or video file.', 'type' => 'number', 'format' => 'float', 'title' => '', 'example' => '5'],
'PlaySuccessVv' => ['description' => 'The total number of playbacks for the audio or video file.', 'type' => 'number', 'format' => 'float', 'title' => '', 'example' => '20'],
'PlayDurationPerUv' => ['description' => 'The average playback duration per user for the audio or video file, in seconds.', 'type' => 'number', 'format' => 'float', 'title' => '', 'example' => '120'],
'PlayDuration' => ['description' => 'The total playback duration for the audio or video file, in seconds.', 'type' => 'number', 'format' => 'float', 'title' => '', 'example' => '2400'],
'PlayPerVv' => ['description' => 'The average number of playbacks per user for the audio or video file.', 'type' => 'number', 'format' => 'float', 'title' => '', 'example' => '4'],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'Meter.ParamError', 'errorMessage' => 'Param Error:%s,Please Check Again.', 'description' => 'One or more parameters are invalid.'],
],
403 => [
['errorCode' => 'Meter.AuthError', 'errorMessage' => 'Authentication Failed,Please Try Again.', 'description' => 'You do not have permissions to perform this operation.'],
],
500 => [
['errorCode' => 'Meter.ServerInternalError', 'errorMessage' => 'The Request Processing Has Failed Due To Some Unknown Error.', 'description' => 'An internal error occurred.'],
['errorCode' => 'Meter.DataSourceQueryError', 'errorMessage' => 'Data Source Error:%s,Please Try Again.', 'description' => 'An internal data source error occurred.'],
],
502 => [
['errorCode' => 'Meter.ReadyTsError', 'errorMessage' => 'Get ReadyTs Failed,Please Try Again.', 'description' => 'The data is not prepared.'],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4AF6-D7393642CA58****\\",\\n \\"TotalCount\\": 1,\\n \\"PageNo\\": 1,\\n \\"PageSize\\": 20,\\n \\"QoeInfoList\\": [\\n {\\n \\"VideoTitle\\": \\"Alibaba Cloud VOD video title\\",\\n \\"VideoDuration\\": 246,\\n \\"MediaId\\": \\"9ae2af636ca6c10412f44891fc****\\",\\n \\"DAU\\": 5,\\n \\"PlaySuccessVv\\": 20,\\n \\"PlayDurationPerUv\\": 120,\\n \\"PlayDuration\\": 2400,\\n \\"PlayPerVv\\": 4\\n }\\n ]\\n}","type":"json"}]',
'title' => 'DescribeVodMediaPlayData',
'description' => '- The endpoint for this operation is available only in the **China (Shanghai)** region.'."\n"
."\n"
.'- This operation collects playback data only from ApsaraVideo Player SDK. Traffic statistics for audio-only files are not supported.'."\n"
."\n"
.'- You can query data from the last 30 days only.'."\n"
."\n"
.'>'."\n"
."\n"
.'Before you call this operation, ensure that your ApsaraVideo Player SDK meets the following requirements:'."\n"
."\n"
.'>'."\n"
."\n"
.'- ApsaraVideo Player SDK for Android or iOS'."\n"
."\n"
.' - The SDK version is 5.4.9.2 or later.'."\n"
."\n"
.' - A license for the player SDK has been obtained and configured. For more information, see [License management](~~469166~~).'."\n"
."\n"
.' - The instrumentation log reporting feature of the player SDK is enabled. This feature is enabled by default. For more information, see [Create a player for Android](~~311525#section-dc4-gp6-xk2~~) and [Create a player for iOS](~~313855#section-cmf-k7d-jg5~~).'."\n"
."\n"
.'- ApsaraVideo Player SDK for Web'."\n"
."\n"
.' - The SDK version is 2.16.0 or later.'."\n"
."\n"
.' - A license for the **Playback Quality Monitoring** value-added service has been requested and configured. To request the license, fill out the [ApsaraVideo Player SDK for Web Value-added Service Request form](https://yida.alibaba-inc.com/o/webplayer#/). For information about how to configure the license, see the `license` property in [Web client API reference](~~125572#section-3ty-gwp-6pa~~).'."\n"
."\n"
.' - The instrumentation log reporting feature of the player SDK is enabled. This feature is enabled by default.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodMediaPlayData'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'vod:DescribeVodMediaPlayData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'translator' => 'machine',
],
'DescribeVodPlayerCollectData' => [
'summary' => 'Queries the summary of player playback data.',
'methods' => ['get', 'post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'none',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '274030',
'abilityTreeNodes' => ['FEATUREvod2L0PVC'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['type' => 'string', 'required' => true, 'description' => 'The ID of the application.', 'title' => '', 'example' => 'app-1000000'],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['type' => 'string', 'required' => true, 'description' => 'The start of the time range to query. The time is in the *yyyy-mm-dd*T*hh:mm:ss*Z format in UTC.'."\n"
."\n"
.'> - You can query the playback data in the last year.'."\n"
.'> - The maximum time range for a single query is 31 days.'."\n"
.'> - The time range is a left-closed, right-open interval. The range includes the start time but not the end time. \\[StartTime, EndTime).', 'title' => '', 'example' => '2025-06-24T00:55:06Z'],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['type' => 'string', 'required' => true, 'description' => 'The end of the time range to query. The time is in the yyyy-mm-ddThh:mm:ssZ format in UTC.', 'title' => '', 'example' => '2025-06-05T15:59:59Z'],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => ['type' => 'string', 'required' => true, 'description' => 'The time granularity of the query. Valid values: **5m**, **1h**, and **1d**. The supported time granularities vary based on the time range specified by `StartTime` and `EndTime`:'."\n"
."\n"
.'- If the time range is within 3 days, you can set this parameter to **5m**, **1h**, or **1d**.'."\n"
.'- If the time range is from 4 to 7 days, you can set this parameter to **1h** or **1d**.'."\n"
.'- If the time range is more than 7 days, you can set this parameter to **1d**.', 'title' => '', 'example' => '1d'],
],
[
'name' => 'TerminalType',
'in' => 'query',
'schema' => ['type' => 'string', 'required' => true, 'description' => 'The terminal type. Valid values:'."\n"
."\n"
.'- **web**: web client.'."\n"
.'- **mobile**: native client.', 'title' => '', 'example' => 'web'],
],
[
'name' => 'Os',
'in' => 'query',
'schema' => ['type' => 'string', 'required' => false, 'description' => 'The operating system of the player. If you specify this parameter, you can query the playback data of a specified operating system. Valid values include **Android**, **iOS**, **Harmony**, **Windows**, **MacOS**, and **Linux**. The valid values vary based on the terminal type. The following list describes the mappings:'."\n"
."\n"
.'- **native**: Android, iOS, and Harmony.'."\n"
.'- **web**: Android, iOS, Harmony, Windows, MacOS, and Linux.'."\n"
."\n"
.'Separate multiple operating systems with #\\_#.', 'title' => '', 'example' => 'Android、iOS、Windows'],
],
[
'name' => 'Metrics',
'in' => 'query',
'schema' => ['type' => 'string', 'required' => true, 'description' => 'The metric type. You can specify multiple metrics. You can specify a maximum of three metrics.'."\n"
."\n"
.'> - The values of percentage-related data are returned in the decimal format.'."\n"
."\n"
.'Quality of Service (QoS) metrics:'."\n"
."\n"
.'- Vv: the number of playbacks.'."\n"
.'- RealVv: the number of actual playbacks.'."\n"
.'- FirstFrame: the first frame latency.'."\n"
.'- SecondPlayRate: the rate of starting playback within 1 second.'."\n"
.'- SlowPlayRate: the rate of slow starting playbacks.'."\n"
.'- StuckCountRate: the stuttering rate based on the number of stutters.'."\n"
.'- SeekDuration: the seek latency.'."\n"
.'- StuckDuration100s: the stuttering duration per 100 seconds.'."\n"
.'- StuckCount100s: the number of stutters per 100 seconds.'."\n"
.'- PlayFailRate: the playback failure rate.'."\n"
.'- SeedFailRate: the rate of playback startup failures.'."\n"
.'- AvgPlayBitrate: the average playback bitrate.'."\n"
.'- AvgStartBitrate: the average startup bitrate.'."\n"
.'- ErrorCount100s: the number of errors per 100 seconds.'."\n"
."\n"
.'Quality of Experience (QoE) metrics:'."\n"
."\n"
.'- Uv: the number of unique visitors (UVs).'."\n"
.'- AvgPerVv: the average number of playbacks per person.'."\n"
.'- AvgVideoDuration: the average video duration.'."\n"
.'- AvgPerPlayDuration: the average playback duration per person.'."\n"
.'- AvgPerCompletionVv: the average number of completed playbacks per person.'."\n"
.'- CompletionVv: the number of completed playbacks.'."\n"
.'- CompletionRate: the completion rate.'."\n"
.'- AvgPlayDuration: the average playback duration.'."\n"
.'- JumpRate5s: the 5-second bounce rate.', 'title' => '', 'example' => 'Vv,Uv,AvgPerVv'],
],
[
'name' => 'Period',
'in' => 'query',
'schema' => ['type' => 'string', 'description' => 'The time range for period-over-period analysis. Unit: day (d).'."\n"
."\n"
.'For example, if you set this parameter to 1d, the time range for period-over-period data is from StartTime-1d to EndTime-1d.', 'required' => false, 'title' => '', 'example' => '1d'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['type' => 'string', 'title' => '', 'description' => 'Id of the request', 'example' => '25818875-5F78-4AF6-D7393642CA58****'],
'DataList' => [
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Metric' => ['type' => 'string', 'description' => 'The data metric returned.', 'title' => '', 'example' => 'Vv'],
'Value' => ['type' => 'number', 'format' => 'double', 'description' => 'The value of the data metric returned.', 'title' => '', 'example' => '100.0'],
'ValueRefer' => ['type' => 'number', 'format' => 'double', 'description' => 'The period-over-period value of the data metric returned.', 'title' => '', 'example' => '200.0'],
'ValueRatio' => ['type' => 'number', 'format' => 'double', 'description' => 'The period-over-period percentage.', 'title' => '', 'example' => '0.5'],
],
'description' => '',
'title' => '',
],
'description' => 'The list of data returned.',
'title' => '',
],
],
'title' => '',
'description' => 'Schema of Response',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'Meter.ParamError', 'errorMessage' => 'Param Error:%s,Please Check Again.', 'description' => 'One or more parameters are invalid.'],
],
403 => [
['errorCode' => 'Meter.AuthError', 'errorMessage' => 'Authentication Failed,Please Try Again.', 'description' => 'You do not have permissions to perform this operation.'],
],
500 => [
['errorCode' => 'Meter.ServerInternalError', 'errorMessage' => 'The Request Processing Has Failed Due To Some Unknown Error.', 'description' => 'An internal error occurred.'],
['errorCode' => 'Meter.DataSourceQueryError', 'errorMessage' => 'Data Source Error:%s,Please Try Again.', 'description' => 'An internal data source error occurred.'],
],
502 => [
['errorCode' => 'Meter.ReadyTsError', 'errorMessage' => 'Get ReadyTs Failed,Please Try Again.', 'description' => 'The data is not prepared.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DescribeVodPlayerCollectData',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'vod:DescribeVodPlayerCollectData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4AF6-D7393642CA58****\\",\\n \\"DataList\\": [\\n {\\n \\"Metric\\": \\"Vv\\",\\n \\"Value\\": 100,\\n \\"ValueRefer\\": 200,\\n \\"ValueRatio\\": 0.5\\n }\\n ]\\n}","type":"json"}]',
],
'DescribeVodPlayerDimensionData' => [
'summary' => 'Queries the metadata of player dimensions.',
'methods' => ['get', 'post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'none',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '273845',
'abilityTreeNodes' => ['FEATUREvod2L0PVC'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['type' => 'string', 'required' => true, 'description' => 'The application ID.', 'title' => '', 'example' => 'app-1000000'],
],
[
'name' => 'Dimension',
'in' => 'query',
'schema' => ['type' => 'string', 'required' => true, 'description' => 'The dimension type. Valid values:'."\n"
."\n"
.'- Os: operating system.'."\n"
.'- AppVersion: application version.'."\n"
.'- SdkVersion: SDK version.'."\n"
.'- Codec: encoding format.'."\n"
.'- VideoType: video format.'."\n"
.'- Network: network type.'."\n"
.'- Isp: carrier.'."\n"
.'- VideoDefinition: resolution.'."\n"
.'- Domain: domain name.'."\n"
.'- Country: country.'."\n"
.'- Province: province.'."\n"
.'- ErrorCode: error code.'."\n"
.'- IsHw: specifies whether to use hardware decoding.', 'title' => '', 'example' => 'Os'],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['type' => 'string', 'description' => 'The beginning of the time range to query. Specify the time in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is in UTC.'."\n"
."\n"
.'> - You can query data from the last year.'."\n"
.'> - The maximum time range for a single query is 31 days.'."\n"
.'> - The time range is a left-closed, right-open interval. The start time is included, but the end time is not.', 'required' => false, 'title' => '', 'example' => '2025-06-24T00:55:06Z'],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['type' => 'string', 'description' => 'The end of the time range to query. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format. The time is in UTC.', 'required' => false, 'title' => '', 'example' => '2025-06-05T15:59:59Z'],
],
[
'name' => 'Region',
'in' => 'query',
'schema' => ['type' => 'string', 'description' => 'The area to query. This parameter is used to filter the metadata of the \\`Province\\` and \\`Isp\\` dimensions. Valid values:'."\n"
."\n"
.'- \\`ALL\\` (default): all areas.'."\n"
.'- \\`CN\\`: China.'."\n"
.'- \\`OVERSEAS\\`: areas outside China.', 'required' => false, 'title' => '', 'example' => 'ALL'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['type' => 'string', 'title' => '', 'description' => 'Id of the request', 'example' => '25818875-5F78-4A*****F6-D7393642CA58'],
'DataList' => [
'type' => 'array',
'items' => ['type' => 'string', 'description' => 'The metadata of the dimension.', 'title' => '', 'example' => 'Android'],
'description' => 'The list of returned data.',
'title' => '',
],
],
'title' => '',
'description' => 'Schema of Response',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'Meter.ParamError', 'errorMessage' => 'Param Error:%s,Please Check Again.', 'description' => 'One or more parameters are invalid.'],
],
403 => [
['errorCode' => 'Meter.AuthError', 'errorMessage' => 'Authentication Failed,Please Try Again.', 'description' => 'You do not have permissions to perform this operation.'],
],
500 => [
['errorCode' => 'Meter.ServerInternalError', 'errorMessage' => 'The Request Processing Has Failed Due To Some Unknown Error.', 'description' => 'An internal error occurred.'],
['errorCode' => 'Meter.DataSourceQueryError', 'errorMessage' => 'Data Source Error:%s,Please Try Again.', 'description' => 'An internal data source error occurred.'],
],
502 => [
['errorCode' => 'Meter.ReadyTsError', 'errorMessage' => 'Get ReadyTs Failed,Please Try Again.', 'description' => 'The data is not prepared.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DescribeVodPlayerDimensionData',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'vod:DescribeVodPlayerDimensionData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4A*****F6-D7393642CA58\\",\\n \\"DataList\\": [\\n \\"Android\\"\\n ]\\n}","type":"json"}]',
'translator' => 'machine',
],
'DescribeVodPlayerMetricData' => [
'methods' => ['get', 'post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'none',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '273926',
'abilityTreeNodes' => ['FEATUREvod2L0PVC'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['type' => 'string', 'required' => true, 'description' => 'The application ID.', 'title' => '', 'example' => 'app-1000000'],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['type' => 'string', 'required' => true, 'description' => 'The start of the time range to query. The time is in UTC and the format is *yyyy-mm-dd*T*hh:mm:ss*Z.'."\n"
."\n"
.'> - You can query playback data from the last year.'."\n"
.'> - The time range for a single query cannot exceed 31 days.'."\n"
.'> - The time range is a left-closed, right-open interval \\`\\[StartTime, EndTime)\\`.', 'title' => '', 'example' => '2025-06-24T00:55:06Z'],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['type' => 'string', 'required' => true, 'description' => 'The end of the time range to query. The time is in UTC and the format is yyyy-mm-ddThh:mm:ssZ.', 'title' => '', 'example' => '2025-06-05T15:59:59Z'],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => ['type' => 'string', 'required' => true, 'description' => 'The time granularity of the data to query. Valid values: **5m**, **1h**, and **1d**. The supported time granularity varies based on the time range specified by `StartTime` and `EndTime`:'."\n"
."\n"
.'- If the time range is within 3 days, you can set this parameter to **5m**, **1h**, or **1d**.'."\n"
.'- If the time range is from 4 to 7 days, you can set this parameter to **1h** or **1d**.'."\n"
.'- If the time range is longer than 7 days, you can only set this parameter to **1d**.', 'title' => '', 'example' => '1d'],
],
[
'name' => 'TerminalType',
'in' => 'query',
'schema' => ['type' => 'string', 'required' => true, 'description' => 'The terminal type. Valid values:'."\n"
."\n"
.'- **web**: web client.'."\n"
.'- **mobile**: native client.', 'title' => '', 'example' => 'web'],
],
[
'name' => 'Filters',
'in' => 'query',
'schema' => ['type' => 'string', 'description' => 'The filter for metric dimensions. A dimension consists of a field (Field), an operator (Op), and a value.'."\n"
."\n"
.'> - You can specify up to three dimensions.'."\n"
.'> - The \\`Filters\\` parameter does not take effect if the \\`Metrics\\` parameter includes any of the following four metrics: Uv (number of unique viewers), AvgPerVv (average number of views per user), AvgPerPlayDuration (average playback duration per user), or AvgPerCompletionVv (average number of complete views per user).'."\n"
.'> - For provinces and countries, pass the region code.'."\n"
.'> - To pass multiple values, separate them with \\`#\\_#\\`.'."\n"
."\n"
.'Valid values for the dimension type (Field):'."\n"
."\n"
.'- SdkVersion: the SDK version.'."\n"
.'- AppVersion: the app version.'."\n"
.'- Codec: the encoding format.'."\n"
.'- VideoType: the video format.'."\n"
.'- Network: the network type.'."\n"
.'- Country: the country.'."\n"
.'- Isp: the carrier.'."\n"
.'- VideoDefinition: the resolution.'."\n"
.'- Domain: the domain name.'."\n"
.'- Province: the province.'."\n"
.'- IsHw: specifies whether hardware decoding is used.'."\n"
.'- ErrorCode: the error code.'."\n"
."\n"
.'Valid values for the operator (Op) are \\`=\\` (equal to), \\`>\\` (greater than), \\`<\\` (less than), and \\`!=\\` (not equal to).'."\n"
."\n"
.'> - The SdkVersion and VideoDefinition metrics support all four operators. Other metrics only support \\`=\\` (equal to) and \\`!=\\` (not equal to).'."\n"
."\n"
.'To get dimension values, call the DescribeVodPlayerDimensionData operation.', 'required' => false, 'title' => '', 'example' => '['."\n"
.' {'."\n"
.' "Field": "codec",'."\n"
.' "Op": "=",'."\n"
.' "Value": "h265#_#h264"'."\n"
.' },'."\n"
.' {'."\n"
.' "Field": "os",'."\n"
.' "Op": "=",'."\n"
.' "Value": "Android#_#iOS"'."\n"
.' }'."\n"
.']'],
],
[
'name' => 'Metrics',
'in' => 'query',
'schema' => ['type' => 'string', 'required' => true, 'description' => 'The metric type. You can select multiple metrics, up to a maximum of three.'."\n"
."\n"
.'> - Percentage data is returned as a decimal.'."\n"
."\n"
.'Quality of Service (QoS) metrics:'."\n"
."\n"
.'- Vv: the number of views.'."\n"
.'- RealVv: the number of actual views.'."\n"
.'- FirstFrame: the time to first frame.'."\n"
.'- SecondPlayRate: the rate of playback startup within one second.'."\n"
.'- SlowPlayRate: the rate of slow playback startup.'."\n"
.'- StuckCountRate: the stuttering rate by count.'."\n"
.'- SeekDuration: the seek time.'."\n"
.'- StuckDuration100s: the stuttering duration per 100 seconds.'."\n"
.'- StuckCount100s: the number of stutters per 100 seconds.'."\n"
.'- PlayFailRate: the playback failure rate.'."\n"
.'- SeedFailRate: the rate of playback startup failures.'."\n"
.'- AvgPlayBitrate: the average playback bitrate.'."\n"
.'- AvgStartBitrate: the average startup bitrate.'."\n"
.'- ErrorCount100s: the number of errors per 100 seconds.'."\n"
."\n"
.'Quality of Experience (QoE) metrics:'."\n"
."\n"
.'- Uv: the number of unique viewers.'."\n"
.'- AvgPerVv: the average number of views per user.'."\n"
.'- AvgVideoDuration: the average video duration.'."\n"
.'- AvgPerPlayDuration: the average playback duration per user.'."\n"
.'- AvgPerCompletionVv: the average number of complete views per user.'."\n"
.'- CompletionVv: the number of complete views.'."\n"
.'- CompletionRate: the completion rate.'."\n"
.'- AvgPlayDuration: the average playback duration.'."\n"
.'- JumpRate5s: the 5-second bounce rate.', 'title' => '', 'example' => 'Vv,Uv,AvgPerVv'],
],
[
'name' => 'Top',
'in' => 'query',
'schema' => ['type' => 'integer', 'format' => 'int64', 'description' => 'The number of top results to return based on the number of views. If you do not specify this parameter, data for all dimensions is returned.', 'required' => false, 'title' => '', 'example' => '5'],
],
[
'name' => 'PageNumber',
'in' => 'query',
'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => false, 'description' => 'The page number. The default value is **1**.', 'title' => '', 'example' => '1'],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => false, 'description' => 'The number of entries to return on each page. Default value: **5000**. Maximum value: **5000**.', 'title' => '', 'example' => '5000'],
],
[
'name' => 'Language',
'in' => 'query',
'schema' => ['type' => 'string', 'description' => 'The language of the response. Valid values:'."\n"
."\n"
.'- **zh** (**default**): Simplified Chinese.'."\n"
.'- **en**: English.', 'required' => false, 'title' => '', 'example' => 'zh'],
],
[
'name' => 'Os',
'in' => 'query',
'schema' => ['type' => 'string', 'description' => 'The operating system of the player. You can specify this parameter to query playback data for a specific operating system. Valid values include **Android**, **iOS**, **Harmony**, **Windows**, **macOS**, and **Linux**. The valid values vary based on the terminal type:'."\n"
."\n"
.'- **native**: Android, iOS, and Harmony.'."\n"
.'- **web**: Android, iOS, Harmony, Windows, macOS, and Linux.'."\n"
."\n"
.'To specify multiple operating systems, separate them with \\`#\\_#\\`.', 'required' => false, 'title' => '', 'example' => 'Android、iOS、Windows'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['type' => 'string', 'title' => '', 'description' => 'The ID of the request.', 'example' => '25818875-5F78-4A*****F6-D7393642CA58'],
'PageNumber' => ['type' => 'integer', 'format' => 'int64', 'description' => 'The current page number.', 'title' => '', 'example' => '1'],
'PageSize' => ['type' => 'integer', 'format' => 'int64', 'description' => 'The number of entries per page.', 'title' => '', 'example' => '5000'],
'TotalCnt' => ['type' => 'integer', 'format' => 'int64', 'description' => 'The total number of data points.', 'title' => '', 'example' => '500'],
'DataList' => [
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'TimeStamp' => ['type' => 'string', 'description' => 'The timestamp of the returned data. The time is in UTC and the format is yyyy-mm-ddThh:mm:ssZ.', 'title' => '', 'example' => '2025-06-24T00:55:06Z'."\n"],
'Dimension' => ['type' => 'string', 'description' => 'The dimension.', 'title' => '', 'example' => 'H265_MP4_WIFI'],
'Uv' => ['type' => 'number', 'format' => 'double', 'description' => 'The number of unique viewers.', 'title' => '', 'example' => '500'],
'Vv' => ['type' => 'number', 'format' => 'double', 'description' => 'The number of views.', 'title' => '', 'example' => '800'],
'RealVv' => ['type' => 'number', 'format' => 'double', 'description' => 'The number of actual views.', 'title' => '', 'example' => '1000'],
'FirstFrame' => ['type' => 'number', 'format' => 'double', 'description' => 'The time to first frame, in milliseconds (ms).', 'title' => '', 'example' => '100'],
'SecondPlayRate' => ['type' => 'number', 'format' => 'double', 'description' => 'The rate of playback startup within one second.', 'title' => '', 'example' => '0.8'],
'SlowPlayRate' => ['type' => 'number', 'format' => 'double', 'description' => 'The rate of slow playback startup.', 'title' => '', 'example' => '0.2'],
'StuckCountRate' => ['type' => 'number', 'format' => 'double', 'description' => 'The stuttering rate by count.', 'title' => '', 'example' => '0.1'],
'SeekDuration' => ['type' => 'number', 'format' => 'double', 'description' => 'The seek time, in milliseconds (ms).', 'title' => '', 'example' => '100'],
'StuckDuration100s' => ['type' => 'number', 'format' => 'double', 'description' => 'The stuttering duration per 100 seconds, in milliseconds (ms).', 'title' => '', 'example' => '200'],
'PlayFailRate' => ['type' => 'number', 'format' => 'double', 'description' => 'The playback failure rate.', 'title' => '', 'example' => '0.2'],
'SeedFailRate' => ['type' => 'number', 'format' => 'double', 'description' => 'The rate of playback startup failures.', 'title' => '', 'example' => '0.01'],
'AvgPlayBitrate' => ['type' => 'number', 'format' => 'double', 'description' => 'The average playback bitrate, in bps.', 'title' => '', 'example' => '100'],
'AvgStartBitrate' => ['type' => 'number', 'format' => 'double', 'description' => 'The average startup bitrate, in bps.', 'title' => '', 'example' => '100'],
'ErrorCount100s' => ['type' => 'number', 'format' => 'double', 'description' => 'The number of errors per 100 seconds.', 'title' => '', 'example' => '1'],
'AvgPerVv' => ['type' => 'number', 'format' => 'double', 'description' => 'The average number of views per user.', 'title' => '', 'example' => '10'],
'AvgVideoDuration' => ['type' => 'number', 'format' => 'double', 'description' => 'The average video duration, in milliseconds (ms).', 'title' => '', 'example' => '100000'],
'AvgPerPlayDuration' => ['type' => 'number', 'format' => 'double', 'description' => 'The average playback duration per user, in milliseconds (ms).', 'title' => '', 'example' => '100000'],
'AvgPerCompletionVv' => ['type' => 'number', 'format' => 'double', 'description' => 'The average number of complete views per user.', 'title' => '', 'example' => '2'],
'CompletionVv' => ['type' => 'number', 'format' => 'double', 'description' => 'The number of complete views.', 'title' => '', 'example' => '500'],
'CompletionRate' => ['type' => 'number', 'format' => 'double', 'description' => 'The completion rate.', 'title' => '', 'example' => '0.8'],
'AvgPlayDuration' => ['type' => 'number', 'format' => 'double', 'description' => 'The average playback duration, in milliseconds (ms).', 'title' => '', 'example' => '100000'."\n"],
'JumpRate5s' => ['type' => 'number', 'format' => 'double', 'description' => 'The 5-second bounce rate.', 'title' => '', 'example' => '0.1'],
'TotalPlayDuration' => ['type' => 'number', 'format' => 'double', 'description' => 'The total playback duration, in milliseconds (ms).', 'title' => '', 'example' => '100000'],
'StuckCount100s' => ['type' => 'string', 'description' => 'The number of stutters per 100 seconds.', 'title' => '', 'example' => '2'],
],
'description' => '',
'title' => '',
],
'description' => 'The list of returned data.',
'title' => '',
],
'Extend' => [
'type' => 'object',
'properties' => [
'ActualStartTime' => ['type' => 'string', 'description' => 'The earliest time when a data point was generated within the specified time range. The time is in UTC and the format is yyyy-mm-ddThh:mm:ssZ.', 'title' => '', 'example' => '2025-06-24T00:55:06Z'],
'ActualEndTime' => ['type' => 'string', 'description' => 'The latest time when a data point was generated within the specified time range. The time is in UTC and the format is yyyy-mm-ddThh:mm:ssZ.', 'title' => '', 'example' => '2025-06-05T15:59:59Z'],
'IntervalSeconds' => ['type' => 'integer', 'format' => 'int64', 'description' => 'The time granularity of the queried data, in seconds (s).', 'title' => '', 'example' => '3600'],
],
'description' => 'The extended information.',
'title' => '',
],
],
'title' => '',
'description' => 'Schema of Response',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'Meter.ParamError', 'errorMessage' => 'Param Error:%s,Please Check Again.', 'description' => 'One or more parameters are invalid.'],
],
403 => [
['errorCode' => 'Meter.AuthError', 'errorMessage' => 'Authentication Failed,Please Try Again.', 'description' => 'You do not have permissions to perform this operation.'],
],
500 => [
['errorCode' => 'Meter.ServerInternalError', 'errorMessage' => 'The Request Processing Has Failed Due To Some Unknown Error.', 'description' => 'An internal error occurred.'],
['errorCode' => 'Meter.DataSourceQueryError', 'errorMessage' => 'Data Source Error:%s,Please Try Again.', 'description' => 'An internal data source error occurred.'],
],
502 => [
['errorCode' => 'Meter.ReadyTsError', 'errorMessage' => 'Get ReadyTs Failed,Please Try Again.', 'description' => 'The data is not prepared.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DescribeVodPlayerMetricData',
'summary' => 'Queries player metric data.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'vod:DescribeVodPlayerMetricData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4A*****F6-D7393642CA58\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 5000,\\n \\"TotalCnt\\": 500,\\n \\"DataList\\": [\\n {\\n \\"TimeStamp\\": \\"2025-06-24T00:55:06Z\\\\n\\",\\n \\"Dimension\\": \\"H265_MP4_WIFI\\",\\n \\"Uv\\": 500,\\n \\"Vv\\": 800,\\n \\"RealVv\\": 1000,\\n \\"FirstFrame\\": 100,\\n \\"SecondPlayRate\\": 0.8,\\n \\"SlowPlayRate\\": 0.2,\\n \\"StuckCountRate\\": 0.1,\\n \\"SeekDuration\\": 100,\\n \\"StuckDuration100s\\": 200,\\n \\"PlayFailRate\\": 0.2,\\n \\"SeedFailRate\\": 0.01,\\n \\"AvgPlayBitrate\\": 100,\\n \\"AvgStartBitrate\\": 100,\\n \\"ErrorCount100s\\": 1,\\n \\"AvgPerVv\\": 10,\\n \\"AvgVideoDuration\\": 100000,\\n \\"AvgPerPlayDuration\\": 100000,\\n \\"AvgPerCompletionVv\\": 2,\\n \\"CompletionVv\\": 500,\\n \\"CompletionRate\\": 0.8,\\n \\"AvgPlayDuration\\": 100000,\\n \\"JumpRate5s\\": 0.1,\\n \\"TotalPlayDuration\\": 100000,\\n \\"StuckCount100s\\": \\"2\\"\\n }\\n ],\\n \\"Extend\\": {\\n \\"ActualStartTime\\": \\"2025-06-24T00:55:06Z\\",\\n \\"ActualEndTime\\": \\"2025-06-05T15:59:59Z\\",\\n \\"IntervalSeconds\\": 3600\\n }\\n}","type":"json"}]',
],
'DescribeVodRangeDataByLocateAndIspService' => [
'summary' => 'Queries the bandwidth data by Internet service provider (ISP) and region.',
'methods' => ['get', 'post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'abilityTreeCode' => '219275',
'abilityTreeNodes' => ['FEATUREvodB8HTWV'],
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The accelerated domain name.'."\n", 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => true, 'example' => '2023-05-29T03:50:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => true, 'example' => '2023-05-29T03:55:00Z', 'title' => ''],
],
[
'name' => 'LocationNameEn',
'in' => 'query',
'schema' => ['description' => 'The name of the region. If you leave this parameter empty, data in all regions is queried.'."\n", 'type' => 'string', 'required' => false, 'example' => 'shanghai', 'title' => ''],
],
[
'name' => 'IspNameEn',
'in' => 'query',
'schema' => ['description' => 'The name of the ISP. If you leave this parameter empty, all ISPs are queried.'."\n", 'type' => 'string', 'required' => false, 'example' => 'unicom', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'JsonResult' => ['description' => 'The returned result. The value is in the JSON format. These parameters indicate the following information in sequence: UNIX time, region, ISP, distribution of HTTP status codes, response time, bandwidth (bit/s), average response rate, page views, cache hit ratio, and request hit ratio.'."\n", 'type' => 'string', 'example' => '{"1472659200":{"Tianjin":{"China Telecom":{"http_codes":{"000":0,"200":6,"400":0},"rt":4183,"bandwidth":46639,"avg_speed":7773,"pv":6,"hit_rate":0.93,"request_hit_rate":0.66}}}}', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'C74802AA-C277-5A80-BDF2-072B05F119C7', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified value of parameter StartTime is malformed.', 'description' => ''],
['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified value of parameter EndTime is malformed.', 'description' => ''],
['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => ''],
['errorCode' => 'InvalidTime.ValueNotSupported', 'errorMessage' => 'StartTime or EndTime is miss match.', 'description' => ''],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JsonResult\\": \\"{\\\\\\"1472659200\\\\\\":{\\\\\\"Tianjin\\\\\\":{\\\\\\"China Telecom\\\\\\":{\\\\\\"http_codes\\\\\\":{\\\\\\"000\\\\\\":0,\\\\\\"200\\\\\\":6,\\\\\\"400\\\\\\":0},\\\\\\"rt\\\\\\":4183,\\\\\\"bandwidth\\\\\\":46639,\\\\\\"avg_speed\\\\\\":7773,\\\\\\"pv\\\\\\":6,\\\\\\"hit_rate\\\\\\":0.93,\\\\\\"request_hit_rate\\\\\\":0.66}}}}\\",\\n \\"RequestId\\": \\"C74802AA-C277-5A80-BDF2-072B05F119C7\\"\\n}","type":"json"}]',
'title' => 'DescribeVodRangeDataByLocateAndIspService',
'description' => 'The data is collected every 5 minutes. You can call this API operation up to 20 times per second per account. Time granularity'."\n"
."\n"
.'The time granularity supported by Interval, the maximum time period within which historical data is available, and the data delay vary based on the time range to query, as described in the following table.'."\n"
."\n"
.'|Time granularity|Maximum time range per query|Historical data available|Data delay|'."\n"
.'|---|---|---|---|'."\n"
.'|5 minutes|1 hour|93 days|15 minutes|',
'changeSet' => [
['createdAt' => '2025-07-16T06:26:05.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T06:20:11.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T06:16:44.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodRangeDataByLocateAndIspService'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodRangeDataByLocateAndIspService',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeVodRefreshQuota' => [
'summary' => 'Queries the maximum number and remaining number of requests to refresh or prefetch files on the current day. You can prefetch files based on URLs and refresh files based on URLs or directories.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39908',
'abilityTreeNodes' => ['FEATUREvodB8HTWV'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'BlockQuota' => ['description' => 'The maximum number of Object Storage Service (OSS) buckets that can be refreshed each day.'."\n", 'type' => 'string', 'example' => '500', 'title' => ''],
'PreloadRemain' => ['description' => 'The remaining number of URLs of files that can be prefetched on the current day.'."\n", 'type' => 'string', 'example' => '500', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '42E0554B-80F4-4921-****-ACFB22CAAAD0', 'title' => ''],
'blockRemain' => ['description' => 'The remaining number of OSS buckets that can be refreshed on the current day.'."\n", 'type' => 'string', 'example' => '500', 'title' => ''],
'DirRemain' => ['description' => 'The remaining number of directories of files that can be refreshed on the current day.'."\n", 'type' => 'string', 'example' => '99', 'title' => ''],
'UrlRemain' => ['description' => 'The remaining number of URLs of files that can be refreshed on the current day.'."\n", 'type' => 'string', 'example' => '1996', 'title' => ''],
'DirQuota' => ['description' => 'The maximum number of directories of files that can be refreshed each day.'."\n", 'type' => 'string', 'example' => '100', 'title' => ''],
'UrlQuota' => ['description' => 'The maximum number of URLs of files that can be refreshed each day.'."\n", 'type' => 'string', 'example' => '2000', 'title' => ''],
'PreloadQuota' => ['description' => 'The maximum number of URLs of files that can be prefetched each day.'."\n", 'type' => 'string', 'example' => '500', 'title' => ''],
],
'description' => '',
'title' => '',
],
],
],
'errorCodes' => [],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"BlockQuota\\": \\"500\\",\\n \\"PreloadRemain\\": \\"500\\",\\n \\"RequestId\\": \\"42E0554B-80F4-4921-****-ACFB22CAAAD0\\",\\n \\"blockRemain\\": \\"500\\",\\n \\"DirRemain\\": \\"99\\",\\n \\"UrlRemain\\": \\"1996\\",\\n \\"DirQuota\\": \\"100\\",\\n \\"UrlQuota\\": \\"2000\\",\\n \\"PreloadQuota\\": \\"500\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 100\\r\\n 99\\r\\n A56FC7F8-CA97-482E-****-F77C2135BD22\\r\\n 2000\\r\\n 1996\\r\\n 500\\r\\n 500\\r\\n","errorExample":""}]',
'title' => 'DescribeVodRefreshQuota',
'description' => '> * This operation is available only in the **China (Shanghai)** region.'."\n"
.'> * You can call the [RefreshVodObjectCaches](~~69215~~) operation to refresh content and the [PreloadVodObjectCaches](~~69211~~) operation to prefetch content.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return.'."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| Throttling | Request was denied due to request throttling. | 503 | The error message returned because the request was denied due to throttling. |'."\n"
.'| OperationDenied | Your account does not open VOD service yet. | 403 | The error message returned because ApsaraVideo VOD has not been activated for your Alibaba Cloud account. |'."\n"
.'| OperationDenied.Suspended | Your VOD service is suspended. | 403 | The error message returned because your Alibaba Cloud account has overdue payments. Add funds to your account. |',
'changeSet' => [
['createdAt' => '2025-07-16T06:26:05.000Z', 'description' => 'OpenAPI offline'],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodRefreshQuota',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodRefreshQuota'],
],
],
],
'DescribeVodRefreshTasks' => [
'summary' => 'Queries the information about one or more refresh or prefetch tasks.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39909',
'abilityTreeNodes' => ['FEATUREvod59E0PR'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'TaskId',
'in' => 'query',
'schema' => ['description' => 'The ID of the task that you want to query.'."\n", 'type' => 'string', 'required' => false, 'example' => '70422****', 'title' => ''],
],
[
'name' => 'ObjectPath',
'in' => 'query',
'schema' => ['description' => 'The path of the object. The path is used as a condition for exact matching.'."\n", 'type' => 'string', 'required' => false, 'example' => 'http://example.com/***.txt', 'title' => ''],
],
[
'name' => 'PageNumber',
'in' => 'query',
'schema' => ['description' => 'The page number.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '42949672', 'minimum' => '1', 'example' => '1', 'default' => '1', 'title' => ''],
],
[
'name' => 'ObjectType',
'in' => 'query',
'schema' => ['description' => 'The type of the task. Valid values:'."\n"
."\n"
.'* **file**: refreshes one or more files.'."\n"
.'* **directory**: refreshes files in the specified directories.'."\n"
.'* **preload**: prefetches one or more files.'."\n"
."\n"
.'> If you specify the DomainName or Status parameter, you must also specify the ObjectType parameter.'."\n", 'type' => 'string', 'required' => false, 'example' => 'file', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The domain name.'."\n", 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'Status',
'in' => 'query',
'schema' => [
'description' => 'The status of the task. Valid values:'."\n"
."\n"
.'* **Complete**: The task is complete.'."\n"
.'* **Refreshing**: The task is in progress.'."\n"
.'* **Failed**: The task failed.'."\n",
'type' => 'string',
'required' => false,
'example' => 'Complete',
'enum' => ['Complete', 'Refreshing', 'Failed'],
'title' => '',
],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries to return on each page. Default value: **20**. Maximum value: **50**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'example' => '20', 'default' => '20', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.'."\n"
."\n"
.'> You can query data that is collected in the last three days.'."\n", 'type' => 'string', 'required' => false, 'example' => '2017-01-01T12:12:20Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => false, 'example' => '2017-01-01T12:30:20Z', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '174F6032-AA26-470D-****-36F0EB205BEE', 'title' => ''],
'PageNumber' => ['description' => 'The page number of the returned page.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
'PageSize' => ['description' => 'The number of entries returned per page.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '10', 'title' => ''],
'TotalCount' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '2', 'title' => ''],
'Tasks' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Task' => [
'description' => 'The information about the returned tasks.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Status' => ['description' => 'The status of the task. Valid values:'."\n"
."\n"
.'* **Complete**: The task is complete.'."\n"
.'* **Refreshing**: The task is in progress.'."\n"
.'* **Failed**: The task failed.'."\n"
.'* **Pending**: The task is pending.'."\n", 'type' => 'string', 'example' => 'Complete', 'title' => ''],
'CreationTime' => ['description' => 'The time when the task was created. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2014-11-27T08:23:22Z', 'title' => ''],
'ObjectType' => ['description' => 'The type of the task. Default value: file. Valid values:'."\n"
."\n"
.'* **file**: refreshes one or more files.'."\n"
.'* **directory**: refreshes files in the specified directory.'."\n"
.'* **preload**: prefetches one or more files.'."\n", 'type' => 'string', 'example' => 'file', 'title' => ''],
'Process' => ['description' => 'The progress of the task in percentage.'."\n", 'type' => 'string', 'example' => '100%', 'title' => ''],
'Description' => ['description' => 'The type of error returned when the refresh or prefetch task failed. Valid values: Valid values:'."\n"
."\n"
.'* **Internal Error**: An internal error occurred.'."\n"
.'* **Origin Timeout**: The response from the origin server timed out.'."\n"
.'* **Origin Return StatusCode 5XX**: The origin server returned an HTTP status code 5xx.'."\n", 'type' => 'string', 'example' => 'Internal Error', 'title' => ''],
'ObjectPath' => ['description' => 'The URL of the object refreshed.'."\n", 'type' => 'string', 'example' => 'http://example.com/****.txt', 'title' => ''],
'TaskId' => ['description' => 'The ID of the task.'."\n", 'type' => 'string', 'example' => '704225667', 'title' => ''],
],
'description' => '',
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidTaskId.Malformed', 'errorMessage' => 'The specified TaskId is invalid.', 'description' => 'Invalid TaskId'],
['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => 'Both start time and end must be specified'],
['errorCode' => 'MissingParameter.ObjectType', 'errorMessage' => 'The ObjectType parameter is required if DomainName or ObjectType is specified.', 'description' => ''],
['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => ''],
['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => ''],
['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'End time is earlier than start time'],
['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => ''],
['errorCode' => 'InvalidObjectType.ValueNotSupported', 'errorMessage' => 'The specified ObjectType is not supported.', 'description' => ''],
['errorCode' => 'InvalidStatus.ValueNotSupported', 'errorMessage' => 'The specified Status is not supported.', 'description' => ''],
['errorCode' => 'DomainNameOverLimit', 'errorMessage' => 'A maximum of 500 domains are supported for each request.', 'description' => 'Up to 500 domain names per request'],
['errorCode' => 'InvalidTime', 'errorMessage' => 'The query time cannot exceed the last 3 days.', 'description' => 'The request time cannot be returned for more than 3 days.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"174F6032-AA26-470D-****-36F0EB205BEE\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 2,\\n \\"Tasks\\": {\\n \\"Task\\": [\\n {\\n \\"Status\\": \\"Complete\\",\\n \\"CreationTime\\": \\"2014-11-27T08:23:22Z\\",\\n \\"ObjectType\\": \\"file\\",\\n \\"Process\\": \\"100%\\",\\n \\"Description\\": \\"Internal Error\\",\\n \\"ObjectPath\\": \\"http://example.com/****.txt\\",\\n \\"TaskId\\": \\"704225667\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n \\r\\n \\r\\n 2014-11-27T08:23:22Z\\r\\n http://example.com/****.txt\\r\\n Complete\\r\\n 704225667\\r\\n file\\r\\n 100%\\r\\n \\r\\n \\r\\n 2014-11-27T08:18:38Z\\r\\n http://example.com/****.txt\\r\\n Complete\\r\\n 704222904\\r\\n file\\r\\n 100%\\r\\n \\r\\n \\r\\n 1\\r\\n 10\\r\\n 2\\r\\n 13DF2E2F-FBF8-4E1C-****-98141795443D\\r\\n","errorExample":""}]',
'title' => 'DescribeVodRefreshTasks',
'description' => '* This operation is available only in the **China (Shanghai)** region.'."\n"
."\n"
.'* If you do not specify the TaskId or ObjectPath parameter, the data in the last three days is returned on the first page. By default, one page displays a maximum of 20 entries. You can specify the TaskId and ObjectPath parameters at the same time.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the error codes that this operation can return.'."\n"
."\n"
.'|Error code|Error message|HTTP status code|Description|'."\n"
.'|---|---|---|---|'."\n"
.'|Throttling|Request was denied due to request throttling.|503|The error message returned because the request was denied due to throttling.|'."\n"
.'|OperationDenied|Your account does not open VOD service yet.|403|The error message returned because ApsaraVideo VOD is not activated for your Alibaba Cloud account.|'."\n"
.'|OperationDenied.Suspended|Your VOD service is suspended.|403|The error message returned because your Alibaba Cloud account has overdue payments. Add funds to your account.|'."\n"
.'|InvalidTaskId.Malformed|Specified TaskId is malformed.|400|The error message returned because the value of the TaskId parameter is in an invalid format.|',
'changeSet' => [
['createdAt' => '2025-07-16T06:25:56.000Z', 'description' => 'OpenAPI offline'],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodRefreshTasks',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodRefreshTasks'],
],
],
],
'DescribeVodSSLCertificateList' => [
'methods' => ['get', 'post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'abilityTreeCode' => '236814',
'abilityTreeNodes' => ['FEATUREvod0O92P0'],
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'example.com'],
],
[
'name' => 'PageNumber',
'in' => 'query',
'schema' => ['description' => 'The page number. Default value: 1.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'default' => '1', 'title' => '', 'example' => '1'],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries per page. Valid values: an integer from 1 to 1000.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'default' => '1000', 'title' => '', 'example' => '10'],
],
[
'name' => 'SearchKeyword',
'in' => 'query',
'schema' => ['description' => 'The keyword for a fuzzy query of certificate names.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'certabc'."\n"],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '25818875-5F78-4AF6-D7393642CA58****'],
'CertificateListModel' => [
'description' => 'The information about the certificate list.',
'type' => 'object',
'properties' => [
'Count' => ['description' => 'The number of certificates.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '2'],
'CertList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Cert' => [
'description' => 'The list of certificates.',
'type' => 'array',
'items' => [
'description' => 'The information about a certificate.',
'type' => 'object',
'properties' => [
'LastTime' => ['description' => 'The time when the certificate was last modified. Unit: milliseconds.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '1512388610'],
'Fingerprint' => ['description' => 'The fingerprint of the certificate.', 'type' => 'string', 'title' => '', 'example' => '****'],
'CertName' => ['description' => 'The name of the certificate.', 'type' => 'string', 'title' => '', 'example' => 'video-ssl'],
'Issuer' => ['description' => 'The certificate issuer.', 'type' => 'string', 'title' => '', 'example' => '****'],
'CertId' => ['description' => 'The ID of the certificate.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '235437'],
'Common' => ['description' => 'The Common Name (CN) property of the certificate. This is usually a domain name.', 'type' => 'string', 'title' => '', 'example' => 'test'],
'CertRegion' => ['description' => 'The region where the certificate is used. Supported values: **cn-hangzhou** and **ap-southeast-1**. Default value: **cn-hangzhou**.', 'type' => 'string', 'title' => '', 'example' => 'cn-hangzhou'],
],
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
'PageNumber' => ['description' => 'The current page number. The value starts from 1. The default value is 1.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '1'],
'PageSize' => ['description' => 'The number of entries per page. Valid values: an integer from 1 to 1000.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '20'],
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'NotFoundCertList', 'errorMessage' => 'The certList is null.', 'description' => ''],
],
],
'title' => 'DescribeVodSSLCertificateList',
'summary' => 'You can call this operation to query a list of certificates for a domain name.',
'description' => 'This operation is available only in the **China (Shanghai)** region.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodSSLCertificateList'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodSSLCertificateList',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4AF6-D7393642CA58****\\",\\n \\"CertificateListModel\\": {\\n \\"Count\\": 2,\\n \\"CertList\\": {\\n \\"Cert\\": [\\n {\\n \\"LastTime\\": 1512388610,\\n \\"Fingerprint\\": \\"****\\",\\n \\"CertName\\": \\"video-ssl\\",\\n \\"Issuer\\": \\"****\\",\\n \\"CertId\\": 235437,\\n \\"Common\\": \\"test\\",\\n \\"CertRegion\\": \\"cn-hangzhou\\"\\n }\\n ]\\n },\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 20\\n }\\n}","type":"json"}]',
],
'DescribeVodStorageData' => [
'summary' => 'Queries the usage of storage-related resources, including the storage volume and outbound traffic.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39912',
'abilityTreeNodes' => ['FEATUREvodUOYFRF'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => true, 'example' => '2019-02-01T14:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. The end time must be later than the start time. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => true, 'example' => '2019-02-01T15:00:00Z', 'title' => ''],
],
[
'name' => 'Region',
'in' => 'query',
'schema' => ['description' => 'The region in which you want to query storage data. If you leave this parameter empty, data in all regions is returned. Separate multiple regions with commas (,). Valid values:'."\n"
."\n"
.'* **cn-shanghai**: China (Shanghai)'."\n"
.'* **cn-beijing**: China (Beijing)'."\n"
.'* **eu-central-1**: Germany (Frankfurt)'."\n"
.'* **ap-southeast-1**: Singapore'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'StorageType',
'in' => 'query',
'schema' => ['description' => 'The storage class. Set the value to **OSS**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'OSS', 'default' => 'OSS', 'title' => ''],
],
[
'name' => 'Storage',
'in' => 'query',
'schema' => ['description' => 'The name of the Object Storage Service (OSS) bucket. If you leave this parameter empty, data of all buckets is returned. Separate multiple transcoding specifications with commas (,).'."\n", 'type' => 'string', 'required' => false, 'example' => 'bucket', 'title' => ''],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the application. '."\n"
."\n"
.'* Default value: **app-1000000**.', 'type' => 'string', 'required' => false, 'example' => 'app-1000000', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'DataInterval' => ['description' => 'The time granularity at which the data was queried. Valid values:'."\n"
."\n"
.'* **hour**'."\n"
.'* **day**'."\n", 'type' => 'string', 'example' => 'day', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'C370DAF1-C838-4288-****-9A87633D248E', 'title' => ''],
'StorageData' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'StorageDataItem' => [
'description' => 'The storage usage data returned.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'TimeStamp' => ['description' => 'The timestamp of the returned data. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2019-02-01T15:00:00Z', 'title' => ''],
'StorageUtilization' => ['description' => 'The detailed usage data of storage-related resources. Unit: bytes.'."\n", 'type' => 'string', 'example' => '111111', 'title' => ''],
'NetworkOut' => ['description' => 'The outbound traffic. Unit: bytes. The outbound traffic is generated when videos are directly downloaded or played from OSS buckets without Alibaba Cloud CDN acceleration.'."\n", 'type' => 'string', 'example' => '111111', 'title' => ''],
],
'description' => '',
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => 'The end time is in an invalid format.'],
['errorCode' => 'InvalidParameterType', 'errorMessage' => 'The specified Type is invalid.', 'description' => 'The Type parameter is invalid. Modify the value of the Type parameter based on the documentation.'],
['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => 'The time span exceeds the limit. Configure a valid time span based on the documentation.'],
['errorCode' => 'InvalidParameter', 'errorMessage' => 'Invalid input parameter.', 'description' => 'Input parameter error.'],
['errorCode' => 'InvalidTime.Malformed', 'errorMessage' => 'The specified Time is malformed.', 'description' => 'The time format is incorrect. Modify the format of the input parameter based on the documentation.'],
['errorCode' => 'InvalidParameterInterval', 'errorMessage' => 'The specified Interval is invalid.', 'description' => 'The specified time granularity is invalid. Specify the time granularity based on the requirements described in the API documentation.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"DataInterval\\": \\"day\\",\\n \\"RequestId\\": \\"C370DAF1-C838-4288-****-9A87633D248E\\",\\n \\"StorageData\\": {\\n \\"StorageDataItem\\": [\\n {\\n \\"TimeStamp\\": \\"2019-02-01T15:00:00Z\\",\\n \\"StorageUtilization\\": \\"111111\\",\\n \\"NetworkOut\\": \\"111111\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\tC370DAF1-C838-4288-****-9A87633D248E\\r\\n\\tday\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t111111\\r\\n\\t\\t\\t111111\\r\\n\\t\\t\\t2019-02-01T15:00:00Z\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t111111\\r\\n\\t\\t\\t111111\\r\\n\\t\\t\\t2019-02-02T15:00:00Z\\r\\n\\t\\t\\r\\n\\t\\r\\n","errorExample":""}]',
'title' => 'DescribeVodStorageData',
'description' => '> * This operation is available only in the **China (Shanghai)** region.'."\n"
.'>* If the time range to query is less than or equal to seven days, the system returns the statistics collected on an hourly basis. If the time range to query is greater than seven days, the system returns the statistics collected on a daily basis. The maximum time range that you can specify to query is 31 days.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the error codes that this operation can return.'."\n"
."\n"
.'|Error code|Error message|HTTP status code|Description|'."\n"
.'|---|---|---|---|'."\n"
.'|Throttling|Request was denied due to request throttling.|503|The error message returned because the request was denied due to throttling.|'."\n"
.'|OperationDenied|Your account does not open VOD service yet.|403|The error message returned because ApsaraVideo VOD is not activated for your Alibaba Cloud account.|'."\n"
.'|OperationDenied|Your VOD service is suspended.|403|The error message returned because ApsaraVideo VOD is suspended for your Alibaba Cloud account.|'."\n"
.'|InvalidParameter|Invalid Parameter.|400|The error message returned because one or more parameters are invalid.|'."\n"
.'|InvalidParameterAliUid|Invalid Parameter AliUid.|400|The error message returned because the value of the AliUid parameter is invalid.|'."\n"
.'|InvalidParameterStartTime|Invalid Parameter StartTime.|400|The error message returned because the value of the StartTime parameter is invalid.|'."\n"
.'|InvalidParameterEndTime|Invalid Parameter EndTime.|400|The error message returned because the value of the EndTime parameter is invalid.|'."\n"
.'|InvalidTimeRange|StartTime and EndTime range should less than 1 month.|400|The error message returned because the time range that is specified by the StartTime and EndTime parameters exceeds 31 days.|'."\n"
.'|InvalidParameterRegion|Invalid Parameter Region.|400|The error message returned because the value of the Region parameter is invalid.|',
'changeSet' => [
['createdAt' => '2025-07-16T06:26:16.000Z', 'description' => 'OpenAPI offline'],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodStorageData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodStorageData'],
],
],
],
'DescribeVodTieringStorageData' => [
'summary' => 'Queries the usage of tiered storage for media assets.',
'methods' => ['get', 'post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'none',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '216951',
'abilityTreeNodes' => ['FEATUREvodUOYFRF'],
],
'parameters' => [
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time for data retrieval. The date format follows the ISO8601 notation and uses UTC time. Format: YYYY-MM-DDThh:mmZ. If this parameter is left empty, data from the last 24 hours is retrieved by default.', 'type' => 'string', 'required' => false, 'example' => '2023-05-29T01:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time for data retrieval, which must be later than the start time and cannot exceed 31 days from the start time. Format: *yyyy-MM-dd*T*HH:mm:ss*Z (UTC time).', 'type' => 'string', 'required' => false, 'example' => '2023-05-29T02:00:00Z', 'title' => ''],
],
[
'name' => 'Region',
'in' => 'query',
'schema' => ['description' => 'The storage region. By default, all regions are returned. You can query multiple regions by separating them with commas (,).', 'type' => 'string', 'required' => false, 'example' => 'cn-beijing', 'title' => ''],
],
[
'name' => 'StorageClass',
'in' => 'query',
'schema' => ['description' => 'The storage class. By default, all types are returned. Valid values:'."\n"
."\n"
.'- **IA**: Infrequent Access'."\n"
.'- **Archive**: Archive'."\n"
.'- **ColdArchive**: Cold Archive', 'type' => 'string', 'required' => false, 'example' => 'IA', 'title' => ''],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['type' => 'string', 'description' => 'The application ID.', 'required' => false, 'example' => 'app-1000000', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '25818875-5F78-4AF6-D7393642CA58****'],
'StorageData' => [
'description' => 'The storage usage data.',
'type' => 'array',
'items' => [
'description' => 'The storage usage data.',
'type' => 'object',
'properties' => [
'TimeStamp' => [
'description' => 'The start time of the time slice. Format: *yyyy-MM-dd*T*HH:mm:ss*Z (UTC time).',
'type' => 'string',
'enumValueTitles' => [],
'example' => '2023-05-29T01:00:00Z',
'title' => '',
],
'Region' => ['description' => 'The storage region.', 'type' => 'string', 'example' => 'cn-beijing', 'title' => ''],
'StorageClass' => ['description' => 'The storage class.', 'type' => 'string', 'example' => 'IA', 'title' => ''],
'StorageUtilization' => ['description' => 'The storage usage data. Unit: byte.', 'type' => 'integer', 'format' => 'int64', 'example' => '1234', 'title' => ''],
'LessthanMonthDatasize' => ['description' => 'The data storage less than one month. Unit: byte.', 'type' => 'integer', 'format' => 'int64', 'example' => '123', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => 'The end time is in an invalid format.'],
['errorCode' => 'InvalidParameterType', 'errorMessage' => 'The specified Type is invalid.', 'description' => 'The Type parameter is invalid. Modify the value of the Type parameter based on the documentation.'],
['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => 'The time span exceeds the limit. Configure a valid time span based on the documentation.'],
['errorCode' => 'InvalidParameter', 'errorMessage' => 'Invalid input parameter.', 'description' => 'Input parameter error.'],
['errorCode' => 'InvalidTime.Malformed', 'errorMessage' => 'The specified Time is malformed.', 'description' => 'The time format is incorrect. Modify the format of the input parameter based on the documentation.'],
],
],
'title' => 'DescribeVodTieringStorageData',
'description' => '- Currently, only the following endpoint is supported: **China (Shanghai)**.'."\n"
.'- When the query time interval is within 7 days, data with hourly granularity is returned. When the query time interval is greater than 7 days, data with daily granularity is returned. The maximum interval is 31 days.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodTieringStorageData'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'vod:DescribeVodTieringStorageData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4AF6-D7393642CA58****\\",\\n \\"StorageData\\": [\\n {\\n \\"TimeStamp\\": \\"2023-05-29T01:00:00Z\\",\\n \\"Region\\": \\"cn-beijing\\",\\n \\"StorageClass\\": \\"IA\\",\\n \\"StorageUtilization\\": 1234,\\n \\"LessthanMonthDatasize\\": 123\\n }\\n ]\\n}","type":"json"}]',
],
'DescribeVodTieringStorageRetrievalData' => [
'summary' => 'Queries the retrieval data usage for tiered storage in media asset management.',
'methods' => ['get', 'post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'none',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '216979',
'abilityTreeNodes' => ['FEATUREvodUOYFRF'],
],
'parameters' => [
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The start time for data retrieval. The date format follows the ISO8601 notation and uses UTC time. Format: YYYY-MM-DDThh:mmZ. The minimum data granularity is 5 minutes. If this parameter is empty, data from the last 24 hours is read by default.', 'type' => 'string', 'required' => false, 'example' => '2023-06-02T10:20:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end time for data retrieval, which must be later than the start time and cannot exceed 31 days. Format: *yyyy-MM-dd*T*HH:mm:ss*Z (UTC time).', 'type' => 'string', 'required' => false, 'example' => '2023-06-02T11:20:00Z'."\n", 'title' => ''],
],
[
'name' => 'Region',
'in' => 'query',
'schema' => ['description' => 'The storage region. By default, all regions are returned. You can query multiple regions at a time by separating them with commas (,).', 'type' => 'string', 'required' => false, 'example' => 'cn-beijing', 'title' => ''],
],
[
'name' => 'StorageClass',
'in' => 'query',
'schema' => ['description' => 'The storage class. Valid values:'."\n"
."\n"
.'- **IA**: Infrequent Access'."\n"
.'- **Archive**: Archive'."\n"
.'- **ColdArchive**: Cold Archive', 'type' => 'string', 'required' => false, 'example' => 'IA', 'title' => ''],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['type' => 'string', 'description' => 'The application ID.', 'required' => false, 'example' => 'app-1000000', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'Schema of Response',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '25818875-5F78-4A13-BEF6-D73936****'],
'RetrievalData' => [
'description' => 'The retrieved data.',
'type' => 'array',
'items' => [
'description' => 'The retrieved data.',
'type' => 'object',
'properties' => [
'TimeStamp' => ['description' => 'The start time of the time slice. Format: *yyyy-MM-dd*T*HH:mm:ss*Z (UTC time).', 'type' => 'string', 'example' => '2023-06-02T10:20:00Z'."\n", 'title' => ''],
'Region' => ['description' => 'The storage region.', 'type' => 'string', 'example' => 'cn-beijing', 'title' => ''],
'StorageClass' => ['description' => 'The media asset storage class.', 'type' => 'string', 'example' => 'IA', 'title' => ''],
'RetrievalData' => ['description' => 'The retrieved data.', 'type' => 'integer', 'format' => 'int64', 'example' => '1234', 'title' => ''],
'CAStdRetrievalData' => ['description' => 'The Cold Archive standard retrieval data.', 'type' => 'integer', 'format' => 'int64', 'example' => '123', 'title' => ''],
'CABulkRetrievalData' => ['description' => 'The Cold Archive batch retrieval data.', 'type' => 'integer', 'format' => 'int64', 'example' => '123', 'title' => ''],
'CAHighPriorRetrievalData' => ['description' => 'The Cold Archive high-priority retrieval data.', 'type' => 'integer', 'format' => 'int64', 'example' => '123', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => 'The end time is in an invalid format.'],
['errorCode' => 'InvalidParameterType', 'errorMessage' => 'The specified Type is invalid.', 'description' => 'The Type parameter is invalid. Modify the value of the Type parameter based on the documentation.'],
['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => 'The time span exceeds the limit. Configure a valid time span based on the documentation.'],
['errorCode' => 'InvalidParameter', 'errorMessage' => 'Invalid input parameter.', 'description' => 'Input parameter error.'],
['errorCode' => 'InvalidTime.Malformed', 'errorMessage' => 'The specified Time is malformed.', 'description' => 'The time format is incorrect. Modify the format of the input parameter based on the documentation.'],
],
],
'title' => 'DescribeVodTieringStorageRetrievalData',
'description' => '> - Currently, only the following endpoint is supported: **China East 2 (Shanghai)**.'."\n"
.'> - When the query time interval is within 7 days, data with hourly granularity is returned. When the query time interval exceeds 7 days, data with daily granularity is returned. The maximum interval is 31 days.',
'responseParamsDescription' => 'The CAStdRetrievalData, CABulkRetrievalData, and CAHighPriorRetrievalData fields are only present when the storage class is Cold Archive and the usage is not zero.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodTieringStorageRetrievalData'],
],
],
'ramActions' => [
[
'operationType' => 'none',
'ramAction' => [
'action' => 'vod:DescribeVodTieringStorageRetrievalData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4A13-BEF6-D73936****\\",\\n \\"RetrievalData\\": [\\n {\\n \\"TimeStamp\\": \\"2023-06-02T10:20:00Z\\\\n\\",\\n \\"Region\\": \\"cn-beijing\\",\\n \\"StorageClass\\": \\"IA\\",\\n \\"RetrievalData\\": 1234,\\n \\"CAStdRetrievalData\\": 123,\\n \\"CABulkRetrievalData\\": 123,\\n \\"CAHighPriorRetrievalData\\": 123\\n }\\n ]\\n}","type":"json"}]',
],
'DescribeVodTranscodeData' => [
'summary' => 'Queries the transcoding statistics.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39915',
'abilityTreeNodes' => ['FEATUREvodJALMOJ'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => true, 'example' => '2019-02-01T15:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. The end time must be later than the start time. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => true, 'example' => '2019-02-01T15:59:00Z', 'title' => ''],
],
[
'name' => 'Region',
'in' => 'query',
'schema' => ['description' => 'The region in which you want to query data. If you leave this parameter empty, data in all regions is returned. Separate multiple regions with commas (,). Valid values:'."\n"
."\n"
.'* **cn-shanghai**: China (Shanghai)'."\n"
.'* **cn-beijing**: China (Beijing)'."\n"
.'* **eu-central-1**: Germany (Frankfurt)'."\n"
.'* **ap-southeast-1**: Singapore'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => ['description' => 'The interval at which you want to query data. Valid values:'."\n"
."\n"
.'* **day**: days'."\n"
.'* **hour**: hours'."\n", 'type' => 'string', 'required' => false, 'example' => 'day', 'title' => ''],
],
[
'name' => 'Storage',
'in' => 'query',
'schema' => ['description' => 'The name of the Object Storage Service (OSS) bucket. If you leave this parameter empty, data of all buckets is returned. Separate multiple bucket names with commas (,).'."\n", 'type' => 'string', 'required' => false, 'example' => 'bucket01', 'title' => ''],
],
[
'name' => 'Specification',
'in' => 'query',
'schema' => ['description' => 'The transcoding specification. If you leave this parameter empty, data of all transcoding specifications is returned. Separate multiple transcoding specifications with commas (,). Valid values:'."\n"
."\n"
.'* **Audio**: audio transcoding'."\n"
.'* **Segmentation**: container format conversion'."\n"
.'* **H264.LD**, **H264.SD**, **H264.HD**, **H264.2K**, **H264.4K**, and more'."\n", 'type' => 'string', 'required' => false, 'example' => 'Audio', 'title' => ''],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the application. You can specify this parameter to query the transcoding statistics of a specific application. By default, the transcoding statistics of all applications is returned. You can obtain the application ID from the `AppId` parameter in the response to the [CreateAppInfo](~~CreateAppInfo~~) operation.'."\n", 'type' => 'string', 'required' => false, 'example' => 'app-1000001', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'DataInterval' => ['description' => 'The interval at which the data was queried. Valid values:'."\n"
."\n"
.'* **hour**'."\n"
.'* **day**'."\n", 'type' => 'string', 'example' => 'day', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'C370DAF1-C838-4288-****-9A87633D248E', 'title' => ''],
'TranscodeData' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'TranscodeDataItem' => [
'description' => 'The transcoding statistics returned.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'TimeStamp' => ['description' => 'The timestamp of the returned data. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2019-02-01T16:00:00Z', 'title' => ''],
'Data' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'DataItem' => [
'description' => 'The statistics on transcoding of different specifications.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Name' => ['description' => 'The transcoding specification. Valid values:'."\n"
."\n"
.'* **Audio**: audio transcoding'."\n"
.'* **Segmentation**: container format conversion'."\n"
.'* **H264.LD, H264.SD, H264.HD, H264.2K, H264.4K, and more**'."\n", 'type' => 'string', 'example' => 'H264.SD', 'title' => ''],
'Value' => ['description' => 'The transcoding duration. Unit: seconds.'."\n", 'type' => 'string', 'example' => '111', 'title' => ''],
],
'description' => '',
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
'description' => '',
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => 'The end time is in an invalid format.'],
['errorCode' => 'InvalidParameterType', 'errorMessage' => 'The specified Type is invalid.', 'description' => 'The Type parameter is invalid. Modify the value of the Type parameter based on the documentation.'],
['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => 'The time span exceeds the limit. Configure a valid time span based on the documentation.'],
['errorCode' => 'InvalidParameter', 'errorMessage' => 'Invalid input parameter.', 'description' => 'Input parameter error.'],
['errorCode' => 'InvalidTime.Malformed', 'errorMessage' => 'The specified Time is malformed.', 'description' => 'The time format is incorrect. Modify the format of the input parameter based on the documentation.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DescribeVodTranscodeData',
'description' => '* This operation is available only in the **China (Shanghai)** region.'."\n"
."\n"
.'* If the time range to query is less than or equal to seven days, the system returns the statistics collected on an hourly basis. If the time range to query is greater than seven days, the system returns the statistics collected on a daily basis. The maximum time range that you can specify to query is 31 days.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the error codes that this operation can return.'."\n"
."\n"
.'|Error code|Error message|HTTP status code|Description|'."\n"
.'|---|---|---|---|'."\n"
.'|Throttling|Request was denied due to request throttling.|503|The error message returned because the request was denied due to throttling.|'."\n"
.'|OperationDenied|Your account does not open VOD service yet.|403|The error message returned because ApsaraVideo VOD is not activated for your Alibaba Cloud account.|'."\n"
.'|OperationDenied|Your VOD service is suspended.|403|The error message returned because ApsaraVideo VOD is suspended for your Alibaba Cloud account.|'."\n"
.'|InvalidParameter|Invalid Parameter.|400|The error message returned because one or more parameters are invalid.|'."\n"
.'|InvalidParameterAliUid|Invalid Parameter AliUid.|400|The error message returned because the value of the AliUid parameter is invalid.|'."\n"
.'|InvalidParameterStartTime|Invalid Parameter StartTime.|400|The error message returned because the value of the StartTime parameter is invalid.|'."\n"
.'|InvalidParameterEndTime|Invalid Parameter EndTime.|400|The error message returned because the value of the EndTime parameter is invalid.|'."\n"
.'|InvalidTimeRange|StartTime and EndTime range should less than 1 month.|400|The error message returned because the time range that is specified by the StartTime and EndTime parameters exceeds 31 days.|'."\n"
.'|InvalidParameterRegion|Invalid Parameter Region.|400|The error message returned because the value of the Region parameter is invalid.|',
'changeSet' => [
['createdAt' => '2025-07-16T06:25:47.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodTranscodeData'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodTranscodeData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"type":"json","example":"{\\n \\"DataInterval\\": \\"day\\",\\n \\"RequestId\\": \\"C370DAF1-C838-4288-****-9A87633D248E\\",\\n \\"TranscodeData\\": {\\n \\"TranscodeDataItem\\": [\\n {\\n \\"TimeStamp\\": \\"2019-02-01T16:00:00Z\\",\\n \\"Data\\": {\\n \\"DataItem\\": [\\n {\\n \\"Name\\": \\"H264.SD\\",\\n \\"Value\\": \\"111\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n C370DAF1-C838-4288-****-9A87633D248E\\r\\n\\tday\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t2019-02-01T16:00:00Z\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tH264.SD\\r\\n\\t\\t\\t\\t\\t111\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tAll\\r\\n\\t\\t\\t\\t\\t111\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t2019-02-02T16:00:00Z\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tAudio\\r\\n\\t\\t\\t\\t\\t111\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tH264.SD\\r\\n\\t\\t\\t\\t\\t222\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tAll\\r\\n\\t\\t\\t\\t\\t333\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t\\r\\n","errorExample":""}]',
],
'DescribeVodUserDomains' => [
'summary' => 'Queries the domain names for CDN within your Alibaba Cloud account.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39917',
'abilityTreeNodes' => ['FEATUREvodHI57GB'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries per page. Default value: **20**. Maximum value: **50**. Valid values: **1** to **50**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '500', 'minimum' => '1', 'example' => '20', 'default' => '20', 'title' => ''],
],
[
'name' => 'PageNumber',
'in' => 'query',
'schema' => ['description' => 'The page number.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'example' => '1', 'default' => '1', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The domain name. The value of this parameter is used as a filter condition for a fuzzy match.'."\n", 'type' => 'string', 'required' => false, 'example' => 'example.aliyundoc.com', 'title' => ''],
],
[
'name' => 'DomainStatus',
'in' => 'query',
'schema' => ['description' => 'The status of the domain name. Value values:'."\n"
."\n"
.'* **online**: indicates that the domain name is enabled.'."\n"
.'* **offline**: indicates that the domain name is disabled.'."\n"
.'* **configuring**: indicates that the domain name is being configured.'."\n"
.'* **configure_failed**: indicates that the domain name failed to be configured.'."\n"
.'* **checking**: indicates that the domain name is under review.'."\n"
.'* **check_failed**: indicates that the domain name failed the review.'."\n", 'type' => 'string', 'required' => false, 'example' => 'online', 'title' => ''],
],
[
'name' => 'DomainSearchType',
'in' => 'query',
'schema' => ['description' => 'The search method. Valid values:'."\n"
."\n"
.'* **fuzzy_match** (default): fuzzy match.'."\n"
.'* **pre_match**: prefix match'."\n"
.'* **suf_match**: suffix match'."\n"
.'* **full_match**: exact match'."\n", 'type' => 'string', 'required' => false, 'example' => 'fuzzy_match', 'default' => 'fuzzy_match', 'title' => ''],
],
[
'name' => 'Tag',
'in' => 'query',
'style' => 'repeatList',
'schema' => [
'description' => 'The tags.'."\n",
'type' => 'array',
'items' => [
'description' => 'The object of the tag.',
'type' => 'object',
'properties' => [
'Key' => ['description' => 'The key of tag N. Valid values of N: **1** to **20**.'."\n"
."\n"
.'By default, all tag keys are queried.'."\n", 'type' => 'string', 'required' => false, 'example' => 'key', 'title' => ''],
'Value' => ['description' => 'The value of tag N. Valid values of N: **1** to **20**.'."\n"
."\n"
.'By default, all tag values are queried.'."\n", 'type' => 'string', 'required' => false, 'example' => 'value', 'title' => ''],
],
'required' => false,
'title' => '',
],
'required' => false,
'maxItems' => 20,
'title' => '',
],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned results.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'E4EBD2BF-5EB0-4476-****-9D94E1B15267', 'title' => ''],
'PageNumber' => ['description' => 'The page number.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
'PageSize' => ['description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '20', 'title' => ''],
'TotalCount' => ['description' => 'The total number of entries.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '2', 'title' => ''],
'Domains' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'PageData' => [
'description' => 'The detailed information about each domain name for CDN. The returned information is displayed in the format that is specified by the PageData parameter.'."\n",
'type' => 'array',
'items' => [
'description' => 'The returned datas.',
'type' => 'object',
'properties' => [
'GmtCreated' => ['description' => 'The time when the domain name for CDN was added. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2017-08-29T08:40:53Z', 'title' => ''],
'SslProtocol' => ['description' => 'Indicates whether HTTPS is enabled.'."\n"
."\n"
.'* **on**: HTTPS is enabled.'."\n"
.'* **off**: HTTPS is not eabled.'."\n", 'type' => 'string', 'example' => 'on', 'title' => ''],
'Description' => ['description' => 'The remarks.'."\n", 'type' => 'string', 'example' => 'Zhejiang ICP Filing No. ****', 'title' => ''],
'Sandbox' => ['description' => 'Indicates whether the accelerated domain name was in a sandbox.'."\n", 'type' => 'string', 'example' => 'normal', 'title' => ''],
'Cname' => ['description' => 'The CNAME that is assigned to the domain name for CDN.'."\n", 'type' => 'string', 'example' => 'learn.developer.aliyundoc.com', 'title' => ''],
'DomainStatus' => ['description' => 'The status of the domain name for CDN. Valid values:'."\n"
."\n"
.'* **online**: indicates that the domain name is enabled.'."\n"
.'* **offline**: indicates that the domain name is disabled.'."\n"
.'* **configuring**: indicates that the domain name is being configured.'."\n"
.'* **configure_failed**: indicates that the domain name failed to be configured.'."\n"
.'* **checking**: indicates that the domain name is under review.'."\n"
.'* **check_failed**: indicates that the domain name failed the review.'."\n", 'type' => 'string', 'example' => 'online', 'title' => ''],
'GmtModified' => ['description' => 'The last time when the domain name for CDN was modified. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2017-12-29T09:24:12Z', 'title' => ''],
'DomainName' => ['description' => 'The domain name for CDN.'."\n", 'type' => 'string', 'example' => 'example.aliyundoc.com', 'title' => ''],
'Sources' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Source' => [
'description' => 'The information about the origin server.'."\n",
'type' => 'array',
'items' => [
'description' => 'The information about the origin server.',
'type' => 'object',
'properties' => [
'Type' => ['description' => 'The type of the origin server. Valid values:'."\n"
."\n"
.'* **ipaddr**: an IP address.'."\n"
.'* **domain**: an origin domain name'."\n"
.'* **oss**: the OSS domain of an Object Storage Service (OSS) bucket'."\n", 'type' => 'string', 'example' => 'oss', 'title' => ''],
'Priority' => ['description' => 'The priority of the origin server.'."\n", 'type' => 'string', 'example' => '5', 'title' => ''],
'Port' => ['description' => 'The port number. Valid values: **443** and **80**.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '80', 'title' => ''],
'Content' => ['description' => 'The address of the origin server.'."\n", 'type' => 'string', 'example' => '192.168.0.1', 'title' => ''],
],
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
'title' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidPageNumber.ValueNotSupported', 'errorMessage' => 'The specified value of PageNumber is not supported.', 'description' => ''],
['errorCode' => 'InvalidPageSize.ValueNotSupported', 'errorMessage' => 'The specified value of PageSize is invalid.', 'description' => ''],
['errorCode' => 'InvalidDomainStatus.ValueNotSupported', 'errorMessage' => 'The specified value of DomainStatus is invalid.', 'description' => ''],
['errorCode' => 'InvalidDomainName.Malformed', 'errorMessage' => 'The specified DomainName is invalid.', 'description' => ''],
['errorCode' => 'InvalidDomainSearchType.ValueNotSupported', 'errorMessage' => 'The specified value of DomainSearchType is invalid.', 'description' => ''],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"E4EBD2BF-5EB0-4476-****-9D94E1B15267\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 20,\\n \\"TotalCount\\": 2,\\n \\"Domains\\": {\\n \\"PageData\\": [\\n {\\n \\"GmtCreated\\": \\"2017-08-29T08:40:53Z\\",\\n \\"SslProtocol\\": \\"on\\",\\n \\"Description\\": \\"Zhejiang ICP Filing No. ****\\",\\n \\"Sandbox\\": \\"normal\\",\\n \\"Cname\\": \\"learn.developer.aliyundoc.com\\",\\n \\"DomainStatus\\": \\"online\\",\\n \\"GmtModified\\": \\"2017-12-29T09:24:12Z\\",\\n \\"DomainName\\": \\"example.aliyundoc.com\\",\\n \\"Sources\\": {\\n \\"Source\\": [\\n {\\n \\"Type\\": \\"oss\\",\\n \\"Priority\\": \\"5\\",\\n \\"Port\\": 80,\\n \\"Content\\": \\"192.168.0.1\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]',
'title' => 'DescribeVodUserDomains',
'description' => '* You can filter domain names by name and status. Fuzzy match is supported for domain name-based query.'."\n"
.'* This operation is available only in the China (Shanghai) region.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return.'."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| InvalidPageNumber.ValueNotSupported | The specified value of parameter PageNumber is not supported. | 400 | The error message returned because the value of the PageNumber parameter is invalid. |'."\n"
.'| InvalidPageSize.ValueNotSupported | The specified value of parameter PageSize is not supported. | 400 | The error message returned because the value of the PageSize parameter is invalid. |'."\n"
.'| InvalidDomainName.Malformed | The specific value of parameter DomainName is malformed. | 400 | The error message returned because the value of the DomainName parameter is invalid. |'."\n"
.'| InvalidDomainStatus.ValueNotSupported | The specified value of parameter DomainStatus is not supported. | 400 | The error message returned because the value of the DomainStatus parameter is invalid. |'."\n"
.'| InvalidDomainSearchType.ValueNotSupported | The specified value of parameter DomainSearchType is not supported. | 400 | The error message returned because the value of the DomainSearchType parameter is invalid. |',
'changeSet' => [
['createdAt' => '2025-07-16T06:23:56.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodUserDomains'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodUserDomains',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'DescribeVodUserVipsByDomain' => [
'summary' => 'Queries the list of IP addresses associated with a domain name.',
'path' => '',
'methods' => ['get', 'post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeNodes' => ['FEATUREvodHI57GB'],
'autoTest' => true,
'tenantRelevance' => 'tenant',
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['type' => 'string', 'required' => true, 'description' => 'The accelerated domain name for Video on Demand (VOD). Only one domain name is supported.', 'title' => '', 'example' => 'example.com'],
],
[
'name' => 'Available',
'in' => 'query',
'schema' => [
'type' => 'string',
'required' => false,
'enum' => ['on', 'off'],
'description' => 'Specifies whether to query healthy virtual IP addresses (VIPs). Valid values:'."\n"
."\n"
.'- **on**: Healthy VIPs.'."\n"
."\n"
.'- **off**: All VIPs.',
'title' => '',
'example' => 'on',
],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'DomainName' => ['type' => 'string', 'description' => 'The VOD accelerated domain name.', 'title' => '', 'example' => 'example.com'],
'RequestId' => ['type' => 'string', 'description' => 'The request ID.', 'title' => '', 'example' => '6730AC93-7B12-4B*****7F-49EE1FE8BC49'],
'Vips' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Vip' => [
'type' => 'array',
'items' => ['type' => 'string', 'description' => 'A VIP address.', 'title' => '', 'example' => '163.181.xxx.xxx'],
'description' => 'The list of VIP addresses.',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'description' => 'The response schema.',
'example' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingParameter', 'errorMessage' => 'The specified value of parameter "DomainName" can not be empty.', 'description' => ''],
['errorCode' => 'InvalidDomain.NotFound', 'errorMessage' => 'The domain provided is offline or not exist.', 'description' => ''],
['errorCode' => 'IllegalOperation', 'errorMessage' => 'Illegal domain operate is not permitted.', 'description' => ''],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'DescribeVodUserVipsByDomain',
'description' => 'This API operation is available only in the China (Shanghai) region.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DomainName\\": \\"example.com\\",\\n \\"RequestId\\": \\"6730AC93-7B12-4B*****7F-49EE1FE8BC49\\",\\n \\"Vips\\": {\\n \\"Vip\\": [\\n \\"163.181.xxx.xxx\\"\\n ]\\n }\\n}","type":"json"}]',
],
'DescribeVodVerifyContent' => [
'summary' => 'Queries the ownership verification content.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39922',
'abilityTreeNodes' => ['FEATUREvodB8HTWV'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The domain name for which you want to verify the ownership. You can specify only one domain name in each call.'."\n", 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.'."\n",
'type' => 'object',
'properties' => [
'Content' => ['description' => 'The verification content.'."\n", 'type' => 'string', 'example' => 'verify_dffeb661*****3a59c31cd91f', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '34AB41F1-04A5-4688-634BDBE6****', 'title' => ''],
],
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": \\"verify_dffeb661*****3a59c31cd91f\\",\\n \\"RequestId\\": \\"34AB41F1-04A5-4688-634BDBE6****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n verify_dffeb661*****3a59c31cd91f\\n 34AB41F1-04A5-4688-634BDBE6****\\n","errorExample":""}]',
'title' => 'DescribeVodVerifyContent',
'description' => '* This operation is available only in the **China (Shanghai)** region.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2025-07-16T06:23:57.000Z', 'description' => 'OpenAPI offline'],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodVerifyContent',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodVerifyContent'],
],
],
],
'DetachAppPolicyFromIdentity' => [
'summary' => 'Revokes application permissions from the specified identity. The identity may a RAM user or RAM role.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39923',
'abilityTreeNodes' => ['FEATUREvodHJ3KAX'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'IdentityType',
'in' => 'query',
'schema' => ['description' => 'The type of the identity. Valid values:'."\n"
."\n"
.'* **RamUser**: RAM user'."\n"
.'* **RamRole**: RAM role'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'RamUser', 'title' => ''],
],
[
'name' => 'IdentityName',
'in' => 'query',
'schema' => ['description' => 'The ID of the RAM user or the name of the RAM role.'."\n"
."\n"
.'* Specifies the ID of the RAM user for this parameter if you set IdentityType to RamUser.'."\n"
.'* Specifies the name of the RAM role for this parameter if you set IdentityType to RamRole.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'test****name', 'title' => ''],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the application. This parameter is optional if you set PolicyNames to VODAppAdministratorAccess. This parameter is required if you set PolicyNames to a value other than VODAppAdministratorAccess.'."\n"
."\n"
.'* Default value: **app-1000000**.'."\n"
.'* For more information, see [Overview](~~113600~~).'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'app-****', 'title' => ''],
],
[
'name' => 'PolicyNames',
'in' => 'query',
'schema' => ['description' => 'The name of the policy. Separate multiple names with commas (,). Only system policies are supported.'."\n"
."\n"
.'* **VODAppFullAccess**: permissions to manage all resources in an application'."\n"
.'* **VODAppReadOnlyAccess**: permissions to read all resources in an application'."\n"
.'* **VODAppAdministratorAccess**: permissions of the application administrator'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'VODAppFullAccess', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4A13-****-D7393642C', 'title' => ''],
'NonExistPolicyNames' => [
'description' => 'The name of the policy that was not found.'."\n",
'type' => 'array',
'items' => ['description' => 'The name of the policy that was not found.'."\n", 'type' => 'string', 'example' => 'test****1', 'title' => ''],
'title' => '',
],
'FailedPolicyNames' => [
'description' => 'The names of the policies that failed to be granted to the RAM user or RAM role.'."\n",
'type' => 'array',
'items' => ['description' => 'The name of the policy that failed to be granted to the RAM user or RAM role.'."\n", 'type' => 'string', 'example' => 'test****2', 'title' => ''],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4A13-****-D7393642C\\",\\n \\"NonExistPolicyNames\\": [\\n \\"test****1\\"\\n ],\\n \\"FailedPolicyNames\\": [\\n \\"test****2\\"\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 25818875-5F78-4A13-****-D7393642C\\n test****1\\n test****2\\n","errorExample":""}]',
'title' => 'DetachAppPolicyFromIdentity',
'description' => '> You can grant a maximum of 10 application permissions to a RAM user or RAM role.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return.'."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| OperationDenied.NotOpenAppService | The app service is not open. | 403 | The error message returned because the multi-application service has not been activated. |'."\n"
.'| Forbidden.OperateApp | User not authorized to operate app. | 403 | The error message returned because you are not authorized to manage the application. |',
'changeSet' => [
['createdAt' => '2025-07-10T08:32:33.000Z', 'description' => 'OpenAPI offline'],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:DetachAppPolicyFromIdentity',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DetachAppPolicyFromIdentity'],
],
],
],
'GenerateDownloadSecretKey' => [
'summary' => 'Generates a key for secure download. ApsaraVideo Player SDK provides the secure download feature. Videos that are downloaded to your local device in this mode are encrypted. You can play the encrypted videos only by using the key file generated from the app that you specified. Secure download protects your videos from malicious playback or distribution.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39929',
'abilityTreeNodes' => ['FEATUREvodU0GZW5'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'AppIdentification',
'in' => 'query',
'schema' => ['description' => 'The unique identifier of the app.'."\n"
."\n"
.'* Android: the SHA-1 fingerprint of the keystore. The value is a string that contains a colon (:).'."\n"
.'* iOS: the bundle ID of the app.'."\n"
.'* Windows: the serial number in the digital signature certificate.'."\n"
."\n"
.'For more information about how to obtain the unique identifier of an app, see [Obtain the unique app identifier](~~86107#section-wtj-9d7-lg2~~).'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'BB:0D:AC:74:D3:21:09:EF:9C:71:1A:5E:77:2C:8E:BF:03:FD:FA:5A'."\n", 'title' => ''],
],
[
'name' => 'AppDecryptKey',
'in' => 'query',
'schema' => ['description' => 'A custom string of 16 to 32 characters in length. The string must contain uppercase letters, lowercase letters, and digits.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'AppDecryptKeyAndroid20230101', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'AppEncryptKey' => ['description' => 'The key file for secure download.'."\n", 'type' => 'string', 'example' => '***', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'E99B9BAD-7F9D-552B-A689-B72E92EA040E', 'title' => ''],
],
'description' => '',
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"AppEncryptKey\\": \\"***\\",\\n \\"RequestId\\": \\"E99B9BAD-7F9D-552B-A689-B72E92EA040E\\"\\n}","type":"json"}]',
'title' => 'GenerateDownloadSecretKey',
'description' => '* To use the secure download feature, you must enable the download feature in the ApsaraVideo VOD console and set the download method to secure download. For more information, see [Configure download settings](~~86107~~).'."\n"
.'* After you generate a key for secure download, you must configure the key in ApsaraVideo Player SDK. For more information, see [Secure download](~~124735~~).'."\n",
'changeSet' => [
['createdAt' => '2025-07-10T08:32:08.000Z', 'description' => 'OpenAPI offline'],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:GenerateDownloadSecretKey',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GenerateDownloadSecretKey'],
],
],
],
'GenerateKMSDataKey' => [
'summary' => 'Generates a random Key Management Service (KMS) data key used for HLS encryption in ApsaraVideo VOD.',
'methods' => ['get', 'post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'create',
'abilityTreeCode' => '144169',
'abilityTreeNodes' => ['FEATUREvodMVRCEC'],
],
'parameters' => [],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned results.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4A*****F6-D7393642CA58', 'title' => ''],
'KeyId' => ['description' => 'The ID of the customer master key (CMK). The ID must be globally unique.'."\n", 'type' => 'string', 'example' => '7906979c-8e06-46a2-be2d-68e3ccbc****', 'title' => ''],
'CiphertextBlob' => ['description' => 'The ciphertext of the encrypted data key. This is used as CipherText when you create a transcoding job.'."\n", 'type' => 'string', 'example' => 'ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b+i6kQmlvj79dJdGOvtX69Uycs901qOjop4bTS****', 'title' => ''],
'Plaintext' => ['description' => 'The Base64-encoded plaintext of the data key.'."\n", 'type' => 'string', 'example' => 'QmFzZTY0IGVuY29kZWQgcGxhaW50****', 'title' => ''],
],
'title' => '',
],
],
],
'errorCodes' => [
403 => [
['errorCode' => 'EntityNotExist.Role', 'errorMessage' => 'AliyunVODDefaultRole is not authorized by your account.', 'description' => 'The AliyunVODDefaultRole does not have permissions to access the resources. Authorize the role based on the documentation.'],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4A*****F6-D7393642CA58\\",\\n \\"KeyId\\": \\"7906979c-8e06-46a2-be2d-68e3ccbc****\\",\\n \\"CiphertextBlob\\": \\"ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b+i6kQmlvj79dJdGOvtX69Uycs901qOjop4bTS****\\",\\n \\"Plaintext\\": \\"QmFzZTY0IGVuY29kZWQgcGxhaW50****\\"\\n}","type":"json"}]',
'title' => 'GenerateKMSDataKey',
'changeSet' => [
['createdAt' => '2025-07-10T08:33:06.000Z', 'description' => 'OpenAPI offline'],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:GenerateKMSDataKey',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GenerateKMSDataKey'],
],
],
],
'GetAIImageJobs' => [
'summary' => 'Queries jobs of image AI processing.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'list',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39931',
'abilityTreeNodes' => ['FEATUREvodIPBMLH'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'JobIds',
'in' => 'query',
'schema' => ['description' => 'The ID of the image AI processing job. You can obtain the value of JobId from the response to the [SubmitAIImageJob](~~SubmitAIImageJob~~) operation.'."\n"
.'* You can specify a maximum of 10 IDs.'."\n"
.'* Separate multiple IDs with commas (,).', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cf08a2c6e11e*****de1711b738b9067', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned data.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '7721B494-1F78-4E*****E8-A7CEE7315BFA', 'title' => ''],
'AIImageJobList' => [
'description' => 'The image AI processing jobs.'."\n",
'type' => 'array',
'items' => [
'description' => 'The information about the image AI processing job.'."\n",
'type' => 'object',
'properties' => [
'Status' => ['description' => 'The status of the job. Valid values:'."\n"
."\n"
.'* **success**'."\n"
.'* **fail**'."\n", 'type' => 'string', 'example' => 'success', 'title' => ''],
'CreationTime' => ['description' => 'The time when the image AI processing job was created. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2020-10-15T03:30:03Z', 'title' => ''],
'AIImageResult' => ['description' => 'The Object Storage Service (OSS) URL of the image file.'."\n"
."\n"
.'> This parameter does not include the complete authentication information. To obtain the authentication information, you must generate a signed URL. Alternatively, you can call the [ListAIImageInfo](~~ListAIImageInfo~~) operation to obtain the image information.', 'type' => 'string', 'example' => '[{"Score":5.035636554444242,"Url":"http://outin-*****.oss-cn-shanghai.aliyuncs.com/357a8748c577*****789d2726e6436aa/image/ai/b0a7612554d*****5cbe3-00001.gif"}]', 'title' => ''],
'VideoId' => ['description' => 'The ID of the video.'."\n", 'type' => 'string', 'example' => '357a8748c577*****789d2726e6436aa', 'title' => ''],
'JobId' => ['description' => 'The ID of the image AI processing job.'."\n", 'type' => 'string', 'example' => 'cf08a2c6e11e*****de1711b738b9067', 'title' => ''],
'UserData' => ['description' => 'The user data.'."\n"
."\n"
.'* The value must be a JSON string.'."\n"
.'* The MessageCallback or Extend parameter is returned.'."\n"
.'* The value contains a maximum of 512 bytes.'."\n"
."\n"
.'For more information, see the "UserData: specifies the custom configurations for media upload" section of the [Request parameters](~~86952~~) topic.'."\n", 'type' => 'string', 'example' => '{"Extend":{"localId":"****","test":"www"}}', 'title' => ''],
'Code' => ['description' => 'The error code.'."\n", 'type' => 'string', 'example' => 'Success', 'title' => ''],
'Message' => ['description' => 'The error message.'."\n", 'type' => 'string', 'example' => 'success', 'title' => ''],
'TemplateConfig' => ['description' => 'The configurations of the AI template that was used to submit the job.'."\n", 'type' => 'string', 'example' => '{"Format":"gif","SetDefaultCover":"true"}', 'title' => ''],
'TemplateId' => ['description' => 'The ID of the AI template.'."\n", 'type' => 'string', 'example' => '5a86a00f15194*****d7fe7de1b4a173', 'title' => ''],
],
'title' => '',
],
'title' => '',
],
],
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7721B494-1F78-4E*****E8-A7CEE7315BFA\\",\\n \\"AIImageJobList\\": [\\n {\\n \\"Status\\": \\"success\\",\\n \\"CreationTime\\": \\"2020-10-15T03:30:03Z\\",\\n \\"AIImageResult\\": \\"[{\\\\\\"Score\\\\\\":5.035636554444242,\\\\\\"Url\\\\\\":\\\\\\"http://outin-*****.oss-cn-shanghai.aliyuncs.com/357a8748c577*****789d2726e6436aa/image/ai/b0a7612554d*****5cbe3-00001.gif\\\\\\"}]\\",\\n \\"VideoId\\": \\"357a8748c577*****789d2726e6436aa\\",\\n \\"JobId\\": \\"cf08a2c6e11e*****de1711b738b9067\\",\\n \\"UserData\\": \\"{\\\\\\"Extend\\\\\\":{\\\\\\"localId\\\\\\":\\\\\\"****\\\\\\",\\\\\\"test\\\\\\":\\\\\\"www\\\\\\"}}\\",\\n \\"Code\\": \\"Success\\",\\n \\"Message\\": \\"success\\",\\n \\"TemplateConfig\\": \\"{\\\\\\"Format\\\\\\":\\\\\\"gif\\\\\\",\\\\\\"SetDefaultCover\\\\\\":\\\\\\"true\\\\\\"}\\",\\n \\"TemplateId\\": \\"5a86a00f15194*****d7fe7de1b4a173\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 7721B494-1F78-4E*****E8-A7CEE7315BFA\\n \\n success\\n 2020-10-15T03:30:03Z\\n [{\\"Score\\":5.035636554444242,\\"Url\\":\\"http://outin-*****.oss-cn-shanghai.aliyuncs.com/357a8748c577*****789d2726e6436aa/image/ai/b0a7612554d*****5cbe3-00001.gif\\"}]\\n 357a8748c577*****789d2726e6436aa\\n cf08a2c6e11e*****de1711b738b9067\\n {\\"Extend\\":{\\"localId\\":\\"****\\",\\"test\\":\\"www\\"}}\\n Success\\n success\\n {\\"Format\\":\\"gif\\",\\"SetDefaultCover\\":\\"true\\"}\\n 5a86a00f15194*****d7fe7de1b4a173\\n \\n","errorExample":""}]',
'title' => 'GetAIImageJobs',
'description' => '* Regions that support this operation: **China (Beijing)** and **China (Shanghai)**.'."\n"
.'* Call the [SubmitAIImageJob](~~SubmitAIImageJob~~) operation to submit image AI processing jobs before you call this operation to query image AI processing jobs.'."\n"
.'* You can query a maximum of 10 jobs of image AI processing in one request.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-10T08:31:07.000Z', 'description' => 'OpenAPI offline'],
],
'ramActions' => [
[
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:GetAIImageJobs',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAIImageJobs'],
],
],
],
'GetAIMediaAuditJob' => [
'summary' => 'Queries the information about an intelligent review job. After the job is submitted, it is processed asynchronously. You can call this operation to query the job information in real time.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39932',
'abilityTreeNodes' => ['FEATUREvodW76Z9M'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'JobId',
'in' => 'query',
'schema' => ['description' => 'The ID of the intelligent review job.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'bdbc266af6894*****943a70176d92e9', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'EAA3E96A-02E2-41*****85-08E1D568ED3A', 'title' => ''],
'MediaAuditJob' => [
'description' => 'The information about the intelligent review job.'."\n",
'type' => 'object',
'properties' => [
'CreationTime' => ['description' => 'The time when the job started to run. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2017-01-11T12:00:00Z', 'title' => ''],
'Type' => ['description' => 'The type of the job. The value is AIMediaAudit.'."\n", 'type' => 'string', 'example' => 'AIMediaAudit', 'title' => ''],
'Status' => ['description' => 'The status of the job. Valid values:'."\n"
."\n"
.'* **success**: The job is successful.'."\n"
.'* **fail**: The job failed.'."\n"
.'* **init**: The job is being initialized.'."\n"
.'* **Processing**: The job is in progress.'."\n", 'type' => 'string', 'example' => 'success', 'title' => ''],
'CompleteTime' => ['description' => 'The time when the job is complete. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2017-01-11T13:00:00Z', 'title' => ''],
'JobId' => ['description' => 'The ID of the job.'."\n", 'type' => 'string', 'example' => 'bdbc266af6894*****943a70176d92e9', 'title' => ''],
'Code' => ['description' => 'The error code. This parameter is returned if the value of Status is fail.'."\n", 'type' => 'string', 'example' => '0', 'title' => ''],
'Message' => ['description' => 'The error message. This parameter is returned if the value of Status is fail.'."\n", 'type' => 'string', 'example' => 'OK', 'title' => ''],
'MediaId' => ['description' => 'The ID of the video.'."\n", 'type' => 'string', 'example' => 'fe028d09441d*****d1afffb138cd7e', 'title' => ''],
'Data' => [
'description' => 'The job result.'."\n",
'type' => 'object',
'properties' => [
'Suggestion' => ['description' => 'The recommendation for review results. Valid values:'."\n"
."\n"
.'* **block**: The content violates the regulations.'."\n"
.'* **review**: The content may violate the regulations.'."\n"
.'* **pass**: The content passes the review.'."\n", 'type' => 'string', 'example' => 'pass', 'title' => ''],
'AbnormalModules' => ['description' => 'The content that violates the regulations. Separate multiple values with commas (,). Valid values:'."\n"
."\n"
.'* **video**: the video.'."\n"
.'* **image-cover**: the cover.'."\n"
.'* **text-title**: the title.'."\n", 'type' => 'string', 'example' => 'video', 'title' => ''],
'Label' => ['description' => 'The category of the review result. Multiple values are separated by commas (,). Valid values:'."\n"
."\n"
.'* **porn**: pornographic content'."\n"
.'* **terrorism**: terrorist or politically sensitive content'."\n"
.'* **ad**: ad violation'."\n"
.'* **live**: undesirable scene'."\n"
.'* **logo**: logo'."\n"
.'* **audio**: audio anti-spam'."\n"
.'* **normal**: normal content'."\n", 'type' => 'string', 'example' => 'normal', 'title' => ''],
'ImageResult' => [
'description' => 'The results of image review.'."\n",
'type' => 'array',
'items' => [
'description' => '',
'type' => 'object',
'properties' => [
'Type' => ['description' => 'The type of the image. Valid value: **cover**.'."\n", 'type' => 'string', 'example' => 'cover', 'title' => ''],
'Url' => ['description' => 'The URL of the image.'."\n", 'type' => 'string', 'example' => 'http://www.test.com/****.jpg', 'title' => ''],
'Suggestion' => ['description' => 'The recommendation for review results. Valid values:'."\n"
."\n"
.'* **block**'."\n"
.'* **review**'."\n"
.'* **pass**'."\n", 'type' => 'string', 'example' => 'pass', 'title' => ''],
'Label' => ['description' => 'The categories of the image review results. Multiple values are separated by commas (,). Valid values:'."\n"
."\n"
.'* **porn**: pornographic content'."\n"
.'* **terrorism**: terrorist or politically sensitive content'."\n"
.'* **ad**: ad violation'."\n"
.'* **live**: undesirable scene'."\n"
.'* **logo**: logo'."\n"
.'* **normal**: normal content'."\n", 'type' => 'string', 'example' => 'normal', 'title' => ''],
'Result' => [
'description' => 'Details of image review results.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Score' => ['description' => 'The score of the image of the category that is indicated by Label. Valid values: `[0, 100]`. The score is representative of the confidence.'."\n", 'type' => 'string', 'example' => '0', 'title' => ''],
'Suggestion' => ['description' => 'The recommendation for review results. Valid values:'."\n"
."\n"
.'* **block**'."\n"
.'* **review**'."\n"
.'* **pass**'."\n", 'type' => 'string', 'example' => 'pass', 'title' => ''],
'Label' => ['description' => 'The category of the review result.'."\n"
."\n"
.'Valid values if scene is **porn**:'."\n"
."\n"
.'* **porn**'."\n"
.'* **sexy**'."\n"
.'* **normal**'."\n"
."\n"
.'Valid values if scene is **terrorism**:'."\n"
."\n"
.'* **normal**'."\n"
.'* **bloody**'."\n"
.'* **explosion**'."\n"
.'* **outfit**'."\n"
.'* **logo**'."\n"
.'* **weapon**'."\n"
.'* **politics**'."\n"
.'* **violence**'."\n"
.'* **crowd**'."\n"
.'* **parade**'."\n"
.'* **carcrash**'."\n"
.'* **flag**'."\n"
.'* **location**'."\n"
.'* **others**'."\n"
."\n"
.'Valid values if scene is **ad**:'."\n"
."\n"
.'* **normal**: normal content'."\n"
.'* **ad**: ads'."\n"
.'* **politics**: political content'."\n"
.'* **porn**: pornographic content'."\n"
.'* **abuse**: verbal abuse'."\n"
.'* **terrorism**: terrorist content'."\n"
.'* **contraband**: prohibited content'."\n"
.'* **spam**: spam content'."\n"
.'* **npx**: illegal ad'."\n"
.'* **qrcode**: QR code'."\n"
.'* **programCode**: mini program code'."\n"
."\n"
.'Valid values if scene is **live**:'."\n"
."\n"
.'* **normal**: normal content'."\n"
.'* **meaningless**: meaningless content, such as a black or white screen.'."\n"
.'* **PIP**: picture-in-picture'."\n"
.'* **smoking**: smoking'."\n"
.'* **drivelive**: live broadcasting in a running vehicle'."\n"
."\n"
.'Valid values if scene is **logo**:'."\n"
."\n"
.'* **normal**: normal content'."\n"
.'* **TV**: controlled TV station logo'."\n"
.'* **trademark**: trademark'."\n", 'type' => 'string', 'example' => 'porn', 'title' => ''],
'Scene' => ['description' => 'The review scenario. Valid values:'."\n"
."\n"
.'* **porn**: pornographic content'."\n"
.'* **terrorism**: terrorist or politically sensitive content'."\n"
.'* **ad**: ad violation'."\n"
.'* **live**: undesirable scene'."\n"
.'* **logo**: logo'."\n", 'type' => 'string', 'example' => 'porn', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'TextResult' => [
'description' => 'The text moderation results.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Type' => ['description' => 'The type of the text. The value is **title**.'."\n", 'type' => 'string', 'example' => 'title', 'title' => ''],
'Suggestion' => ['description' => 'The recommendation for review results. Valid values:'."\n"
."\n"
.'* **block**'."\n"
.'* **review**'."\n"
.'* **pass**'."\n", 'type' => 'string', 'example' => 'pass', 'title' => ''],
'Score' => ['description' => 'The score of the image of the category that is indicated by Label. Valid values: `[0, 100]`. The score is representative of the confidence.'."\n", 'type' => 'string', 'example' => '100', 'title' => ''],
'Label' => ['description' => 'The category of the review result. Valid values:'."\n"
."\n"
.'* **spam**: spam content'."\n"
.'* **ad**: ads'."\n"
.'* **abuse**: abuse'."\n"
.'* **flood**: excessive junk content'."\n"
.'* **contraband**: prohibited content'."\n"
.'* **meaningless**: meaningless content'."\n"
.'* **normal**: normal content'."\n", 'type' => 'string', 'example' => 'ad', 'title' => ''],
'Content' => ['description' => 'The text content.'."\n", 'type' => 'string', 'example' => 'Test', 'title' => ''],
'Scene' => ['description' => 'The review scenario. The value is **antispam**.'."\n", 'type' => 'string', 'example' => 'antispam', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'AudioResult' => [
'description' => 'The results of audio review.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Score' => ['description' => 'The score.'."\n", 'type' => 'string', 'example' => '99.91', 'title' => ''],
'Suggestion' => ['description' => 'The recommendation for review results. Valid values:'."\n"
."\n"
.'* **block**'."\n"
.'* **review**'."\n"
.'* **pass**'."\n", 'type' => 'string', 'example' => 'pass', 'title' => ''],
'Label' => ['description' => 'The category of the review result.'."\n"
."\n"
.'* **normal**: normal content'."\n"
.'* **spam**: spam'."\n"
.'* **ad**: ads'."\n"
.'* **politics**: political content'."\n"
.'* **terrorism**: terrorist content'."\n"
.'* **abuse**: abuse'."\n"
.'* **porn**: pornographic content.'."\n"
.'* **flood**: excessive junk content'."\n"
.'* **contraband**: prohibited content'."\n"
.'* **meaningless**: meaningless content'."\n", 'type' => 'string', 'example' => 'normal', 'title' => ''],
'Scene' => ['description' => 'The review scenario. The value is **antispam**.'."\n", 'type' => 'string', 'example' => 'antispam', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'VideoResult' => [
'description' => 'The results of video review.'."\n",
'type' => 'object',
'properties' => [
'Label' => ['description' => 'The category of the review result. Valid values:'."\n"
."\n"
.'* **porn**: pornographic content'."\n"
.'* **terrorism**: terrorist or politically sensitive content'."\n"
.'* **ad**: ad violation'."\n"
.'* **live**: undesirable scene'."\n"
.'* **logo**: logo'."\n"
.'* **normal**'."\n", 'type' => 'string', 'example' => 'normal', 'title' => ''],
'Suggestion' => ['description' => 'The recommendation for video review results. Valid values:'."\n"
."\n"
.'* **block**'."\n"
.'* **review**'."\n"
.'* **pass**'."\n", 'type' => 'string', 'example' => 'pass', 'title' => ''],
'TerrorismResult' => [
'description' => 'The results of terrorist content review.'."\n",
'type' => 'object',
'properties' => [
'Suggestion' => ['description' => 'The recommendation for terrorist content review results. Valid values:'."\n"
."\n"
.'* **block**'."\n"
.'* **review**'."\n"
.'* **pass**'."\n", 'type' => 'string', 'example' => 'pass', 'title' => ''],
'AverageScore' => ['description' => 'The average score of the snapshots of the category that is indicated by Label. Valid values: `[0, 100]`. The value is accurate to 10 decimal places. The score is representative of the confidence.'."\n", 'type' => 'string', 'example' => '100', 'title' => ''],
'Label' => ['description' => 'The category of the review result. Valid values:'."\n"
."\n"
.'* **normal**'."\n"
.'* **bloody**'."\n"
.'* **explosion**'."\n"
.'* **outfit**'."\n"
.'* **logo**'."\n"
.'* **weapon**'."\n"
.'* **politics**'."\n"
.'* **violence**'."\n"
.'* **crowd**'."\n"
.'* **parade**'."\n"
.'* **carcrash**'."\n"
.'* **flag**'."\n"
.'* **location**'."\n"
.'* **others**'."\n", 'type' => 'string', 'example' => 'normal', 'title' => ''],
'MaxScore' => ['description' => 'The highest score of the snapshot of the category that is indicated by Label. Valid values: `[0, 100]`. The value is accurate to 10 decimal places. The score is representative of the confidence.'."\n", 'type' => 'string', 'example' => '100', 'title' => ''],
'CounterList' => [
'description' => 'The categories of terrorist content review results and the number of video snapshots in each category.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Label' => ['description' => 'The results of terrorist content review. Valid values:'."\n"
."\n"
.'* **normal**'."\n"
.'* **bloody**'."\n"
.'* **explosion**'."\n"
.'* **outfit**'."\n"
.'* **logo**'."\n"
.'* **weapon**'."\n"
.'* **politics**'."\n"
.'* **violence**'."\n"
.'* **crowd**'."\n"
.'* **parade**'."\n"
.'* **carcrash**'."\n"
.'* **flag**'."\n"
.'* **location**'."\n"
.'* **others**'."\n", 'type' => 'string', 'example' => 'terrorism', 'title' => ''],
'Count' => ['description' => 'The number of video snapshots.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'TopList' => [
'description' => 'The information about the snapshot that has the highest score in the category.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Url' => ['description' => 'The URL of the video snapshot.'."\n", 'type' => 'string', 'example' => 'http://ali*****.com/aivideocensor/yytysursrutyrxuq/****.jpg', 'title' => ''],
'Score' => ['description' => 'The score of the snapshot in the category that is indicated by Label. Valid values: `[0, 100]`. The value is accurate to 10 decimal places. The score is representative of the confidence.'."\n", 'type' => 'string', 'example' => '100', 'title' => ''],
'Timestamp' => ['description' => 'The timestamp of the snapshot in the video. Unit: milliseconds.'."\n", 'type' => 'string', 'example' => '5', 'title' => ''],
'Label' => ['description' => 'The results of terrorist content review. Valid values:'."\n"
."\n"
.'* **normal**'."\n"
.'* **bloody**'."\n"
.'* **explosion**'."\n"
.'* **outfit**'."\n"
.'* **logo**'."\n"
.'* **weapon**'."\n"
.'* **politics**'."\n"
.'* **violence**'."\n"
.'* **crowd**'."\n"
.'* **parade**'."\n"
.'* **carcrash**'."\n"
.'* **flag**'."\n"
.'* **location**'."\n"
.'* **others**'."\n", 'type' => 'string', 'example' => 'normal', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'PornResult' => [
'description' => 'The results of pornographic content review.'."\n",
'type' => 'object',
'properties' => [
'Suggestion' => ['description' => 'The recommendation for review results. Valid values:'."\n"
."\n"
.'* **block**: The content violates the regulations.'."\n"
.'* **review**: The content may violate the regulations.'."\n"
.'* **pass**: The content passes the review.'."\n", 'type' => 'string', 'example' => 'pass', 'title' => ''],
'AverageScore' => ['description' => 'The average score of the snapshots of the category that is indicated by Label. Valid values: `[0, 100]`. The value is accurate to 10 decimal places. The score is representative of the confidence.'."\n", 'type' => 'string', 'example' => '100', 'title' => ''],
'Label' => ['description' => 'The category of the review result. Valid values:'."\n"
."\n"
.'* **porn**'."\n"
.'* **sexy**'."\n"
.'* **normal**'."\n", 'type' => 'string', 'example' => 'porn', 'title' => ''],
'MaxScore' => ['description' => 'The highest score of the snapshot of the category that is indicated by Label. Valid values: `[0, 100]`. The value is accurate to 10 decimal places. The score is representative of the confidence.'."\n", 'type' => 'string', 'example' => '100', 'title' => ''],
'CounterList' => [
'description' => 'The number of snapshots of each category in the review result.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Label' => ['description' => 'The results of pornographic content review. Valid values:'."\n"
."\n"
.'* **porn**'."\n"
.'* **sexy**'."\n"
.'* **normal**'."\n", 'type' => 'string', 'example' => 'porn', 'title' => ''],
'Count' => ['description' => 'The number of video snapshots.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'TopList' => [
'description' => 'The information about the snapshot that has the highest score in the category.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Url' => ['description' => 'The URL of the video snapshot.'."\n", 'type' => 'string', 'example' => 'http://temp-testbucket.oss-cn-shanghai.aliyuncs.com/aivideocensor/****.jpg', 'title' => ''],
'Score' => ['description' => 'The score of the snapshot in the category that is indicated by Label. Valid values: `[0, 100]`. The value is accurate to 10 decimal places. The score is representative of the confidence.'."\n", 'type' => 'string', 'example' => '100', 'title' => ''],
'Timestamp' => ['description' => 'The timestamp of the snapshot in the video. Unit: milliseconds.'."\n", 'type' => 'string', 'example' => '3005', 'title' => ''],
'Label' => ['description' => 'The results of pornographic content review. Valid values:'."\n"
."\n"
.'* **porn**'."\n"
.'* **sexy**'."\n"
.'* **normal**'."\n", 'type' => 'string', 'example' => 'porn', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'AdResult' => [
'description' => 'The results of ad review.'."\n",
'type' => 'object',
'properties' => [
'Suggestion' => ['description' => 'The recommendation for review results. Valid values:'."\n"
."\n"
.'* **block**: The content violates the regulations.'."\n"
.'* **review**: The content may violate the regulations.'."\n"
.'* **pass**: The content passes the review.'."\n", 'type' => 'string', 'example' => 'block', 'title' => ''],
'AverageScore' => ['description' => 'The average score of the review results.'."\n", 'type' => 'string', 'example' => '100', 'title' => ''],
'Label' => ['description' => 'The categories of the ad review results. Valid values:'."\n"
."\n"
.'* **normal**: normal content'."\n"
.'* **ad**: other ads'."\n"
.'* **politics**: political content'."\n"
.'* **porn**: pornographic content'."\n"
.'* **abuse**: abuse'."\n"
.'* **terrorism**: terrorist content'."\n"
.'* **contraband**: prohibited content'."\n"
.'* **spam**: spam content'."\n"
.'* **npx**: illegal ad'."\n"
.'* **qrcode**: QR code'."\n"
.'* **programCode**: mini program code'."\n", 'type' => 'string', 'example' => 'ad', 'title' => ''],
'MaxScore' => ['description' => 'The highest review score.'."\n", 'type' => 'string', 'example' => '100', 'title' => ''],
'CounterList' => [
'description' => 'The number of snapshots of each category in the review result.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Label' => ['description' => 'The categories of the ad review results. Valid values:'."\n"
."\n"
.'* **normal**: normal content'."\n"
.'* **ad**: other ads'."\n"
.'* **politics**: political content'."\n"
.'* **porn**: pornographic content'."\n"
.'* **abuse**: abuse'."\n"
.'* **terrorism**: terrorist content'."\n"
.'* **contraband**: prohibited content'."\n"
.'* **spam**: spam content'."\n"
.'* **npx**: illegal ad'."\n"
.'* **qrcode**: QR code'."\n"
.'* **programCode**: mini program code'."\n", 'type' => 'string', 'example' => 'ad', 'title' => ''],
'Count' => ['description' => 'The number of video snapshots.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'TopList' => [
'description' => 'The information about the snapshot that has the highest score in the category.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Url' => ['description' => 'The URL of the video snapshot.'."\n", 'type' => 'string', 'example' => 'http://temp-testbucket.oss-cn-shanghai.aliyuncs.com/aivideocensor/****.jpg', 'title' => ''],
'Score' => ['description' => 'The score of the snapshot in the category that is indicated by Label.'."\n", 'type' => 'string', 'example' => '100', 'title' => ''],
'Timestamp' => ['description' => 'The timestamp of the snapshot in the video. Unit: milliseconds.'."\n", 'type' => 'string', 'example' => '500', 'title' => ''],
'Label' => ['description' => 'The categories of the ad review results. Valid values:'."\n"
."\n"
.'* **normal**: normal content'."\n"
.'* **ad**: other ads'."\n"
.'* **politics**: political content'."\n"
.'* **porn**: pornographic content'."\n"
.'* **abuse**: abuse'."\n"
.'* **terrorism**: terrorist content'."\n"
.'* **contraband**: prohibited content'."\n"
.'* **spam**: spam content'."\n"
.'* **npx**: illegal ad'."\n"
.'* **qrcode**: QR code'."\n"
.'* **programCode**: mini program code'."\n", 'type' => 'string', 'example' => 'ad', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'LiveResult' => [
'description' => 'The results of undesired content review.'."\n",
'type' => 'object',
'properties' => [
'Suggestion' => ['description' => 'The recommendation for review results. Valid values:'."\n"
."\n"
.'* **block**: The content violates the regulations.'."\n"
.'* **review**: The content may violate the regulations.'."\n"
.'* **pass**: The content passes the review.'."\n", 'type' => 'string', 'example' => 'block', 'title' => ''],
'AverageScore' => ['description' => 'The average score of the review results.'."\n", 'type' => 'string', 'example' => '100', 'title' => ''],
'Label' => ['description' => 'The category of the review result. Valid values:'."\n"
."\n"
.'* **normal**: normal content'."\n"
.'* **meaningless**: meaningless content, such as a black or white screen.'."\n"
.'* **PIP**: picture-in-picture'."\n"
.'* **smoking**: smoking'."\n"
.'* **drivelive**: live broadcasting in a running vehicle'."\n", 'type' => 'string', 'example' => 'smoking', 'title' => ''],
'MaxScore' => ['description' => 'The highest review score.'."\n", 'type' => 'string', 'example' => '100', 'title' => ''],
'CounterList' => [
'description' => 'The categories of the review results and the number of video snapshots in each category.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Label' => ['description' => 'The category of the review result. Valid values:'."\n"
."\n"
.'* **normal**: normal content'."\n"
.'* **meaningless**: meaningless content, such as a black or white screen.'."\n"
.'* **PIP**: picture-in-picture'."\n"
.'* **smoking**: smoking'."\n"
.'* **drivelive**: live broadcasting in a running vehicle'."\n", 'type' => 'string', 'example' => 'smoking', 'title' => ''],
'Count' => ['description' => 'The number of video snapshots.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '4', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'TopList' => [
'description' => 'The information about the snapshot that has the highest score in the category.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Url' => ['description' => 'The URL of the video snapshot.'."\n", 'type' => 'string', 'example' => 'http://temp-testbucket.oss-cn-shanghai.aliyuncs.com/aivideocensor/****.jpg', 'title' => ''],
'Score' => ['description' => 'The score of the snapshot in the category that is indicated by Label.'."\n", 'type' => 'string', 'example' => '100', 'title' => ''],
'Timestamp' => ['description' => 'The timestamp of the snapshot in the video. Unit: milliseconds.'."\n", 'type' => 'string', 'example' => '500', 'title' => ''],
'Label' => ['description' => 'The category of the review result. Valid values:'."\n"
."\n"
.'* **normal**: normal content'."\n"
.'* **meaningless**: meaningless content, such as a black or white screen.'."\n"
.'* **PIP**: picture-in-picture'."\n"
.'* **smoking**: smoking'."\n"
.'* **drivelive**: live broadcasting in a running vehicle'."\n", 'type' => 'string', 'example' => 'smoking', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'LogoResult' => [
'description' => 'The results of logo review.'."\n",
'type' => 'object',
'properties' => [
'Suggestion' => ['description' => 'The recommendation for review results. Valid values:'."\n"
."\n"
.'* **block**: The content violates the regulations.'."\n"
.'* **review**: The content may violate the regulations.'."\n"
.'* **pass**: The content passes the review.'."\n", 'type' => 'string', 'example' => 'block', 'title' => ''],
'AverageScore' => ['description' => 'The average score of the snapshots in the category indicated by Label.'."\n", 'type' => 'string', 'example' => '100', 'title' => ''],
'Label' => ['description' => 'The category of the review result. Valid values:'."\n"
."\n"
.'* **normal**: normal content'."\n"
.'* **TV**: controlled TV station logo'."\n"
.'* **trademark**: trademark'."\n", 'type' => 'string', 'example' => 'TV', 'title' => ''],
'MaxScore' => ['description' => 'The highest score of the snapshot of the category that is indicated by Label.'."\n", 'type' => 'string', 'example' => '100', 'title' => ''],
'CounterList' => [
'description' => 'The categories of the review results and the number of video snapshots in each category.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Label' => ['description' => 'The category of the review result. Valid values:'."\n"
."\n"
.'* **normal**: normal content'."\n"
.'* **TV**: controlled TV station logo'."\n"
.'* **trademark**: trademark'."\n", 'type' => 'string', 'example' => 'TV', 'title' => ''],
'Count' => ['description' => 'The number of video snapshots.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'TopList' => [
'description' => 'The information about the snapshot that has the highest score in the category.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Url' => ['description' => 'The URL of the video snapshot.'."\n", 'type' => 'string', 'example' => 'http://temp-testbucket.oss-cn-shanghai.aliyuncs.com/aivideocensor/****.jpg', 'title' => ''],
'Score' => ['description' => 'The score of the snapshot in the category that is indicated by Label.'."\n", 'type' => 'string', 'example' => '100', 'title' => ''],
'Timestamp' => ['description' => 'The timestamp of the snapshot in the video. Unit: milliseconds.'."\n", 'type' => 'string', 'example' => '5000', 'title' => ''],
'Label' => ['description' => 'The category of the review result. Valid values:'."\n"
."\n"
.'* **normal**: normal content'."\n"
.'* **TV**: controlled TV station logo'."\n"
.'* **trademark**: trademark'."\n", 'type' => 'string', 'example' => 'TV', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EAA3E96A-02E2-41*****85-08E1D568ED3A\\",\\n \\"MediaAuditJob\\": {\\n \\"CreationTime\\": \\"2017-01-11T12:00:00Z\\",\\n \\"Type\\": \\"AIMediaAudit\\",\\n \\"Status\\": \\"success\\",\\n \\"CompleteTime\\": \\"2017-01-11T13:00:00Z\\",\\n \\"JobId\\": \\"bdbc266af6894*****943a70176d92e9\\",\\n \\"Code\\": \\"0\\",\\n \\"Message\\": \\"OK\\",\\n \\"MediaId\\": \\"fe028d09441d*****d1afffb138cd7e\\",\\n \\"Data\\": {\\n \\"Suggestion\\": \\"pass\\",\\n \\"AbnormalModules\\": \\"video\\",\\n \\"Label\\": \\"normal\\",\\n \\"ImageResult\\": [\\n {\\n \\"Type\\": \\"cover\\",\\n \\"Url\\": \\"http://www.test.com/****.jpg\\",\\n \\"Suggestion\\": \\"pass\\",\\n \\"Label\\": \\"normal\\",\\n \\"Result\\": [\\n {\\n \\"Score\\": \\"0\\",\\n \\"Suggestion\\": \\"pass\\",\\n \\"Label\\": \\"porn\\",\\n \\"Scene\\": \\"porn\\"\\n }\\n ]\\n }\\n ],\\n \\"TextResult\\": [\\n {\\n \\"Type\\": \\"title\\",\\n \\"Suggestion\\": \\"pass\\",\\n \\"Score\\": \\"100\\",\\n \\"Label\\": \\"ad\\",\\n \\"Content\\": \\"Test\\",\\n \\"Scene\\": \\"antispam\\"\\n }\\n ],\\n \\"AudioResult\\": [\\n {\\n \\"Score\\": \\"99.91\\",\\n \\"Suggestion\\": \\"pass\\",\\n \\"Label\\": \\"normal\\",\\n \\"Scene\\": \\"antispam\\"\\n }\\n ],\\n \\"VideoResult\\": {\\n \\"Label\\": \\"normal\\",\\n \\"Suggestion\\": \\"pass\\",\\n \\"TerrorismResult\\": {\\n \\"Suggestion\\": \\"pass\\",\\n \\"AverageScore\\": \\"100\\",\\n \\"Label\\": \\"normal\\",\\n \\"MaxScore\\": \\"100\\",\\n \\"CounterList\\": [\\n {\\n \\"Label\\": \\"terrorism\\",\\n \\"Count\\": 0\\n }\\n ],\\n \\"TopList\\": [\\n {\\n \\"Url\\": \\"http://ali*****.com/aivideocensor/yytysursrutyrxuq/****.jpg\\",\\n \\"Score\\": \\"100\\",\\n \\"Timestamp\\": \\"5\\",\\n \\"Label\\": \\"normal\\"\\n }\\n ]\\n },\\n \\"PornResult\\": {\\n \\"Suggestion\\": \\"pass\\",\\n \\"AverageScore\\": \\"100\\",\\n \\"Label\\": \\"porn\\",\\n \\"MaxScore\\": \\"100\\",\\n \\"CounterList\\": [\\n {\\n \\"Label\\": \\"porn\\",\\n \\"Count\\": 0\\n }\\n ],\\n \\"TopList\\": [\\n {\\n \\"Url\\": \\"http://temp-testbucket.oss-cn-shanghai.aliyuncs.com/aivideocensor/****.jpg\\",\\n \\"Score\\": \\"100\\",\\n \\"Timestamp\\": \\"3005\\",\\n \\"Label\\": \\"porn\\"\\n }\\n ]\\n },\\n \\"AdResult\\": {\\n \\"Suggestion\\": \\"block\\",\\n \\"AverageScore\\": \\"100\\",\\n \\"Label\\": \\"ad\\",\\n \\"MaxScore\\": \\"100\\",\\n \\"CounterList\\": [\\n {\\n \\"Label\\": \\"ad\\",\\n \\"Count\\": 10\\n }\\n ],\\n \\"TopList\\": [\\n {\\n \\"Url\\": \\"http://temp-testbucket.oss-cn-shanghai.aliyuncs.com/aivideocensor/****.jpg\\",\\n \\"Score\\": \\"100\\",\\n \\"Timestamp\\": \\"500\\",\\n \\"Label\\": \\"ad\\"\\n }\\n ]\\n },\\n \\"LiveResult\\": {\\n \\"Suggestion\\": \\"block\\",\\n \\"AverageScore\\": \\"100\\",\\n \\"Label\\": \\"smoking\\",\\n \\"MaxScore\\": \\"100\\",\\n \\"CounterList\\": [\\n {\\n \\"Label\\": \\"smoking\\",\\n \\"Count\\": 4\\n }\\n ],\\n \\"TopList\\": [\\n {\\n \\"Url\\": \\"http://temp-testbucket.oss-cn-shanghai.aliyuncs.com/aivideocensor/****.jpg\\",\\n \\"Score\\": \\"100\\",\\n \\"Timestamp\\": \\"500\\",\\n \\"Label\\": \\"smoking\\"\\n }\\n ]\\n },\\n \\"LogoResult\\": {\\n \\"Suggestion\\": \\"block\\",\\n \\"AverageScore\\": \\"100\\",\\n \\"Label\\": \\"TV\\",\\n \\"MaxScore\\": \\"100\\",\\n \\"CounterList\\": [\\n {\\n \\"Label\\": \\"TV\\",\\n \\"Count\\": 2\\n }\\n ],\\n \\"TopList\\": [\\n {\\n \\"Url\\": \\"http://temp-testbucket.oss-cn-shanghai.aliyuncs.com/aivideocensor/****.jpg\\",\\n \\"Score\\": \\"100\\",\\n \\"Timestamp\\": \\"5000\\",\\n \\"Label\\": \\"TV\\"\\n }\\n ]\\n }\\n }\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]',
'title' => 'GetAIMediaAuditJob',
'description' => 'ApsaraVideo VOD stores the snapshots of the intelligent review results free of charge for two weeks. After this period, the snapshots are automatically deleted.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-10T08:31:15.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAIMediaAuditJob'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetAIMediaAuditJob',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'GetAITemplate' => [
'summary' => 'Queries AI templates.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39935',
'abilityTreeNodes' => ['FEATUREvodW76Z9M'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'TemplateId',
'in' => 'query',
'schema' => ['description' => 'The ID of the AI template. You can use one of the following methods to obtain the ID:'."\n"
."\n"
.'* Call the [AddAITemplate](~~102930~~) operation to add an AI template if no AI template exists. The value of TemplateId in the response is the ID of the AI template.'."\n"
.'* Call the [ListAITemplate](~~102936~~) operation if the template already exists. The value of TemplateId in the response is the ID of the AI template.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '1706a0063dd733f6a823ef32e0a5****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '080DA371-8AC0-4CD4-4476-33E64282****', 'title' => ''],
'TemplateInfo' => [
'description' => 'The information about the AI template.'."\n",
'type' => 'object',
'properties' => [
'CreationTime' => ['description' => 'The time when the AI template was created. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2020-07-08T06:50:45Z', 'title' => ''],
'IsDefault' => ['description' => 'Indicates whether the template is the default AI template. Valid values:'."\n"
."\n"
.'* **Default**'."\n"
.'* **NotDefault**'."\n", 'type' => 'string', 'example' => 'NotDefault', 'title' => ''],
'TemplateType' => ['description' => 'The type of the AI template. Valid values:'."\n"
."\n"
.'* **AIMediaAudit**: automated review'."\n"
.'* **AIImage**: smart thumbnail'."\n", 'type' => 'string', 'example' => 'AIMediaAudit', 'title' => ''],
'TemplateConfig' => ['description' => 'The detailed configurations of the AI template. The value is a JSON string. For more information, see [AITemplateConfig](~~89863#title-vd3-499-o36~~).'."\n", 'type' => 'string', 'example' => '{"AuditRange":["text-title","video"],"AuditContent":["screen"],"AuditItem":["terrorism","porn"],"AuditAutoBlock":"yes"}', 'title' => ''],
'TemplateName' => ['description' => 'The name of the AI template.'."\n", 'type' => 'string', 'example' => 'DemoAITemplate', 'title' => ''],
'Source' => ['description' => 'The source of the AI template. Valid values:'."\n"
."\n"
.'* **System**'."\n"
.'* **Custom**'."\n", 'type' => 'string', 'example' => 'Custom', 'title' => ''],
'TemplateId' => ['description' => 'The ID of the AI template.'."\n", 'type' => 'string', 'example' => '1706a0063dd733f6a823ef32e0a5****', 'title' => ''],
'ModifyTime' => ['description' => 'The time when the AI template was modified. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2020-07-08T06:58:45Z', 'title' => ''],
],
'title' => '',
],
],
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'GetAITemplate',
'description' => '* Regions that support this operation: **China (Beijing)**, **China (Shanghai)**, and **Singapore**.'."\n"
.'* Before you call this operation to query details of an AI template, you must obtain the ID of the AI template.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-10T08:31:44.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAITemplate'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetAITemplate',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"080DA371-8AC0-4CD4-4476-33E64282****\\",\\n \\"TemplateInfo\\": {\\n \\"CreationTime\\": \\"2020-07-08T06:50:45Z\\",\\n \\"IsDefault\\": \\"NotDefault\\",\\n \\"TemplateType\\": \\"AIMediaAudit\\",\\n \\"TemplateConfig\\": \\"{\\\\\\"AuditRange\\\\\\":[\\\\\\"text-title\\\\\\",\\\\\\"video\\\\\\"],\\\\\\"AuditContent\\\\\\":[\\\\\\"screen\\\\\\"],\\\\\\"AuditItem\\\\\\":[\\\\\\"terrorism\\\\\\",\\\\\\"porn\\\\\\"],\\\\\\"AuditAutoBlock\\\\\\":\\\\\\"yes\\\\\\"}\\",\\n \\"TemplateName\\": \\"DemoAITemplate\\",\\n \\"Source\\": \\"Custom\\",\\n \\"TemplateId\\": \\"1706a0063dd733f6a823ef32e0a5****\\",\\n \\"ModifyTime\\": \\"2020-07-08T06:58:45Z\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 080DA371-8AC0-4CD4-4476-33E64282****\\n \\n 2020-07-08T06:50:45Z\\n NotDefault\\n AIMediaAudit\\n {\\"AuditRange\\":[\\"text-title\\",\\"video\\"],\\"AuditContent\\":[\\"screen\\"],\\"AuditItem\\":[\\"terrorism\\",\\"porn\\"],\\"AuditAutoBlock\\":\\"yes\\"}\\n DemoAITemplate\\n Custom\\n 1706a0063dd733f6a823ef32e0a5****\\n 2020-07-08T06:58:45Z\\n \\n","errorExample":""}]',
],
'GetAIVideoTagResult' => [
'summary' => 'Queries the results of smart tagging jobs.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39936',
'abilityTreeNodes' => ['FEATUREvod7BX3NA'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'MediaId',
'in' => 'query',
'schema' => ['description' => 'The ID of the media file. You can use one of the following methods to obtain the ID:'."\n"
."\n"
.'* Log on to the [ApsaraVideo VOD](https://vod.console.aliyun.com) console. In the left-side navigation pane, choose **Media Files** > **Audio/Video**. On the Video and Audio page, view the ID of the audio or video file. This method is applicable to files that are uploaded by using the ApsaraVideo VOD console.'."\n"
.'* Obtain the value of VideoId from the response to the [CreateUploadVideo](~~55407~~) operation that you call to upload media files.'."\n"
.'* Obtain the value of VideoId from the response to the [SearchMedia](~~86044~~) operation after you upload media files.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '595d020bad37421f37433451720****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned data.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '8829B4DB-AFD9-4FF6-12965DBFFA14****', 'title' => ''],
'VideoTagResult' => [
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
'Category' => [
'description' => 'The video categories.'."\n",
'type' => 'array',
'items' => [
'description' => 'The category of the video.'."\n",
'type' => 'object',
'properties' => [
'Tag' => ['description' => 'The tag string.'."\n", 'type' => 'string', 'example' => 'Beauty', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'Person' => [
'description' => 'The figure tags.'."\n",
'type' => 'array',
'items' => [
'description' => 'The figure tag of the video.'."\n",
'type' => 'object',
'properties' => [
'FaceUrl' => ['description' => 'The URL of the profile photo.'."\n"
."\n"
.'> This parameter is returned only when a figure tag was used.', 'type' => 'string', 'example' => 'http://example.com/aivideotag/8829B4DB-AFD9-4F*****F6-12965DBFFA14/Index_****.jpg', 'title' => ''],
'Tag' => ['description' => 'The tag string.'."\n", 'type' => 'string', 'example' => 'Xiao Wang', 'title' => ''],
'Times' => [
'description' => 'The points in time when the tags are displayed. Unit: milliseconds.'."\n",
'type' => 'array',
'items' => ['description' => 'The point in time when the figure tag is displayed. Unit: milliseconds.'."\n", 'type' => 'string', 'example' => '["10760"]', 'title' => ''],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'Time' => [
'description' => 'The time tags.'."\n",
'type' => 'array',
'items' => [
'description' => 'The time tag of the video.'."\n",
'type' => 'object',
'properties' => [
'Tag' => ['description' => 'The tag string.'."\n", 'type' => 'string', 'example' => 'Millisecond', 'title' => ''],
'Times' => [
'description' => 'The points in time when the tags are displayed. Unit: milliseconds.'."\n",
'type' => 'array',
'items' => ['description' => 'The point in time when the time tag is displayed. Unit: milliseconds.'."\n", 'type' => 'string', 'example' => '["3260","4000","5000","8410","12000","13000","14000"]', 'title' => ''],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'Location' => [
'description' => 'The location tags.'."\n",
'type' => 'array',
'items' => [
'description' => 'The location tag of the video.'."\n",
'type' => 'object',
'properties' => [
'Tag' => ['description' => 'The tag string.'."\n", 'type' => 'string', 'example' => 'Asia', 'title' => ''],
'Times' => [
'description' => 'The points in time when the tags are displayed. Unit: milliseconds.'."\n",
'type' => 'array',
'items' => ['description' => 'The point in time when the location tag is displayed. Unit: milliseconds.'."\n", 'type' => 'string', 'example' => '["8410"]', 'title' => ''],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'Keyword' => [
'description' => 'The keyword tags.'."\n",
'type' => 'array',
'items' => [
'description' => 'The keyword tag of the video.'."\n",
'type' => 'object',
'properties' => [
'Tag' => ['description' => 'The tag string.'."\n", 'type' => 'string', 'example' => 'Cushion', 'title' => ''],
'Times' => [
'description' => 'The points in time when the tags are displayed. Unit: milliseconds.'."\n",
'type' => 'array',
'items' => ['description' => 'The point in time when the keyword tag is displayed. Unit: milliseconds.'."\n", 'type' => 'string', 'example' => '["3260","4000","5000","8410","12000","13000","14000"]', 'title' => ''],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"8829B4DB-AFD9-4FF6-12965DBFFA14****\\",\\n \\"VideoTagResult\\": {\\n \\"Category\\": [\\n {\\n \\"Tag\\": \\"Beauty\\"\\n }\\n ],\\n \\"Person\\": [\\n {\\n \\"FaceUrl\\": \\"http://example.com/aivideotag/8829B4DB-AFD9-4F*****F6-12965DBFFA14/Index_****.jpg\\",\\n \\"Tag\\": \\"Xiao Wang\\",\\n \\"Times\\": [\\n \\"[\\\\\\"10760\\\\\\"]\\"\\n ]\\n }\\n ],\\n \\"Time\\": [\\n {\\n \\"Tag\\": \\"Millisecond\\",\\n \\"Times\\": [\\n \\"[\\\\\\"3260\\\\\\",\\\\\\"4000\\\\\\",\\\\\\"5000\\\\\\",\\\\\\"8410\\\\\\",\\\\\\"12000\\\\\\",\\\\\\"13000\\\\\\",\\\\\\"14000\\\\\\"]\\"\\n ]\\n }\\n ],\\n \\"Location\\": [\\n {\\n \\"Tag\\": \\"Asia\\",\\n \\"Times\\": [\\n \\"[\\\\\\"8410\\\\\\"]\\"\\n ]\\n }\\n ],\\n \\"Keyword\\": [\\n {\\n \\"Tag\\": \\"Cushion\\",\\n \\"Times\\": [\\n \\"[\\\\\\"3260\\\\\\",\\\\\\"4000\\\\\\",\\\\\\"5000\\\\\\",\\\\\\"8410\\\\\\",\\\\\\"12000\\\\\\",\\\\\\"13000\\\\\\",\\\\\\"14000\\\\\\"]\\"\\n ]\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]',
'title' => 'GetAIVideoTagResult',
'description' => '* Regions that support this operation: **China (Beijing)**, **China (Shanghai)**, and **Singapore**.'."\n"
.'* You can obtain the smart tagging results by using the video ID.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-10T08:30:42.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAIVideoTagResult'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetAIVideoTagResult',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'GetAppInfos' => [
'summary' => 'Queries the information about one or more applications based on application IDs.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'list',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39937',
'abilityTreeNodes' => ['FEATUREvodHJ3KAX'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'AppIds',
'in' => 'query',
'schema' => ['description' => 'The IDs of applications. You can obtain application IDs from the response to the [CreateAppInfo](~~113266~~) or [ListAppInfo](~~114000~~) operation.'."\n"
."\n"
.'* You can specify a maximum of 10 application IDs.'."\n"
.'* Separate application IDs with commas (,).'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'app-****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4A13-4DC4-D7393642****', 'title' => ''],
'NonExistAppIds' => [
'description' => 'The IDs of applications that do not exist.'."\n",
'type' => 'array',
'items' => ['description' => 'The ID of the application that does not exist.'."\n", 'type' => 'string', 'example' => 'app-12****', 'title' => ''],
'title' => '',
'example' => '',
],
'AppInfoList' => [
'description' => 'The details of applications.'."\n",
'type' => 'array',
'items' => [
'description' => 'The details of the application.'."\n",
'type' => 'object',
'properties' => [
'Type' => ['description' => 'The type of the application. Valid values:'."\n"
."\n"
.'* **System**'."\n"
.'* **Custom**'."\n", 'type' => 'string', 'example' => 'System', 'title' => ''],
'Status' => ['description' => 'The status of the application. Valid values:'."\n"
."\n"
.'* **Normal**'."\n"
.'* **Disable**'."\n", 'type' => 'string', 'example' => 'Normal', 'title' => ''],
'CreationTime' => ['description' => 'The time when the application was created. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2019-03-01T08:00:00Z', 'title' => ''],
'AppName' => ['description' => 'The name of the application.'."\n", 'type' => 'string', 'example' => 'test', 'title' => ''],
'Description' => ['description' => 'The description of the application.'."\n", 'type' => 'string', 'example' => 'my first app.', 'title' => ''],
'AppId' => ['description' => 'The ID of the application.'."\n", 'type' => 'string', 'example' => 'app-****', 'title' => ''],
'ModificationTime' => ['description' => 'The last time when the application was modified. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2019-03-01T09:00:00Z', 'title' => ''],
'ResourceGroupId' => ['type' => 'string', 'description' => 'The resource group ID.'."\n", 'example' => 'rg-aekzko7fsuj****', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'Code' => ['description' => 'The HTTP status code that is returned.'."\n", 'type' => 'string', 'example' => '200', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'GetAppInfos',
'description' => 'You can specify multiple accelerated domain names in a request.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return.'."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| OperationDenied.NotOpenAppService | The app service is not open. | 403 | The error message returned because the multi-application service has not been activated. |',
'changeSet' => [
['createdAt' => '2025-07-10T08:31:15.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-06-19T08:27:33.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-06-18T07:27:25.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-06-17T07:30:27.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAppInfos'],
],
],
'ramActions' => [
[
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:GetAppInfos',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4A13-4DC4-D7393642****\\",\\n \\"NonExistAppIds\\": [\\n \\"app-12****\\"\\n ],\\n \\"AppInfoList\\": [\\n {\\n \\"Type\\": \\"System\\",\\n \\"Status\\": \\"Normal\\",\\n \\"CreationTime\\": \\"2019-03-01T08:00:00Z\\",\\n \\"AppName\\": \\"test\\",\\n \\"Description\\": \\"my first app.\\",\\n \\"AppId\\": \\"app-****\\",\\n \\"ModificationTime\\": \\"2019-03-01T09:00:00Z\\",\\n \\"ResourceGroupId\\": \\"rg-aekzko7fsuj****\\"\\n }\\n ],\\n \\"Code\\": \\"200\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 25818875-5F78-4A13-4DC4-D7393642****\\n 1\\n \\n System\\n Normal\\n 2019-03-01T08:00:00Z\\n test\\n my first app.\\n app-****\\n 2019-03-01T09:00:00Z\\n \\n","errorExample":""}]',
],
'GetAppPlayKey' => [
'summary' => 'Retrieves the playback key for an application.',
'methods' => ['get', 'post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39805',
'abilityTreeNodes' => ['FEATUREvodHJ3KAX'],
'autoTest' => true,
'tenantRelevance' => 'tenant',
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['type' => 'string', 'required' => false, 'description' => 'The application ID. The default value is **app-1000000**. For more information, see [Multi-application](~~113600~~).', 'title' => '', 'example' => 'app-1000000'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['type' => 'string', 'description' => 'The request ID.', 'title' => '', 'example' => '25818875-5F78-4A*****F6-D7393642CA58'],
'AppPlayKey' => [
'type' => 'object',
'properties' => [
'AppId' => ['type' => 'string', 'description' => 'The application ID.', 'title' => '', 'example' => 'app-1000000'],
'PlayKey' => ['type' => 'string', 'description' => 'The playback key.'."\n"
."\n"
.'- The key can contain only uppercase letters, lowercase letters, and digits. It must be 8 to 20 characters in length.'."\n"
."\n"
.'- The key is encoded in UTF-8.', 'title' => '', 'example' => 'yzNgTUtAl6HAuosIA'],
'CreationTime' => ['type' => 'string', 'description' => 'The time when the key was created. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.', 'title' => '', 'example' => '2025-03-18T03:59:01Z'],
'ModificationTime' => ['type' => 'string', 'description' => 'The time when the key was last updated. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.', 'title' => '', 'example' => '2025-03-18T03:59:01Z'],
],
'description' => 'The information about the application playback key.',
'title' => '',
'example' => '',
],
],
'description' => 'The returned data.',
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'GetAppPlayKey',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetAppPlayKey',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4A*****F6-D7393642CA58\\",\\n \\"AppPlayKey\\": {\\n \\"AppId\\": \\"app-1000000\\",\\n \\"PlayKey\\": \\"yzNgTUtAl6HAuosIA\\",\\n \\"CreationTime\\": \\"2025-03-18T03:59:01Z\\",\\n \\"ModificationTime\\": \\"2025-03-18T03:59:01Z\\"\\n }\\n}","type":"json"}]',
],
'GetAttachedMediaInfo' => [
'summary' => 'Queries the URL and basic information about one or more auxiliary media assets such as watermark images, subtitle files, and materials based on IDs.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39939',
'abilityTreeNodes' => ['FEATUREvodYRQNEN'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'MediaIds',
'in' => 'query',
'schema' => ['description' => 'The ID of the auxiliary media asset.'."\n"
."\n"
.'* Separate multiple IDs with commas (,). You can specify up to 20 IDs.'."\n"
.'* You can obtain the ID from the response to the [CreateUploadAttachedMedia](~~CreateUploadAttachedMedia~~) operation that you call to obtain the upload URL and credential.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'eb1861d2c9a842340e989dd56****,0222e203cf80f9c22870a4d2c****', 'title' => ''],
],
[
'name' => 'AuthTimeout',
'in' => 'query',
'schema' => ['description' => 'The validity period of the URL. Unit: seconds.'."\n"
."\n"
.'* If you set the OutputType parameter to **cdn**:'."\n"
."\n"
.' * The URL of the auxiliary media asset has a validity period only if URL signing is enabled. Otherwise, the URL of the auxiliary media asset is permanently valid.'."\n"
.' * Minimum value: **1**.'."\n"
.' * Maximum value: unlimited.'."\n"
.' * Default value: If you do not set this parameter, the default validity period that is specified in URL signing is used.'."\n"
."\n"
.'* If you set the OutputType parameter to **oss**:'."\n"
."\n"
.' * The URL of the auxiliary media asset has a validity period only if the permissions on the Object Storage Service (OSS) bucket are private. Otherwise, the URL of the auxiliary media asset is permanently valid.'."\n"
.' * Minimum value: **1**.'."\n"
.' * The maximum value for a media asset stored in the VOD bucket is **2592000** (30 days) and the maximum value for a media asset stored in an OSS bucket is **129600** (36 hours). The maximum value is limited to reduce security risks of the origin.'."\n"
.' * Default value: If you do not set this parameter, the default value **3600** is used.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '3600', 'title' => ''],
],
[
'name' => 'OutputType',
'in' => 'query',
'schema' => ['description' => 'The type of the media asset URL. Valid values:'."\n"
."\n"
.'* **oss**'."\n"
.'* **cdn** (default)'."\n", 'type' => 'string', 'required' => false, 'example' => 'oss', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '221BCB57-B217-42BF-619BD13378F9****', 'title' => ''],
'NonExistMediaIds' => [
'description' => 'The IDs of the auxiliary media assets that do not exist.'."\n",
'type' => 'array',
'items' => ['description' => 'The ID of the auxiliary media assets that does not exist.'."\n", 'type' => 'string', 'example' => 'eb1861d2c9a842340e989dd56****', 'title' => ''],
'title' => '',
'example' => '',
],
'AttachedMediaList' => [
'description' => 'The information about the media assets.'."\n",
'type' => 'array',
'items' => [
'description' => 'The details of the auxiliary media asset.'."\n",
'type' => 'object',
'properties' => [
'Type' => ['description' => 'The type of the auxiliary media asset.'."\n"
."\n"
.'* **watermark**'."\n"
.'* **subtitle**'."\n"
.'* **material**'."\n", 'type' => 'string', 'example' => 'subtitle', 'title' => ''],
'StorageLocation' => ['description' => 'The storage address of the auxiliary media asset.'."\n", 'type' => 'string', 'example' => 'outin-bfefbb9*****c7426.oss-cn-shanghai.aliyuncs.com', 'title' => ''],
'CreationTime' => ['description' => 'The time when the auxiliary media asset was created. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2019-01-01T10:00:00Z', 'title' => ''],
'Status' => ['description' => 'The status of the auxiliary media asset. Valid values:'."\n"
."\n"
.'* **Uploading**'."\n"
.'* **Normal**'."\n"
.'* **UploadFail**'."\n", 'type' => 'string', 'example' => 'Normal', 'title' => ''],
'Tags' => ['description' => 'The tags of the auxiliary media asset.'."\n"
."\n"
.'> This parameter is returned only when tags are specified for the auxiliary media asset.'."\n", 'type' => 'string', 'example' => 'tag1,tag2', 'title' => ''],
'ModificationTime' => ['description' => 'The time when the auxiliary media asset was last updated. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2020-05-31T11:42:20Z', 'title' => ''],
'MediaId' => ['description' => 'The ID of the auxiliary media asset.'."\n", 'type' => 'string', 'example' => '0222e203cf80f9c22870a4d2c****', 'title' => ''],
'Description' => ['description' => 'The description of the auxiliary media asset.'."\n"
."\n"
.'> This parameter is returned only when a description is specified for the auxiliary media asset.'."\n", 'type' => 'string', 'example' => 'Description test', 'title' => ''],
'AppId' => ['description' => 'The ID of the application.'."\n", 'type' => 'string', 'example' => 'app-*****', 'title' => ''],
'URL' => ['description' => 'The URL of the auxiliary media asset.'."\n"
."\n"
.'> If a CDN domain name is specified, a CDN URL is returned. Otherwise, an OSS URL is returned.'."\n", 'type' => 'string', 'example' => 'https://al*****.cn/subtitle/9843C2*****4E186F19B6.vtt?auth_key=159099f60e0b7fd59****', 'title' => ''],
'Title' => ['description' => 'The title of the auxiliary media asset.'."\n", 'type' => 'string', 'example' => 'Subtitle test', 'title' => ''],
'Categories' => [
'description' => 'The categories.'."\n",
'type' => 'array',
'items' => [
'description' => 'The details about the category.'."\n",
'type' => 'object',
'properties' => [
'ParentId' => ['description' => 'The ID of the parent category.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1000224336', 'title' => ''],
'CateName' => ['description' => 'The name of the category.'."\n", 'type' => 'string', 'example' => 'Test', 'title' => ''],
'CateId' => ['description' => 'The ID of the category.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1000224338', 'title' => ''],
'Level' => ['description' => 'The level of the category.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '0', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"221BCB57-B217-42BF-619BD13378F9****\\",\\n \\"NonExistMediaIds\\": [\\n \\"eb1861d2c9a842340e989dd56****\\"\\n ],\\n \\"AttachedMediaList\\": [\\n {\\n \\"Type\\": \\"subtitle\\",\\n \\"StorageLocation\\": \\"outin-bfefbb9*****c7426.oss-cn-shanghai.aliyuncs.com\\",\\n \\"CreationTime\\": \\"2019-01-01T10:00:00Z\\",\\n \\"Status\\": \\"Normal\\",\\n \\"Tags\\": \\"tag1,tag2\\",\\n \\"ModificationTime\\": \\"2020-05-31T11:42:20Z\\",\\n \\"MediaId\\": \\"0222e203cf80f9c22870a4d2c****\\",\\n \\"Description\\": \\"Description test\\",\\n \\"AppId\\": \\"app-*****\\",\\n \\"URL\\": \\"https://al*****.cn/subtitle/9843C2*****4E186F19B6.vtt?auth_key=159099f60e0b7fd59****\\",\\n \\"Title\\": \\"Subtitle test\\",\\n \\"Categories\\": [\\n {\\n \\"ParentId\\": 1000224336,\\n \\"CateName\\": \\"Test\\",\\n \\"CateId\\": 1000224338,\\n \\"Level\\": 0\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]',
'title' => 'GetAttachedMediaInfo',
'description' => 'You can query information about up to 20 auxiliary media assets in a request.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => 'The ID of the auxiliary media asset.',
'changeSet' => [
['createdAt' => '2025-07-10T08:30:43.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAttachedMediaInfo'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetAttachedMediaInfo',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'GetAuditHistory' => [
'summary' => 'Queries the manual review history.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39940',
'abilityTreeNodes' => ['FEATUREvodW76Z9M'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'VideoId',
'in' => 'query',
'schema' => ['description' => 'The ID of the video.'."\n", 'type' => 'string', 'required' => true, 'example' => '93ab850b4f6f44*****6e91d24d81d4', 'title' => ''],
],
[
'name' => 'PageNo',
'in' => 'query',
'schema' => ['description' => 'The number of the page to return. Default value: **1**.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries to return on each page. Default value: **10**. Maximum value: **100**.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '10', 'title' => ''],
],
[
'name' => 'SortBy',
'in' => 'query',
'schema' => ['description' => 'The sorting rule of the results. Valid values:'."\n"
.'* **CreationTime:Desc**: sorts the results based on the creation time in descending order. This is the default value.'."\n"
.'* **CreationTime:Asc**: sorts the results based on the creation time in ascending order.', 'type' => 'string', 'required' => false, 'example' => 'CreationTime:Desc', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'Status' => ['description' => 'The manual review result. Valid values:'."\n"
.'- **Normal**: The video can be played.'."\n"
.'- **Blocked**: The video is blocked.', 'type' => 'string', 'example' => 'Normal', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '04F0F334-1335-43*****D7-6C044FE73368', 'title' => ''],
'Total' => ['description' => 'The total number of review records.', 'type' => 'integer', 'format' => 'int64', 'example' => '2', 'title' => ''],
'Histories' => [
'description' => 'The review records.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Status' => ['description' => 'The manual review result. Valid values:'."\n"
.'- **Normal**: The video can be played.'."\n"
.'- **Blocked**: The video is blocked.', 'type' => 'string', 'example' => 'Blocked', 'title' => ''],
'CreationTime' => ['description' => 'The time when the review record was created. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2017-01-11T12:00:00Z', 'title' => ''],
'Comment' => ['description' => 'The review comments, which are provided by the reviewer.', 'type' => 'string', 'example' => 'Contains nudity', 'title' => ''],
'Reason' => ['description' => 'The reason why the video failed the review. If the video failed the review, specify the reason.', 'type' => 'string', 'example' => 'Pornographic video', 'title' => ''],
'Auditor' => ['description' => 'The reviewer.', 'type' => 'string', 'example' => 'auditor', 'title' => ''],
],
'description' => '',
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"Status\\": \\"Normal\\",\\n \\"RequestId\\": \\"04F0F334-1335-43*****D7-6C044FE73368\\",\\n \\"Total\\": 2,\\n \\"Histories\\": [\\n {\\n \\"Status\\": \\"Blocked\\",\\n \\"CreationTime\\": \\"2017-01-11T12:00:00Z\\",\\n \\"Comment\\": \\"Contains nudity\\",\\n \\"Reason\\": \\"Pornographic video\\",\\n \\"Auditor\\": \\"auditor\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 04F0F334-1335-43*****D7-6C044FE73368\\r\\n\\tBlocked\\r\\n\\t2\\r\\n\\t\\r\\n\\t\\t2017-12-18T07:39:00Z\\r\\n\\t\\tBlocked\\r\\n\\t\\t色情视频\\r\\n\\t\\t有露点镜头\\r\\n\\t\\r\\n\\t\\r\\n\\t\\t2017-12-18T07:30:00Z\\r\\n\\t\\tNormal\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\r\\n","errorExample":""}]',
'title' => 'GetAuditHistory',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-10T08:30:50.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAuditHistory'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetAuditHistory',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'GetCategories' => [
'summary' => 'Queries the information about a specific category and its subcategories based on the ID or type of the category.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'list',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39943',
'abilityTreeNodes' => ['FEATUREvodUYOK6S'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'CateId',
'in' => 'query',
'schema' => ['description' => 'The ID of the category. If you specify this parameter, the system queries the category based on the ID. You can specify only one category ID. You can use one of the following methods to obtain the ID:'."\n"
."\n"
.'* Log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com). Choose **Configuration Management** > **Media Management** > **Categories**. On the Audio and Video / Image Category or Short Video Material Category tab, view the category ID.'."\n"
.'* Obtain the category ID from the response to the [AddCategory](~~AddCategory~~) operation.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '49339****', 'title' => ''],
],
[
'name' => 'PageNo',
'in' => 'query',
'schema' => ['description' => 'The number of the page where the subcategories to be returned are listed. Default value: **1**.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries to return on each page of the subcategory list. Default value: **10**. Maximum value: **100**.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '10', 'title' => ''],
],
[
'name' => 'SortBy',
'in' => 'query',
'schema' => ['description' => 'The sorting method of the results. Valid values:'."\n"
."\n"
.'* **CreationTime:Desc** (default): The results are sorted in reverse chronological order based on the creation time.'."\n"
.'* **CreationTime:Asc**: The results are sorted in chronological order based on the creation time.'."\n", 'type' => 'string', 'required' => false, 'example' => 'CreationTime:Desc', 'title' => ''],
],
[
'name' => 'Type',
'in' => 'query',
'schema' => ['description' => 'The type of the category. If you specify this parameter, the system queries the category based on the type. Valid values:'."\n"
."\n"
.'* **default** (default): audio, video, and image files'."\n"
.'* **material**: short video materials'."\n", 'type' => 'string', 'required' => false, 'example' => 'default', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.'."\n",
'type' => 'object',
'properties' => [
'SubTotal' => ['description' => 'The total number of subcategories.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '2', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4AF6-D7393642CA58****', 'title' => ''],
'Category' => [
'description' => 'The information about the category.'."\n",
'type' => 'object',
'properties' => [
'Type' => ['description' => 'The type of the category. Valid values:'."\n"
."\n"
.'* **default**: audio, video, and image files'."\n"
.'* **material**: short video materials'."\n", 'type' => 'string', 'example' => 'default', 'title' => ''],
'ParentId' => ['description' => 'The ID of the parent category.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '100012****', 'title' => ''],
'CateName' => ['description' => 'The name of the category.'."\n", 'type' => 'string', 'example' => 'Movie', 'title' => ''],
'CateId' => ['description' => 'The ID of the category.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '100', 'title' => ''],
'Level' => ['description' => 'The level of the category. Valid values:'."\n"
."\n"
.'* **0**: level 1 category'."\n"
.'* **1**: level 2 category'."\n"
.'* **2**: level 3 category'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '0', 'title' => ''],
],
'title' => '',
'example' => '',
],
'SubCategories' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Category' => [
'description' => 'The details of the subcategory.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Type' => ['description' => 'The type of the subcategory. Valid values:'."\n"
."\n"
.'* **default**: audio, video, and image files'."\n"
.'* **material**: short video materials'."\n", 'type' => 'string', 'example' => 'default', 'title' => ''],
'CateName' => ['description' => 'The name of the category.'."\n", 'type' => 'string', 'example' => '电影', 'title' => ''],
'ParentId' => ['description' => 'The ID of the parent category.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '10020****', 'title' => ''],
'CateId' => ['description' => 'The ID of the category.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '100', 'title' => ''],
'SubTotal' => ['description' => 'The total number of subcategories.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
'Level' => ['description' => 'The level of the category. Valid values:'."\n"
."\n"
.'* **0**: level 1 category'."\n"
.'* **1**: level 2 category'."\n"
.'* **2**: level 3 category'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
],
'description' => 'The list of subcategories.',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"SubTotal\\": 2,\\n \\"RequestId\\": \\"25818875-5F78-4AF6-D7393642CA58****\\",\\n \\"Category\\": {\\n \\"Type\\": \\"default\\",\\n \\"ParentId\\": 0,\\n \\"CateName\\": \\"Movie\\",\\n \\"CateId\\": 100,\\n \\"Level\\": 0\\n },\\n \\"SubCategories\\": {\\n \\"Category\\": [\\n {\\n \\"Type\\": \\"default\\",\\n \\"CateName\\": \\"电影\\",\\n \\"ParentId\\": 0,\\n \\"CateId\\": 100,\\n \\"SubTotal\\": 1,\\n \\"Level\\": 1\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]',
'title' => 'GetCategories',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return.'."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| InvalidCateId.NotFound | The CateId not exist. | 404 | The error message returned because the specified category ID does not exist. |',
'changeSet' => [
['createdAt' => '2025-07-10T08:30:42.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetCategories'],
],
],
'ramActions' => [
[
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:GetCategories',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'GetDailyPlayRegionStatis' => [
'summary' => 'This operation retrieves the traffic data for all media assets in a specified region on a specific date. The data is generated from CDN Traffic Logs and represents the traffic consumed by videos. The resulting CSV file contains information such as the date, video ID, domain name, traffic, application ID, and category ID. You can download this file for use in scenarios such as data analytics.',
'methods' => ['get', 'post'],
'schemes' => ['https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'abilityTreeCode' => '267530',
'abilityTreeNodes' => ['FEATUREvodKNCWCD'],
'tenantRelevance' => 'tenant',
],
'parameters' => [
[
'name' => 'Date',
'in' => 'query',
'schema' => ['description' => 'The playback date. The date is in the yyyy-MM-dd format.'."\n"
."\n"
.'> - You can query data only by day.'."\n"
.'> - You can query data that is generated in the last year.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => '2025-03-20'],
],
[
'name' => 'MediaRegion',
'in' => 'query',
'schema' => ['description' => 'The ID of the region where the media asset is stored. You can specify this parameter to query the playback data of all audio and video files in a specific region. Valid values:'."\n"
."\n"
.'- cn-beijing: China (Beijing)'."\n"
.'- cn-shanghai: China (Shanghai)'."\n"
.'- cn-shenzhen: China (Shenzhen)'."\n"
.'- ap-northeast-1: Japan (Tokyo)'."\n"
.'- ap-southeast-1: Singapore'."\n"
.'- ap-southeast-5: Indonesia (Jakarta)'."\n"
.'- eu-central-1: Germany (Frankfurt)', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'cn-beijing'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '67720502-CDDB-3F1C-8A91-12258*******'],
'DailyPlayRegionStatisList' => [
'description' => 'The information about the returned CSV file.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Date' => ['description' => 'The playback date. The date is in the yyyy-MM-dd format.', 'type' => 'string', 'title' => '', 'example' => '2025-03-20'],
'FileUrl' => ['description' => 'The download URL of the CSV file.', 'type' => 'string', 'title' => '', 'example' => 'https://outin-e70266d4ed*******0163e1403e7.oss-cn-shanghai.aliyuncs.com/dataexport/play/cn_hangzhou_20250320_video_traffic.csv?*******'],
],
'description' => '',
'title' => '',
],
'title' => '',
],
'FailDates' => [
'description' => 'If the data exporting of playback data fails on a specific day, the date is returned.',
'type' => 'array',
'items' => ['description' => 'The date on which the data exporting failed.', 'type' => 'string', 'title' => '', 'example' => '[]'],
'title' => '',
],
'EmptyDates' => [
'description' => 'If no playback data is available on a specific day, the date is returned.',
'type' => 'array',
'items' => ['description' => 'The date on which no data is available.', 'type' => 'string', 'title' => '', 'example' => '[]'],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
],
'title' => 'GetDailyPlayRegionStatis',
'description' => '- The endpoint of this operation is available only in the **China (Shanghai)** region.'."\n"
.'- You can query data generated within the last 90 days. The earliest available data is from April 29, 2025.'."\n"
.'- The traffic data provided by this operation is raw data. To align the data with the billable traffic, multiply the data by a TCP coefficient of 1.1.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '3', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDailyPlayRegionStatis'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetDailyPlayRegionStatis',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"67720502-CDDB-3F1C-8A91-12258*******\\",\\n \\"DailyPlayRegionStatisList\\": [\\n {\\n \\"Date\\": \\"2025-03-20\\",\\n \\"FileUrl\\": \\"https://outin-e70266d4ed*******0163e1403e7.oss-cn-shanghai.aliyuncs.com/dataexport/play/cn_hangzhou_20250320_video_traffic.csv?*******\\"\\n }\\n ],\\n \\"FailDates\\": [\\n \\"[]\\"\\n ],\\n \\"EmptyDates\\": [\\n \\"[]\\"\\n ]\\n}","type":"json"}]',
],
'GetDefaultAITemplate' => [
'summary' => 'Queries the default AI template.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39949',
'abilityTreeNodes' => ['FEATUREvodW76Z9M'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'TemplateType',
'in' => 'query',
'schema' => ['description' => 'The type of the AI template. Set the value to **AIMediaAudit**, which specifies the automated review.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'AIMediaAudit', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'A017F1DE-3DC3-4441-6755-37E81113****', 'title' => ''],
'TemplateInfo' => [
'description' => 'The information about the AI template.'."\n",
'type' => 'object',
'properties' => [
'CreationTime' => ['description' => 'The time when the AI template was created. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2020-07-08T06:50:45Z', 'title' => ''],
'IsDefault' => ['description' => 'Indicates whether the template is the default AI template. Valid values:'."\n"
."\n"
.'* **Default**'."\n"
.'* **NotDefault**'."\n", 'type' => 'string', 'example' => 'Default', 'title' => ''],
'TemplateType' => ['description' => 'The type of the AI template. The value is **AIMediaAudit**, which indicates automated review.'."\n", 'type' => 'string', 'example' => 'AIMediaAudit', 'title' => ''],
'TemplateConfig' => ['description' => 'The detailed configurations of the AI template. The value is a JSON string. For more information, see [AITemplateConfig](~~89863#title-vd3-499-o36~~).'."\n", 'type' => 'string', 'example' => '{"AuditRange":["text-title","video"],"AuditContent":["screen"],"AuditItem":["terrorism","porn"],"AuditAutoBlock":"yes"}', 'title' => ''],
'TemplateName' => ['description' => 'The name of the AI template.'."\n", 'type' => 'string', 'example' => 'DemoAITemplate', 'title' => ''],
'Source' => ['description' => 'The source of the AI template. Valid values:'."\n"
."\n"
.'* **System**'."\n"
.'* **Custom**'."\n", 'type' => 'string', 'example' => 'Custom', 'title' => ''],
'TemplateId' => ['description' => 'The ID of the AI template.'."\n", 'type' => 'string', 'example' => '1706a0063dd733f6a823ef32e0a5****', 'title' => ''],
'ModifyTime' => ['description' => 'The time when the AI template was modified. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2020-07-08T06:58:45Z', 'title' => ''],
],
'title' => '',
],
],
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A017F1DE-3DC3-4441-6755-37E81113****\\",\\n \\"TemplateInfo\\": {\\n \\"CreationTime\\": \\"2020-07-08T06:50:45Z\\",\\n \\"IsDefault\\": \\"Default\\",\\n \\"TemplateType\\": \\"AIMediaAudit\\",\\n \\"TemplateConfig\\": \\"{\\\\\\"AuditRange\\\\\\":[\\\\\\"text-title\\\\\\",\\\\\\"video\\\\\\"],\\\\\\"AuditContent\\\\\\":[\\\\\\"screen\\\\\\"],\\\\\\"AuditItem\\\\\\":[\\\\\\"terrorism\\\\\\",\\\\\\"porn\\\\\\"],\\\\\\"AuditAutoBlock\\\\\\":\\\\\\"yes\\\\\\"}\\",\\n \\"TemplateName\\": \\"DemoAITemplate\\",\\n \\"Source\\": \\"Custom\\",\\n \\"TemplateId\\": \\"1706a0063dd733f6a823ef32e0a5****\\",\\n \\"ModifyTime\\": \\"2020-07-08T06:58:45Z\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n A017F1DE-3DC3-4441-6755-37E81113****\\n \\n 2020-07-08T06:50:45Z\\n Default\\n AIMediaAudit\\n {\\"AuditRange\\":[\\"text-title\\",\\"video\\"],\\"AuditContent\\":[\\"screen\\"],\\"AuditItem\\":[\\"terrorism\\",\\"porn\\"],\\"AuditAutoBlock\\":\\"yes\\"}\\n DemoAITemplate\\n Custom\\n 1706a0063dd733f6a823ef32e0a5****\\n 2020-07-08T06:58:45Z\\n \\n","errorExample":""}]',
'title' => 'GetDefaultAITemplate',
'description' => '* Regions that support this operation: **China (Beijing)**, **China (Shanghai)**, and **Singapore**.'."\n"
.'* You can query information only about the default AI template for automated review.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-10T08:30:29.000Z', 'description' => 'OpenAPI offline'],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetDefaultAITemplate',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'GetDigitalWatermarkExtractResult' => [
'summary' => 'Queries the results of a digital watermark extraction job. You can call this operation to obtain information such as the job status and the content of the copyright or user-tracing watermark.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'get'],
'parameters' => [
[
'name' => 'MediaId',
'in' => 'query',
'schema' => ['description' => 'The ID of the video from which you want to query the watermark content. You can specify only one ID. You can use one of the following methods to obtain the ID:'."\n"
."\n"
.'* Log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com). In the left-side navigation pane, choose **Media Files** > **Audio/Video** to view the video ID.'."\n"
.'* Obtain the VideoId from the response to the [SearchMedia](~~SearchMedia~~) operation.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '93ab850b4f6f54b6e91d24d81d4****', 'title' => ''],
],
[
'name' => 'ExtractType',
'in' => 'query',
'schema' => ['description' => 'The type of the watermark. Valid values:'."\n"
."\n"
.'* **TraceMark**: user-tracing watermark'."\n"
.'* **CopyrightMark**: copyright watermark'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'TraceMark', 'title' => ''],
],
[
'name' => 'JobId',
'in' => 'query',
'schema' => ['description' => 'The ID of the watermark extraction job.'."\n"
."\n"
.'* You can obtain the ID from the response to the [SubmitDigitalWatermarkExtractJob](~~SubmitDigitalWatermarkExtractJob~~) operation.'."\n"
.'* If you specify this parameter, the result of the specified watermark extraction job is returned. If you leave this parameter empty, the results of all watermark extraction jobs submitted for the video are returned.'."\n", 'type' => 'string', 'required' => false, 'example' => '2bf4390af9e5491c09cc720ad****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '42E0554B-80F4-4921-****-ACFB22CAAAD0', 'title' => ''],
'AiExtractResultList' => [
'description' => 'The details of the watermark extraction job.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'JobId' => ['description' => 'The ID of the watermark extraction job.'."\n", 'type' => 'string', 'example' => '3af004763bcf459698860f4ede20****', 'title' => ''],
'CreateTime' => ['description' => 'The time when the watermark extraction job was created.'."\n", 'type' => 'string', 'example' => '2023-09-16T02:49:04Z', 'title' => ''],
'ModifyTime' => ['description' => 'The time when the watermark extraction job was last updated.'."\n", 'type' => 'string', 'example' => '2023-09-17T06:20:45Z', 'title' => ''],
'Status' => ['description' => 'The status of the watermark extraction job. Valid values:'."\n"
."\n"
.'* **Success**'."\n"
.'* **Failed**'."\n"
.'* **Processing**'."\n", 'type' => 'string', 'example' => 'Success', 'title' => ''],
'ErrorMessage' => ['description' => 'The error message.'."\n", 'type' => 'string', 'example' => 'successful', 'title' => ''],
'WaterMarkText' => ['description' => 'The extracted watermark content.'."\n", 'type' => 'string', 'example' => 'test mark', 'title' => ''],
],
'description' => '',
'title' => '',
],
'title' => '',
],
],
'title' => '',
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"42E0554B-80F4-4921-****-ACFB22CAAAD0\\",\\n \\"AiExtractResultList\\": [\\n {\\n \\"JobId\\": \\"3af004763bcf459698860f4ede20****\\",\\n \\"CreateTime\\": \\"2023-09-16T02:49:04Z\\",\\n \\"ModifyTime\\": \\"2023-09-17T06:20:45Z\\",\\n \\"Status\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"successful\\",\\n \\"WaterMarkText\\": \\"test mark\\"\\n }\\n ]\\n}","type":"json"}]',
'title' => 'GetDigitalWatermarkExtractResult',
'description' => '* This operation is supported only in the China (Shanghai) and China (Beijing) regions.'."\n"
.'* You can call this operation to query the watermark content after you call the [SubmitDigitalWatermarkExtractJob](~~SubmitDigitalWatermarkExtractJob~~) operation to extract the copyright or user-tracing watermark in a video.'."\n"
.'* You can query watermark content extracted only from watermark extraction jobs that are submitted in the last 2 years.'."\n",
'changeSet' => [
['createdAt' => '2025-07-10T08:30:34.000Z', 'description' => 'OpenAPI offline'],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetDigitalWatermarkExtractResult',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDigitalWatermarkExtractResult'],
],
],
],
'GetEditingProject' => [
'summary' => 'Queries an online editing project.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39953',
'abilityTreeNodes' => ['FEATUREvod89J0DP'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'ProjectId',
'in' => 'query',
'schema' => ['description' => 'The ID of the online editing project.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'fb2101bf24b27*****54cb318787dc', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '63E8B7C7-4812-46*****AD-0FA56029AC86', 'title' => ''],
'Project' => [
'description' => 'The information about the online editing project.',
'type' => 'object',
'properties' => [
'StorageLocation' => ['description' => 'The path of the Object Storage Service (OSS) bucket where the online editing project is stored.'."\n"
."\n"
.'> To view the path of the OSS bucket, log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com/?spm=a2c4g.11186623.2.15.6948257eaZ4m54#/vod/settings/censored), and choose **Configuration Management** > **Media Management** > **Storage**. On the Storage page, you can view the path of the OSS bucket.', 'type' => 'string', 'example' => 'location_s', 'title' => ''],
'Status' => ['description' => 'The status of the online editing project. Separate multiple states with commas (,). By default, all online editing projects were queried. Valid values:'."\n"
."\n"
.'- **Normal**: indicates that the online editing project is in draft.'."\n"
."\n"
.'- **Producing**: indicates that the video is being produced.'."\n"
."\n"
.'- **Produced**: indicates that the video was produced.'."\n"
."\n"
.'- **ProduceFailed**: indicates that the video failed to be produced.', 'type' => 'string', 'example' => 'Normal', 'title' => ''],
'CreationTime' => ['description' => 'The time when the online editing project was created. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2017-10-23T13:33:40Z', 'title' => ''],
'ModifiedTime' => ['description' => 'The last time when the online editing project was modified. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2017-10-23T14:27:26Z', 'title' => ''],
'Description' => ['description' => 'The description of the online editing project.', 'type' => 'string', 'example' => 'testdescription', 'title' => ''],
'CoverURL' => ['description' => 'The thumbnail URL of the online editing project.', 'type' => 'string', 'example' => 'https://****.com/6AB4D0E1E1C74468883516C2349****.png', 'title' => ''],
'ProjectId' => ['description' => 'The ID of the online editing project.', 'type' => 'string', 'example' => 'fb2101bf24b27*****54cb318787dc', 'title' => ''],
'Timeline' => ['description' => 'The timeline of the online editing project.', 'type' => 'string', 'example' => '{\\"TimelineIn\\":0,\\"TimelineOut\\":9.42}', 'title' => ''],
'Title' => ['description' => 'The title of the online editing project.', 'type' => 'string', 'example' => 'Video_1508736815000', 'title' => ''],
'RegionId' => ['description' => 'The region where the online editing project was created.', 'type' => 'string', 'example' => 'cn-shanghai', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"63E8B7C7-4812-46*****AD-0FA56029AC86\\",\\n \\"Project\\": {\\n \\"StorageLocation\\": \\"location_s\\",\\n \\"Status\\": \\"Normal\\",\\n \\"CreationTime\\": \\"2017-10-23T13:33:40Z\\",\\n \\"ModifiedTime\\": \\"2017-10-23T14:27:26Z\\",\\n \\"Description\\": \\"testdescription\\",\\n \\"CoverURL\\": \\"https://****.com/6AB4D0E1E1C74468883516C2349****.png\\",\\n \\"ProjectId\\": \\"fb2101bf24b27*****54cb318787dc\\",\\n \\"Timeline\\": \\"{\\\\\\\\\\\\\\"TimelineIn\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\"TimelineOut\\\\\\\\\\\\\\":9.42}\\",\\n \\"Title\\": \\"Video_1508736815000\\",\\n \\"RegionId\\": \\"cn-shanghai\\"\\n }\\n}","type":"json"}]',
'title' => 'GetEditingProject',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-10T08:31:44.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetEditingProject'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetEditingProject',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'translator' => 'manual',
],
'GetEditingProjectMaterials' => [
'summary' => 'Queries materials that are waiting to be edited in an online editing project.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'list',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39954',
'abilityTreeNodes' => ['FEATUREvod89J0DP'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'ProjectId',
'in' => 'query',
'schema' => ['description' => 'The ID of the online editing project. You can use one of the following methods to obtain the ID of the online editing project:'."\n"
."\n"
.'* Log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com). In the left-side navigation pane, choose **Production Center** > **Video Editing** to obtain the ID of the specified online editing project.'."\n"
.'* Call the **AddEditingProject** operation. The value of the response parameter ProjectId is the ID of the specified online editing project.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '1982361011093374****', 'title' => ''],
],
[
'name' => 'Type',
'in' => 'query',
'schema' => ['description' => 'The type of the material. Valid values:'."\n"
."\n"
.'* **video**'."\n"
.'* **audio**'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'video', 'title' => ''],
],
[
'name' => 'MaterialType',
'in' => 'query',
'schema' => ['description' => 'The type of the material. Valid values:'."\n"
."\n"
.'* **video**'."\n"
.'* **audio**'."\n"
.'* **image**'."\n", 'type' => 'string', 'required' => false, 'example' => 'video', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned data.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '746FFA07-8BBB-46B1-3E94E3B2915E****', 'title' => ''],
'MaterialList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Material' => [
'description' => 'The materials.',
'type' => 'array',
'items' => [
'description' => 'The details of the materials.',
'type' => 'object',
'properties' => [
'Status' => ['description' => 'The status of the material. Valid values:'."\n"
."\n"
.'* **Normal**: The material is in draft.'."\n"
.'* **Producing**: The material is being produced.'."\n"
.'* **Produced**: The material was produced.'."\n"
.'* **ProduceFailed**: The material failed to be produced.'."\n", 'type' => 'string', 'example' => 'Normal', 'title' => ''],
'CreationTime' => ['description' => 'The time when the material was created. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2017-10-19 10:48:17', 'title' => ''],
'CateId' => ['description' => 'The category ID of the material.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '100005****', 'title' => ''],
'MaterialType' => ['description' => 'The type of the material. Valid values:'."\n"
."\n"
.'* **video**'."\n"
.'* **audio**'."\n"
.'* **image**'."\n", 'type' => 'string', 'example' => 'video', 'title' => ''],
'Tags' => ['description' => 'The tag of the material. Multiple tags are separated by commas (,).'."\n", 'type' => 'string', 'example' => 'Editing test', 'title' => ''],
'SpriteConfig' => ['description' => 'The configuration of the sprite.'."\n", 'type' => 'string', 'example' => 'xxx', 'title' => ''],
'Source' => ['description' => 'The source of the sprite.'."\n", 'type' => 'string', 'example' => 'xxx', 'title' => ''],
'CateName' => ['description' => 'The category name of the material.'."\n", 'type' => 'string', 'example' => 'Test', 'title' => ''],
'ModifiedTime' => ['description' => 'The time when the material was last updated. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2017-10-19 10:48:17', 'title' => ''],
'Description' => ['description' => 'The description of the material.'."\n", 'type' => 'string', 'example' => 'Test', 'title' => ''],
'MaterialId' => ['description' => 'The ID of the material.'."\n", 'type' => 'string', 'example' => '85befc4118b84c6723e53b80b1****', 'title' => ''],
'Size' => ['description' => 'The size of the mezzanine file. Unit: byte.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1682694', 'title' => ''],
'CoverURL' => ['description' => 'The thumbnail URL of the material.'."\n", 'type' => 'string', 'example' => 'http://example.aliyundoc.com/aivideocover/46fa444aa34065cb9250f6c****/image_01.jpg', 'title' => ''],
'Duration' => ['description' => 'The duration of the material. The value is rounded to four decimal places. Unit: seconds.'."\n", 'type' => 'number', 'format' => 'float', 'example' => '15.16', 'title' => ''],
'Title' => ['description' => 'The title of the material.'."\n", 'type' => 'string', 'example' => 'test', 'title' => ''],
'Sprites' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Sprite' => [
'description' => 'The URLs of material sprites. The value is an array.',
'type' => 'array',
'items' => ['description' => 'The URLs of material sprites. The value is an array.', 'type' => 'string', 'example' => '"http://example.aliyundoc.com/material_big_snapshot/0f325c157386f2a7e91b2ff0****.jpg?auth_key="', 'title' => ''],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'Snapshots' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Snapshot' => [
'description' => 'The URLs of material snapshots. The value is an array.',
'type' => 'array',
'items' => ['description' => 'The URLs of material snapshots. The value is an array.', 'type' => 'string', 'example' => '"http://example.aliyundoc.com/material_small_snapshot/0f325c157386f2a7e91b2ff0****.jpg?auth_key=","http://example.aliyundoc.com/material_small_snapshot/0f325c157386f2a7e91b2ff0****.jpg?auth_key="', 'title' => ''],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"746FFA07-8BBB-46B1-3E94E3B2915E****\\",\\n \\"MaterialList\\": {\\n \\"Material\\": [\\n {\\n \\"Status\\": \\"Normal\\",\\n \\"CreationTime\\": \\"2017-10-19 10:48:17\\",\\n \\"CateId\\": 0,\\n \\"MaterialType\\": \\"video\\",\\n \\"Tags\\": \\"Editing test\\",\\n \\"SpriteConfig\\": \\"xxx\\",\\n \\"Source\\": \\"xxx\\",\\n \\"CateName\\": \\"Test\\",\\n \\"ModifiedTime\\": \\"2017-10-19 10:48:17\\",\\n \\"Description\\": \\"Test\\",\\n \\"MaterialId\\": \\"85befc4118b84c6723e53b80b1****\\",\\n \\"Size\\": 1682694,\\n \\"CoverURL\\": \\"http://example.aliyundoc.com/aivideocover/46fa444aa34065cb9250f6c****/image_01.jpg\\",\\n \\"Duration\\": 15.16,\\n \\"Title\\": \\"test\\",\\n \\"Sprites\\": {\\n \\"Sprite\\": [\\n \\"\\\\\\"http://example.aliyundoc.com/material_big_snapshot/0f325c157386f2a7e91b2ff0****.jpg?auth_key=\\\\\\"\\"\\n ]\\n },\\n \\"Snapshots\\": {\\n \\"Snapshot\\": [\\n \\"\\\\\\"http://example.aliyundoc.com/material_small_snapshot/0f325c157386f2a7e91b2ff0****.jpg?auth_key=\\\\\\",\\\\\\"http://example.aliyundoc.com/material_small_snapshot/0f325c157386f2a7e91b2ff0****.jpg?auth_key=\\\\\\"\\"\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 746FFA07-8BBB-46B1-3E94E3B2915E****\\n \\n Normal\\n 2017-10-19 10:48:17\\n video\\n 剪辑测试\\n xxx\\n xxx\\n 测试\\n 2017-10-19 10:48:17\\n 测试\\n 85befc4118b84c6723e53b80b1****\\n 1682694\\n http://example.aliyundoc.com/aivideocover/46fa444aa34065cb9250f6c****/image_01.jpg\\n 15.16\\n test\\n {\\"Sprite\\":[\\"http://example.aliyundoc.com/material_big_snapshot/0f325c157386f2a7e91b2ff0****.jpg?auth_key=\\"]}\\n [\\"http://example.aliyundoc.com/material_small_snapshot/0f325c157386f2a7e91b2ff0****.jpg?auth_key=\\",\\"http://example.aliyundoc.com/material_small_snapshot/0f325c157386f2a7e91b2ff0****.jpg?auth_key=\\"]\\n \\n","errorExample":""}]',
'title' => 'GetEditingProjectMaterials',
'description' => 'During editing, you can add materials to the timeline, but some of them may not be used.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-10T08:31:05.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetEditingProjectMaterials'],
],
],
'ramActions' => [
[
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:GetEditingProjectMaterials',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'GetImageInfo' => [
'summary' => 'Queries the basic information and URL of an image based on the image ID after you upload the image to ApsaraVideo VOD.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39955',
'abilityTreeNodes' => ['FEATUREvodYRQNEN'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'ImageId',
'in' => 'query',
'schema' => ['description' => 'The ID of the image. You can use one of the following methods to obtain the ID:'."\n"
."\n"
.'- Log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com/). In the left-side navigation pane, choose Media Files > Image. On the Image page, view the image ID.'."\n"
."\n"
.'- Obtain the image ID from the response to the [CreateUploadImage](~~CreateUploadImage~~) operation that you call to obtain the upload URL and credential.'."\n"
."\n"
.'- Obtain the image ID from the response to the [SearchMedia](~~SearchMedia~~) operation that you call to query the image.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '3e34733b40b9a96ccf5c1ff6f69****', 'title' => ''],
],
[
'name' => 'AuthTimeout',
'in' => 'query',
'schema' => ['description' => 'The time when the image URL expires. Unit: seconds.'."\n"
."\n"
.'- If you set OutputType to cdn:'."\n"
."\n"
.' - This parameter takes effect only if URL authentication is enabled. Otherwise, the image URL does not expire.'."\n"
."\n"
.' - Minimum value: 1.'."\n"
."\n"
.' - Maximum value: unlimited.'."\n"
."\n"
.' - Default value: If you leave this parameter empty, the default validity period that is specified in URL signing is used.'."\n"
."\n"
.'- If you set OutputType to oss:'."\n"
."\n"
.' - This parameter takes effect only when the ACL of the Object Storage Service (OSS) bucket is private. Otherwise, the image URL does not expire.'."\n"
."\n"
.' - Minimum value: 1.'."\n"
."\n"
.' - If you store the image in the VOD bucket, the maximum value of this parameter is **2592000** (30 days). If you store the image in an OSS bucket, the maximum value of this parameter is **129600** (36 hours). The maximum value is limited to reduce security risks of the origin.'."\n"
."\n"
.' - Default value: 3600.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '3600', 'title' => ''],
],
[
'name' => 'OutputType',
'in' => 'query',
'schema' => ['description' => 'The type of the output image URL. Valid values:'."\n"
."\n"
.'- oss: OSS URL'."\n"
."\n"
.'- cdn: CDN URL', 'type' => 'string', 'required' => false, 'example' => 'cdn', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'AB99D4DF-FAFA-49DC-9C548C1E261E****', 'title' => ''],
'ImageInfo' => [
'description' => 'The information about the image.',
'type' => 'object',
'properties' => [
'CreationTime' => ['description' => 'The time when the image was created. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2018-11-21T02:37:23Z', 'title' => ''],
'StorageLocation' => ['description' => 'The bucket in which the image is stored.', 'type' => 'string', 'example' => 'outin-****..oss-cn-shanghai.aliyuncs.com', 'title' => ''],
'Status' => ['description' => 'The status of the image. Valid values:'."\n"
."\n"
.'- **Uploading**: The image is being uploaded. This is the initial status.'."\n"
."\n"
.'- **Normal**: The image is uploaded.'."\n"
."\n"
.'- **UploadFail**: The image fails to be uploaded.', 'type' => 'string', 'example' => 'Uploading', 'title' => ''],
'CateId' => ['description' => 'The ID of the category.', 'type' => 'integer', 'format' => 'int64', 'example' => '254766071', 'title' => ''],
'Tags' => ['description' => 'The tags of the image. Multiple tags are separated by commas (,).', 'type' => 'string', 'example' => 'tag1,tag2,tag3', 'title' => ''],
'ImageType' => ['description' => 'The type of the image. Valid values:'."\n"
."\n"
.'- **CoverSnapshot**: thumbnail snapshot.'."\n"
."\n"
.'- **NormalSnapshot**: normal snapshot.'."\n"
."\n"
.'- **SpriteSnapshot**: sprite snapshot.'."\n"
."\n"
.'- **SpriteOriginSnapshot**: sprite source snapshot.'."\n"
."\n"
.'- **All**: images of all the preceding types. Multiple types other than All can return for this parameter. Multiple types are separated by commas (,).', 'type' => 'string', 'example' => 'default', 'title' => ''],
'CateName' => ['description' => 'The name of the category.', 'type' => 'string', 'example' => 'Test', 'title' => ''],
'Description' => ['description' => 'The description of the image.', 'type' => 'string', 'example' => 'Test description', 'title' => ''],
'AppId' => ['description' => 'The ID of the application.', 'type' => 'string', 'example' => 'app-****', 'title' => ''],
'URL' => ['description' => 'The image URL. If a domain name for CDN is specified, a CDN URL is returned. Otherwise, an OSS URL is returned.', 'type' => 'string', 'example' => 'http://example.aliyundoc.com/image/default/****.gif?auth_key=****', 'title' => ''],
'Title' => ['description' => 'The title of the image.', 'type' => 'string', 'example' => 'this is a sample', 'title' => ''],
'ImageId' => ['description' => 'The ID of the image.', 'type' => 'string', 'example' => 'bbc65bba53f9*****ed90de118a7849', 'title' => ''],
'Mezzanine' => [
'description' => 'The source information about the image.',
'type' => 'object',
'properties' => [
'FileURL' => ['description' => 'The OSS URL of the image file.', 'type' => 'string', 'example' => 'https://outin-bfefbb*****163e1c7426.oss-cn-XXXXXXXX.aliyuncs.com/image/default/5E84CD536*****D4DAD.png?Expires=1590982353&OSSAccessKeyId=*****&Signature=ALPET74o*****c%3D', 'title' => ''],
'OriginalFileName' => ['description' => 'The URL of the source file.', 'type' => 'string', 'example' => '****.gif', 'title' => ''],
'Width' => ['description' => 'The width of the image. Unit: pixels.', 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''],
'Height' => ['description' => 'The height of the image. Unit: pixels.', 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''],
'FileSize' => ['description' => 'The size of the image. Unit: bytes.', 'type' => 'string', 'example' => '8932', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"AB99D4DF-FAFA-49DC-9C548C1E261E****\\",\\n \\"ImageInfo\\": {\\n \\"CreationTime\\": \\"2018-11-21T02:37:23Z\\",\\n \\"StorageLocation\\": \\"outin-****..oss-cn-shanghai.aliyuncs.com\\",\\n \\"Status\\": \\"Uploading\\",\\n \\"CateId\\": 254766071,\\n \\"Tags\\": \\"tag1,tag2,tag3\\",\\n \\"ImageType\\": \\"default\\",\\n \\"CateName\\": \\"Test\\",\\n \\"Description\\": \\"Test description\\",\\n \\"AppId\\": \\"app-****\\",\\n \\"URL\\": \\"http://example.aliyundoc.com/image/default/****.gif?auth_key=****\\",\\n \\"Title\\": \\"this is a sample\\",\\n \\"ImageId\\": \\"bbc65bba53f9*****ed90de118a7849\\",\\n \\"Mezzanine\\": {\\n \\"FileURL\\": \\"https://outin-bfefbb*****163e1c7426.oss-cn-XXXXXXXX.aliyuncs.com/image/default/5E84CD536*****D4DAD.png?Expires=1590982353&OSSAccessKeyId=*****&Signature=ALPET74o*****c%3D\\",\\n \\"OriginalFileName\\": \\"****.gif\\",\\n \\"Width\\": 200,\\n \\"Height\\": 200,\\n \\"FileSize\\": \\"8932\\"\\n }\\n }\\n}","type":"json"}]',
'title' => 'GetImageInfo',
'description' => ' ',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return.'."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| NoSuchResource | The specified resource does not exist. | 404 | The error message returned because the image does not exist. |',
'changeSet' => [
['createdAt' => '2025-07-10T08:30:50.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetImageInfo'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetImageInfo',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'translator' => 'manual',
],
'GetImageInfos' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'list'],
'parameters' => [
[
'name' => 'ImageIds',
'in' => 'query',
'schema' => ['description' => 'The image IDs. Separate multiple IDs with commas (,). You can specify up to 20 image IDs. You can use one of the following methods to obtain the ID:'."\n"
."\n"
.'* Log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com/) and choose **Media Files > Images** in the left-side navigation pane.'."\n"
.'* Obtain the value of ImageId from the response to the CreateUploadImage operation that you call to obtain the upload URL and credential.'."\n"
.'* Obtain the value of ImageId from the response to the [SearchMedia](~~SearchMedia~~) operation after you upload images.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'bbc65bba53fed90de118a7849****,594228cdd14b4d069fc17a8c4a****', 'title' => ''],
],
[
'name' => 'AuthTimeout',
'in' => 'query',
'schema' => ['description' => 'The time when the image URL expires. Unit: seconds.'."\n"
."\n"
.'* If the OutputType parameter is set to cdn:'."\n"
."\n"
.' * This parameter takes effect only if URL authentication is enabled. Otherwise, the image URL does not expire.'."\n"
.' * Minimum value: 1.'."\n"
.' * Maximum value: unlimited.'."\n"
.' * Default value: The default validity period that is specified in URL authentication is used.'."\n"
."\n"
.'* If the OutputType parameter is set to oss:'."\n"
."\n"
.' * This parameter takes effect only when the ACL of the Object Storage Service (OSS) bucket is private. Otherwise, the image URL does not expire.'."\n"
.' * Minimum value: 1.'."\n"
.' * If you store the image in the VOD bucket, the maximum value of this parameter is **2592000** (30 days). If you store the image in an OSS bucket, the maximum value of this parameter is **129600** (36 hours). The maximum value is limited to reduce security risks of the origin.'."\n"
.' * Default value: 3600.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '3600', 'title' => ''],
],
[
'name' => 'OutputType',
'in' => 'query',
'schema' => ['description' => 'The type of the output image URL. Valid values:'."\n"
."\n"
.'* oss: OSS URL'."\n"
.'* cdn: CDN URL'."\n", 'type' => 'string', 'required' => false, 'example' => 'cdn', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4AF6-D7393642CA58*****', 'title' => ''],
'ImageInfo' => [
'description' => 'The image information.'."\n",
'type' => 'array',
'items' => [
'description' => 'The image information.'."\n",
'type' => 'object',
'properties' => [
'CreationTime' => ['description' => 'The time when the image was created. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2018-11-21T02:37:23Z', 'title' => ''],
'StorageLocation' => ['description' => 'The bucket in which the image is stored.'."\n", 'type' => 'string', 'example' => 'outin-****..oss-cn-shanghai.aliyuncs.com', 'title' => ''],
'Status' => ['description' => 'The status of the image file. Valid values:'."\n"
."\n"
.'* **Uploading**: The image is being uploaded. This is the initial status.'."\n"
.'* **Normal**: The image is uploaded.'."\n"
.'* **UploadFail**: The image fails to be uploaded.'."\n", 'type' => 'string', 'example' => 'Uploading', 'title' => ''],
'CateId' => ['description' => 'The ID of the category.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '254766071', 'title' => ''],
'Tags' => ['description' => 'The tags of the image. Multiple tags are separated by commas (,).'."\n", 'type' => 'string', 'example' => 'tag1,tag2,tag3', 'title' => ''],
'ImageType' => ['description' => 'The type of the image. Valid values:'."\n"
."\n"
.'* **default**: regular images'."\n"
.'* **cover**: video thumbnail'."\n", 'type' => 'string', 'example' => 'default', 'title' => ''],
'CateName' => ['description' => 'The name of the category.'."\n", 'type' => 'string', 'example' => '测试', 'title' => ''],
'Description' => ['description' => 'The description of the image.'."\n", 'type' => 'string', 'example' => '测试描述', 'title' => ''],
'AppId' => ['description' => 'The ID of the application.'."\n", 'type' => 'string', 'example' => 'app-****', 'title' => ''],
'URL' => ['description' => 'The image URL. If a domain name for CDN is specified, a CDN URL is returned. Otherwise, an OSS URL is returned.'."\n", 'type' => 'string', 'example' => 'http://example.aliyundoc.com/image/default/****.gif?auth_key=****', 'title' => ''],
'Title' => ['description' => 'The title of the image.'."\n", 'type' => 'string', 'example' => 'this is a sample', 'title' => ''],
'ImageId' => ['description' => 'The ID of the image.'."\n", 'type' => 'string', 'example' => 'bbc65bba53f9*****ed90de118a7849', 'title' => ''],
'Mezzanine' => [
'description' => 'The source information about the image.'."\n",
'type' => 'object',
'properties' => [
'FileURL' => ['description' => 'The OSS URL of the image file.'."\n", 'type' => 'string', 'example' => 'https://outin-bfefbb*****163e1c7426.oss-cn-XXXXXXXX.aliyuncs.com/image/default/5E84CD536*****D4DAD.png?Expires=1590982353&OSSAccessKeyId=*****&Signature=ALPET74o*****c%3D', 'title' => ''],
'OriginalFileName' => ['description' => 'The URL of the source file.'."\n", 'type' => 'string', 'example' => '****.gif', 'title' => ''],
'Width' => ['description' => 'The width of the image. Unit: pixels.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''],
'Height' => ['description' => 'The height of the image. Unit: pixels.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''],
'FileSize' => ['description' => 'The size of the file to be uploaded. Unit: bytes.'."\n", 'type' => 'string', 'example' => '8932', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'NonExistImageIds' => [
'description' => 'The IDs of the images that do not exist.'."\n",
'type' => 'array',
'items' => ['description' => 'The IDs of the images that do not exist.'."\n", 'type' => 'string', 'example' => 'f45cf4eba5c80233389558c39****', 'title' => ''],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'title' => 'GetImageInfos',
'summary' => 'Queries the basic information about multiple images at a time.',
'description' => '* You can call the [CreateUploadImage](~~CreateUploadImage~~) operation to upload images to ApsaraVideo VOD and call this operation to query the basic information about multiple images at a time.'."\n"
.'* To query information about video snapshots, call the [ListSnapshots](~~ListSnapshots~~) operation.'."\n"
.'* You can specify up to 20 image IDs in one call.'."\n",
'changeSet' => [
['createdAt' => '2025-07-10T08:39:33.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T08:30:44.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetImageInfos'],
],
],
'ramActions' => [
[
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:GetImageInfos',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4AF6-D7393642CA58*****\\",\\n \\"ImageInfo\\": [\\n {\\n \\"CreationTime\\": \\"2018-11-21T02:37:23Z\\",\\n \\"StorageLocation\\": \\"outin-****..oss-cn-shanghai.aliyuncs.com\\",\\n \\"Status\\": \\"Uploading\\",\\n \\"CateId\\": 254766071,\\n \\"Tags\\": \\"tag1,tag2,tag3\\",\\n \\"ImageType\\": \\"default\\",\\n \\"CateName\\": \\"测试\\",\\n \\"Description\\": \\"测试描述\\",\\n \\"AppId\\": \\"app-****\\",\\n \\"URL\\": \\"http://example.aliyundoc.com/image/default/****.gif?auth_key=****\\",\\n \\"Title\\": \\"this is a sample\\",\\n \\"ImageId\\": \\"bbc65bba53f9*****ed90de118a7849\\",\\n \\"Mezzanine\\": {\\n \\"FileURL\\": \\"https://outin-bfefbb*****163e1c7426.oss-cn-XXXXXXXX.aliyuncs.com/image/default/5E84CD536*****D4DAD.png?Expires=1590982353&OSSAccessKeyId=*****&Signature=ALPET74o*****c%3D\\",\\n \\"OriginalFileName\\": \\"****.gif\\",\\n \\"Width\\": 200,\\n \\"Height\\": 200,\\n \\"FileSize\\": \\"8932\\"\\n }\\n }\\n ],\\n \\"NonExistImageIds\\": [\\n \\"f45cf4eba5c80233389558c39****\\"\\n ]\\n}","type":"json"}]',
],
'GetJobDetail' => [
'summary' => 'Call this API to retrieve the details of an asynchronous task by its `jobId`.',
'methods' => ['get', 'post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'abilityTreeCode' => '248075',
'abilityTreeNodes' => ['FEATUREvodAFH3DF', 'FEATUREvodW76Z9M', 'FEATUREvod7BX3NA', 'FEATUREvodFAR72I', 'FEATUREvodIPBMLH', 'FEATUREvod5413CB'],
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'JobId',
'in' => 'query',
'schema' => ['description' => 'The job ID. To query a transcode task by its task ID, see [GetTranscodeTask](https://help.aliyun.com/zh/vod/developer-reference/api-vod-2017-03-21-gettranscodetask).', 'type' => 'string', 'required' => true, 'example' => '5c9dff***************59d50a967f5', 'title' => ''],
],
[
'name' => 'JobType',
'in' => 'query',
'schema' => ['description' => 'The job type. Valid values are:'."\n"
."\n"
.'- transcode'."\n"
."\n"
.'- snapshot'."\n"
."\n"
.'- ai'."\n"
."\n"
.'- workflow', 'type' => 'string', 'required' => true, 'example' => 'transcode', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'title' => 'Schema of Response',
'description' => 'The response schema.',
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '6708D849-F109-1A6C-AC91-************'],
'JobType' => ['description' => 'The job type.', 'type' => 'string', 'example' => 'transcode', 'title' => ''],
'TranscodeJobDetail' => [
'description' => 'Details of the transcode job. This parameter is returned only if `JobType` is `transcode`.',
'type' => 'object',
'properties' => [
'JobId' => ['description' => 'The job ID.', 'type' => 'string', 'example' => '2dc1634e**********3f1d22d1a0174e', 'title' => ''],
'UserId' => ['description' => 'The ID of the user who initiated the job.', 'type' => 'integer', 'format' => 'int64', 'example' => '139109*****84930', 'title' => ''],
'VideoId' => ['description' => 'The media asset ID.', 'type' => 'string', 'example' => '30e5d7**********bd900764de7c0102', 'title' => ''],
'Status' => ['description' => 'The job status. Valid values:'."\n"
."\n"
.'- `Submitted`: The job has been submitted.'."\n"
."\n"
.'- `Transcoding`: The job is in progress.'."\n"
."\n"
.'- `TranscodeSuccess`: The job completed successfully.'."\n"
."\n"
.'- `TranscodeFail`: The job failed.'."\n"
."\n"
.'- `TranscodeCancelled`: The job has been canceled.', 'type' => 'string', 'example' => 'TranscodeSuccess', 'title' => ''],
'TemplateId' => ['description' => 'The template ID.', 'type' => 'string', 'example' => 'dbfaaec9e**********bf0b81219244c', 'title' => ''],
'Definition' => ['description' => 'The definition.', 'type' => 'string', 'example' => 'HD', 'title' => ''],
'CreateTime' => ['description' => 'The time when the job was created, in UTC and formatted as `YYYY-MM-DDTHH:MM:SSZ`.', 'type' => 'string', 'example' => '2024-10-14T07:39:25Z', 'title' => ''],
'CompleteTime' => ['description' => 'The time when the job was completed, in UTC and formatted as `YYYY-MM-DDTHH:MM:SSZ`.', 'type' => 'string', 'example' => '2024-10-14T07:39:34Z', 'title' => ''],
],
'title' => '',
'example' => '',
],
'SnapshotJobDetail' => [
'description' => 'Details of the snapshot job. This parameter is returned only if `JobType` is `snapshot`.',
'type' => 'object',
'properties' => [
'JobId' => ['description' => 'The job ID.', 'type' => 'string', 'example' => '63df12s0**********4hdq249t82kr91', 'title' => ''],
'UserId' => ['description' => 'The ID of the user who initiated the job.', 'type' => 'integer', 'format' => 'int64', 'example' => '139109*****84930', 'title' => ''],
'VideoId' => ['description' => 'The media asset ID.', 'type' => 'string', 'example' => '30e5d7**********bd900764de7c0102', 'title' => ''],
'Status' => ['description' => 'The job status. Valid values:'."\n"
."\n"
.'- `Processing`: The job is in progress.'."\n"
."\n"
.'- `Fail`: The job failed.'."\n"
."\n"
.'- `Success`: The job completed successfully.', 'type' => 'string', 'example' => 'Success', 'title' => ''],
'Trigger' => ['description' => 'The trigger. Valid values:'."\n"
."\n"
.'- `Auto`: The job was automatically triggered by a workflow.'."\n"
."\n"
.'- `Manual`: The job was submitted manually.', 'type' => 'string', 'example' => 'Auto', 'title' => ''],
'NormalConfig' => ['description' => 'The configuration for regular snapshots.', 'type' => 'string', 'example' => '{"inl":0,"num":32,"tm":5,"wd":"352","ft":"normal","hg":"640"}', 'title' => ''],
'SpriteConfig' => ['description' => 'The configuration for sprites.', 'type' => 'string', 'example' => '{"pad":"0","lines":"10","mgin":"0","cols":"10","ikcp":"false","hg":"68"}', 'title' => ''],
'CreateTime' => ['description' => 'The time when the job was created, in UTC and formatted as `YYYY-MM-DDTHH:MM:SSZ`.', 'type' => 'string', 'example' => '2024-10-14T07:39:25Z', 'title' => ''],
'CompleteTime' => ['description' => 'The time when the job was completed, in UTC and formatted as `YYYY-MM-DDTHH:MM:SSZ`.', 'type' => 'string', 'example' => '2024-10-14T07:39:45Z', 'title' => ''],
],
'title' => '',
'example' => '',
],
'AIJobDetail' => [
'description' => 'Details of the AI job. This parameter is returned only if `JobType` is `ai`.',
'type' => 'object',
'properties' => [
'JobId' => ['description' => 'The job ID.', 'type' => 'string', 'example' => '5c9dff751ba**********59d50a967f5', 'title' => ''],
'UserId' => ['description' => 'The ID of the user who initiated the job.', 'type' => 'integer', 'format' => 'int64', 'example' => '139109*****84930'."\n", 'title' => ''],
'MediaId' => ['description' => 'The media asset ID.', 'type' => 'string', 'example' => '30e5d7**********bd900764de7c0102', 'title' => ''],
'JobType' => ['description' => 'The type of the AI job.', 'type' => 'string', 'example' => 'AIVideoCensor', 'title' => ''],
'Status' => ['description' => 'The job status. Valid values:'."\n"
."\n"
.'- `reserved`: The job has been submitted.'."\n"
."\n"
.'- `init`: The job has started.'."\n"
."\n"
.'- `success`: The job completed successfully.'."\n"
."\n"
.'- `fail`: The job failed.'."\n"
."\n"
.'- `processing`: The job is in progress.'."\n"
."\n"
.'- `analyzing`: The job is being analyzed.', 'type' => 'string', 'example' => 'success', 'title' => ''],
'Trigger' => ['description' => 'The trigger. Valid values:'."\n"
."\n"
.'- `Auto`: The job was automatically triggered by a workflow.'."\n"
."\n"
.'- `Manual`: The job was submitted manually.', 'type' => 'string', 'example' => 'Auto', 'title' => ''],
'TemplateConfig' => ['description' => 'The template configuration.', 'type' => 'string', 'example' => '{"AuditRange":["video","image-cover","text-title"],"AuditContent":["screen"],"AuditItem":["terrorism","porn"],"AuditAutoBlock":"no"}', 'title' => ''],
'CreateTime' => ['description' => 'The time when the job was created, in UTC and formatted as `YYYY-MM-DDTHH:MM:SSZ`.', 'type' => 'string', 'example' => '2024-10-14T07:39:25Z', 'title' => ''],
'CompleteTime' => ['description' => 'The time when the job was completed, in UTC and formatted as `YYYY-MM-DDTHH:MM:SSZ`.', 'type' => 'string', 'example' => '2024-10-14T07:39:46Z'."\n", 'title' => ''],
],
'title' => '',
'example' => '',
],
'WorkflowTaskDetail' => [
'type' => 'object',
'properties' => [
'TaskId' => ['description' => 'The task ID.', 'type' => 'string', 'example' => '46ecc024******92c8e26237e51', 'title' => ''],
'Status' => ['description' => 'The task status. Valid values:'."\n"
."\n"
.'- `Init`: The task has started.'."\n"
."\n"
.'- `Processing`: The task is in progress.'."\n"
."\n"
.'- `Succeed`: The task succeeded.'."\n"
."\n"
.'- `Failed`: The task failed.'."\n"
."\n"
.'- `Canceled`: The task was canceled.'."\n"
."\n"
.'- `Skip`: The task was skipped.', 'type' => 'string', 'example' => 'Succeed', 'title' => ''],
'TaskInput' => ['description' => 'The media asset information.', 'type' => 'string', 'example' => '{\\"Type\\":\\"Media\\",\\"Media\\":\\"00f985a50ae371f0ad1c4106e0ea0102\\",\\"Title\\":\\"2.mp4\\",\\"StorageLocation\\":\\"yiming-pre.oss-cn-shanghai.aliyuncs.com\\"}', 'title' => ''],
'CreateTime' => ['description' => 'The time when the task was created, in UTC and formatted as `YYYY-MM-DDTHH:MM:SSZ`.', 'type' => 'string', 'example' => '2025-03-27T08:15:46Z', 'title' => ''],
'FinishTime' => ['description' => 'The time when the task finished, in UTC and formatted as `YYYY-MM-DDTHH:MM:SSZ`.', 'type' => 'string', 'example' => '2025-03-27T08:20:19Z', 'title' => ''],
'ActivityResults' => ['description' => 'The processing results of each node in the workflow, in JSON format.', 'type' => 'string', 'example' => '{\\"VodSnapshot_123\\":{\\"ActivityId\\":\\"VodSnapshot\\",\\"ActivityInstanceId\\":\\"c8cf62d53bef4e04bf703976bae6d0b9\\",\\"EndTime\\":\\"2025-03-27T08:15:51Z\\",\\"Result\\":\\"{\\\\\\"RequestId\\\\\\":\\\\\\"8B3649AF-5A6B-1099-BEB6-164D81067398\\\\\\",\\\\\\"EventType\\\\\\":\\\\\\"SnapshotComplete\\\\\\",\\\\\\"UserId\\\\\\":1797131669910763,\\\\\\"MessageBody\\\\\\":{\\\\\\"Status\\\\\\":\\\\\\"success\\\\\\",\\\\\\"VideoId\\\\\\":\\\\\\"00f985a50ae371f0ad1c4106e0ea0102\\\\\\",\\\\\\"EventType\\\\\\":\\\\\\"SnapshotComplete\\\\\\",\\\\\\"EventTime\\\\\\":\\\\\\"2025-03-27T08:15:50Z\\\\\\",\\\\\\"TriggerSource\\\\\\":\\\\\\"{\\\\\\\\\\\\\\"ActivityInstanceId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"c8cf62d53bef4e04bf703976bae6d0b9\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"BizType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"ice-workflow\\\\\\\\\\\\\\"}\\\\\\"}}\\",\\"StartTime\\":\\"2025-03-27T08:15:47Z\\",\\"Status\\":\\"Succeed\\"},\\"Translate_zh_en\\":{\\"ActivityId\\":\\"VodTranslation\\",\\"ActivityInstanceId\\":\\"c043a872bb044763a3d293a5c2458b50\\",\\"EndTime\\":\\"2025-03-27T08:20:19Z\\",\\"Result\\":\\"{\\\\\\"Type\\\\\\":\\\\\\"VideoTranslationAll\\\\\\",\\\\\\"Success\\\\\\":false}\\",\\"StartTime\\":\\"2025-03-27T08:15:46Z\\",\\"Status\\":\\"Failed\\"},\\"Act_Start\\":{\\"ActivityId\\":\\"start\\",\\"ActivityInstanceId\\":\\"8a9402f4ff064084bf496707fb2d664a\\",\\"Result\\":\\"{\\\\\\"Type\\\\\\":\\\\\\"Media\\\\\\",\\\\\\"bizType\\\\\\":6,\\\\\\"Media\\\\\\":\\\\\\"00f985a50ae371f0ad1c4106e0ea0102\\\\\\",\\\\\\"Title\\\\\\":\\\\\\"2.mp4\\\\\\",\\\\\\"taskInput\\\\\\":\\\\\\"{\\\\\\\\\\\\\\"Type\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"Media\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Media\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"00f985a50ae371f0ad1c4106e0ea0102\\\\\\\\\\\\\\"}\\\\\\",\\\\\\"userTaskInput\\\\\\":\\\\\\"{\\\\\\\\\\\\\\"Type\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"Media\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Media\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"00f985a50ae371f0ad1c4106e0ea0102\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Title\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"2.mp4\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"StorageLocation\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"yiming-pre.oss-cn-shanghai.aliyuncs.com\\\\\\\\\\\\\\"}\\\\\\",\\\\\\"StorageLocation\\\\\\":\\\\\\"yiming-pre.oss-cn-shanghai.aliyuncs.com\\\\\\",\\\\\\"callerUid\\\\\\":1797131669910763,\\\\\\"CUR_NODE_NAME\\\\\\":\\\\\\"Act_Start\\\\\\"}\\",\\"StartTime\\":\\"2025-03-27T08:15:45Z\\",\\"Status\\":\\"Succeed\\"},\\"VodDynamicImage_123\\":{\\"ActivityId\\":\\"VodDynamicImage\\",\\"ActivityInstanceId\\":\\"26e8dab82ab84110b1150f146caf633c\\",\\"EndTime\\":\\"2025-03-27T08:15:55Z\\",\\"Result\\":\\"{\\\\\\"RequestId\\\\\\":\\\\\\"7120B5D5-430F-14AD-8922-577F072DDD64\\\\\\",\\\\\\"EventType\\\\\\":\\\\\\"DynamicImageComplete\\\\\\",\\\\\\"UserId\\\\\\":1797131669910763,\\\\\\"MessageBody\\\\\\":{\\\\\\"Status\\\\\\":\\\\\\"success\\\\\\",\\\\\\"VideoId\\\\\\":\\\\\\"00f985a50ae371f0ad1c4106e0ea0102\\\\\\",\\\\\\"EventType\\\\\\":\\\\\\"DynamicImageComplete\\\\\\",\\\\\\"EventTime\\\\\\":\\\\\\"2025-03-27T08:15:52Z\\\\\\",\\\\\\"TriggerSource\\\\\\":\\\\\\"{\\\\\\\\\\\\\\"ActivityInstanceId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"26e8dab82ab84110b1150f146caf633c\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"BizType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"ice-workflow\\\\\\\\\\\\\\"}\\\\\\"}}\\",\\"StartTime\\":\\"2025-03-27T08:15:47Z\\",\\"Status\\":\\"Succeed\\"}}', 'title' => ''],
'UserData' => ['description' => 'The user data. This is a JSON string that supports settings such as message callbacks and upload acceleration.', 'type' => 'string', 'example' => '{"MessageCallback":{"CallbackURL":"http://example.aliyundoc.com"},"Extend":{"localId":"*****","test":"www"}}', 'title' => ''],
'Workflow' => [
'type' => 'object',
'properties' => [
'WorkflowId' => ['description' => 'The workflow ID.', 'type' => 'string', 'example' => 'vw_09d6*****b5c5b19a0c891e02', 'title' => ''],
'Name' => ['description' => 'The name of the workflow.', 'type' => 'string', 'example' => 'All_Activity_New_1_app-1000000', 'title' => ''],
'Status' => ['description' => 'The workflow status. Valid values:'."\n"
."\n"
.'- `Active`: The workflow is active.'."\n"
."\n"
.'- `Inactive`: The workflow is inactive.'."\n"
."\n"
.'- `Deleted`: The workflow has been deleted.', 'type' => 'string', 'example' => 'Active', 'title' => ''],
'Type' => ['description' => 'The workflow type. By default, this parameter is not populated.', 'type' => 'string', 'title' => '', 'example' => ''],
'CreateTime' => ['description' => 'The time when the workflow was created, in UTC and formatted as `YYYY-MM-DDTHH:MM:SSZ`.', 'type' => 'string', 'example' => '2025-03-26T05:50:14Z', 'title' => ''],
'ModifiedTime' => ['description' => 'The time when the workflow was last modified, in UTC and formatted as `YYYY-MM-DDTHH:MM:SSZ`.', 'type' => 'string', 'example' => '2025-03-26T07:51:55Z', 'title' => ''],
'AppId' => ['description' => 'The application ID.', 'type' => 'string', 'example' => 'app-1000000', 'title' => ''],
],
'description' => 'Details of the workflow.',
'title' => '',
'example' => '',
],
],
'description' => 'Details of the workflow task. This parameter is returned only if `JobType` is `workflow`.',
'title' => '',
'example' => '',
],
],
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6708D849-F109-1A6C-AC91-************\\",\\n \\"JobType\\": \\"transcode\\",\\n \\"TranscodeJobDetail\\": {\\n \\"JobId\\": \\"2dc1634e**********3f1d22d1a0174e\\",\\n \\"UserId\\": 0,\\n \\"VideoId\\": \\"30e5d7**********bd900764de7c0102\\",\\n \\"Status\\": \\"TranscodeSuccess\\",\\n \\"TemplateId\\": \\"dbfaaec9e**********bf0b81219244c\\",\\n \\"Definition\\": \\"HD\\",\\n \\"CreateTime\\": \\"2024-10-14T07:39:25Z\\",\\n \\"CompleteTime\\": \\"2024-10-14T07:39:34Z\\"\\n },\\n \\"SnapshotJobDetail\\": {\\n \\"JobId\\": \\"63df12s0**********4hdq249t82kr91\\",\\n \\"UserId\\": 0,\\n \\"VideoId\\": \\"30e5d7**********bd900764de7c0102\\",\\n \\"Status\\": \\"Success\\",\\n \\"Trigger\\": \\"Auto\\",\\n \\"NormalConfig\\": \\"{\\\\\\"inl\\\\\\":0,\\\\\\"num\\\\\\":32,\\\\\\"tm\\\\\\":5,\\\\\\"wd\\\\\\":\\\\\\"352\\\\\\",\\\\\\"ft\\\\\\":\\\\\\"normal\\\\\\",\\\\\\"hg\\\\\\":\\\\\\"640\\\\\\"}\\",\\n \\"SpriteConfig\\": \\"{\\\\\\"pad\\\\\\":\\\\\\"0\\\\\\",\\\\\\"lines\\\\\\":\\\\\\"10\\\\\\",\\\\\\"mgin\\\\\\":\\\\\\"0\\\\\\",\\\\\\"cols\\\\\\":\\\\\\"10\\\\\\",\\\\\\"ikcp\\\\\\":\\\\\\"false\\\\\\",\\\\\\"hg\\\\\\":\\\\\\"68\\\\\\"}\\",\\n \\"CreateTime\\": \\"2024-10-14T07:39:25Z\\",\\n \\"CompleteTime\\": \\"2024-10-14T07:39:45Z\\"\\n },\\n \\"AIJobDetail\\": {\\n \\"JobId\\": \\"5c9dff751ba**********59d50a967f5\\",\\n \\"UserId\\": 0,\\n \\"MediaId\\": \\"30e5d7**********bd900764de7c0102\\",\\n \\"JobType\\": \\"AIVideoCensor\\",\\n \\"Status\\": \\"success\\",\\n \\"Trigger\\": \\"Auto\\",\\n \\"TemplateConfig\\": \\"{\\\\\\"AuditRange\\\\\\":[\\\\\\"video\\\\\\",\\\\\\"image-cover\\\\\\",\\\\\\"text-title\\\\\\"],\\\\\\"AuditContent\\\\\\":[\\\\\\"screen\\\\\\"],\\\\\\"AuditItem\\\\\\":[\\\\\\"terrorism\\\\\\",\\\\\\"porn\\\\\\"],\\\\\\"AuditAutoBlock\\\\\\":\\\\\\"no\\\\\\"}\\",\\n \\"CreateTime\\": \\"2024-10-14T07:39:25Z\\",\\n \\"CompleteTime\\": \\"2024-10-14T07:39:46Z\\\\n\\"\\n },\\n \\"WorkflowTaskDetail\\": {\\n \\"TaskId\\": \\"46ecc024******92c8e26237e51\\",\\n \\"Status\\": \\"Succeed\\",\\n \\"TaskInput\\": \\"{\\\\\\\\\\\\\\"Type\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"Media\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Media\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"00f985a50ae371f0ad1c4106e0ea0102\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Title\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"2.mp4\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"StorageLocation\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"yiming-pre.oss-cn-shanghai.aliyuncs.com\\\\\\\\\\\\\\"}\\",\\n \\"CreateTime\\": \\"2025-03-27T08:15:46Z\\",\\n \\"FinishTime\\": \\"2025-03-27T08:20:19Z\\",\\n \\"ActivityResults\\": \\"{\\\\\\\\\\\\\\"VodSnapshot_123\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"ActivityId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"VodSnapshot\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"ActivityInstanceId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"c8cf62d53bef4e04bf703976bae6d0b9\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"EndTime\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"2025-03-27T08:15:51Z\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Result\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"{\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"RequestId\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"8B3649AF-5A6B-1099-BEB6-164D81067398\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"EventType\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"SnapshotComplete\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"UserId\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":1797131669910763,\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"MessageBody\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"Status\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"success\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"VideoId\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"00f985a50ae371f0ad1c4106e0ea0102\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"EventType\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"SnapshotComplete\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"EventTime\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"2025-03-27T08:15:50Z\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"TriggerSource\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"{\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"ActivityInstanceId\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"c8cf62d53bef4e04bf703976bae6d0b9\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"BizType\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"ice-workflow\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"}\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"}}\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"StartTime\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"2025-03-27T08:15:47Z\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Status\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"Succeed\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"Translate_zh_en\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"ActivityId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"VodTranslation\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"ActivityInstanceId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"c043a872bb044763a3d293a5c2458b50\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"EndTime\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"2025-03-27T08:20:19Z\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Result\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"{\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"Type\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"VideoTranslationAll\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"Success\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":false}\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"StartTime\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"2025-03-27T08:15:46Z\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Status\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"Failed\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"Act_Start\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"ActivityId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"start\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"ActivityInstanceId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"8a9402f4ff064084bf496707fb2d664a\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Result\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"{\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"Type\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"Media\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"bizType\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":6,\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"Media\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"00f985a50ae371f0ad1c4106e0ea0102\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"Title\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"2.mp4\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"taskInput\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"{\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"Type\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"Media\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"Media\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"00f985a50ae371f0ad1c4106e0ea0102\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"}\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"userTaskInput\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"{\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"Type\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"Media\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"Media\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"00f985a50ae371f0ad1c4106e0ea0102\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"Title\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"2.mp4\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"StorageLocation\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"yiming-pre.oss-cn-shanghai.aliyuncs.com\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"}\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"StorageLocation\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"yiming-pre.oss-cn-shanghai.aliyuncs.com\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"callerUid\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":1797131669910763,\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"CUR_NODE_NAME\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"Act_Start\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"}\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"StartTime\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"2025-03-27T08:15:45Z\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Status\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"Succeed\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"VodDynamicImage_123\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"ActivityId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"VodDynamicImage\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"ActivityInstanceId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"26e8dab82ab84110b1150f146caf633c\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"EndTime\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"2025-03-27T08:15:55Z\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Result\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"{\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"RequestId\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"7120B5D5-430F-14AD-8922-577F072DDD64\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"EventType\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"DynamicImageComplete\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"UserId\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":1797131669910763,\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"MessageBody\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"Status\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"success\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"VideoId\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"00f985a50ae371f0ad1c4106e0ea0102\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"EventType\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"DynamicImageComplete\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"EventTime\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"2025-03-27T08:15:52Z\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"TriggerSource\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"{\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"ActivityInstanceId\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"26e8dab82ab84110b1150f146caf633c\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"BizType\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"ice-workflow\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"}\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"}}\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"StartTime\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"2025-03-27T08:15:47Z\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Status\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"Succeed\\\\\\\\\\\\\\"}}\\",\\n \\"UserData\\": \\"{\\\\\\"MessageCallback\\\\\\":{\\\\\\"CallbackURL\\\\\\":\\\\\\"http://example.aliyundoc.com\\\\\\"},\\\\\\"Extend\\\\\\":{\\\\\\"localId\\\\\\":\\\\\\"*****\\\\\\",\\\\\\"test\\\\\\":\\\\\\"www\\\\\\"}}\\",\\n \\"Workflow\\": {\\n \\"WorkflowId\\": \\"vw_09d6*****b5c5b19a0c891e02\\",\\n \\"Name\\": \\"All_Activity_New_1_app-1000000\\",\\n \\"Status\\": \\"Active\\",\\n \\"Type\\": \\"\\",\\n \\"CreateTime\\": \\"2025-03-26T05:50:14Z\\",\\n \\"ModifiedTime\\": \\"2025-03-26T07:51:55Z\\",\\n \\"AppId\\": \\"app-1000000\\"\\n }\\n }\\n}","type":"json"}]',
'title' => 'GetJobDetail',
'description' => '**Usage notes**'."\n"
."\n"
.'This API retrieves data about asynchronous tasks created within the last 6 months. Supported task types include transcoding tasks, screenshot tasks, AI tasks, and workflow tasks.'."\n"
."\n"
.'**QPS limit**'."\n"
."\n"
.'The single user QPS limit for this API is 15 calls per second. Exceeding this limit throttles subsequent API calls, which may impact your business. Please call the API at a reasonable rate. For more information, see [QPS limit](~~342790~~).',
'changeSet' => [
['createdAt' => '2025-07-10T08:32:38.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetJobDetail'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetJobDetail',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'GetMediaAuditAudioResultDetail' => [
'summary' => 'You can call this operation to retrieve the details of an audio audit.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39958',
'abilityTreeNodes' => ['FEATUREvodW76Z9M'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'MediaId',
'in' => 'query',
'schema' => ['description' => 'The audio ID. You can query the audio ID in the video-on-demand console or obtain the audio ID from the response to a call of the [SearchMedia](~~86044~~) operation.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'title' => '', 'example' => '93ab850b4f6f*****54b6e91d24d81d4'],
],
[
'name' => 'PageNo',
'in' => 'query',
'schema' => ['description' => 'The page number. This parameter is optional. If you leave this parameter empty, all results are returned without paging.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'docRequired' => false, 'title' => '', 'example' => '1'],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The data returned.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'CB7D7232-1AB2-40FE-B8D3-****'],
'MediaAuditAudioResultDetail' => [
'description' => 'The audit result.',
'type' => 'object',
'properties' => [
'Total' => ['description' => 'The total number of pages.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '10'],
'PageTotal' => ['description' => 'The current page number.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '1'],
'List' => [
'description' => 'The list of results.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'EndTime' => ['description' => 'The end time of the problematic audio segment. Unit: seconds.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '10'],
'StartTime' => ['description' => 'The start time of the problematic audio segment. Unit: seconds.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '8'],
'Text' => ['description' => 'The text content that corresponds to the audio.', 'type' => 'string', 'title' => '', 'example' => 'Tiananmen'],
'Label' => ['description' => 'The category of the audio audit result. Valid values:'."\n"
."\n"
.'- **normal**: Normal.'."\n"
.'- **spam**: spam.'."\n"
.'- **ad**: ad.'."\n"
.'- **politics**: political content.'."\n"
.'- **terrorism**: terrorism.'."\n"
.'- **abuse**: abuse.'."\n"
.'- **porn**: pornographic content.'."\n"
.'- **flood**: meaningless content.'."\n"
.'- **contraband**: contraband.'."\n"
.'- **meaningless**: meaningless.', 'type' => 'string', 'title' => '', 'example' => 'abuse'],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CB7D7232-1AB2-40FE-B8D3-****\\",\\n \\"MediaAuditAudioResultDetail\\": {\\n \\"Total\\": 10,\\n \\"PageTotal\\": 1,\\n \\"List\\": [\\n {\\n \\"EndTime\\": 10,\\n \\"StartTime\\": 8,\\n \\"Text\\": \\"Tiananmen\\",\\n \\"Label\\": \\"abuse\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
'title' => 'GetMediaAuditAudioResultDetail',
'description' => '### Usage notes'."\n"
."\n"
.''."\n"
."\n"
.'After the automated review is complete, if you have configured event notifications for [Automated review complete](~~89576~~), a message callback is sent to the specified URL. You can then call this operation to query the details of the audio audit result.'."\n"
."\n"
.''."\n"
."\n"
.''."\n"
."\n"
.'- This operation is supported only in the Singapore region.'."\n"
.'- After the automated review is complete, if you have configured event notifications for [Automated review complete](~~89576~~), a message callback is sent to the specified URL. You can then call this operation to query the details of the audio audit result.'."\n"
."\n"
.'',
'changeSet' => [
['createdAt' => '2025-07-10T08:31:41.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetMediaAuditAudioResultDetail'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetMediaAuditAudioResultDetail',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'extraInfo' => ' ',
'translator' => 'machine',
],
'GetMediaAuditResult' => [
'summary' => 'Queries the summary of automated review results.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39959',
'abilityTreeNodes' => ['FEATUREvodW76Z9M'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'MediaId',
'in' => 'query',
'schema' => ['description' => 'The ID of the video or image.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '93ab850b4f6f*****54b6e91d24d81d4', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => '',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'CB7D7232-1AB2-40FE-B8D5-****', 'title' => ''],
'MediaAuditResult' => [
'description' => 'The review results.',
'type' => 'object',
'properties' => [
'Suggestion' => ['description' => 'The recommendation for review results. Valid values:'."\n"
."\n"
.'- **block**'."\n"
."\n"
.'- **review**'."\n"
."\n"
.'- **pass**', 'type' => 'string', 'example' => 'pass', 'title' => ''],
'AbnormalModules' => ['description' => 'The content that violates the regulations. Separate multiple values with commas (,). Valid values:'."\n"
."\n"
.'- **video**'."\n"
."\n"
.'- **image-cover**'."\n"
."\n"
.'- **text-title**', 'type' => 'string', 'example' => 'video', 'title' => ''],
'Label' => ['description' => 'The category of the review result. Separate multiple values with commas (,). Valid values:'."\n"
."\n"
.'- **porn**'."\n"
."\n"
.'- **terrorism**'."\n"
."\n"
.'- **normal**', 'type' => 'string', 'example' => 'porn', 'title' => ''],
'AudioResult' => [
'description' => 'The results of audio review.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Score' => ['description' => 'The score.', 'type' => 'string', 'example' => '99.91', 'title' => ''],
'Suggestion' => ['description' => 'The recommendation for review results. Valid values:'."\n"
."\n"
.'- **block**'."\n"
."\n"
.'- **review**'."\n"
."\n"
.'- **pass**', 'type' => 'string', 'example' => 'pass', 'title' => ''],
'Label' => ['description' => 'The category of the review result.'."\n"
."\n"
.'- **normal**'."\n"
."\n"
.'- **spam**'."\n"
."\n"
.'- **ad**'."\n"
."\n"
.'- **politics**'."\n"
."\n"
.'- **terrorism**'."\n"
."\n"
.'- **abuse**'."\n"
."\n"
.'- **porn**'."\n"
."\n"
.'- **flood**'."\n"
."\n"
.'- **contraband**'."\n"
."\n"
.'- **meaningless**', 'type' => 'string', 'example' => 'normal', 'title' => ''],
'Scene' => ['description' => 'The review scenario. The value is **antispam**.', 'type' => 'string', 'example' => 'antispam', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'ImageResult' => [
'description' => 'The results of image review.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Type' => ['description' => 'The type of the image. The value is **cover**.', 'type' => 'string', 'example' => 'cover', 'title' => ''],
'Url' => ['description' => 'The URL of the image.', 'type' => 'string', 'example' => 'http://www.test.com/****.jpg', 'title' => ''],
'Suggestion' => ['description' => 'The recommendation for review results. Valid values:'."\n"
."\n"
.'- **block**'."\n"
."\n"
.'- **review**'."\n"
."\n"
.'- **pass**', 'type' => 'string', 'example' => 'pass', 'title' => ''],
'Label' => ['description' => 'The category of the review result. Separate multiple values with commas (,). Valid values:'."\n"
."\n"
.'- **porn**'."\n"
."\n"
.'- **terrorism**'."\n"
."\n"
.'- **normal**', 'type' => 'string', 'example' => 'porn', 'title' => ''],
'Result' => [
'description' => 'Details of image review results.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Score' => ['description' => 'The score of the image of the category that is indicated by Label.', 'type' => 'string', 'example' => '100.00000', 'title' => ''],
'Suggestion' => ['description' => 'The recommendation for review results. Valid values:'."\n"
."\n"
.'- **block**'."\n"
."\n"
.'- **review**'."\n"
."\n"
.'- **pass**', 'type' => 'string', 'example' => 'pass', 'title' => ''],
'Label' => ['description' => 'The category of the review result.'."\n"
."\n"
.'Valid values if scene is **porn**:'."\n"
."\n"
.'- **porn**'."\n"
."\n"
.'- **sexy**'."\n"
."\n"
.'- **normal**'."\n"
."\n"
.'Valid values if scene is **terrorism**:'."\n"
."\n"
.'- **normal**'."\n"
."\n"
.'- **bloody**'."\n"
."\n"
.'- **explosion**'."\n"
."\n"
.'- **outfit**'."\n"
."\n"
.'- **logo**'."\n"
."\n"
.'- **weapon**'."\n"
."\n"
.'- **politics**'."\n"
."\n"
.'- **violence**'."\n"
."\n"
.'- **crowd**'."\n"
."\n"
.'- **parade**'."\n"
."\n"
.'- **carcrash**'."\n"
."\n"
.'- **flag**'."\n"
."\n"
.'- **location**'."\n"
."\n"
.'- **others**', 'type' => 'string', 'example' => 'porn', 'title' => ''],
'Scene' => ['description' => 'The review scenario. Valid values:'."\n"
."\n"
.'- **terrorism**'."\n"
."\n"
.'- **porn**', 'type' => 'string', 'example' => 'porn', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'TextResult' => [
'description' => 'The results of text review.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Type' => ['description' => 'The type of the text. The value is **title**.', 'type' => 'string', 'example' => 'title', 'title' => ''],
'Suggestion' => ['description' => 'The recommendation for review results. Valid values:'."\n"
."\n"
.'- **block**'."\n"
."\n"
.'- **review**'."\n"
."\n"
.'- **pass**', 'type' => 'string', 'example' => 'pass', 'title' => ''],
'Score' => ['description' => 'The score of the image of the category that is indicated by Label.', 'type' => 'string', 'example' => '100.00000', 'title' => ''],
'Label' => ['description' => 'The category of the review result. Valid values:'."\n"
."\n"
.'- **spam**'."\n"
."\n"
.'- **ad**'."\n"
."\n"
.'- **abuse**'."\n"
."\n"
.'- **flood**'."\n"
."\n"
.'- **contraband**'."\n"
."\n"
.'- **meaningless**'."\n"
."\n"
.'- **normal**', 'type' => 'string', 'example' => 'ad', 'title' => ''],
'Content' => ['description' => 'The text content for review.', 'type' => 'string', 'example' => 'Hotline 123****', 'title' => ''],
'Scene' => ['description' => 'The review scenario. The value is **antispam**.', 'type' => 'string', 'example' => 'antispam', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'VideoResult' => [
'description' => 'The results of video review.',
'type' => 'object',
'properties' => [
'Label' => ['description' => 'The category of the review result. Separate multiple values with commas (,). Valid values:'."\n"
."\n"
.'- **porn**'."\n"
."\n"
.'- **terrorism**'."\n"
."\n"
.'- **normal**', 'type' => 'string', 'example' => 'porn', 'title' => ''],
'Suggestion' => ['description' => 'The recommendation for review results. Valid values:'."\n"
."\n"
.'- **block**'."\n"
."\n"
.'- **review**'."\n"
."\n"
.'- **pass**', 'type' => 'string', 'example' => 'pass', 'title' => ''],
'PornResult' => [
'description' => 'The results of pornographic content review.',
'type' => 'object',
'properties' => [
'Suggestion' => ['description' => 'The recommendation for review results.', 'type' => 'string', 'example' => 'pass', 'title' => ''],
'AverageScore' => ['description' => 'The average score of the review results.', 'type' => 'string', 'example' => '100', 'title' => ''],
'Label' => ['description' => 'The category of the review result. Valid values:'."\n"
."\n"
.'- **porn**'."\n"
."\n"
.'- **sexy**'."\n"
."\n"
.'- **normal**', 'type' => 'string', 'example' => 'porn', 'title' => ''],
'MaxScore' => ['description' => 'The highest review score.', 'type' => 'string', 'example' => '100', 'title' => ''],
'CounterList' => [
'description' => 'The statistics about tag frames.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Label' => ['description' => 'The category of the review result. Valid values:'."\n"
."\n"
.'- **porn**'."\n"
."\n"
.'- **sexy**'."\n"
."\n"
.'- **normal**', 'type' => 'string', 'example' => 'porn', 'title' => ''],
'Count' => ['description' => 'The number of frames.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'TopList' => [
'description' => 'The information about the image with the highest score of the category that is indicated by Label.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Url' => ['description' => 'The URL of the image.', 'type' => 'string', 'example' => 'http://temp-testbucket.oss-cn-shanghai.aliyuncs.com/aivideocensor/****.jpg', 'title' => ''],
'Score' => ['description' => 'The score of the image of the category that is indicated by Label.', 'type' => 'string', 'example' => '100.0000', 'title' => ''],
'Timestamp' => ['description' => 'The position in the video. Unit: milliseconds.', 'type' => 'string', 'example' => '3005', 'title' => ''],
'Label' => ['description' => 'The category of the review result. Valid values:'."\n"
."\n"
.'- **porn**'."\n"
."\n"
.'- **sexy**'."\n"
."\n"
.'- **normal**', 'type' => 'string', 'example' => 'porn', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'AdResult' => [
'description' => 'The results of ad review.',
'type' => 'object',
'properties' => [
'Suggestion' => ['description' => 'The recommendation for review results. Valid values:'."\n"
."\n"
.'- **block**'."\n"
."\n"
.'- **review**'."\n"
."\n"
.'- **pass**', 'type' => 'string', 'example' => 'block', 'title' => ''],
'AverageScore' => ['description' => 'The average score of the review results.', 'type' => 'string', 'example' => '100', 'title' => ''],
'Label' => ['description' => 'The category of the review result. Valid values:'."\n"
."\n"
.'- **ad**'."\n"
."\n"
.'- **normal**', 'type' => 'string', 'example' => 'ad', 'title' => ''],
'MaxScore' => ['description' => 'The highest review score.', 'type' => 'string', 'example' => '100', 'title' => ''],
'CounterList' => [
'description' => 'The statistics about tag frames.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Label' => ['description' => 'The category of the review result. Valid values:'."\n"
."\n"
.'- **ad**'."\n"
."\n"
.'- **normal**', 'type' => 'string', 'example' => 'ad', 'title' => ''],
'Count' => ['description' => 'The number of frames.', 'type' => 'integer', 'format' => 'int32', 'example' => '12', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'TopList' => [
'description' => 'The information about the image with the highest score of the category that is indicated by Label.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Url' => ['description' => 'The URL of the image.', 'type' => 'string', 'example' => 'http://temp-testbucket.oss-cn-shanghai.aliyuncs.com/aivideocensor/****.jpg', 'title' => ''],
'Score' => ['description' => 'The score of the image of the category that is indicated by Label.', 'type' => 'string', 'example' => '100', 'title' => ''],
'Timestamp' => ['description' => 'The position in the video. Unit: milliseconds.', 'type' => 'string', 'example' => '10', 'title' => ''],
'Label' => ['description' => 'The category of the review result.'."\n"
."\n"
.'- **ad**'."\n"
."\n"
.'- **normal**', 'type' => 'string', 'example' => 'ad', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'LogoResult' => [
'description' => 'The results of logo review.',
'type' => 'object',
'properties' => [
'Suggestion' => ['description' => 'The recommendation for review results. Valid values:'."\n"
."\n"
.'- **block**'."\n"
."\n"
.'- **review**'."\n"
."\n"
.'- **pass**', 'type' => 'string', 'example' => 'block', 'title' => ''],
'AverageScore' => ['description' => 'The average score of the review results.', 'type' => 'string', 'example' => '100', 'title' => ''],
'Label' => ['description' => 'The category of the review result. Valid values:'."\n"
."\n"
.'- **logo**'."\n"
."\n"
.'- **normal**', 'type' => 'string', 'example' => 'TV', 'title' => ''],
'MaxScore' => ['description' => 'The highest review score.', 'type' => 'string', 'example' => '100', 'title' => ''],
'CounterList' => [
'description' => 'The statistics about tag frames.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Label' => ['description' => 'The category of the review result. Valid values:'."\n"
."\n"
.'- **logo**'."\n"
."\n"
.'- **normal**', 'type' => 'string', 'example' => 'TV', 'title' => ''],
'Count' => ['description' => 'The number of frames.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'TopList' => [
'description' => 'The information about the image with the highest score of the category that is indicated by Label.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Url' => ['description' => 'The URL of the image.', 'type' => 'string', 'example' => 'http://temp-testbucket.oss-cn-shanghai.aliyuncs.com/aivideocensor/****.jpg', 'title' => ''],
'Score' => ['description' => 'The score of the image of the category that is indicated by Label.', 'type' => 'string', 'example' => '100', 'title' => ''],
'Timestamp' => ['description' => 'The position in the video. Unit: milliseconds.', 'type' => 'string', 'example' => '16', 'title' => ''],
'Label' => ['description' => 'The category of the review result.'."\n"
."\n"
.'- **logo**'."\n"
."\n"
.'- **normal**', 'type' => 'string', 'example' => 'TV', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'LiveResult' => [
'description' => 'The results of undesired content review.',
'type' => 'object',
'properties' => [
'Suggestion' => ['description' => 'The recommendation for review results. Valid values:'."\n"
."\n"
.'- **block**'."\n"
."\n"
.'- **review**'."\n"
."\n"
.'- **pass**', 'type' => 'string', 'example' => 'block', 'title' => ''],
'AverageScore' => ['description' => 'The average score of the review results.', 'type' => 'string', 'example' => '100', 'title' => ''],
'Label' => ['description' => 'The category of the review result. Valid values:'."\n"
."\n"
.'- **live**: The content contains undesirable scenes.'."\n"
."\n"
.'- **normal**: normal content.', 'type' => 'string', 'example' => 'smoking', 'title' => ''],
'MaxScore' => ['description' => 'The highest review score.', 'type' => 'string', 'example' => '100', 'title' => ''],
'CounterList' => [
'description' => 'The statistics about tag frames.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Label' => ['description' => 'The category of the review result. Valid values:'."\n"
."\n"
.'- **live**: The content contains undesirable scenes.'."\n"
."\n"
.'- **normal**: normal content.', 'type' => 'string', 'example' => 'smoking', 'title' => ''],
'Count' => ['description' => 'The number of frames.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'TopList' => [
'description' => 'The information about the image with the highest score of the category that is indicated by Label.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Url' => ['description' => 'The URL of the image.', 'type' => 'string', 'example' => 'http://temp-testbucket.oss-cn-shanghai.aliyuncs.com/aivideocensor/****.jpg', 'title' => ''],
'Score' => ['description' => 'The score of the image of the category that is indicated by Label.', 'type' => 'string', 'example' => '100', 'title' => ''],
'Timestamp' => ['description' => 'The position in the video. Unit: milliseconds.', 'type' => 'string', 'example' => '10', 'title' => ''],
'Label' => ['description' => 'The category of the review result. Valid values:'."\n"
."\n"
.'- **live**: The content contains undesirable scenes.'."\n"
."\n"
.'- **normal**: normal content.', 'type' => 'string', 'example' => 'smoking', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'TerrorismResult' => [
'description' => 'The results of terrorist content review.',
'type' => 'object',
'properties' => [
'Suggestion' => ['description' => 'The recommendation for review results. Valid values:'."\n"
."\n"
.'- **block**'."\n"
."\n"
.'- **review**'."\n"
."\n"
.'- **pass**', 'type' => 'string', 'example' => 'pass', 'title' => ''],
'AverageScore' => ['description' => 'The average score of the review results.', 'type' => 'string', 'example' => '100', 'title' => ''],
'Label' => ['description' => 'The category of the review result. Valid values:'."\n"
."\n"
.'- **normal**'."\n"
."\n"
.'- **bloody**'."\n"
."\n"
.'- **explosion**'."\n"
."\n"
.'- **outfit**'."\n"
."\n"
.'- **logo**'."\n"
."\n"
.'- **weapon**'."\n"
."\n"
.'- **politics**'."\n"
."\n"
.'- **violence**'."\n"
."\n"
.'- **crowd**'."\n"
."\n"
.'- **parade**'."\n"
."\n"
.'- **carcrash**'."\n"
."\n"
.'- **flag**'."\n"
."\n"
.'- **location**'."\n"
."\n"
.'- **others**', 'type' => 'string', 'example' => 'normal', 'title' => ''],
'MaxScore' => ['description' => 'The highest review score.', 'type' => 'string', 'example' => '100', 'title' => ''],
'CounterList' => [
'description' => 'The statistics about tag frames.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Label' => ['description' => 'The category of the review result. Valid values:'."\n"
."\n"
.'- **normal**'."\n"
."\n"
.'- **bloody**'."\n"
."\n"
.'- **explosion**'."\n"
."\n"
.'- **outfit**'."\n"
."\n"
.'- **logo**'."\n"
."\n"
.'- **weapon**'."\n"
."\n"
.'- **politics**'."\n"
."\n"
.'- **violence**'."\n"
."\n"
.'- **crowd**'."\n"
."\n"
.'- **parade**'."\n"
."\n"
.'- **carcrash**'."\n"
."\n"
.'- **flag**'."\n"
."\n"
.'- **location**'."\n"
."\n"
.'- **others**', 'type' => 'string', 'example' => 'outfit', 'title' => ''],
'Count' => ['description' => 'The number of frames.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'TopList' => [
'description' => 'The information about the image with the highest score of the category that is indicated by Label.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Url' => ['description' => 'The URL of the image.', 'type' => 'string', 'example' => 'http://temp-testbucket.oss-cn-shanghai.aliyuncs.com/aivideocensor/****.jpg', 'title' => ''],
'Score' => ['description' => 'The score of the image of the category that is indicated by Label.', 'type' => 'string', 'example' => '100.000', 'title' => ''],
'Timestamp' => ['description' => 'The position in the video. Unit: milliseconds.', 'type' => 'string', 'example' => '3005', 'title' => ''],
'Label' => ['description' => 'The category of the review result. Valid values:'."\n"
."\n"
.'- **normal**'."\n"
."\n"
.'- **bloody**'."\n"
."\n"
.'- **explosion**'."\n"
."\n"
.'- **outfit**'."\n"
."\n"
.'- **logo**'."\n"
."\n"
.'- **weapon**'."\n"
."\n"
.'- **politics**'."\n"
."\n"
.'- **violence**'."\n"
."\n"
.'- **crowd**'."\n"
."\n"
.'- **parade**'."\n"
."\n"
.'- **carcrash**'."\n"
."\n"
.'- **flag**'."\n"
."\n"
.'- **location**'."\n"
."\n"
.'- **others**', 'type' => 'string', 'example' => 'normal', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CB7D7232-1AB2-40FE-B8D5-****\\",\\n \\"MediaAuditResult\\": {\\n \\"Suggestion\\": \\"pass\\",\\n \\"AbnormalModules\\": \\"video\\",\\n \\"Label\\": \\"porn\\",\\n \\"AudioResult\\": [\\n {\\n \\"Score\\": \\"99.91\\",\\n \\"Suggestion\\": \\"pass\\",\\n \\"Label\\": \\"normal\\",\\n \\"Scene\\": \\"antispam\\"\\n }\\n ],\\n \\"ImageResult\\": [\\n {\\n \\"Type\\": \\"cover\\",\\n \\"Url\\": \\"http://www.test.com/****.jpg\\",\\n \\"Suggestion\\": \\"pass\\",\\n \\"Label\\": \\"porn\\",\\n \\"Result\\": [\\n {\\n \\"Score\\": \\"100.00000\\",\\n \\"Suggestion\\": \\"pass\\",\\n \\"Label\\": \\"porn\\",\\n \\"Scene\\": \\"porn\\"\\n }\\n ]\\n }\\n ],\\n \\"TextResult\\": [\\n {\\n \\"Type\\": \\"title\\",\\n \\"Suggestion\\": \\"pass\\",\\n \\"Score\\": \\"100.00000\\",\\n \\"Label\\": \\"ad\\",\\n \\"Content\\": \\"Hotline 123****\\",\\n \\"Scene\\": \\"antispam\\"\\n }\\n ],\\n \\"VideoResult\\": {\\n \\"Label\\": \\"porn\\",\\n \\"Suggestion\\": \\"pass\\",\\n \\"PornResult\\": {\\n \\"Suggestion\\": \\"pass\\",\\n \\"AverageScore\\": \\"100\\",\\n \\"Label\\": \\"porn\\",\\n \\"MaxScore\\": \\"100\\",\\n \\"CounterList\\": [\\n {\\n \\"Label\\": \\"porn\\",\\n \\"Count\\": 1\\n }\\n ],\\n \\"TopList\\": [\\n {\\n \\"Url\\": \\"http://temp-testbucket.oss-cn-shanghai.aliyuncs.com/aivideocensor/****.jpg\\",\\n \\"Score\\": \\"100.0000\\",\\n \\"Timestamp\\": \\"3005\\",\\n \\"Label\\": \\"porn\\"\\n }\\n ]\\n },\\n \\"AdResult\\": {\\n \\"Suggestion\\": \\"block\\",\\n \\"AverageScore\\": \\"100\\",\\n \\"Label\\": \\"ad\\",\\n \\"MaxScore\\": \\"100\\",\\n \\"CounterList\\": [\\n {\\n \\"Label\\": \\"ad\\",\\n \\"Count\\": 12\\n }\\n ],\\n \\"TopList\\": [\\n {\\n \\"Url\\": \\"http://temp-testbucket.oss-cn-shanghai.aliyuncs.com/aivideocensor/****.jpg\\",\\n \\"Score\\": \\"100\\",\\n \\"Timestamp\\": \\"10\\",\\n \\"Label\\": \\"ad\\"\\n }\\n ]\\n },\\n \\"LogoResult\\": {\\n \\"Suggestion\\": \\"block\\",\\n \\"AverageScore\\": \\"100\\",\\n \\"Label\\": \\"TV\\",\\n \\"MaxScore\\": \\"100\\",\\n \\"CounterList\\": [\\n {\\n \\"Label\\": \\"TV\\",\\n \\"Count\\": 1\\n }\\n ],\\n \\"TopList\\": [\\n {\\n \\"Url\\": \\"http://temp-testbucket.oss-cn-shanghai.aliyuncs.com/aivideocensor/****.jpg\\",\\n \\"Score\\": \\"100\\",\\n \\"Timestamp\\": \\"16\\",\\n \\"Label\\": \\"TV\\"\\n }\\n ]\\n },\\n \\"LiveResult\\": {\\n \\"Suggestion\\": \\"block\\",\\n \\"AverageScore\\": \\"100\\",\\n \\"Label\\": \\"smoking\\",\\n \\"MaxScore\\": \\"100\\",\\n \\"CounterList\\": [\\n {\\n \\"Label\\": \\"smoking\\",\\n \\"Count\\": 2\\n }\\n ],\\n \\"TopList\\": [\\n {\\n \\"Url\\": \\"http://temp-testbucket.oss-cn-shanghai.aliyuncs.com/aivideocensor/****.jpg\\",\\n \\"Score\\": \\"100\\",\\n \\"Timestamp\\": \\"10\\",\\n \\"Label\\": \\"smoking\\"\\n }\\n ]\\n },\\n \\"TerrorismResult\\": {\\n \\"Suggestion\\": \\"pass\\",\\n \\"AverageScore\\": \\"100\\",\\n \\"Label\\": \\"normal\\",\\n \\"MaxScore\\": \\"100\\",\\n \\"CounterList\\": [\\n {\\n \\"Label\\": \\"outfit\\",\\n \\"Count\\": 1\\n }\\n ],\\n \\"TopList\\": [\\n {\\n \\"Url\\": \\"http://temp-testbucket.oss-cn-shanghai.aliyuncs.com/aivideocensor/****.jpg\\",\\n \\"Score\\": \\"100.000\\",\\n \\"Timestamp\\": \\"3005\\",\\n \\"Label\\": \\"normal\\"\\n }\\n ]\\n }\\n }\\n }\\n}","type":"json"}]',
'title' => 'GetMediaAuditResult',
'description' => ''."\n"
."\n"
.'### Usage notes'."\n"
."\n"
.'This operation is available only in the Singapore region.'."\n"
."\n"
.''."\n"
."\n"
.'### QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 20 per user. If the limit is exceeded, API calls are throttled, which may affect your business. Make sure that you call this operation at an appropriate frequency. For more information, see [QPS limits](~~342790~~).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-10T08:39:32.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-10T08:31:06.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetMediaAuditResult'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetMediaAuditResult',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'translator' => 'manual',
],
'GetMediaAuditResultDetail' => [
'summary' => 'Queries the details of automated review results. You can call this operation to query the details of review results in real time.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39960',
'abilityTreeNodes' => ['FEATUREvodW76Z9M'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'MediaId',
'in' => 'query',
'schema' => ['description' => 'The ID of the video.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '93ab850b4f6f*****54b6e91d24d81d4', 'title' => ''],
],
[
'name' => 'PageNo',
'in' => 'query',
'schema' => ['description' => 'The page number. The default value is **1**. A maximum of **20** records can be returned on each page.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'example' => '1', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '6438BD76-D523-46FC-956F-****', 'title' => ''],
'MediaAuditResultDetail' => [
'description' => 'Details about review results.'."\n",
'type' => 'object',
'properties' => [
'Total' => ['description' => 'The total number of snapshots returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''],
'List' => [
'description' => 'The review results returned.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'TerrorismScore' => ['description' => 'The score of the video snapshot in the terrorist content review result. Valid values: `[0,100]`. The value is rounded down to 10 decimal places. The score is representative of the confidence.'."\n", 'type' => 'string', 'example' => '100.00', 'title' => ''],
'AdLabel' => ['description' => 'The category of the review result. Valid values:'."\n"
."\n"
.'* **normal**: normal content.'."\n"
.'* **ad**: other ads.'."\n"
.'* **politics**: political content in text.'."\n"
.'* **porn**: pornographic content in text.'."\n"
.'* **abuse**: verbal abuse in text.'."\n"
.'* **terrorism**: terrorist content in text.'."\n"
.'* **contraband**: prohibited content in text.'."\n"
.'* **spam**: spam content in text.'."\n"
.'* **npx**: illegal ad'."\n"
.'* **qrcode**: QR code.'."\n"
.'* **programCode**: mini program code.'."\n", 'type' => 'string', 'example' => 'normal', 'title' => ''],
'PornLabel' => ['description' => 'The category of the review result. Valid values:'."\n"
."\n"
.'* **normal**'."\n"
.'* **porn**'."\n"
.'* **sexy**'."\n", 'type' => 'string', 'example' => 'normal', 'title' => ''],
'PornScore' => ['description' => 'The score of the video snapshot in the pornographic content review result. Valid values: `[0,100]`. The value is rounded down to 10 decimal places. The score is representative of the confidence.'."\n", 'type' => 'string', 'example' => '100.00', 'title' => ''],
'LiveLabel' => ['description' => 'The category of the review result. Valid values:'."\n"
."\n"
.'* **normal**: normal content.'."\n"
.'* **meaningless**: meaningless content, such as a black or white screen.'."\n"
.'* **PIP**: picture-in-picture.'."\n"
.'* **smoking**: smoking.'."\n"
.'* **drivelive**: live broadcasting in a running vehicle.'."\n", 'type' => 'string', 'example' => 'normal', 'title' => ''],
'Url' => ['description' => 'The URL of the video snapshot.'."\n", 'type' => 'string', 'example' => 'http://temp-testbucket.oss-cn-shanghai.aliyuncs.com/aivideocensor/****.jpg', 'title' => ''],
'Timestamp' => ['description' => 'The timestamp of the snapshot in the video. Unit: milliseconds.'."\n", 'type' => 'string', 'example' => '3005', 'title' => ''],
'AdScore' => ['description' => 'The score of the video snapshot in the ad review result. Valid values: `[0,100]`. The value is rounded down to 10 decimal places. The score is representative of the confidence.'."\n", 'type' => 'string', 'example' => '100', 'title' => ''],
'LiveScore' => ['description' => 'The score of the video snapshot in the undesirable content review result. Valid values: `[0,100]`. The value is rounded down to 10 decimal places. The score is representative of the confidence.'."\n", 'type' => 'string', 'example' => '100', 'title' => ''],
'LogoScore' => ['description' => 'The score of the video snapshot in the logo review result. Valid values: `[0,100]`. The value is rounded down to 10 decimal places. The score is representative of the confidence.'."\n", 'type' => 'string', 'example' => '100', 'title' => ''],
'LogoLabel' => ['description' => 'The category of the review result. Valid values:'."\n"
."\n"
.'* **normal**: normal content.'."\n"
.'* **TV**: controlled TV station logo.'."\n"
.'* **trademark**: trademark.'."\n", 'type' => 'string', 'example' => 'normal', 'title' => ''],
'TerrorismLabel' => ['description' => 'The category of the review result. Valid values:'."\n"
."\n"
.'* **normal**'."\n"
.'* **bloody**'."\n"
.'* **explosion**'."\n"
.'* **outfit**'."\n"
.'* **logo**'."\n"
.'* **weapon**'."\n"
.'* **politics**'."\n"
.'* **violence**'."\n"
.'* **crowd**'."\n"
.'* **parade**'."\n"
.'* **carcrash**'."\n"
.'* **flag**'."\n"
.'* **location**'."\n"
.'* **others**'."\n", 'type' => 'string', 'example' => 'normal', 'title' => ''],
],
'description' => '',
'title' => '',
],
'title' => '',
],
],
'title' => '',
],
],
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'GetMediaAuditResultDetail',
'description' => '* By default, only details of snapshots that violate content regulations and potentially violate content regulations are returned.'."\n"
.'* ApsaraVideo VOD stores the snapshots in the automated review results free of charge for two weeks. After this period, the snapshots are automatically deleted.'."\n"
.'* This operation is available only in the Singapore region.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-16T02:19:16.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:18:05.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetMediaAuditResultDetail'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetMediaAuditResultDetail',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"6438BD76-D523-46FC-956F-****\\",\\n \\"MediaAuditResultDetail\\": {\\n \\"Total\\": 2,\\n \\"List\\": [\\n {\\n \\"TerrorismScore\\": \\"100.00\\",\\n \\"AdLabel\\": \\"normal\\",\\n \\"PornLabel\\": \\"normal\\",\\n \\"PornScore\\": \\"100.00\\",\\n \\"LiveLabel\\": \\"normal\\",\\n \\"Url\\": \\"http://temp-testbucket.oss-cn-shanghai.aliyuncs.com/aivideocensor/****.jpg\\",\\n \\"Timestamp\\": \\"3005\\",\\n \\"AdScore\\": \\"100\\",\\n \\"LiveScore\\": \\"100\\",\\n \\"LogoScore\\": \\"100\\",\\n \\"LogoLabel\\": \\"normal\\",\\n \\"TerrorismLabel\\": \\"normal\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n6438BD76-D523-46FC-956F-****\\n\\n 2\\n \\n normal\\n 100\\n normal\\n normal\\n 100.00\\n 100\\n 100.00\\n normal\\n 100\\n normal\\n 3005\\n http://temp-testbucket.oss-cn-shanghai.aliyuncs.com/aivideocensor/****.jpg\\n \\n\\n","errorExample":""}]',
],
'GetMediaAuditResultTimeline' => [
'summary' => 'Queries the timelines of all snapshots that violate content regulations.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39961',
'abilityTreeNodes' => ['FEATUREvodW76Z9M'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'MediaId',
'in' => 'query',
'schema' => ['description' => 'The ID of the video.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '93ab850b4f6f*****54b6e91d24d81d4', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '6438BD76-D523-46FC-956F-****', 'title' => ''],
'MediaAuditResultTimeline' => [
'description' => 'The collection of review result timelines.'."\n",
'type' => 'object',
'properties' => [
'Porn' => [
'description' => 'The collection of pornographic content timelines.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Score' => ['description' => 'The score of the video snapshot in the pornographic content review result. Valid values: `[0,100]`. The value is rounded down to 10 decimal places. The score is representative of the confidence.'."\n", 'type' => 'string', 'example' => '100.00', 'title' => ''],
'Timestamp' => ['description' => 'The timestamp of the snapshot in the video. Unit: milliseconds.'."\n", 'type' => 'string', 'example' => '3005', 'title' => ''],
'Label' => ['description' => 'The category of the review result. Valid values:'."\n"
."\n"
.'* **porn**'."\n"
.'* **sexy**'."\n"
.'* **normal**'."\n", 'type' => 'string', 'example' => 'porn', 'title' => ''],
],
'description' => '',
'title' => '',
],
'title' => '',
],
'Terrorism' => [
'description' => 'The collection of terrorist content timelines.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Score' => ['description' => 'The score of the video snapshot in the terrorist content review result. Valid values: `[0,100]`. The value is rounded down to 10 decimal places. The score is representative of the confidence.'."\n", 'type' => 'string', 'example' => '100.00', 'title' => ''],
'Timestamp' => ['description' => 'The timestamp of the snapshot in the video. Unit: milliseconds.'."\n", 'type' => 'string', 'example' => '3005', 'title' => ''],
'Label' => ['description' => 'The category of the review result. Valid values:'."\n"
."\n"
.'* **normal**'."\n"
.'* **bloody**'."\n"
.'* **explosion**'."\n"
.'* **outfit**'."\n"
.'* **logo**'."\n"
.'* **weapon**'."\n"
.'* **politics**'."\n"
.'* **violence**'."\n"
.'* **crowd**'."\n"
.'* **parade**'."\n"
.'* **carcrash**'."\n"
.'* **flag**'."\n"
.'* **location**'."\n"
.'* **others**'."\n", 'type' => 'string', 'example' => 'normal', 'title' => ''],
],
'description' => '',
'title' => '',
],
'title' => '',
],
'Logo' => [
'description' => 'The collection of logo timelines.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Score' => ['description' => 'The score of the video snapshot in the logo review result. Valid values: `[0,100]`. The value is rounded down to 10 decimal places. The score is representative of the confidence.'."\n", 'type' => 'string', 'example' => '100', 'title' => ''],
'Timestamp' => ['description' => 'The timestamp of the snapshot in the video. Unit: milliseconds.'."\n", 'type' => 'string', 'example' => '13', 'title' => ''],
'Label' => ['description' => 'The category of the review result. Valid values:'."\n"
."\n"
.'* **normal**: normal content.'."\n"
.'* **TV**: controlled TV station logo.'."\n"
.'* **trademark**: trademark.'."\n", 'type' => 'string', 'example' => 'logo', 'title' => ''],
],
'description' => '',
'title' => '',
],
'title' => '',
],
'Live' => [
'description' => 'The collection of undesirable content timelines.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Score' => ['description' => 'The score of the video snapshot in the undesirable content review result. Valid values: `[0,100]`. The value is rounded down to 10 decimal places. The score is representative of the confidence.'."\n", 'type' => 'string', 'example' => '100', 'title' => ''],
'Timestamp' => ['description' => 'The timestamp of the snapshot in the video. Unit: milliseconds.'."\n", 'type' => 'string', 'example' => '12', 'title' => ''],
'Label' => ['description' => 'The categories of undesired content review results. Valid values:'."\n"
."\n"
.'* **normal**: normal content.'."\n"
.'* **meaningless**: meaningless content, such as a black or white screen.'."\n"
.'* **PIP**: picture-in-picture.'."\n"
.'* **smoking**: smoking.'."\n"
.'* **drivelive**: live broadcasting in a running vehicle.'."\n", 'type' => 'string', 'example' => 'pip', 'title' => ''],
],
'description' => '',
'title' => '',
],
'title' => '',
],
'Ad' => [
'description' => 'The collection of ad timelines.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Score' => ['description' => 'The score of the video snapshot in the ad review result. Valid values: `[0,100]`. The value is rounded down to 10 decimal places. The score is representative of the confidence.'."\n", 'type' => 'string', 'example' => '100', 'title' => ''],
'Timestamp' => ['description' => 'The timestamp of the snapshot in the video. Unit: milliseconds.'."\n", 'type' => 'string', 'example' => '10', 'title' => ''],
'Label' => ['description' => 'The category of the review result. Valid values:'."\n"
."\n"
.'* **normal**: normal content.'."\n"
.'* **ad**: other ads.'."\n"
.'* **politics**: political content in text.'."\n"
.'* **porn**: pornographic content in text.'."\n"
.'* **abuse**: abuse in text.'."\n"
.'* **terrorism**: terrorist content in text.'."\n"
.'* **contraband**: prohibited content in text.'."\n"
.'* **spam**: spam content.'."\n"
.'* **npx**: illegal ad.'."\n"
.'* **qrcode**: QR code.'."\n"
.'* **programCode**: mini program code.'."\n", 'type' => 'string', 'example' => 'ad', 'title' => ''],
],
'description' => '',
'title' => '',
],
'title' => '',
],
],
'title' => '',
],
],
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"6438BD76-D523-46FC-956F-****\\",\\n \\"MediaAuditResultTimeline\\": {\\n \\"Porn\\": [\\n {\\n \\"Score\\": \\"100.00\\",\\n \\"Timestamp\\": \\"3005\\",\\n \\"Label\\": \\"porn\\"\\n }\\n ],\\n \\"Terrorism\\": [\\n {\\n \\"Score\\": \\"100.00\\",\\n \\"Timestamp\\": \\"3005\\",\\n \\"Label\\": \\"normal\\"\\n }\\n ],\\n \\"Logo\\": [\\n {\\n \\"Score\\": \\"100\\",\\n \\"Timestamp\\": \\"13\\",\\n \\"Label\\": \\"logo\\"\\n }\\n ],\\n \\"Live\\": [\\n {\\n \\"Score\\": \\"100\\",\\n \\"Timestamp\\": \\"12\\",\\n \\"Label\\": \\"pip\\"\\n }\\n ],\\n \\"Ad\\": [\\n {\\n \\"Score\\": \\"100\\",\\n \\"Timestamp\\": \\"10\\",\\n \\"Label\\": \\"ad\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n6438BD76-D523-46FC-956F-****\\n\\n \\n 100\\n \\n 3005\\n \\n \\n 100\\n \\n 3005\\n \\n \\n 100\\n \\n 13\\n \\n \\n 100\\n \\n 12\\n \\n \\n 100\\n \\n 10\\n \\n \\n 100\\n \\n 3005\\n \\n \\n 100\\n \\n 3005\\n \\n \\n 100\\n \\n 13\\n \\n \\n 100\\n \\n 12\\n \\n \\n 100\\n \\n 10\\n \\n \\n 100\\n \\n 3005\\n \\n \\n 100\\n \\n 3005\\n \\n \\n 100\\n \\n 13\\n \\n \\n 100\\n \\n 12\\n \\n \\n 100\\n \\n 10\\n \\n \\n 100\\n \\n 3005\\n \\n \\n 100\\n \\n 3005\\n \\n \\n 100\\n \\n 13\\n \\n \\n 100\\n \\n 12\\n \\n \\n 100\\n \\n 10\\n \\n \\n 100\\n \\n 3005\\n \\n \\n 100\\n \\n 3005\\n \\n \\n 100\\n \\n 13\\n \\n \\n 100\\n \\n 12\\n \\n \\n 100\\n \\n 10\\n \\n\\n","errorExample":""}]',
'title' => 'GetMediaAuditResultTimeline',
'description' => '> By default, only details of snapshots that violate content regulations and potentially violate content regulations are returned.'."\n"
."\n"
.'This operation is available only in the Singapore region.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-16T02:17:57.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:17:30.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetMediaAuditResultTimeline'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetMediaAuditResultTimeline',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'GetMediaDNAResult' => [
'summary' => 'Queries the results of video fingerprinting jobs. After a media fingerprinting job is complete, you can call this operation to query the media fingerprinting result.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39962',
'abilityTreeNodes' => ['FEATUREvod5413CB'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'MediaId',
'in' => 'query',
'schema' => ['description' => 'The ID of the video.'."\n", 'type' => 'string', 'required' => true, 'example' => '88c6ca184c0e*****a5b665e2a126797', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '63FC4896-E956-4B*****7D-134FF1BC597A', 'title' => ''],
'DNAResult' => [
'description' => 'The media fingerprinting results.'."\n",
'type' => 'object',
'properties' => [
'VideoDNA' => [
'description' => 'The video fingerprint recognition result.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'PrimaryKey' => ['description' => 'The ID of the video that has a similar fingerprint.'."\n", 'type' => 'string', 'example' => '6ad8987da46f4b*****490ce2873745', 'title' => ''],
'Similarity' => ['description' => 'The similarity between the fingerprints of the input video and the matched video. 1 indicates that the fingerprints of the two videos are the same.'."\n", 'type' => 'string', 'example' => '0.98', 'title' => ''],
'Detail' => [
'description' => 'The details of the matched video. Information such as the location and duration of the video is returned.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Input' => [
'description' => 'The start time and duration of the input video.'."\n",
'type' => 'object',
'properties' => [
'Duration' => ['description' => 'The duration of the video. Unit: seconds.'."\n", 'type' => 'string', 'example' => '12.0', 'title' => ''],
'Start' => ['description' => 'The start time of the video. Unit: seconds.'."\n", 'type' => 'string', 'example' => '2.0', 'title' => ''],
],
'title' => '',
],
'Duplication' => [
'description' => 'The start time and duration of the matched video.'."\n",
'type' => 'object',
'properties' => [
'Duration' => ['description' => 'The duration of the video. Unit: seconds.'."\n", 'type' => 'string', 'example' => '12.0', 'title' => ''],
'Start' => ['description' => 'The start time of the video. Unit: seconds.'."\n", 'type' => 'string', 'example' => '2.0', 'title' => ''],
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
'title' => '',
],
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"63FC4896-E956-4B*****7D-134FF1BC597A\\",\\n \\"DNAResult\\": {\\n \\"VideoDNA\\": [\\n {\\n \\"PrimaryKey\\": \\"6ad8987da46f4b*****490ce2873745\\",\\n \\"Similarity\\": \\"0.98\\",\\n \\"Detail\\": [\\n {\\n \\"Input\\": {\\n \\"Duration\\": \\"12.0\\",\\n \\"Start\\": \\"2.0\\"\\n },\\n \\"Duplication\\": {\\n \\"Duration\\": \\"12.0\\",\\n \\"Start\\": \\"2.0\\"\\n }\\n }\\n ]\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\t63FC4896-E956-4B*****7D-134FF1BC597A\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t0.98\\r\\n\\t\\t\\t6ad8987da46f4b*****490ce2873745\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t2.0\\r\\n\\t\\t\\t\\t\\t12.0\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t2.0\\r\\n\\t\\t\\t\\t\\t12.1\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t\\r\\n","errorExample":""}]',
'title' => 'GetMediaDNAResult',
'description' => 'Regions that support this operation: **China (Beijing)**, **China (Shanghai)**, and **Singapore**.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-16T02:17:25.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:16:58.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetMediaDNAResult'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetMediaDNAResult',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'GetMediaRefreshJobs' => [
'summary' => 'Queries the information about media refresh or prefetch jobs, such as the job status and filtering conditions.',
'methods' => ['get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => ['operationType' => 'list'],
'parameters' => [
[
'name' => 'MediaRefreshJobId',
'in' => 'query',
'schema' => ['description' => 'The ID of the refresh or prefetch job. It is the value of the MediaRefreshJobId parameter that is returned from the call to the [RefreshMediaPlayUrls](~~RefreshMediaPlayUrls~~) operation.'."\n", 'example' => '41d465e31957****', 'required' => true, 'title' => '媒资刷新预热任务ID', 'type' => 'string'],
],
[
'name' => 'MediaId',
'in' => 'query',
'schema' => ['description' => 'The ID of the media file. It is the value of the `MediaIds` parameter that you specify when you call the [RefreshMediaPlayUrls](~~RefreshMediaPlayUrls~~) operation. You can specify only one media ID.'."\n"
."\n"
.'If you leave this parameter empty, information about all media files in the refresh or prefetch job specified by `MediaRefreshJobId` is returned. If you set this parameter, only the information about the specified media file is returned.``'."\n", 'example' => 'ca3a8f6e4957b658067095869****', 'required' => false, 'title' => '媒资ID', 'type' => 'string'],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned data.'."\n",
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'example' => '25818875-5F78-4AF6-D7393642CA58****', 'type' => 'string', 'title' => ''],
'MediaRefreshJobs' => [
'description' => 'The media refresh or prefetch jobs.'."\n",
'items' => [
'description' => 'The information about the media refresh or prefetch job.'."\n",
'properties' => [
'MediaRefreshJobId' => ['description' => 'The ID of the job.'."\n", 'example' => '41d465e31957****', 'type' => 'string', 'title' => ''],
'MediaId' => ['description' => 'The ID of the media file.'."\n", 'example' => 'ca3a8f6e4957b658067095869****', 'type' => 'string', 'title' => ''],
'TaskType' => ['description' => 'The type of the job. Valid values:'."\n"
."\n"
.'* **Refresh**'."\n"
.'* **Preload**'."\n", 'example' => 'Preload', 'type' => 'string', 'title' => ''],
'FilterPolicy' => ['description' => 'The filtering conditions for stream playback. The value is a JSON string. This parameter is used as a request parameter of the [RefreshMediaPlayUrls](~~RefreshMediaPlayUrls~~) operation.'."\n", 'example' => '{"Formats":"mp4,m3u8", "Definitions":"HD,SD", " StreamType":"video", "ResultType":"Single", " SliceFlag":false, "SliceCount": 3}', 'type' => 'string', 'title' => ''],
'Status' => ['description' => 'The status of the job. Valid values:'."\n"
."\n"
.'* **success**'."\n"
.'* **fail**'."\n", 'example' => 'success', 'type' => 'string', 'title' => ''],
'SuccessPlayUrls' => ['description' => 'The playback URLs that were refreshed or prefetched.'."\n", 'example' => 'https://shenzhen.****.aliyuncdn.com/74401a4f546007bf845cd8840****.m3u8,https://shenzhen.****.aliyuncdn.com/24041e7d13582d86604d8****.m3u8', 'type' => 'string', 'title' => ''],
'TaskIds' => ['description' => 'The IDs of the refresh or prefetch tasks for the playback URLs of media files. Only one URL can be refreshed or prefetched in a task. This value is used in the [DescribeVodRefreshTasks](~~DescribeVodRefreshTasks~~) operation, which queries the status of refresh or prefetch tasks for playback URLs of media files.'."\n", 'example' => '70422****,9524****', 'type' => 'string', 'title' => ''],
'ErrorCode' => ['description' => 'The error code. This parameter is returned if the refresh or prefetch task fails.'."\n", 'example' => 'PreloadQueueFull', 'type' => 'string', 'title' => ''],
'ErrorMessage' => ['description' => 'The error message. This parameter is returned if the refresh or prefetch task fails.'."\n", 'example' => 'Preload queue is full, please try again later!', 'type' => 'string', 'title' => ''],
'UserData' => ['description' => 'The user data that you passed when you submit a refresh or prefetch task.'."\n", 'example' => '{"MessageCallback":{"CallbackURL":"http://example.aliyundoc.com"}, "Extend":{"localId":"xxx","test":"www"}}', 'type' => 'string', 'title' => ''],
'GmtCreate' => ['description' => 'The time when the task was created.'."\n", 'example' => '2022-05-20T08:23:22Z', 'type' => 'string', 'title' => ''],
'GmtModified' => ['description' => 'The time when the task was modified.'."\n", 'example' => '2022-05-21T08:23:22Z', 'type' => 'string', 'title' => ''],
],
'type' => 'object',
'title' => '',
],
'type' => 'array',
'title' => '',
],
],
'type' => 'object',
'title' => '',
],
],
],
'title' => 'GetMediaRefreshJobs',
'description' => 'You can query the information about all media files or a specific media file in a refresh or prefetch job.'."\n"
."\n"
.'### QPS limits'."\n"
."\n"
.'You can call this operation up to 50 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation. For more information, see [QPS limits on API operations in ApsaraVideo VoD](~~342790~~).',
'changeSet' => [
['createdAt' => '2025-07-16T02:18:05.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:16:57.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetMediaRefreshJobs'],
],
],
'ramActions' => [
[
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:GetMediaRefreshJobs',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4AF6-D7393642CA58****\\",\\n \\"MediaRefreshJobs\\": [\\n {\\n \\"MediaRefreshJobId\\": \\"41d465e31957****\\",\\n \\"MediaId\\": \\"ca3a8f6e4957b658067095869****\\",\\n \\"TaskType\\": \\"Preload\\",\\n \\"FilterPolicy\\": \\"{\\\\\\"Formats\\\\\\":\\\\\\"mp4,m3u8\\\\\\", \\\\\\"Definitions\\\\\\":\\\\\\"HD,SD\\\\\\", \\\\\\" StreamType\\\\\\":\\\\\\"video\\\\\\", \\\\\\"ResultType\\\\\\":\\\\\\"Single\\\\\\", \\\\\\" SliceFlag\\\\\\":false, \\\\\\"SliceCount\\\\\\": 3}\\",\\n \\"Status\\": \\"success\\",\\n \\"SuccessPlayUrls\\": \\"https://shenzhen.****.aliyuncdn.com/74401a4f546007bf845cd8840****.m3u8,https://shenzhen.****.aliyuncdn.com/24041e7d13582d86604d8****.m3u8\\",\\n \\"TaskIds\\": \\"70422****,9524****\\",\\n \\"ErrorCode\\": \\"PreloadQueueFull\\",\\n \\"ErrorMessage\\": \\"Preload queue is full, please try again later!\\",\\n \\"UserData\\": \\"{\\\\\\"MessageCallback\\\\\\":{\\\\\\"CallbackURL\\\\\\":\\\\\\"http://example.aliyundoc.com\\\\\\"}, \\\\\\"Extend\\\\\\":{\\\\\\"localId\\\\\\":\\\\\\"xxx\\\\\\",\\\\\\"test\\\\\\":\\\\\\"www\\\\\\"}}\\",\\n \\"GmtCreate\\": \\"2022-05-20T08:23:22Z\\",\\n \\"GmtModified\\": \\"2022-05-21T08:23:22Z\\"\\n }\\n ]\\n}","type":"json"},{"errorExample":"","example":"\\n 25818875-5F78-4AF6-D7393642CA58****\\n \\n 41d465e31957****\\n ca3a8f6e4957b658067095869****\\n Preload\\n {\\"Formats\\":\\"mp4,m3u8\\", \\"Definitions\\":\\"HD,SD\\", \\" StreamType\\":\\"video\\", \\"ResultType\\":\\"Single\\", \\" SliceFlag\\":false, \\"SliceCount\\": 3}\\n success\\n https://shenzhen.****.aliyuncdn.com/74401a4f546007bf845cd8840****.m3u8,https://shenzhen.****.aliyuncdn.com/24041e7d13582d86604d8****.m3u8\\n 70422****,9524****\\n {\\"MessageCallback\\":{\\"CallbackURL\\":\\"http://example.aliyundoc.com\\"}, \\"Extend\\":{\\"localId\\":\\"xxx\\",\\"test\\":\\"www\\"}}\\n 2022-05-20T08:23:22Z\\n 2022-05-21T08:23:22Z\\n \\n","type":"xml"}]',
],
'GetMessageCallback' => [
'summary' => 'Queries the callback method, callback URL, and event type of an event notification.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39965',
'abilityTreeNodes' => ['FEATUREvod9NUA3V'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the application. If you do not set this parameter, the default value **app-1000000** is used.'."\n", 'type' => 'string', 'required' => false, 'example' => 'app-1000000', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '272A222A-F7F7-4A3E-****-F531574F1234', 'title' => ''],
'MessageCallback' => [
'description' => 'The configuration of the event notification.'."\n",
'type' => 'object',
'properties' => [
'CallbackType' => ['description' => 'The callback method. Valid values:'."\n"
."\n"
.'* **HTTP**'."\n"
.'* **MNS**'."\n", 'type' => 'string', 'example' => 'HTTP', 'title' => ''],
'CallbackURL' => ['description' => 'The callback URL. This parameter is returned only for HTTP callbacks.'."\n", 'type' => 'string', 'example' => 'http://test.com/test', 'title' => ''],
'EventTypeList' => ['description' => 'The type of the callback event.'."\n", 'type' => 'string', 'example' => 'FileUploadComplete,StreamTranscodeComplete,TranscodeComplete,SnapshotComplete,AIComplete,AddLiveRecordVideoComplete,CreateAuditComplete,UploadByURLComplete,ProduceMediaComplete,LiveRecordVideoComposeStart,ImageUploadComplete,VideoAnalysisComplete', 'title' => ''],
'AppId' => ['description' => 'The ID of the application.'."\n", 'type' => 'string', 'example' => 'app-1000000', 'title' => ''],
'MnsQueueName' => ['description' => 'The name of the Message Service (MNS) queue. This parameter is returned only for MNS callbacks.'."\n", 'type' => 'string', 'example' => 'vodcallback', 'title' => ''],
'AuthKey' => ['description' => 'The cryptographic key. This parameter is returned only for HTTP callbacks.'."\n", 'type' => 'string', 'example' => '12345678abc', 'title' => ''],
'AuthSwitch' => ['description' => 'Indicates whether callback authentication is enabled. This parameter is returned only for HTTP callbacks. Valid values:'."\n"
."\n"
.'* **on**'."\n"
.'* **off**'."\n", 'type' => 'string', 'example' => 'on', 'title' => ''],
'MnsEndpoint' => ['description' => 'The public endpoint of MNS. This parameter is returned only for MNS callbacks.'."\n", 'type' => 'string', 'example' => 'http://1234567.mns.cn-shanghai-internal.aliyuncs.com/', 'title' => ''],
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'GetMessageCallback',
'description' => '> For more information, see [Event notification](~~55627~~).'."\n",
'changeSet' => [
['createdAt' => '2025-07-16T02:20:09.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:17:38.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetMessageCallback'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetMessageCallback',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"272A222A-F7F7-4A3E-****-F531574F1234\\",\\n \\"MessageCallback\\": {\\n \\"CallbackType\\": \\"HTTP\\",\\n \\"CallbackURL\\": \\"http://test.com/test\\",\\n \\"EventTypeList\\": \\"FileUploadComplete,StreamTranscodeComplete,TranscodeComplete,SnapshotComplete,AIComplete,AddLiveRecordVideoComplete,CreateAuditComplete,UploadByURLComplete,ProduceMediaComplete,LiveRecordVideoComposeStart,ImageUploadComplete,VideoAnalysisComplete\\",\\n \\"AppId\\": \\"app-1000000\\",\\n \\"MnsQueueName\\": \\"vodcallback\\",\\n \\"AuthKey\\": \\"12345678abc\\",\\n \\"AuthSwitch\\": \\"on\\",\\n \\"MnsEndpoint\\": \\"http://1234567.mns.cn-shanghai-internal.aliyuncs.com/\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\t\\r\\n\\t\\tHTTP\\r\\n\\t\\tFileUploadComplete,StreamTranscodeComplete,TranscodeComplete,SnapshotComplete,AIComplete,AddLiveRecordVideoComplete,CreateAuditComplete,UploadByURLComplete,ProduceMediaComplete,LiveRecordVideoComposeStart,ImageUploadComplete,VideoAnalysisComplete\\r\\n\\t\\t12345678abc\\r\\n\\t\\tapp-1000000\\r\\n\\t\\tvodcallback\\r\\n\\t\\thttp://test.com/test\\r\\n\\t\\thttp://1234567.mns.cn-shanghai-internal.aliyuncs.com/\\r\\n\\t\\toff\\r\\n\\t\\r\\n\\t272A222A-F7F7-4A3E-****-F531574F1234\\r\\n","errorExample":""}]',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
],
'GetMezzanineInfo' => [
'summary' => 'Retrieves the source file information for an audio or video file, such as the file URL, resolution, and bitrate.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39967',
'abilityTreeNodes' => ['FEATUREvodYRQNEN'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'VideoId',
'in' => 'query',
'schema' => ['description' => 'The ID of the audio or video file. Obtain the ID in one of the following ways:'."\n"
."\n"
.'- For audio or video files uploaded to the console: Log on to the [VOD console](https://vod.console.aliyun.com). In the navigation pane, choose **Media Library** > **Audio/Video** to view the video ID.'."\n"
."\n"
.'- When you obtain an upload URL and credentials by calling the [CreateUploadVideo](~~55407~~) operation, the audio/video ID is the value of the \\`VideoId\\` parameter in the response.'."\n"
."\n"
.'- After a video is uploaded, call the [SearchMedia](~~86044~~) operation to query the audio/video ID. The ID is the value of the \\`VideoId\\` parameter in the response.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'title' => '', 'example' => '1f1a6fc03ca04814031b8a6559e****'],
],
[
'name' => 'AuthTimeout',
'in' => 'query',
'schema' => ['description' => 'The expiration time of the signed URL for the source file (\\`FileURL\\`). Unit: seconds. The default value is **3600**. The minimum value is **1**.'."\n"
."\n"
.'- If \\`OutputType\\` is set to **cdn**:'."\n"
."\n"
.' - The \\`FileURL\\` expires only if URL signing is enabled. Otherwise, the URL is permanently valid.'."\n"
."\n"
.' - Minimum value: **1**.'."\n"
."\n"
.' - Maximum value: unlimited.'."\n"
."\n"
.' - Default value: **3600**.'."\n"
."\n"
.'- If \\`OutputType\\` is set to **oss**:'."\n"
."\n"
.' - The \\`FileURL\\` expires only if the storage permission is set to private. Otherwise, the URL is permanently valid.'."\n"
."\n"
.' - Minimum value: **1**.'."\n"
."\n"
.' - Maximum value: To reduce security risks at the origin, the maximum value is **2592000** (30 days) if the audio or video file is stored in a VOD bucket. The maximum value is **129600** (36 hours) if the audio or video file is stored in your own OSS bucket.'."\n"
."\n"
.' - Default value: **3600**.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'title' => '', 'example' => '3600'],
],
[
'name' => 'OutputType',
'in' => 'query',
'schema' => ['description' => 'The type of the output URL. Valid values:'."\n"
."\n"
.'- **oss**: the origin URL.'."\n"
."\n"
.'- **cdn** (default): the accelerated URL.'."\n"
."\n"
.'> If the bucket type of the source file is \\`in\\`, only an OSS URL is returned.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'oss'],
],
[
'name' => 'AdditionType',
'in' => 'query',
'schema' => ['description' => 'The type of additional information. Separate multiple types with commas (,). By default, only basic information is returned. Valid values:'."\n"
."\n"
.'- **video**: video stream information.'."\n"
."\n"
.'- **audio**: audio stream information.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'video'],
],
[
'name' => 'ReferenceId',
'in' => 'query',
'schema' => ['type' => 'string', 'title' => '', 'description' => 'The custom ID. The ID can contain only lowercase letters, uppercase letters, digits, hyphens (-), and underscores (\\_). The ID must be 6 to 64 characters in length and unique for each user.', 'required' => false, 'example' => '123-123'],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response that is returned.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'title' => '', 'example' => '25818875-5F78-4AF6-D7393642CA58****'],
'Mezzanine' => [
'description' => 'The file information.',
'type' => 'object',
'properties' => [
'CreationTime' => ['description' => 'The time when the file was created. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format in UTC.', 'type' => 'string', 'title' => '', 'example' => '2017-11-14T09:15:50Z'],
'Status' => ['description' => 'The status of the file. Valid values:'."\n"
."\n"
.'- **Uploading**: The initial state of the file, which indicates that the file is being uploaded.'."\n"
."\n"
.'- **Normal**: The file is uploaded.'."\n"
."\n"
.'- **UploadFail**: The file failed to be uploaded.'."\n"
."\n"
.'- **Deleted**: The file is deleted.', 'type' => 'string', 'title' => '', 'example' => 'Normal'],
'FileURL' => ['description' => 'The URL of the source file.', 'type' => 'string', 'title' => '', 'example' => 'http://example-bucket-****.oss-cn-shanghai.aliyuncs.com/27ffc438-164h67f57ef-0005-6884-51a-1****.mp4'],
'VideoId' => ['description' => 'The ID of the video.', 'type' => 'string', 'title' => '', 'example' => '1f1a6fc03ca04814031b8a6559e****'],
'Height' => ['description' => 'The height of the file. Unit: pixels.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '540'],
'Bitrate' => ['description' => 'The bitrate of the file. Unit: Kbps.', 'type' => 'string', 'title' => '', 'example' => '771.2280'],
'FileName' => ['description' => 'The name of the file.', 'type' => 'string', 'title' => '', 'example' => '27ffc438-164h67f57ef-0005-6884-51a-1****.mp4'],
'OutputType' => ['description' => 'The type of the output URL. Valid values:'."\n"
."\n"
.'- **oss**: the origin URL.'."\n"
."\n"
.'- **cdn** (default): the accelerated URL.'."\n"
."\n"
.'> Only OSS URLs for files in the MP4 format are supported for playback.', 'type' => 'string', 'title' => '', 'example' => 'oss'],
'PreprocessStatus' => ['description' => 'The pre-processing status. Valid values:'."\n"
."\n"
.'- **UnPreprocess**: No pre-processing is performed.'."\n"
."\n"
.'- **Preprocessing**: The file is being pre-processed.'."\n"
."\n"
.'- **PreprocessSucceed**: The file is pre-processed.'."\n"
."\n"
.'- **PreprocessFailed**: The file failed to be pre-processed.', 'type' => 'string', 'title' => '', 'example' => 'UnPreprocess'],
'Width' => ['description' => 'The width of the file. Unit: pixels.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '960'],
'Size' => ['description' => 'The size of the file. Unit: bytes.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '4096477'],
'Duration' => ['description' => 'The duration of the file. Unit: seconds.', 'type' => 'string', 'title' => '', 'example' => '42.4930'],
'Fps' => ['description' => 'The frame rate of the file, in frames per second.', 'type' => 'string', 'title' => '', 'example' => '25.0000'],
'AudioStreamList' => [
'description' => 'The information about the audio stream.',
'type' => 'array',
'items' => [
'description' => 'The details of the audio stream.',
'type' => 'object',
'properties' => [
'Index' => ['description' => 'The ordinal number of the audio stream, which indicates the position of the audio stream in the entire media stream.', 'type' => 'string', 'title' => '', 'example' => '0'],
'Timebase' => ['description' => 'The time base.', 'type' => 'string', 'title' => '', 'example' => '0.000000'],
'SampleFmt' => ['description' => 'The sampling format.', 'type' => 'string', 'title' => '', 'example' => 'fltp'],
'SampleRate' => ['description' => 'The sample rate.', 'type' => 'string', 'title' => '', 'example' => '44100'],
'ChannelLayout' => ['description' => 'The sound channel layout. Valid values:'."\n"
."\n"
.'- **mono**: mono.'."\n"
."\n"
.'- **stereo**: stereo.', 'type' => 'string', 'title' => '', 'example' => 'mono'],
'Lang' => ['description' => 'The language.', 'type' => 'string', 'title' => '', 'example' => 'und'],
'CodecLongName' => ['description' => 'The long name of the encoding format.', 'type' => 'string', 'title' => '', 'example' => 'AAC (Advanced Audio Coding)'],
'Channels' => ['description' => 'The number of sound channels.', 'type' => 'string', 'title' => '', 'example' => '1'],
'NumFrames' => ['description' => 'The total number of frames.', 'type' => 'string', 'title' => '', 'example' => '1'],
'Bitrate' => ['description' => 'The bitrate.', 'type' => 'string', 'title' => '', 'example' => '62.885'],
'CodecTagString' => ['description' => 'The tag of the encoding format.', 'type' => 'string', 'title' => '', 'example' => 'mp4a'],
'StartTime' => ['description' => 'The start time. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format in UTC.', 'type' => 'string', 'title' => '', 'example' => '2017-01-11T12:00:00Z'],
'CodecName' => ['description' => 'The short name of the encoding format.', 'type' => 'string', 'title' => '', 'example' => 'aac'],
'Duration' => ['description' => 'The duration.', 'type' => 'string', 'title' => '', 'example' => '3.227574'],
'CodecTag' => ['description' => 'The tag of the encoding format.', 'type' => 'string', 'title' => '', 'example' => '0x6134706d'],
'CodecTimeBase' => ['description' => 'The codec time base.', 'type' => 'string', 'title' => '', 'example' => '1/44100'],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'VideoStreamList' => [
'description' => 'The information about the video stream.',
'type' => 'array',
'items' => [
'description' => 'The details of the video stream.',
'type' => 'object',
'properties' => [
'Timebase' => ['description' => 'The time base.', 'type' => 'string', 'title' => '', 'example' => '0.000000'],
'Index' => ['description' => 'The ordinal number of the video stream, which indicates the position of the video stream in the entire media stream.', 'type' => 'string', 'title' => '', 'example' => '1'],
'AvgFPS' => ['description' => 'The average frame rate.', 'type' => 'string', 'title' => '', 'example' => '30.0'],
'PixFmt' => ['description' => 'The pixel format.', 'type' => 'string', 'title' => '', 'example' => 'yuv420p'],
'Lang' => ['description' => 'The language.', 'type' => 'string', 'title' => '', 'example' => 'und'],
'Sar' => ['description' => 'The sample aspect ratio (SAR).', 'type' => 'string', 'title' => '', 'example' => '0:1'],
'Height' => ['description' => 'The height of the video.', 'type' => 'string', 'title' => '', 'example' => '320'],
'CodecLongName' => ['description' => 'The long name of the encoding format.', 'type' => 'string', 'title' => '', 'example' => 'H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10'],
'NumFrames' => ['description' => 'The total number of frames.', 'type' => 'string', 'title' => '', 'example' => '0'],
'Bitrate' => ['description' => 'The bitrate of the file. Unit: Kbps.', 'type' => 'string', 'title' => '', 'example' => '500'],
'Rotate' => ['description' => 'The rotation angle of the video. Valid values: **\\[0, 360)**.', 'type' => 'string', 'title' => '', 'example' => '90'],
'CodecTagString' => ['description' => 'The tag of the encoding format.', 'type' => 'string', 'title' => '', 'example' => 'avc1'],
'HasBFrames' => ['description' => 'Indicates whether B-frames exist.', 'type' => 'string', 'title' => '', 'example' => '0'],
'Profile' => ['description' => 'The codec profile.', 'type' => 'string', 'title' => '', 'example' => 'Main'],
'StartTime' => ['description' => 'The start time. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format in UTC.', 'type' => 'string', 'title' => '', 'example' => '2017-01-11T12:00:00Z'],
'Dar' => ['description' => 'The display aspect ratio (DAR).', 'type' => 'string', 'title' => '', 'example' => '0:1'],
'CodecName' => ['description' => 'The short name of the encoding format.', 'type' => 'string', 'title' => '', 'example' => 'h264'],
'Width' => ['description' => 'The width of the video.', 'type' => 'string', 'title' => '', 'example' => '568'],
'Duration' => ['description' => 'The duration.', 'type' => 'string', 'title' => '', 'example' => '3.166667'],
'Fps' => ['description' => 'The destination frame rate.', 'type' => 'string', 'title' => '', 'example' => '30.0'],
'CodecTag' => ['description' => 'The tag of the encoding format.', 'type' => 'string', 'title' => '', 'example' => '0x31637661'],
'CodecTimeBase' => ['description' => 'The codec time base.', 'type' => 'string', 'title' => '', 'example' => '1/60'],
'Level' => ['description' => 'The encoding level.', 'type' => 'string', 'title' => '', 'example' => '30'],
'HDRType' => ['title' => '', 'description' => 'The High Dynamic Range (HDR) type of the video stream.', 'type' => 'string', 'example' => 'HDR'],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
'StorageClass' => ['description' => 'The storage class of the media asset. Valid values:'."\n"
."\n"
.'- **Standard**: Standard.'."\n"
."\n"
.'- **IA**: Infrequent Access.'."\n"
."\n"
.'- **Archive**: Archive.'."\n"
."\n"
.'- **ColdArchive**: Cold Archive.'."\n"
."\n"
.'- **SourceIA**: Source Infrequent Access.'."\n"
."\n"
.'- **SourceArchive**: Source Archive.'."\n"
."\n"
.'- **SourceColdArchive**: Source Cold Archive.'."\n"
."\n"
.'- **Changing**: The storage class of the media asset is being changed.'."\n"
."\n"
.'- **SourceChanging**: The storage class of the source file is being changed.', 'type' => 'string', 'title' => '', 'example' => 'Standard'],
'RestoreStatus' => ['description' => 'The restored state of the media asset. Valid values:'."\n"
."\n"
.'- **Processing**: The media asset is being restored.'."\n"
."\n"
.'- **Success**: The media asset is restored.'."\n"
."\n"
.'- **Failed**: The media asset failed to be restored.', 'type' => 'string', 'title' => '', 'example' => 'Success'],
'RestoreExpiration' => ['description' => 'The expiration time of the restored media asset.', 'type' => 'string', 'title' => '', 'example' => '2023-03-30T10:14:14Z'],
'FileMD5' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''],
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4AF6-D7393642CA58****\\",\\n \\"Mezzanine\\": {\\n \\"CreationTime\\": \\"2017-11-14T09:15:50Z\\",\\n \\"Status\\": \\"Normal\\",\\n \\"FileURL\\": \\"http://example-bucket-****.oss-cn-shanghai.aliyuncs.com/27ffc438-164h67f57ef-0005-6884-51a-1****.mp4\\",\\n \\"VideoId\\": \\"1f1a6fc03ca04814031b8a6559e****\\",\\n \\"Height\\": 540,\\n \\"Bitrate\\": \\"771.2280\\",\\n \\"FileName\\": \\"27ffc438-164h67f57ef-0005-6884-51a-1****.mp4\\",\\n \\"OutputType\\": \\"oss\\",\\n \\"PreprocessStatus\\": \\"UnPreprocess\\",\\n \\"Width\\": 960,\\n \\"Size\\": 4096477,\\n \\"Duration\\": \\"42.4930\\",\\n \\"Fps\\": \\"25.0000\\",\\n \\"AudioStreamList\\": [\\n {\\n \\"Index\\": \\"0\\",\\n \\"Timebase\\": \\"0.000000\\",\\n \\"SampleFmt\\": \\"fltp\\",\\n \\"SampleRate\\": \\"44100\\",\\n \\"ChannelLayout\\": \\"mono\\",\\n \\"Lang\\": \\"und\\",\\n \\"CodecLongName\\": \\"AAC (Advanced Audio Coding)\\",\\n \\"Channels\\": \\"1\\",\\n \\"NumFrames\\": \\"1\\",\\n \\"Bitrate\\": \\"62.885\\",\\n \\"CodecTagString\\": \\"mp4a\\",\\n \\"StartTime\\": \\"2017-01-11T12:00:00Z\\",\\n \\"CodecName\\": \\"aac\\",\\n \\"Duration\\": \\"3.227574\\",\\n \\"CodecTag\\": \\"0x6134706d\\",\\n \\"CodecTimeBase\\": \\"1/44100\\"\\n }\\n ],\\n \\"VideoStreamList\\": [\\n {\\n \\"Timebase\\": \\"0.000000\\",\\n \\"Index\\": \\"1\\",\\n \\"AvgFPS\\": \\"30.0\\",\\n \\"PixFmt\\": \\"yuv420p\\",\\n \\"Lang\\": \\"und\\",\\n \\"Sar\\": \\"0:1\\",\\n \\"Height\\": \\"320\\",\\n \\"CodecLongName\\": \\"H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10\\",\\n \\"NumFrames\\": \\"0\\",\\n \\"Bitrate\\": \\"500\\",\\n \\"Rotate\\": \\"90\\",\\n \\"CodecTagString\\": \\"avc1\\",\\n \\"HasBFrames\\": \\"0\\",\\n \\"Profile\\": \\"Main\\",\\n \\"StartTime\\": \\"2017-01-11T12:00:00Z\\",\\n \\"Dar\\": \\"0:1\\",\\n \\"CodecName\\": \\"h264\\",\\n \\"Width\\": \\"568\\",\\n \\"Duration\\": \\"3.166667\\",\\n \\"Fps\\": \\"30.0\\",\\n \\"CodecTag\\": \\"0x31637661\\",\\n \\"CodecTimeBase\\": \\"1/60\\",\\n \\"Level\\": \\"30\\",\\n \\"HDRType\\": \\"HDR\\"\\n }\\n ],\\n \\"StorageClass\\": \\"Standard\\",\\n \\"RestoreStatus\\": \\"Success\\",\\n \\"RestoreExpiration\\": \\"2023-03-30T10:14:14Z\\",\\n \\"FileMD5\\": \\"\\"\\n }\\n}","type":"json"}]',
'title' => 'GetMezzanineInfo',
'description' => 'The complete information for a source file is available after the video or audio stream is transcoded.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return.'."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| InvalidVideo.NotFound | The video does not exist. | 404 | The error message returned because the specified video ID does not exist. |'."\n"
.'| InvalidFile.NotFound | The file does not exist. | 404 | The error message returned because the specified video mezzanine file does not exist. |',
'changeSet' => [
['createdAt' => '2025-07-16T02:18:37.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:17:35.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetMezzanineInfo'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetMezzanineInfo',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'GetPlayInfo' => [
'summary' => 'Retrieves playback URLs for a media asset by providing its ID. You can then use these URLs to play the audio/video content with ApsaraVideo Player or any third-party player, such as a native system player, open-source player, or a self-developed one.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39972',
'abilityTreeNodes' => ['FEATUREvodCOWQO0'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'VideoId',
'in' => 'query',
'schema' => ['description' => 'The ID of media asset. Only one ID is supported per request. You can obtain the ID in one of the following ways:'."\n"
."\n"
.'- Log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com). In the navigation pane, choose **Media Files** > **Audio/Video**. View the ID.'."\n"
."\n"
.'- The `VideoId` is returned in the response of the [](t2220597.xdita#)call.'."\n"
."\n"
.'- Call the [SearchMedia](~~86044~~) operation to query the ID (VideoId).', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => '93ab850b4f654b6e91d24d81d44****', 'title' => ''],
],
[
'name' => 'Formats',
'in' => 'query',
'schema' => ['description' => 'A comma-separated list of media stream formats to retrieve. Valid values:'."\n"
."\n"
.'- **mp4**'."\n"
."\n"
.'- **m3u8**'."\n"
."\n"
.'- **mp3**'."\n"
."\n"
.'- **flv**'."\n"
."\n"
.'- **mpd**'."\n"
."\n"
.'> * By default, streams in all formats are returned.'."\n"
.'>'."\n"
.'> * The mpd format is only available if DASH packaging was configured in the transcoding template. For more information, see [Container](t1235673.xdita#title-7rr-3hj-gy5).', 'type' => 'string', 'required' => false, 'example' => 'mp4,m3u8', 'title' => ''],
],
[
'name' => 'AuthTimeout',
'in' => 'query',
'schema' => ['description' => 'The validity period of the playback URL, in seconds.'."\n"
."\n"
.'- If OutputType is set to **cdn**:'."\n"
."\n"
.' - The URL expires only if URL signing is enabled. Otherwise, it is permanently valid. For more information about URL signing, see [](t1959374.xdita#).'."\n"
."\n"
.' - Minimum value: **1**.'."\n"
."\n"
.' - Maximum value: No limit.'."\n"
."\n"
.' - Default value: The validity period configured in your URL signing settings.'."\n"
."\n"
.'- If OutputType is set to **oss**:'."\n"
."\n"
.' - The URL expires only if the storage access permission is set to private. Otherwise, it is permanently valid.'."\n"
."\n"
.' - Minimum value: **1**.'."\n"
."\n"
.' - Maximum value: To mitigate security risks, the maximum value is **604800** (7 days) for VOD bucket and **129600** (36 hours) for your own OSS buckets. If you require a longer validity period, set OutputType to cdn and use URL signing.'."\n"
."\n"
.' - Default value: **3600**.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1800', 'title' => ''],
],
[
'name' => 'OutputType',
'in' => 'query',
'schema' => ['description' => 'The type of playback URL to return. Valid values:'."\n"
."\n"
.'- **oss**: OSS URL (source origin).'."\n"
."\n"
.'- **cdn** (default): accelerated URL.', 'type' => 'string', 'required' => false, 'example' => 'cdn', 'title' => ''],
],
[
'name' => 'StreamType',
'in' => 'query',
'schema' => ['description' => 'A comma-separated list of media stream types to retrieve. Valid values:'."\n"
."\n"
.'- **video**'."\n"
."\n"
.'- **audio**'."\n"
."\n"
.'If not specified, all available stream types are returned.', 'type' => 'string', 'required' => false, 'example' => 'video', 'title' => ''],
],
[
'name' => 'ReAuthInfo',
'in' => 'query',
'schema' => ['description' => 'A JSON string containing parameters for secondary CDN authentication. Use this parameter to set the `uid` and `rand` fields for Type A URL signing. For more information, see [](t2321301.xdita#).', 'type' => 'string', 'required' => false, 'example' => '{"uid":"12345","rand":"abckljd"}', 'title' => ''],
],
[
'name' => 'Definition',
'in' => 'query',
'schema' => ['description' => 'The definition of the video stream. Separate multiple definitions with commas (,). Valid values:'."\n"
."\n"
.'- **FD**: Low definition.'."\n"
."\n"
.'- **LD**: Standard definition.'."\n"
."\n"
.'- **SD**: High definition.'."\n"
."\n"
.'- **HD**: Ultra high definition.'."\n"
."\n"
.'- **OD**: Original quality.'."\n"
."\n"
.'- **2K**: 2K.'."\n"
."\n"
.'- **4K**: 4K.'."\n"
."\n"
.'- **SQ**: Standard quality.'."\n"
."\n"
.'- **HQ**: High quality.'."\n"
."\n"
.'- **AUTO**: Adaptive bitrate.'."\n"
."\n"
.'> * By default, streams of all definitions are returned.'."\n"
.'>'."\n"
.'> * This parameter is required when generating a video with a traceable watermark. The value must match the resolution set for transcoding.'."\n"
.'>'."\n"
.'> * The AUTO format is only available if adaptive bitrate streaming was configured in the transcoding template. For more information, see [PackageSetting](t1235673.xdita#title-4fk-cg8-gzx).', 'type' => 'string', 'required' => false, 'example' => 'LD', 'title' => ''],
],
[
'name' => 'ResultType',
'in' => 'query',
'schema' => ['description' => 'The type of data to return for each format and definition. Valid values:'."\n"
."\n"
.'- **Single** (default): Returns only the most recently transcoded stream for each format/definition pair.'."\n"
."\n"
.'- **Multiple**: Returns all transcoded streams for each format/definition pair.', 'type' => 'string', 'required' => false, 'example' => 'Single', 'title' => ''],
],
[
'name' => 'PlayConfig',
'in' => 'query',
'schema' => ['description' => 'A JSON string for custom playback settings, such as specifying a playback domain. For more information about the parameter structure, see [PlayConfig](t1235674.xdita#section-9g7-s9b-v7z).'."\n"
."\n"
.'> - If `PlayConfig` or its `PlayDomain` field is not set, the API uses the default domain configured in VOD. If no default domain is set, it uses the most recently modified domain. We recommend setting a default domain in the [ApsaraVideo VOD](https://vod.console.aliyun.com) console (Choose **Configuration Management > Media Management > Storage > Manage > Origin Domain Name**)'."\n"
.'>'."\n"
.'> - When `EncryptType` in `PlayConfig` is set to `AliyunVoDEncryption`, private encrypted streams are not returned by default for security. To retrieve them, you must also set `ResultType` to `Multiple`.', 'type' => 'string', 'required' => false, 'example' => '{"PlayDomain":"vod.test_domain","XForwardedFor":"yqCD7Fp1uqChoVj/sl/p5Q==","PreviewTime":"20","MtsHlsUriToken":"yqCD7Fp1uqChoVjslp5Q"}', 'title' => ''],
],
[
'name' => 'AdditionType',
'in' => 'query',
'schema' => ['description' => 'Set to danmu to retrieve the URL for bullet chat (danmaku) overlay data.'."\n"
."\n"
.'> This parameter is only effective when `OutputType` is `cdn`.', 'type' => 'string', 'required' => false, 'example' => 'danmu', 'title' => ''],
],
[
'name' => 'Trace',
'in' => 'query',
'schema' => ['description' => 'User-defined information for a digital watermark.'."\n"
."\n"
.'- If you set `DigitalWatermarkType` to `TraceMark`, the value of this parameter is embedded as the traceable watermark information. The API returns a video stream URL containing this watermark. The value supports English letters, digits, and Chinese characters, up to 1024 characters.'."\n"
."\n"
.'- If you set `DigitalWatermarkType` to `CopyrightMark`, the value must match the **watermark text** defined in the watermark template. The API returns the video stream with the specified copyright watermark.', 'type' => 'string', 'required' => false, 'example' => 'test mark', 'title' => ''],
],
[
'name' => 'DigitalWatermarkType',
'in' => 'query',
'schema' => ['description' => 'The type of the digital watermark. Valid values:'."\n"
."\n"
.'- TraceMark: tracing watermark.'."\n"
."\n"
.'- CopyrightMark: copyright watermark.', 'type' => 'string', 'required' => false, 'example' => 'TraceMark', 'title' => ''],
],
[
'name' => 'CodecName',
'in' => 'query',
'schema' => ['type' => 'string', 'example' => 'H264', 'title' => '', 'description' => ''],
],
[
'name' => 'ReferenceId',
'in' => 'query',
'schema' => ['description' => 'Custom ID. Supports letters, digits, hyphens (-), and underscores (\\_). Length: 6 to 64 characters. Must be unique per user.', 'type' => 'string', 'example' => '123-123', 'title' => '', 'required' => false],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'F552E596-967D-5500-842F-17E6364****', 'title' => ''],
'VideoBase' => [
'description' => 'The basic information about the audio or video file.',
'type' => 'object',
'properties' => [
'CreationTime' => ['description' => 'The time when the audio or video file was created. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format in UTC.', 'type' => 'string', 'example' => '2017-06-26T06:38:48Z', 'title' => ''],
'Status' => ['description' => 'The status of the audio or video file. For more information about the valid values and descriptions, see [Status: Audio and video statuses](~~52839#title-vqg-8cz-7p8~~).', 'type' => 'string', 'example' => 'Normal', 'title' => ''],
'VideoId' => ['description' => 'The ID of the audio or video file.', 'type' => 'string', 'example' => '93ab850b4f654b6e91d24d81d44****', 'title' => ''],
'CoverURL' => ['description' => 'The URL of the thumbnail.'."\n"
."\n"
.'> To obtain the thumbnail URL in real time after uploading a video, configure ApsaraVideo VOD callbacks. For more information, see [HTTP callback](~~67214~~) and [Thumbnail capture complete](~~57337~~).', 'type' => 'string', 'example' => 'http://example.aliyundoc.com/sample.jpg?auth_key=2333232-atb****', 'title' => ''],
'Duration' => ['description' => 'The duration of the audio or video file. Unit: seconds.', 'type' => 'string', 'example' => '3.1667', 'title' => ''],
'Title' => ['description' => 'The title of the audio or video file.', 'type' => 'string', 'example' => 'Alibaba Cloud VOD', 'title' => ''],
'MediaType' => ['description' => 'The type of the media file. Valid values:'."\n"
."\n"
.'- **video**: video.'."\n"
."\n"
.'- **audio**: audio-only.', 'type' => 'string', 'example' => 'video', 'title' => ''],
'DanMuURL' => ['description' => 'The URL of the live comment overlay data.', 'type' => 'string', 'example' => 'http://example.aliyundoc.com/****?auth_key=abdf2123-6783232****', 'title' => ''],
'StorageClass' => ['description' => 'The storage class of the media asset. Valid values:'."\n"
."\n"
.'- **Standard**: Standard.'."\n"
."\n"
.'- **IA**: Infrequent Access (IA).'."\n"
."\n"
.'- **Archive**: Archive.'."\n"
."\n"
.'- **ColdArchive**: Cold Archive.'."\n"
."\n"
.'- **SourceIA**: Source IA.'."\n"
."\n"
.'- **SourceArchive**: Source Archive.'."\n"
."\n"
.'- **SourceColdArchive**: Source Cold Archive.'."\n"
."\n"
.'- **Changing**: The storage class is being changed.'."\n"
."\n"
.'- **SourceChanging**: The storage class of the source file is being changed.', 'type' => 'string', 'example' => 'Standard', 'title' => ''],
],
'title' => '',
'example' => '',
],
'PlayInfoList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'PlayInfo' => [
'description' => 'The playback information of the audio or video stream.',
'type' => 'array',
'items' => [
'description' => 'The details of the audio or video file.',
'type' => 'object',
'properties' => [
'CreationTime' => ['description' => 'The time when the stream was created. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format in UTC.', 'type' => 'string', 'example' => '2022-04-18T07:37:15Z', 'title' => ''],
'Status' => ['description' => 'The status of the media stream. Valid values:'."\n"
."\n"
.'- **Normal**: The stream is in the normal state. This status is assigned to the latest transcoded stream for each definition and format.'."\n"
."\n"
.'- **Invisible**: The stream is in the invisible state. If multiple streams are generated for the same definition and format, the latest stream is marked as Normal and the others are marked as Invisible.', 'type' => 'string', 'example' => 'Normal', 'title' => ''],
'Specification' => ['description' => 'The specifications of the transcoded output. For more information about the valid values and descriptions, see [Specification: Output specifications](~~124671#section-6bv-l0g-opq~~).', 'type' => 'string', 'example' => 'H264.LD', 'title' => ''],
'NarrowBandType' => ['description' => 'The transcoding type. Valid values:'."\n"
."\n"
.'- **0**: Normal transcoding.'."\n"
."\n"
.'- **1.0**: Narrowband HD 1.0.'."\n"
."\n"
.'- **2.0**: Narrowband HD 2.0.', 'type' => 'string', 'example' => '0', 'title' => ''],
'Height' => ['description' => 'The height of the media stream. Unit: px.', 'type' => 'integer', 'format' => 'int64', 'example' => '640', 'title' => ''],
'Bitrate' => ['description' => 'The bitrate of the media stream. Unit: Kbps.'."\n"
."\n"
.'> Due to the dynamic sharding feature of M3U8, the calculated bitrate may have a drift.', 'type' => 'string', 'example' => '450.878', 'title' => ''],
'ModificationTime' => ['description' => 'The time when the stream was last updated. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format in UTC.', 'type' => 'string', 'example' => '2022-04-20T06:32:19Z', 'title' => ''],
'WatermarkId' => ['description' => 'The ID of the watermark template associated with the current media stream.', 'type' => 'string', 'example' => 'dgfn26457856****', 'title' => ''],
'Encrypt' => ['description' => 'Indicates whether the media stream is encrypted. Valid values:'."\n"
."\n"
.'- **0**: No.'."\n"
."\n"
.'- **1**: Yes.', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
'Definition' => ['description' => 'The definition of the video stream. Valid values are:'."\n"
."\n"
.'- **FD**: Low definition.'."\n"
."\n"
.'- **LD**: Standard definition.'."\n"
."\n"
.'- **SD**: High definition.'."\n"
."\n"
.'- **HD**: Ultra high definition.'."\n"
."\n"
.'- **OD**: Original quality.'."\n"
."\n"
.'- **2K**: 2K resolution.'."\n"
."\n"
.'- **4K**: 4K resolution.'."\n"
."\n"
.'- **SQ**: Standard-quality audio.'."\n"
."\n"
.'- **HQ**: High-quality audio.'."\n"
."\n"
.'- **AUTO**: Adaptive bitrate.', 'type' => 'string', 'example' => 'LD', 'title' => ''],
'EncryptType' => ['description' => 'The encryption type of the media stream. Valid values:'."\n"
."\n"
.'- **AliyunVoDEncryption**: Alibaba Cloud proprietary cryptography.'."\n"
."\n"
.'- **HLSEncryption**: HLS standard encryption.'."\n"
."\n"
.'> If the encryption type is `AliyunVoDEncryption`, you can play the stream only using ApsaraVideo Player SDK.', 'type' => 'string', 'example' => 'AliyunVoDEncryption', 'title' => ''],
'EncryptMode' => ['description' => 'The encryption mode of the media stream. Valid values:'."\n"
."\n"
.'- **License**: Local decryption mode.'."\n"
."\n"
.'> If the encryption mode is **License**, you can play the stream only using ApsaraVideo Player SDK.', 'type' => 'string', 'example' => 'License', 'title' => ''],
'StreamType' => ['description' => 'The type of the media stream. The value is **video** for a video stream or **audio** for an audio-only stream.', 'type' => 'string', 'example' => 'video', 'title' => ''],
'JobId' => ['description' => 'The ID of the transcoding job for the media stream. This ID serves as the unique identifier for the media stream.', 'type' => 'string', 'example' => '80e9c6580e754a798c3c19c59b16****', 'title' => ''],
'Size' => ['description' => 'The size of the media stream. Unit: byte.'."\n"
."\n"
.'> Due to the dynamic sharding feature of M3U8, the calculated stream size may have a drift.', 'type' => 'integer', 'format' => 'int64', 'example' => '418112', 'title' => ''],
'Width' => ['description' => 'The width of the media stream. Unit: px.', 'type' => 'integer', 'format' => 'int64', 'example' => '360', 'title' => ''],
'Fps' => ['description' => 'The frame rate of the media stream. Unit: frames per second.', 'type' => 'string', 'example' => '25', 'title' => ''],
'Duration' => ['description' => 'The duration of the media stream. Unit: seconds.', 'type' => 'string', 'example' => '9.0464', 'title' => ''],
'PlayURL' => ['description' => 'The playback URL of the video stream.', 'type' => 'string', 'example' => 'https://example.aliyundoc.com/d52ee123f331466aabf6ab32a93d****/a777f9e24e6e47a2a942467d5c38ea37-8ee8e04293c6657fdda282bc422704****.m3u8', 'title' => ''],
'Format' => ['description' => 'The format of the media stream.'."\n"
."\n"
.'- The value is **mp4** or **m3u8** for a video file.'."\n"
."\n"
.'- The value is **mp3** for an audio-only file.', 'type' => 'string', 'example' => 'm3u8', 'title' => ''],
'HDRType' => ['description' => 'The High Dynamic Range (HDR) type of the media stream. Valid values:'."\n"
."\n"
.'- HDR'."\n"
."\n"
.'- HDR10'."\n"
."\n"
.'- HLG'."\n"
."\n"
.'- DolbyVision'."\n"
."\n"
.'- HDRVivid'."\n"
."\n"
.'- SDR+', 'type' => 'string', 'title' => '', 'example' => 'HLG'],
'BitDepth' => ['description' => 'The color depth. The value is an integer.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '8'],
'JobType' => ['description' => 'The type of the digital watermark. Valid values:'."\n"
."\n"
.'- **1**: Tracing watermark.'."\n"
."\n"
.'- **2**: Copyright watermark.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''],
'JobExt' => ['description' => 'The custom watermark information for the copyright watermark. This field is returned only when `JobType` is `2`.', 'type' => 'string', 'example' => 'CopyrightMarkTest', 'title' => ''],
'CodecName' => ['description' => 'The encoding type. Valid values:'."\n"
."\n"
.'- H264'."\n"
."\n"
.'- H265', 'type' => 'string', 'example' => 'H264', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F552E596-967D-5500-842F-17E6364****\\",\\n \\"VideoBase\\": {\\n \\"CreationTime\\": \\"2017-06-26T06:38:48Z\\",\\n \\"Status\\": \\"Normal\\",\\n \\"VideoId\\": \\"93ab850b4f654b6e91d24d81d44****\\",\\n \\"CoverURL\\": \\"http://example.aliyundoc.com/sample.jpg?auth_key=2333232-atb****\\",\\n \\"Duration\\": \\"3.1667\\",\\n \\"Title\\": \\"Alibaba Cloud VOD\\",\\n \\"MediaType\\": \\"video\\",\\n \\"DanMuURL\\": \\"http://example.aliyundoc.com/****?auth_key=abdf2123-6783232****\\",\\n \\"StorageClass\\": \\"Standard\\"\\n },\\n \\"PlayInfoList\\": {\\n \\"PlayInfo\\": [\\n {\\n \\"CreationTime\\": \\"2022-04-18T07:37:15Z\\",\\n \\"Status\\": \\"Normal\\",\\n \\"Specification\\": \\"H264.LD\\",\\n \\"NarrowBandType\\": \\"0\\",\\n \\"Height\\": 640,\\n \\"Bitrate\\": \\"450.878\\",\\n \\"ModificationTime\\": \\"2022-04-20T06:32:19Z\\",\\n \\"WatermarkId\\": \\"dgfn26457856****\\",\\n \\"Encrypt\\": 1,\\n \\"Definition\\": \\"LD\\",\\n \\"EncryptType\\": \\"AliyunVoDEncryption\\",\\n \\"EncryptMode\\": \\"License\\",\\n \\"StreamType\\": \\"video\\",\\n \\"JobId\\": \\"80e9c6580e754a798c3c19c59b16****\\",\\n \\"Size\\": 418112,\\n \\"Width\\": 360,\\n \\"Fps\\": \\"25\\",\\n \\"Duration\\": \\"9.0464\\",\\n \\"PlayURL\\": \\"https://example.aliyundoc.com/d52ee123f331466aabf6ab32a93d****/a777f9e24e6e47a2a942467d5c38ea37-8ee8e04293c6657fdda282bc422704****.m3u8\\",\\n \\"Format\\": \\"m3u8\\",\\n \\"HDRType\\": \\"HLG\\",\\n \\"BitDepth\\": 8,\\n \\"JobType\\": 2,\\n \\"JobExt\\": \\"CopyrightMarkTest\\",\\n \\"CodecName\\": \\"H264\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
'title' => 'GetPlayInfo',
'description' => '- **Before using this API, ensure you fully understand the pricing and billing methods for the ApsaraVideo VOD service.** Playing or downloading content from a VOD playback URL will incur outbound traffic fees. If an accelerated domain is not configured, refer to [Outbound traffic](t1965047.xdita#section-rwh-e88-f7j). If an accelerated domain is configured, refer to [Acceleration](t1965047.xdita#section-c5t-oq9-15e). If you have enabled cross-region transfer acceleration, additional fees will apply. For details, see [Transfer acceleration](t1989015.xdita#section-sta-zm2-tsv).'."\n"
."\n"
.'- Only videos with a `Status` of Normal can be played. For more information on playback URL usage and limitations, see [](t1959340.xdita#).'."\n"
."\n"
.'- If a [media asset](~~2392368~~) is not in the Standard storage class, set the StorageClass field of the PlayConfig parameter accordingly. For more information, see [PlayConfig](~~86952#section-9g7-s9b-v7z~~).'."\n"
."\n"
.'- If you encounter playback issues, call the [](t2220628.xdita#) API to verify the source file information.'."\n"
."\n"
.''."\n"
."\n"
.'- To use this operation to generate an M3U8 video stream with a tracing watermark, you must submit a ticket to enable this feature. For more information about how to submit a ticket, see [Contact us](~~464625~~). For more information about tracing watermarks, see [Digital watermarking](~~2527021~~).'."\n"
."\n"
.'',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## 接口错误码'."\n"
."\n"
.'下表列举了本接口特有的错误码。'."\n"
.'| 错误代码 | 错误信息 | HTTP 状态码 | 说明 |'."\n"
.'| ------------- |------------ | ----- | ------ | '."\n"
.'| Forbidden.IllegalStatus |Status of the video is illegal. Current Status is %s. |403 |视频状态无效,当前状态为%s。只有**Normal**状态的视频才能播放。|'."\n"
.'| InvalidVideo.NotFound |The video does not exist. |404| 视频不存在。|'."\n"
.'| InvalidVideo.NoneStream |The video has no stream to play for the request parameter ‘Formats : mp4, Definition : LD, StreamType : video’. |404| 根据您的筛选条件找不到可以播放的转码输出流,请检查您的[转码配置](~~86068~~)与筛选条件是否匹配。|'."\n"
.'| Forbidden.AliyunVoDEncryption |Currently only the AliyunVoDEncryption stream exists, you must use the Aliyun player to play or set the value of ResultType to Multiple. |403 |当前仅存在阿里云视频加密的转码输出流,必须使用阿里云播放器进行播放或者设置请求参数**ResultType**值为**Multiple**。|'."\n",
'changeSet' => [
['createdAt' => '2025-07-16T02:18:31.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:16:50.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '360', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetPlayInfo'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetPlayInfo',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'translator' => 'manual',
],
'GetTranscodeSummary' => [
'summary' => 'Queries transcoding summaries of audio and video files based on the file ID. A transcoding summary includes the status and progress of transcoding.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39982',
'abilityTreeNodes' => ['FEATUREvodAFH3DF'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'VideoIds',
'in' => 'query',
'schema' => ['description' => 'The ID of the audio or video file. You can specify up to 10 IDs. Separate the IDs with commas (,). You can use one of the following methods to obtain the ID:'."\n"
."\n"
.'* After you upload a video in the [ApsaraVideo VOD console](https://vod.console.aliyun.com), you can log on to the ApsaraVideo VOD console and choose **Media Files** > **Audio/Video** to view the ID of the video.'."\n"
.'* Obtain the value of VideoId from the response to the [CreateUploadVideo](~~55407~~) operation that you call to obtain the upload URL and credential.'."\n"
.'* Obtain the value of VideoId by calling the [SearchMedia](~~86044~~) operation. This method is applicable to files that have been uploaded.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '"d4860fcc6ae9fed52e8938244****,e1db68cc586644b83e562bcd94****,hhhhhhh"', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4A*****F6-D7393642CA58', 'title' => ''],
'NonExistVideoIds' => [
'description' => 'The IDs of the audio or video files that do not exist.'."\n",
'type' => 'array',
'items' => ['description' => 'The ID of the audio or video file that does not exist.'."\n", 'type' => 'string', 'example' => '["hhhhhhh"]', 'title' => ''],
'title' => '',
],
'TranscodeSummaryList' => [
'description' => 'The transcoding summary of the file.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'CreationTime' => ['description' => 'The time when the transcoding task was created. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2019-01-23T12:35:12Z', 'title' => ''],
'VideoId' => ['description' => 'The ID of the audio or video file.'."\n", 'type' => 'string', 'example' => 'e1db68cc586644b83e562bcd94****', 'title' => ''],
'CompleteTime' => ['description' => 'The time when the transcoding task was complete. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2019-01-23T12:40:12Z', 'title' => ''],
'TranscodeStatus' => ['description' => 'The status of the transcoding task. Valid values:'."\n"
."\n"
.'* **Processing**: Transcoding is in process.'."\n"
.'* **Partial**: Some transcoding jobs were complete.'."\n"
.'* **CompleteAllSucc**: All transcoding jobs were successful.'."\n"
.'* **CompleteAllFail**: All transcoding jobs failed. If an exception occurs in the source file, no transcoding job is initiated and the transcoding task fails.'."\n"
.'* **CompletePartialSucc**: All transcoding jobs were complete but only some were successful.'."\n", 'type' => 'string', 'example' => 'Processing', 'title' => ''],
'TranscodeTemplateGroupId' => ['description' => 'The ID of the transcoding template group.'."\n", 'type' => 'string', 'example' => '44f9e406bbb*****736a9abe876ecc0', 'title' => ''],
'TranscodeJobInfoSummaryList' => [
'description' => 'The summaries of transcoding jobs.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'CreationTime' => ['description' => 'The time when the transcoding job was created. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2019-02-27T03:34:46Z', 'title' => ''],
'ErrorMessage' => ['description' => 'The error message returned when the transcoding job failed.'."\n", 'type' => 'string', 'example' => 'ErrorMessage', 'title' => ''],
'Height' => ['description' => 'The height of the output video. Unit: pixels.'."\n", 'type' => 'string', 'example' => '960', 'title' => ''],
'TranscodeProgress' => ['description' => 'The transcoding progress. Valid values: `[0,100]`.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '100', 'title' => ''],
'TranscodeTemplateId' => ['description' => 'The ID of the transcoding template.'."\n", 'type' => 'string', 'example' => '57496724ae2*****0968d6e08acc8f6', 'title' => ''],
'Bitrate' => ['description' => 'The average bitrate of the output video. Unit: Kbit/s.'."\n", 'type' => 'string', 'example' => '749', 'title' => ''],
'ErrorCode' => ['description' => 'The error code returned when the transcoding job failed.'."\n", 'type' => 'string', 'example' => '200', 'title' => ''],
'CompleteTime' => ['description' => 'The time when the transcoding job was complete. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2019-02-27T03:40:51Z', 'title' => ''],
'Width' => ['description' => 'The width of the output video. Unit: pixels.'."\n", 'type' => 'string', 'example' => '544', 'title' => ''],
'Duration' => ['description' => 'The duration of the output video. Unit: seconds.'."\n", 'type' => 'string', 'example' => '12', 'title' => ''],
'Fps' => ['description' => 'The frame rate of the output video. Unit: frames per second.'."\n", 'type' => 'string', 'example' => '30', 'title' => ''],
'TranscodeJobStatus' => ['description' => 'The status of the transcoding job. Valid values:'."\n"
."\n"
.'* **Transcoding**: Transcoding is in process.'."\n"
.'* **TranscodeSuccess**: The job was successful.'."\n"
.'* **TranscodeFail**: The job failed.'."\n", 'type' => 'string', 'example' => 'Transcoding', 'title' => ''],
'Filesize' => ['description' => 'The size of the output video. Unit: bytes.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1144259', 'title' => ''],
'Format' => ['description' => 'The container format of the output video.'."\n", 'type' => 'string', 'example' => 'mp4', 'title' => ''],
'WatermarkIdList' => [
'description' => 'The IDs of the watermarks that are applied to the output video.'."\n",
'type' => 'array',
'items' => ['description' => 'The IDs of the watermarks that are applied to the output video.'."\n", 'type' => 'string', 'example' => '["af2afe4761992c*****d947dae97337"]', 'title' => ''],
'title' => '',
],
],
'description' => '',
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4A*****F6-D7393642CA58\\",\\n \\"NonExistVideoIds\\": [\\n \\"[\\\\\\"hhhhhhh\\\\\\"]\\"\\n ],\\n \\"TranscodeSummaryList\\": [\\n {\\n \\"CreationTime\\": \\"2019-01-23T12:35:12Z\\",\\n \\"VideoId\\": \\"e1db68cc586644b83e562bcd94****\\",\\n \\"CompleteTime\\": \\"2019-01-23T12:40:12Z\\",\\n \\"TranscodeStatus\\": \\"Processing\\",\\n \\"TranscodeTemplateGroupId\\": \\"44f9e406bbb*****736a9abe876ecc0\\",\\n \\"TranscodeJobInfoSummaryList\\": [\\n {\\n \\"CreationTime\\": \\"2019-02-27T03:34:46Z\\",\\n \\"ErrorMessage\\": \\"ErrorMessage\\",\\n \\"Height\\": \\"960\\",\\n \\"TranscodeProgress\\": 100,\\n \\"TranscodeTemplateId\\": \\"57496724ae2*****0968d6e08acc8f6\\",\\n \\"Bitrate\\": \\"749\\",\\n \\"ErrorCode\\": \\"200\\",\\n \\"CompleteTime\\": \\"2019-02-27T03:40:51Z\\",\\n \\"Width\\": \\"544\\",\\n \\"Duration\\": \\"12\\",\\n \\"Fps\\": \\"30\\",\\n \\"TranscodeJobStatus\\": \\"Transcoding\\",\\n \\"Filesize\\": 1144259,\\n \\"Format\\": \\"mp4\\",\\n \\"WatermarkIdList\\": [\\n \\"[\\\\\\"af2afe4761992c*****d947dae97337\\\\\\"]\\"\\n ]\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\r\\n25818875-5F78-4A*****F6-D7393642CA58\\r\\n\\t\\r\\n\\t\\te1db68cc58664*****4b83e562bcd9\\r\\n\\t\\tProcessing\\r\\n\\t\\t44f9e406bbb*****736a9abe876ecc0\\r\\n\\t\\t2019-01-23T12:35:12Z\\r\\n\\t\\t2019-01-23T12:40:12Z\\r\\n\\t\\t\\r\\n\\t\\t\\tmp4\\r\\n\\t\\t\\t{}\\r\\n\\t\\t\\t100\\r\\n\\t\\t\\t960\\r\\n\\t\\t\\t2019-02-27T03:34:46Z\\r\\n\\t\\t\\t2019-02-27T03:40:51Z\\r\\n\\t\\t\\tTranscodeSuccess\\r\\n\\t\\t\\t1144259\\r\\n\\t\\t\\taf2afe4761992c*****d947dae97337\\r\\n\\t\\t\\t12\\r\\n\\t\\t\\t57496724ae2*****0968d6e08acc8f6\\r\\n\\t\\t\\t544\\r\\n\\t\\t\\t30\\r\\n\\t\\t\\t749\\r\\n\\t\\t\\tLD\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\tm3u8\\r\\n\\t\\t\\t{"EncryptType":"AliyunVoDEncryption"}\\r\\n\\t\\t\\t100\\r\\n\\t\\t\\t640\\r\\n\\t\\t\\t2019-02-27T03:34:46Z\\r\\n\\t\\t\\t2019-02-27T03:40:50Z\\r\\n\\t\\t\\tTranscodeSuccess\\r\\n\\t\\t\\t759520\\r\\n\\t\\t\\t12\\r\\n\\t\\t\\t4733b3a55b27*****82dae36ac22d34\\r\\n\\t\\t\\t360\\r\\n\\t\\t\\t25\\r\\n\\t\\t\\t499\\r\\n\\t\\t\\tLD\\r\\n\\t\\t\\r\\n\\t\\r\\n\\thhhhhhh\\r\\n","errorExample":""}]',
'title' => 'GetTranscodeSummary',
'description' => '* An audio or video file may be transcoded multiple times. This operation returns only the latest transcoding summary.'."\n"
.'* You can query transcoding summaries for a maximum of 10 audio and video files in one request.'."\n"
.'* You can call the [ListTranscodeTask](~~109120~~) operation to query historical transcoding tasks.'."\n"
.'* **You can call this operation to query information only about transcoding tasks created within the past year.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2025-07-16T02:17:37.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:16:57.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetTranscodeSummary'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetTranscodeSummary',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'GetTranscodeTask' => [
'summary' => 'Queries details about transcoding jobs based on the transcoding task ID.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39984',
'abilityTreeNodes' => ['FEATUREvodAFH3DF'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'TranscodeTaskId',
'in' => 'query',
'schema' => ['description' => 'The ID of the transcoding task. You can use one of the following methods to obtain the ID:'."\n"
."\n"
.'* Obtain the value of TranscodeTaskId from the response to the [SubmitTranscodeJobs](~~68570~~) operation.'."\n"
.'* Obtain the value of TranscodeTaskId from the response to the [ListTranscodeTask](~~109120~~) operation.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'b1b65ab107e14*****3dbb900f6c1fe0', 'title' => ''],
],
[
'name' => 'JobIds',
'in' => 'query',
'schema' => ['description' => 'Transcoding job ID. Supports up to 10 IDs, and multiple IDs should be separated by a comma (,). You can obtain this value in the following ways:'."\n"
."\n"
.'When initiating a transcoding task through the [SubmitTranscodeJobs](~~454920~~) interface, it is the value of the returned parameter JobId.', 'type' => 'string', 'required' => false, 'example' => '86c1925fba0****,7afb201e7fa****,2cc4997378****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'F4C6D5BE-BF13-45*****6C-516EA8906DCD', 'title' => ''],
'NonExistJobIds' => [
'description' => 'The nonexistent job ID.',
'type' => 'array',
'items' => ['description' => 'The nonexistent job ID.', 'type' => 'string', 'example' => '["hhhhhhh"]', 'title' => ''],
'title' => '',
],
'TranscodeJobInfoList' => [
'description' => 'List of transcode job information.',
'type' => 'array',
'items' => [
'description' => '',
'type' => 'object',
'properties' => [
'Definition' => ['description' => 'The clarity and audio quality types are defined as follows:'."\n"
."\n"
.'- SD: Standard Definition.'."\n"
.'- HD: High Definition.'."\n"
.'- FHD: Full High Definition.'."\n"
.'- OD: Original Definition.'."\n"
.'- 2K: 2K.'."\n"
.'- 4K: 4K.'."\n"
.'- SQ: Standard Audio Quality.'."\n"
.'- HQ: High Audio Quality.'."\n"
.'- AUTO: Adaptive Bitrate. This is only available when the transcoding template is configured with packaging settings. Please refer to [the Transcoding Template Configuration - Package Setting](https://api.aliyun-inc.com/~~52839~~?spm=openapi-amp.newDocPublishment.0.0.65b0281fNUFIXC) for more details.'."\n"
."\n"
.'> This value represents the clarity label configured in the transcoding template and does not indicate the actual resolution range of the transcoded output file.', 'type' => 'string', 'example' => 'LD', 'title' => ''],
'CreationTime' => ['description' => 'The creation time of the transcoding job. The format is yyyy-MM-dd\'T\'HH:mm:ssZ (UTC time).', 'type' => 'string', 'example' => '2019-02-26T08:27:16Z', 'title' => ''],
'InputFileUrl' => ['description' => 'The OSS address of the source file for transcoding.', 'type' => 'string', 'example' => 'http://outin-40564*****e1403e7.oss-cn-shanghai.aliyuncs.com/customerTrans/5b95e568f8e*****47f38e/31f1184c-*****b2a2-f94-c213f.wmv', 'title' => ''],
'ErrorMessage' => ['description' => 'The error message returned.'."\n", 'type' => 'string', 'example' => 'ErrorMessage', 'title' => ''],
'ErrorCode' => ['description' => 'The error code.'."\n", 'type' => 'string', 'example' => '200', 'title' => ''],
'CompleteTime' => ['description' => 'The complete time of the transcoding job. The format is yyyy-MM-dd\'T\'HH:mm:ssZ (UTC time).', 'type' => 'string', 'example' => '2019-02-26T08:30:16Z'."\n", 'title' => ''],
'TranscodeProgress' => ['description' => 'The processing progress of the transcoding job. The value range is [0, 100].', 'type' => 'integer', 'format' => 'int64', 'example' => '80', 'title' => ''],
'Priority' => ['description' => 'The priority of the transcoding task.', 'type' => 'string', 'example' => '6', 'title' => ''],
'TranscodeJobStatus' => ['description' => 'The status of the transcoding job:'."\n"
."\n"
.'Transcoding: Transcoding in progress.'."\n"
.'TranscodeSuccess: Transcoding successful.'."\n"
.'TranscodeFail: Transcoding failed.', 'type' => 'string', 'example' => 'Transcoding', 'title' => ''],
'TranscodeTemplateId' => ['description' => 'The ID of the template used for the transcode job.', 'type' => 'string', 'example' => '174b0534fea3*****b51c8f0ad1374', 'title' => ''],
'TranscodeJobId' => ['description' => 'The ID of the transcode job.', 'type' => 'string', 'example' => '38f0e513c88*****85515f9d50be188', 'title' => ''],
'OutputFile' => [
'description' => 'Information about the transcoded output files.',
'type' => 'object',
'properties' => [
'VideoStreamList' => ['description' => 'List of video streams.', 'type' => 'string', 'example' => '[{\\"AvgFPS\\":\\"30.0\\",\\"Bitrate\\":\\"933.814\\",\\"CodecLongName\\":\\"H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10\\",\\"CodecName\\":\\"h264\\",\\"CodecTag\\":\\"0x31637661\\",\\"CodecTagString\\":\\"avc1\\",\\"CodecTimeBase\\":\\"1/60\\",\\"Dar\\":\\"9:16\\",\\"Duration\\":\\"12.033333\\",\\"Fps\\":\\"30.0\\",\\"HasBFrames\\":\\"2\\",\\"Height\\":\\"360\\",\\"Index\\":\\"0\\",\\"Lang\\":\\"und\\",\\"Level\\":\\"30\\",\\"PixFmt\\":\\"yuv420p\\",\\"Profile\\":\\"High\\",\\"Sar\\":\\"81:256\\",\\"StartTime\\":\\"0.000000\\",\\"Timebase\\":\\"1/15360\\",\\"Width\\":\\"640\\"}]', 'title' => ''],
'OutputFileUrl' => ['description' => 'OSS address of the transcoded output file.', 'type' => 'string', 'example' => 'http://outin-40564*****e1403e7.oss-cn-shanghai.aliyuncs.com/883f5d*****f20aaa352f/c3be4f073*****7d5193ec8-{DestMd5}-od-S00000001-200000.mp4', 'title' => ''],
'Encryption' => ['description' => 'Encryption configuration used for the transcoded output file. Values:'."\n"
."\n"
.'- AliyunVoDEncryption: Alibaba Cloud Video Encryption (private encryption).'."\n"
.'- HLSEncryption: HLS standard encryption.', 'type' => 'string', 'example' => '{\\"EncryptType\\":\\"AliyunVoDEncryption\\"}', 'title' => ''],
'Height' => ['description' => 'Height of the video frame in the transcoded output file. Unit: pixels (px).', 'type' => 'string', 'example' => '360', 'title' => ''],
'SubtitleStreamList' => ['description' => 'List of subtitle streams.', 'type' => 'string', 'example' => '[]', 'title' => ''],
'Bitrate' => ['description' => 'Average bitrate of the transcoded output file. Unit: Kbps.', 'type' => 'string', 'example' => '964', 'title' => ''],
'AudioStreamList' => ['description' => 'List of audio streams.', 'type' => 'string', 'example' => '"AudioStreamList": "[{\\"Bitrate\\":\\"64.533\\",\\"ChannelLayout\\":\\"stereo\\",\\"Channels\\":\\"2\\",\\"CodecLongName\\":\\"AAC (Advanced Audio Coding)\\",\\"CodecName\\":\\"aac\\",\\"CodecTag\\":\\"0x6134706d\\",\\"CodecTagString\\":\\"mp4a\\",\\"CodecTimeBase\\":\\"1/44100\\",\\"Duration\\":\\"12.615533\\",\\"Index\\":\\"1\\",\\"Lang\\":\\"und\\",\\"SampleFmt\\":\\"fltp\\",\\"Samplerate\\":\\"44100\\",\\"StartTime\\":\\"-0.046440\\",\\"Timebase\\":\\"1/44100\\"}]', 'title' => ''],
'Width' => ['description' => 'Width of the video frame in the transcoded output file. Unit: pixels (px).', 'type' => 'string', 'example' => '640', 'title' => ''],
'Fps' => ['description' => 'Frame rate of the transcoded output file. Unit: frames per second (fps).', 'type' => 'string', 'example' => '25', 'title' => ''],
'Duration' => ['description' => 'Duration of the transcoded output file. Unit: seconds (s).', 'type' => 'string', 'example' => '12', 'title' => ''],
'Format' => ['description' => 'Container format of the transcoded output file.', 'type' => 'string', 'example' => 'm3u8', 'title' => ''],
'Filesize' => ['description' => 'Size of the transcoded output file. Unit: bytes (B).', 'type' => 'integer', 'format' => 'int64', 'example' => '851076', 'title' => ''],
'WatermarkIdList' => [
'description' => 'List of watermarks used for transcoding.',
'type' => 'array',
'items' => ['description' => 'List of watermarks used for transcoding.', 'type' => 'string', 'example' => '["64079a0e3e286*****b48a8c9413"]', 'title' => ''],
'title' => '',
],
],
'title' => '',
],
],
'title' => '',
],
'title' => '',
],
'TranscodeTask' => [
'description' => 'Details about transcoding tasks.'."\n",
'type' => 'object',
'properties' => [
'CreationTime' => ['description' => 'The time when the transcoding task was created. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2019-01-23T12:35:12Z', 'title' => ''],
'Trigger' => ['description' => 'The mode in which the transcoding task is triggered. Valid values:'."\n"
."\n"
.'* **Auto**: The transcoding task is automatically triggered when the video is uploaded.'."\n"
.'* **Manual**: The transcoding task is triggered by calling the SubmitTranscodeJobs operation.'."\n", 'type' => 'string', 'example' => 'Auto ', 'title' => ''],
'TaskStatus' => ['description' => 'The status of the transcoding task. Valid values:'."\n"
."\n"
.'* **Processing**: In progress.'."\n"
.'* **Partial**: Some transcoding jobs were complete.'."\n"
.'* **CompleteAllSucc**: All transcoding jobs were successful.'."\n"
.'* **CompleteAllFail**: All transcoding jobs failed. If an exception occurs in the source file, no transcoding job is initiated and the transcoding task fails.'."\n"
.'* **CompletePartialSucc**: All transcoding jobs were complete but only some were successful.'."\n", 'type' => 'string', 'example' => 'Processing', 'title' => ''],
'VideoId' => ['description' => 'The ID of the audio or video file.'."\n", 'type' => 'string', 'example' => '883f5d98107*****b7f20aaa352f', 'title' => ''],
'CompleteTime' => ['description' => 'The time when the transcoding task was complete. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2019-01-23T12:40:12Z', 'title' => ''],
'TranscodeTemplateGroupId' => ['description' => 'The ID of the transcoding template group.'."\n", 'type' => 'string', 'example' => 'b500c7094bd241*****3e9900752d7c3', 'title' => ''],
'TranscodeTaskId' => ['description' => 'The ID of the transcoding task.'."\n", 'type' => 'string', 'example' => 'b1b65ab107e14*****3dbb900f6c1fe0', 'title' => ''],
'TranscodeJobInfoList' => [
'description' => 'Details about transcoding jobs.'."\n",
'type' => 'array',
'items' => [
'description' => '',
'type' => 'object',
'properties' => [
'Definition' => ['description' => 'The video resolution. Valid values:'."\n"
."\n"
.'* **LD**: low definition'."\n"
.'* **SD**: standard definition'."\n"
.'* **HD**: high definition'."\n"
.'* **FHD**: ultra high definition'."\n"
.'* **OD**: original definition'."\n"
.'* **2K**: 2K'."\n"
.'* **4K**: 4K'."\n"
.'* **SQ**: standard sound quality'."\n"
.'* **HQ**: high sound quality'."\n"
.'* **AUTO**: adaptive bitrate Adaptive bitrate streams are returned only if PackageSetting is set in the transcoding template. For more information, see [Basic structures](~~52839~~).'."\n"
."\n"
.'> This parameter indicates the definition that is configured in the transcoding template and does not indicate the actual resolution of the output video.'."\n", 'type' => 'string', 'example' => 'LD', 'title' => ''],
'CreationTime' => ['description' => 'The time when the transcoding job was created. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2019-02-26T08:27:16Z', 'title' => ''],
'InputFileUrl' => ['description' => 'The Object Storage Service (OSS) URL of the input file.'."\n", 'type' => 'string', 'example' => 'http://outin-40564*****e1403e7.oss-cn-shanghai.aliyuncs.com/customerTrans/5b95e568f8e*****47f38e/31f1184c-*****b2a2-f94-c213f.wmv', 'title' => ''],
'ErrorMessage' => ['description' => 'The error message returned when the transcoding job failed.'."\n", 'type' => 'string', 'example' => 'ErrorMessage', 'title' => ''],
'ErrorCode' => ['description' => 'The error code returned when the transcoding job failed.'."\n", 'type' => 'string', 'example' => '200', 'title' => ''],
'CompleteTime' => ['description' => 'The time when the transcoding job was complete. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2019-02-26T08:30:16Z', 'title' => ''],
'TranscodeProgress' => ['description' => 'The progress of the transcoding job. Valid values: `[0,100]`.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '100', 'title' => ''],
'Priority' => ['description' => 'The priority of the transcoding job.'."\n", 'type' => 'string', 'example' => '6', 'title' => ''],
'TranscodeJobStatus' => ['description' => 'The status of the transcoding job.'."\n"
."\n"
.'* **Transcoding**'."\n"
.'* **TranscodeSuccess**'."\n"
.'* **TranscodeFail**'."\n", 'type' => 'string', 'example' => 'Transcoding', 'title' => ''],
'TranscodeTemplateId' => ['description' => 'The ID of the transcoding template.'."\n", 'type' => 'string', 'example' => '174b0534fea3*****b51c8f0ad1374', 'title' => ''],
'TranscodeJobId' => ['description' => 'The ID of the transcoding job.'."\n", 'type' => 'string', 'example' => '38f0e513c88*****85515f9d50be188', 'title' => ''],
'OutputFile' => [
'description' => 'The information about the output file.'."\n",
'type' => 'object',
'properties' => [
'VideoStreamList' => ['description' => 'The video streams.'."\n", 'type' => 'string', 'example' => '[{\\"AvgFPS\\":\\"30.0\\",\\"Bitrate\\":\\"933.814\\",\\"CodecLongName\\":\\"H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10\\",\\"CodecName\\":\\"h264\\",\\"CodecTag\\":\\"0x31637661\\",\\"CodecTagString\\":\\"avc1\\",\\"CodecTimeBase\\":\\"1/60\\",\\"Dar\\":\\"9:16\\",\\"Duration\\":\\"12.033333\\",\\"Fps\\":\\"30.0\\",\\"HasBFrames\\":\\"2\\",\\"Height\\":\\"360\\",\\"Index\\":\\"0\\",\\"Lang\\":\\"und\\",\\"Level\\":\\"30\\",\\"PixFmt\\":\\"yuv420p\\",\\"Profile\\":\\"High\\",\\"Sar\\":\\"81:256\\",\\"StartTime\\":\\"0.000000\\",\\"Timebase\\":\\"1/15360\\",\\"Width\\":\\"640\\"}]', 'title' => ''],
'OutputFileUrl' => ['description' => 'The OSS URL of the output file.'."\n", 'type' => 'string', 'example' => 'http://outin-40564*****e1403e7.oss-cn-shanghai.aliyuncs.com/883f5d*****f20aaa352f/c3be4f073*****7d5193ec8-{DestMd5}-od-S00000001-200000.mp4', 'title' => ''],
'Encryption' => ['description' => 'The encryption method of the output file. Valid values:'."\n"
."\n"
.'* **AliyunVoDEncryption**: Alibaba Cloud proprietary cryptography'."\n"
.'* **HLSEncryption**: HTTP Live Streaming (HLS) encryption'."\n", 'type' => 'string', 'example' => '{\\"EncryptType\\":\\"AliyunVoDEncryption\\"}', 'title' => ''],
'Height' => ['description' => 'The height of the output video. Unit: pixels.'."\n", 'type' => 'string', 'example' => '360', 'title' => ''],
'SubtitleStreamList' => ['description' => 'The subtitle streams.'."\n", 'type' => 'string', 'example' => '[]', 'title' => ''],
'Bitrate' => ['description' => 'The average bitrate of the output file. Unit: Kbit/s.'."\n", 'type' => 'string', 'example' => '964', 'title' => ''],
'AudioStreamList' => ['description' => 'The audio streams.'."\n", 'type' => 'string', 'example' => '"AudioStreamList": "[{\\"Bitrate\\":\\"64.533\\",\\"ChannelLayout\\":\\"stereo\\",\\"Channels\\":\\"2\\",\\"CodecLongName\\":\\"AAC (Advanced Audio Coding)\\",\\"CodecName\\":\\"aac\\",\\"CodecTag\\":\\"0x6134706d\\",\\"CodecTagString\\":\\"mp4a\\",\\"CodecTimeBase\\":\\"1/44100\\",\\"Duration\\":\\"12.615533\\",\\"Index\\":\\"1\\",\\"Lang\\":\\"und\\",\\"SampleFmt\\":\\"fltp\\",\\"Samplerate\\":\\"44100\\",\\"StartTime\\":\\"-0.046440\\",\\"Timebase\\":\\"1/44100\\"}]', 'title' => ''],
'Width' => ['description' => 'The width of the output video. Unit: pixels.'."\n", 'type' => 'string', 'example' => '640', 'title' => ''],
'Fps' => ['description' => 'The frame rate of the output file. Unit: frames per second.'."\n", 'type' => 'string', 'example' => '25', 'title' => ''],
'Duration' => ['description' => 'The length of the output file. Unit: seconds.'."\n", 'type' => 'string', 'example' => '12', 'title' => ''],
'Format' => ['description' => 'The container format of the output file.'."\n", 'type' => 'string', 'example' => 'm3u8', 'title' => ''],
'Filesize' => ['description' => 'The size of the output file. Unit: byte.', 'type' => 'integer', 'format' => 'int64', 'example' => '851076', 'title' => ''],
'WatermarkIdList' => [
'description' => 'The IDs of the watermarks used by the output file.',
'type' => 'array',
'items' => ['description' => 'The IDs of the watermarks used by the output file.', 'type' => 'string', 'example' => '["64079a0e3e286*****b48a8c9413"]', 'title' => ''],
'title' => '',
],
],
'title' => '',
],
],
'title' => '',
],
'title' => '',
],
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F4C6D5BE-BF13-45*****6C-516EA8906DCD\\",\\n \\"NonExistJobIds\\": [\\n \\"[\\\\\\"hhhhhhh\\\\\\"]\\"\\n ],\\n \\"TranscodeJobInfoList\\": [\\n {\\n \\"Definition\\": \\"LD\\",\\n \\"CreationTime\\": \\"2019-02-26T08:27:16Z\\",\\n \\"InputFileUrl\\": \\"http://outin-40564*****e1403e7.oss-cn-shanghai.aliyuncs.com/customerTrans/5b95e568f8e*****47f38e/31f1184c-*****b2a2-f94-c213f.wmv\\",\\n \\"ErrorMessage\\": \\"ErrorMessage\\",\\n \\"ErrorCode\\": \\"200\\",\\n \\"CompleteTime\\": \\"2019-02-26T08:30:16Z\\\\n\\",\\n \\"TranscodeProgress\\": 80,\\n \\"Priority\\": \\"6\\",\\n \\"TranscodeJobStatus\\": \\"Transcoding\\",\\n \\"TranscodeTemplateId\\": \\"174b0534fea3*****b51c8f0ad1374\\",\\n \\"TranscodeJobId\\": \\"38f0e513c88*****85515f9d50be188\\",\\n \\"OutputFile\\": {\\n \\"VideoStreamList\\": \\"[{\\\\\\\\\\\\\\"AvgFPS\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"30.0\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Bitrate\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"933.814\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"CodecLongName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"CodecName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"h264\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"CodecTag\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0x31637661\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"CodecTagString\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"avc1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"CodecTimeBase\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1/60\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Dar\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"9:16\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Duration\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"12.033333\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Fps\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"30.0\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"HasBFrames\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"2\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Height\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"360\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Index\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Lang\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"und\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Level\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"30\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"PixFmt\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"yuv420p\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Profile\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"High\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Sar\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"81:256\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"StartTime\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0.000000\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Timebase\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1/15360\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Width\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"640\\\\\\\\\\\\\\"}]\\",\\n \\"OutputFileUrl\\": \\"http://outin-40564*****e1403e7.oss-cn-shanghai.aliyuncs.com/883f5d*****f20aaa352f/c3be4f073*****7d5193ec8-{DestMd5}-od-S00000001-200000.mp4\\",\\n \\"Encryption\\": \\"{\\\\\\\\\\\\\\"EncryptType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"AliyunVoDEncryption\\\\\\\\\\\\\\"}\\",\\n \\"Height\\": \\"360\\",\\n \\"SubtitleStreamList\\": \\"[]\\",\\n \\"Bitrate\\": \\"964\\",\\n \\"AudioStreamList\\": \\"\\\\\\"AudioStreamList\\\\\\": \\\\\\"[{\\\\\\\\\\\\\\"Bitrate\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"64.533\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"ChannelLayout\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"stereo\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Channels\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"2\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"CodecLongName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"AAC (Advanced Audio Coding)\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"CodecName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"aac\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"CodecTag\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0x6134706d\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"CodecTagString\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"mp4a\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"CodecTimeBase\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1/44100\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Duration\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"12.615533\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Index\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Lang\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"und\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"SampleFmt\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"fltp\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Samplerate\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"44100\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"StartTime\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"-0.046440\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Timebase\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1/44100\\\\\\\\\\\\\\"}]\\",\\n \\"Width\\": \\"640\\",\\n \\"Fps\\": \\"25\\",\\n \\"Duration\\": \\"12\\",\\n \\"Format\\": \\"m3u8\\",\\n \\"Filesize\\": 851076,\\n \\"WatermarkIdList\\": [\\n \\"[\\\\\\"64079a0e3e286*****b48a8c9413\\\\\\"]\\"\\n ]\\n }\\n }\\n ],\\n \\"TranscodeTask\\": {\\n \\"CreationTime\\": \\"2019-01-23T12:35:12Z\\",\\n \\"Trigger\\": \\"Auto \\",\\n \\"TaskStatus\\": \\"Processing\\",\\n \\"VideoId\\": \\"883f5d98107*****b7f20aaa352f\\",\\n \\"CompleteTime\\": \\"2019-01-23T12:40:12Z\\",\\n \\"TranscodeTemplateGroupId\\": \\"b500c7094bd241*****3e9900752d7c3\\",\\n \\"TranscodeTaskId\\": \\"b1b65ab107e14*****3dbb900f6c1fe0\\",\\n \\"TranscodeJobInfoList\\": [\\n {\\n \\"Definition\\": \\"LD\\",\\n \\"CreationTime\\": \\"2019-02-26T08:27:16Z\\",\\n \\"InputFileUrl\\": \\"http://outin-40564*****e1403e7.oss-cn-shanghai.aliyuncs.com/customerTrans/5b95e568f8e*****47f38e/31f1184c-*****b2a2-f94-c213f.wmv\\",\\n \\"ErrorMessage\\": \\"ErrorMessage\\",\\n \\"ErrorCode\\": \\"200\\",\\n \\"CompleteTime\\": \\"2019-02-26T08:30:16Z\\",\\n \\"TranscodeProgress\\": 100,\\n \\"Priority\\": \\"6\\",\\n \\"TranscodeJobStatus\\": \\"Transcoding\\",\\n \\"TranscodeTemplateId\\": \\"174b0534fea3*****b51c8f0ad1374\\",\\n \\"TranscodeJobId\\": \\"38f0e513c88*****85515f9d50be188\\",\\n \\"OutputFile\\": {\\n \\"VideoStreamList\\": \\"[{\\\\\\\\\\\\\\"AvgFPS\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"30.0\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Bitrate\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"933.814\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"CodecLongName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"CodecName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"h264\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"CodecTag\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0x31637661\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"CodecTagString\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"avc1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"CodecTimeBase\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1/60\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Dar\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"9:16\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Duration\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"12.033333\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Fps\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"30.0\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"HasBFrames\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"2\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Height\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"360\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Index\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Lang\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"und\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Level\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"30\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"PixFmt\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"yuv420p\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Profile\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"High\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Sar\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"81:256\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"StartTime\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0.000000\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Timebase\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1/15360\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Width\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"640\\\\\\\\\\\\\\"}]\\",\\n \\"OutputFileUrl\\": \\"http://outin-40564*****e1403e7.oss-cn-shanghai.aliyuncs.com/883f5d*****f20aaa352f/c3be4f073*****7d5193ec8-{DestMd5}-od-S00000001-200000.mp4\\",\\n \\"Encryption\\": \\"{\\\\\\\\\\\\\\"EncryptType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"AliyunVoDEncryption\\\\\\\\\\\\\\"}\\",\\n \\"Height\\": \\"360\\",\\n \\"SubtitleStreamList\\": \\"[]\\",\\n \\"Bitrate\\": \\"964\\",\\n \\"AudioStreamList\\": \\"\\\\\\"AudioStreamList\\\\\\": \\\\\\"[{\\\\\\\\\\\\\\"Bitrate\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"64.533\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"ChannelLayout\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"stereo\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Channels\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"2\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"CodecLongName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"AAC (Advanced Audio Coding)\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"CodecName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"aac\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"CodecTag\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0x6134706d\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"CodecTagString\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"mp4a\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"CodecTimeBase\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1/44100\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Duration\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"12.615533\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Index\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Lang\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"und\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"SampleFmt\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"fltp\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Samplerate\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"44100\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"StartTime\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"-0.046440\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Timebase\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1/44100\\\\\\\\\\\\\\"}]\\",\\n \\"Width\\": \\"640\\",\\n \\"Fps\\": \\"25\\",\\n \\"Duration\\": \\"12\\",\\n \\"Format\\": \\"m3u8\\",\\n \\"Filesize\\": 851076,\\n \\"WatermarkIdList\\": [\\n \\"[\\\\\\"64079a0e3e286*****b48a8c9413\\\\\\"]\\"\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nF4C6D5BE-BF13-45*****6C-516EA8906DCD\\n\\n \\n 174b0534fea3*****b51c8f0ad1374\\n 6\\n http://outin-40564*****e1403e7.oss-cn-shanghai.aliyuncs.com/customerTrans/5b95e568f8e*****47f38e/31f1184c-*****b2a2-f94-c213f.wmv\\n LD\\n 2019-02-26T08:27:16Z\\n Transcoding\\n 38f0e513c88*****85515f9d50be188\\n 200\\n 100\\n ErrorMessage\\n 2019-02-26T08:30:16Z\\n \\n \\n \\n http://outin-40564*****e1403e7.oss-cn-shanghai.aliyuncs.com/883f5d*****f20aaa352f/c3be4f073*****7d5193ec8-{DestMd5}-od-S00000001-200000.mp4\\n 25\\n [{\\\\\\"AvgFPS\\\\\\":\\\\\\"30.0\\\\\\",\\\\\\"Bitrate\\\\\\":\\\\\\"933.814\\\\\\",\\\\\\"CodecLongName\\\\\\":\\\\\\"H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10\\\\\\",\\\\\\"CodecName\\\\\\":\\\\\\"h264\\\\\\",\\\\\\"CodecTag\\\\\\":\\\\\\"0x31637661\\\\\\",\\\\\\"CodecTagString\\\\\\":\\\\\\"avc1\\\\\\",\\\\\\"CodecTimeBase\\\\\\":\\\\\\"1/60\\\\\\",\\\\\\"Dar\\\\\\":\\\\\\"9:16\\\\\\",\\\\\\"Duration\\\\\\":\\\\\\"12.033333\\\\\\",\\\\\\"Fps\\\\\\":\\\\\\"30.0\\\\\\",\\\\\\"HasBFrames\\\\\\":\\\\\\"2\\\\\\",\\\\\\"Height\\\\\\":\\\\\\"360\\\\\\",\\\\\\"Index\\\\\\":\\\\\\"0\\\\\\",\\\\\\"Lang\\\\\\":\\\\\\"und\\\\\\",\\\\\\"Level\\\\\\":\\\\\\"30\\\\\\",\\\\\\"PixFmt\\\\\\":\\\\\\"yuv420p\\\\\\",\\\\\\"Profile\\\\\\":\\\\\\"High\\\\\\",\\\\\\"Sar\\\\\\":\\\\\\"81:256\\\\\\",\\\\\\"StartTime\\\\\\":\\\\\\"0.000000\\\\\\",\\\\\\"Timebase\\\\\\":\\\\\\"1/15360\\\\\\",\\\\\\"Width\\\\\\":\\\\\\"640\\\\\\"}]\\n 12\\n \\"AudioStreamList\\": \\"[{\\\\\\"Bitrate\\\\\\":\\\\\\"64.533\\\\\\",\\\\\\"ChannelLayout\\\\\\":\\\\\\"stereo\\\\\\",\\\\\\"Channels\\\\\\":\\\\\\"2\\\\\\",\\\\\\"CodecLongName\\\\\\":\\\\\\"AAC (Advanced Audio Coding)\\\\\\",\\\\\\"CodecName\\\\\\":\\\\\\"aac\\\\\\",\\\\\\"CodecTag\\\\\\":\\\\\\"0x6134706d\\\\\\",\\\\\\"CodecTagString\\\\\\":\\\\\\"mp4a\\\\\\",\\\\\\"CodecTimeBase\\\\\\":\\\\\\"1/44100\\\\\\",\\\\\\"Duration\\\\\\":\\\\\\"12.615533\\\\\\",\\\\\\"Index\\\\\\":\\\\\\"1\\\\\\",\\\\\\"Lang\\\\\\":\\\\\\"und\\\\\\",\\\\\\"SampleFmt\\\\\\":\\\\\\"fltp\\\\\\",\\\\\\"Samplerate\\\\\\":\\\\\\"44100\\\\\\",\\\\\\"StartTime\\\\\\":\\\\\\"-0.046440\\\\\\",\\\\\\"Timebase\\\\\\":\\\\\\"1/44100\\\\\\"}]\\n {\\\\\\"EncryptType\\\\\\":\\\\\\"AliyunVoDEncryption\\\\\\"}\\n 851076\\n 964\\n [\\"64079a0e3e286*****b48a8c9413\\"]\\n m3u8\\n []\\n 360\\n 640\\n \\n \\n Auto \\n 883f5d98107*****b7f20aaa352f\\n b500c7094bd241*****3e9900752d7c3\\n 2019-01-23T12:35:12Z\\n Processing\\n 2019-01-23T12:40:12Z\\n b1b65ab107e14*****3dbb900f6c1fe0\\n\\n","errorExample":""}]',
'title' => 'GetTranscodeTask',
'description' => 'You can call this operation to query only transcoding tasks created within the past year.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return. '."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| NoSuchResource | The specified resource %s does not exist. | 404 | The error message returned because the specified information does not exist. %s indicates the specified information. |',
'changeSet' => [
['createdAt' => '2025-07-16T02:18:40.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:17:03.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetTranscodeTask'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetTranscodeTask',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'GetTranscodeTemplateGroup' => [
'summary' => 'Queries the details of a transcoding template group based on the template group ID.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39986',
'abilityTreeNodes' => ['FEATUREvodL077M7'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'TranscodeTemplateGroupId',
'in' => 'query',
'schema' => ['description' => 'The ID of the transcoding template group.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'a591f697c7167*****6ae1502142d0', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '6730AC93-7B12-4B*****7F-49EE1FE8BC49', 'title' => ''],
'TranscodeTemplateGroup' => [
'description' => 'The information about the transcoding template group.'."\n",
'type' => 'object',
'properties' => [
'CreationTime' => ['description' => 'The time when the transcoding template group was created. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*hh:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2018-12-12T10:20:51Z', 'title' => ''],
'IsDefault' => ['description' => 'Indicates whether the template group is the default one. Valid values:'."\n"
."\n"
.'* **Default**'."\n"
.'* **NotDefault**'."\n", 'type' => 'string', 'example' => 'NotDefault', 'title' => ''],
'AppId' => ['description' => 'The ID of the application.'."\n", 'type' => 'string', 'example' => 'app-****', 'title' => ''],
'TranscodeTemplateGroupId' => ['description' => 'The ID of the transcoding template group.'."\n", 'type' => 'string', 'example' => 'a59b11f697c716*****6ae1502142d0', 'title' => ''],
'Name' => ['description' => 'The name of the transcoding template group.'."\n", 'type' => 'string', 'example' => 'test', 'title' => ''],
'ModifyTime' => ['description' => 'The time when the transcoding template group was last modified. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*hh:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2018-12-12T11:20:51Z', 'title' => ''],
'Locked' => ['description' => 'Indicates whether the transcoding template group is locked. Valid values:'."\n"
."\n"
.'* **Disabled**: The template group is not locked.'."\n"
.'* **Enabled**: The template group is locked.'."\n", 'type' => 'string', 'example' => 'Enabled', 'title' => ''],
'TranscodeTemplateList' => [
'description' => 'The information about the transcoding templates.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Type' => ['description' => 'The type of the transcoding template. Valid values:'."\n"
."\n"
.'* **Normal** (default): a common transcoding template. The PackageSetting parameter cannot be set for this type of template.'."\n"
.'* **VideoPackage**: a video stream package template. If this type of template is used, ApsaraVideo VOD transcodes a video into video streams in different bitrates and packages these video streams with a file. The PackageSetting parameter must be set for this type of template.'."\n"
.'* **SubtitlePackage**: a subtitle package template. If this type of template is used, ApsaraVideo VOD adds the subtitle information to the output file generated by packaging the multi-bitrate video streams of the corresponding video without transcoding. You must set the PackageSetting parameter for a subtitle package template and associate the subtitle package template with a video stream package template. A template group can contain only one subtitle package template.'."\n", 'type' => 'string', 'example' => 'Normal', 'title' => ''],
'Video' => ['description' => 'The transcoding configurations of the video stream. The value is a JSON string.'."\n", 'type' => 'string', 'example' => '{"Codec":"H.264","Bitrate":"900","Width":"960","Remove":"false","Fps":"30"}', 'title' => ''],
'TransConfig' => ['description' => 'The conditional transcoding configurations. This parameter can be used if you want to determine the basic logic based on the bitrate and resolution of the source file before the video is transcoded. The value is a JSON-formatted string.'."\n", 'type' => 'string', 'example' => '{"IsCheckReso":"true","IsCheckResoFail":"false","IsCheckVideoBitrate":"false","IsCheckVideoBitrateFail":"false","IsCheckAudioBitrate":"false","IsCheckAudioBitrateFail":"false"}', 'title' => ''],
'Rotate' => ['description' => 'The video rotation identifier. It is used to control the image rotation angle. For example, if you set this parameter to 180, the video image is turned upside down. Valid values: `[0,360]`.'."\n", 'type' => 'string', 'example' => '90', 'title' => ''],
'TranscodeTemplateId' => ['description' => 'The transcoding template ID.'."\n", 'type' => 'string', 'example' => '696d29a11erc057*****a3acc398d02f4', 'title' => ''],
'TemplateName' => ['description' => 'The name of the transcoding template.'."\n", 'type' => 'string', 'example' => 'test', 'title' => ''],
'EncryptSetting' => ['description' => 'The encryption configuration for transcoding.'."\n", 'type' => 'string', 'example' => '"EncryptType":"Private"', 'title' => ''],
'Audio' => ['description' => 'The transcoding configurations of the audio stream. The value is a JSON string.'."\n", 'type' => 'string', 'example' => '{"Codec":"AAC","Remove":"false","Bitrate":"44","Samplerate":"32000","Channels":"2","Profile":"aac_low"}', 'title' => ''],
'TranscodeFileRegular' => ['description' => 'The custom path used to store the output files.'."\n", 'type' => 'string', 'example' => '{MediaId}/transcoce_1', 'title' => ''],
'Container' => ['description' => 'The format of the container used to encapsulate audio and video streams. The value is a JSON string.'."\n", 'type' => 'string', 'example' => '"Format":"m3u8"', 'title' => ''],
'Clip' => ['description' => 'The clipping configurations of the video. The value is a JSON string. For example, this parameter is returned if you extract 5 seconds of content from a video to generate a new video.'."\n", 'type' => 'string', 'example' => '{"TimeSpan":{"Seek":"1","Duration":"5"}', 'title' => ''],
'Definition' => ['description' => 'Valid values for the definition of a common transcoding template:'."\n"
."\n"
.'* **LD**: low definition.'."\n"
.'* **SD**: standard definition.'."\n"
.'* **HD**: high definition.'."\n"
.'* **FHD**: ultra high definition.'."\n"
.'* **OD**: original quality.'."\n"
.'* **2K**'."\n"
.'* **4K**'."\n"
.'* **SQ**: standard sound quality.'."\n"
.'* **HQ**: high sound quality.'."\n"
."\n"
.'Valid values for the definition of a Narrowband HD™ 1.0 transcoding template:'."\n"
."\n"
.'* **LD-NBV1**: low definition.'."\n"
.'* **SD-NBV1**: standard definition.'."\n"
.'* **HD-NBV1**: high definition.'."\n"
.'* **FHD-NBV1**: ultra high definition.'."\n"
.'* **2K-NBV1**'."\n"
.'* **4K-NBV1**'."\n"
."\n"
.'> * You cannot change the definition of a transcoding template.'."\n"
.'>* You cannot modify the system parameters, such as the video resolution, audio resolution, and bitrate, of Narrowband HD™ 1.0 transcoding templates.'."\n"
.'>* You can create only Narrowband HD™ 1.0 transcoding templates that support the FLV, M3U8 (HLS), and MP4 output formats.', 'type' => 'string', 'example' => 'SD', 'title' => ''],
'PackageSetting' => ['description' => 'The packaging configuration. Only HLS packaging and DASH packaging are supported. The value is a JSON string.'."\n", 'type' => 'string', 'example' => '"PackageType":"HLSPackage","PackageConfig":{ "BandWidth":"900000" }', 'title' => ''],
'SubtitleList' => ['description' => 'The subtitle configurations. The value is a JSON string.'."\n", 'type' => 'string', 'example' => '[{"SubtitleUrl":"http://outin-test.oss-cn-shanghai.aliyuncs.com/subtitles/c737fece-14f1-4364-b107-d5f7f8edde0e.ass","CharEncode":"utf-8"}]', 'title' => ''],
'MuxConfig' => ['description' => 'The transcoding segment configurations. This parameter must be returned if HTTP-Live-Streaming (HLS) encryption is used. The value is a JSON string.'."\n", 'type' => 'string', 'example' => '"Segment": { "Duration":"6" }', 'title' => ''],
'WatermarkIds' => [
'description' => 'The IDs of the associated watermarks.'."\n",
'type' => 'array',
'items' => ['description' => 'The ID of the associated watermark.'."\n", 'type' => 'string', 'example' => '"USER_DEFAULT_WATERMARK","ddddddddd"', 'title' => ''],
'title' => '',
'example' => '',
],
'TraceMark' => ['description' => 'The content of the tracing watermark.'."\n", 'type' => 'string', 'example' => '{'."\n"
.' "Enable": true'."\n"
.'}', 'title' => ''],
'CopyrightMark' => ['description' => 'The content of the copyright watermark.'."\n", 'type' => 'string', 'example' => '{'."\n"
.'"Content": "Test copyright watermark text"'."\n"
.'}', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"6730AC93-7B12-4B*****7F-49EE1FE8BC49\\",\\n \\"TranscodeTemplateGroup\\": {\\n \\"CreationTime\\": \\"2018-12-12T10:20:51Z\\",\\n \\"IsDefault\\": \\"NotDefault\\",\\n \\"AppId\\": \\"app-****\\",\\n \\"TranscodeTemplateGroupId\\": \\"a59b11f697c716*****6ae1502142d0\\",\\n \\"Name\\": \\"test\\",\\n \\"ModifyTime\\": \\"2018-12-12T11:20:51Z\\",\\n \\"Locked\\": \\"Enabled\\",\\n \\"TranscodeTemplateList\\": [\\n {\\n \\"Type\\": \\"Normal\\",\\n \\"Video\\": \\"{\\\\\\"Codec\\\\\\":\\\\\\"H.264\\\\\\",\\\\\\"Bitrate\\\\\\":\\\\\\"900\\\\\\",\\\\\\"Width\\\\\\":\\\\\\"960\\\\\\",\\\\\\"Remove\\\\\\":\\\\\\"false\\\\\\",\\\\\\"Fps\\\\\\":\\\\\\"30\\\\\\"}\\",\\n \\"TransConfig\\": \\"{\\\\\\"IsCheckReso\\\\\\":\\\\\\"true\\\\\\",\\\\\\"IsCheckResoFail\\\\\\":\\\\\\"false\\\\\\",\\\\\\"IsCheckVideoBitrate\\\\\\":\\\\\\"false\\\\\\",\\\\\\"IsCheckVideoBitrateFail\\\\\\":\\\\\\"false\\\\\\",\\\\\\"IsCheckAudioBitrate\\\\\\":\\\\\\"false\\\\\\",\\\\\\"IsCheckAudioBitrateFail\\\\\\":\\\\\\"false\\\\\\"}\\",\\n \\"Rotate\\": \\"90\\",\\n \\"TranscodeTemplateId\\": \\"696d29a11erc057*****a3acc398d02f4\\",\\n \\"TemplateName\\": \\"test\\",\\n \\"EncryptSetting\\": \\"\\\\\\"EncryptType\\\\\\":\\\\\\"Private\\\\\\"\\",\\n \\"Audio\\": \\"{\\\\\\"Codec\\\\\\":\\\\\\"AAC\\\\\\",\\\\\\"Remove\\\\\\":\\\\\\"false\\\\\\",\\\\\\"Bitrate\\\\\\":\\\\\\"44\\\\\\",\\\\\\"Samplerate\\\\\\":\\\\\\"32000\\\\\\",\\\\\\"Channels\\\\\\":\\\\\\"2\\\\\\",\\\\\\"Profile\\\\\\":\\\\\\"aac_low\\\\\\"}\\",\\n \\"TranscodeFileRegular\\": \\"{MediaId}/transcoce_1\\",\\n \\"Container\\": \\"\\\\\\"Format\\\\\\":\\\\\\"m3u8\\\\\\"\\",\\n \\"Clip\\": \\"{\\\\\\"TimeSpan\\\\\\":{\\\\\\"Seek\\\\\\":\\\\\\"1\\\\\\",\\\\\\"Duration\\\\\\":\\\\\\"5\\\\\\"}\\",\\n \\"Definition\\": \\"SD\\",\\n \\"PackageSetting\\": \\"\\\\\\"PackageType\\\\\\":\\\\\\"HLSPackage\\\\\\",\\\\\\"PackageConfig\\\\\\":{ \\\\\\"BandWidth\\\\\\":\\\\\\"900000\\\\\\" }\\",\\n \\"SubtitleList\\": \\"[{\\\\\\"SubtitleUrl\\\\\\":\\\\\\"http://outin-test.oss-cn-shanghai.aliyuncs.com/subtitles/c737fece-14f1-4364-b107-d5f7f8edde0e.ass\\\\\\",\\\\\\"CharEncode\\\\\\":\\\\\\"utf-8\\\\\\"}]\\",\\n \\"MuxConfig\\": \\"\\\\\\"Segment\\\\\\": { \\\\\\"Duration\\\\\\":\\\\\\"6\\\\\\" }\\",\\n \\"WatermarkIds\\": [\\n \\"\\\\\\"USER_DEFAULT_WATERMARK\\\\\\",\\\\\\"ddddddddd\\\\\\"\\"\\n ],\\n \\"TraceMark\\": \\"{\\\\n\\\\t\\\\\\"Enable\\\\\\": true\\\\n}\\",\\n \\"CopyrightMark\\": \\"{\\\\n\\\\\\"Content\\\\\\": \\\\\\"Test copyright watermark text\\\\\\"\\\\n}\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n6730AC93-7B12-4B*****7F-49EE1FE8BC49\\n\\n NotDefault\\n Enabled\\n 2018-12-12T11:20:51Z\\n app-****\\n a59b11f697c716*****6ae1502142d0\\n FastTranscode\\n \\n [{\\"TailUrl\\":\\"http://outin-test.oss-cn-shanghai.aliyuncs.com/tailslates/b6e9ceed-b665-426f-9d9a-277f0f****.mov\\"}]\\n \\"PackageType\\":\\"HLSPackage\\",\\"PackageConfig\\":{ \\"BandWidth\\":\\"900000\\" }\\n 90\\n {}\\n SD\\n {MediaId}/transcoce_1\\n \\"EncryptType\\":\\"Private\\"\\n {\\\\\\"TimeSpan\\\\\\":{\\\\\\"Seek\\\\\\":\\\\\\"1\\\\\\",\\\\\\"Duration\\\\\\":\\\\\\"5\\\\\\"}\\n Normal\\n \\"Format\\":\\"m3u8\\"\\n 696d29a11erc057*****a3acc398d02f4\\n {\\"IsCheckReso\\":\\"true\\",\\"IsCheckResoFail\\":\\"false\\",\\"IsCheckVideoBitrate\\":\\"false\\",\\"IsCheckVideoBitrateFail\\":\\"false\\",\\"IsCheckAudioBitrate\\":\\"false\\",\\"IsCheckAudioBitrateFail\\":\\"false\\"}\\n \\n test\\n [{\\"SubtitleUrl\\":\\"http://outin-test.oss-cn-shanghai.aliyuncs.com/subtitles/c737fece-14f1-4364-b107-d5f7f8edde0e.ass\\",\\"CharEncode\\":\\"utf-8\\"}]\\n \\n \\"Segment\\": { \\"Duration\\":\\"6\\" }\\n [{\\"OpenUrl\\":\\"http://outin-test.oss-cn-shanghai.aliyuncs.com/tailslates/b6e9ceed-b665-426f-9d9a-277f0f****.mov\\"}]\\n \\n \\n \\"USER_DEFAULT_WATERMARK\\",\\"ddddddddd\\"\\n \\n 2018-12-12T10:20:51Z\\n test\\n\\n","errorExample":""}]',
'title' => 'GetTranscodeTemplateGroup',
'description' => 'This operation returns information about the specified transcoding template group and the configurations of all the transcoding templates in the group.'."\n",
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return.'."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| InvalidTranscodeTemplateGroup.NotFound | The transcode template group does not exist. | 404 | The error message returned because the specified transcoding template group does not exist. |',
'changeSet' => [
['createdAt' => '2025-07-16T02:17:00.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:16:57.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetTranscodeTemplateGroup'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetTranscodeTemplateGroup',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
],
'GetURLUploadInfos' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39992',
'abilityTreeNodes' => ['FEATUREvodVQ27S4'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'JobIds',
'in' => 'query',
'schema' => ['description' => 'A list of upload job IDs. A JobId is the value of the JobId parameter returned when you call the [UploadMediaByURL](~~86311~~) operation.'."\n"
."\n"
.'- You can specify up to 10 IDs.'."\n"
."\n"
.'- Separate multiple IDs with commas (,).'."\n"
."\n"
.'> You must specify either JobIds or UploadURLs. If you specify both, only JobIds is processed.', 'type' => 'string', 'required' => false, 'example' => '86c1925fba0****,7afb201e7fa****,2cc4997378****', 'title' => ''],
],
[
'name' => 'UploadURLs',
'in' => 'query',
'schema' => ['description' => 'A list of source video file URLs. Separate multiple URLs with commas (,). You can specify up to 10 URLs.'."\n"
."\n"
.'> - URL-encode the URLs before you use them.'."\n"
.'>'."\n"
.'> - If a video from the same URL is uploaded multiple times, specify a single URL for the query.'."\n"
.'>'."\n"
.'> - You must specify either JobIds or UploadURLs. If you specify both, only JobIds is processed.', 'type' => 'string', 'required' => false, 'example' => 'http://****.mp4', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '25818875-5F78-4AF6-D7393642CA58****', 'title' => ''],
'NonExists' => [
'description' => 'A list of IDs of URL-based upload jobs or URLs that do not exist.',
'type' => 'array',
'items' => ['description' => 'A list of IDs of URL-based upload jobs or URLs that do not exist.', 'type' => 'string', 'example' => '["****1", "****2"]', 'title' => ''],
'title' => '',
'example' => '',
],
'URLUploadInfoList' => [
'description' => 'A list of URL upload job details. For more information, see [URLUploadInfo](~~52839~~).',
'type' => 'array',
'items' => [
'description' => 'The details of the URL-based upload job.',
'type' => 'object',
'properties' => [
'CreationTime' => ['description' => 'The time when the job was created. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format in UTC.', 'type' => 'string', 'example' => '2019-01-01T01:01:01Z', 'title' => ''],
'Status' => ['description' => 'The status of the URL-based upload job. For more information about the valid values, see [Status](~~52839~~).', 'type' => 'string', 'example' => 'SUCCESS', 'title' => ''],
'ErrorMessage' => ['description' => 'The error message.', 'type' => 'string', 'example' => 'error_message', 'title' => ''],
'ErrorCode' => ['description' => 'The error code.', 'type' => 'string', 'example' => '200', 'title' => ''],
'CompleteTime' => ['description' => 'The time when the job was completed. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format in UTC.', 'type' => 'string', 'example' => '2019-01-01T01:11:01Z', 'title' => ''],
'JobId' => ['description' => 'The ID of the upload job.', 'type' => 'string', 'example' => '86c1925fba0****', 'title' => ''],
'UserData' => ['description' => 'Custom settings. This is a JSON string. For more information, see [UserData](~~86952~~).', 'type' => 'string', 'example' => '{"MessageCallback":"{"CallbackURL":"http://example.aliyundoc.com"}", "Extend":"{"localId":"***", "test":"www"}"}', 'title' => ''],
'UploadURL' => ['description' => 'The URL of the source video file.'."\n"
."\n"
.'> A maximum of 100 records are returned.', 'type' => 'string', 'example' => 'http://****.mp4', 'title' => ''],
'MediaId' => ['description' => 'The media ID.', 'type' => 'string', 'example' => '93ab850b4f6f54b6e91d24d81d4****', 'title' => ''],
'FileSize' => ['description' => 'The file size. Unit: bytes.', 'type' => 'string', 'example' => '24', 'title' => ''],
'RegisteredMediaId' => ['type' => 'string', 'example' => '93ab850b4f654b6e91d24d81d44****', 'description' => '', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'GetURLUploadInfos',
'summary' => 'Retrieves information about URL-based upload jobs.',
'description' => '- You can query information about URL-based upload jobs, including the job status, UserData, creation time, and completion time, using the JobId or the source URL.'."\n"
."\n"
.'- **This operation queries data only for upload jobs created within the last year.**'."\n"
."\n"
.'- The endpoints for this operation are available only in the following regions: **China (Shanghai)** and **Singapore**.'."\n"
."\n"
.'- After you upload a media file to ApsaraVideo VOD by calling the [UploadMediaByURL](~~UploadMediaByURL~~) operation, you can call this operation to query the upload information using the upload job ID (`JobIds`) or the source file URL (`UploadURLs`).'."\n"
."\n"
.'- When you call this operation, specify either `JobIds` or `UploadURLs`. If you specify both, only `JobIds` is processed.'."\n"
."\n"
.'- If a media asset fails to upload, call this operation to view the error code and error message. If the upload is successful, call this operation to view the media ID.',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2025-07-16T02:19:16.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:17:31.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetURLUploadInfos'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetURLUploadInfos',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4AF6-D7393642CA58****\\",\\n \\"NonExists\\": [\\n \\"[\\\\\\"****1\\\\\\", \\\\\\"****2\\\\\\"]\\"\\n ],\\n \\"URLUploadInfoList\\": [\\n {\\n \\"CreationTime\\": \\"2019-01-01T01:01:01Z\\",\\n \\"Status\\": \\"SUCCESS\\",\\n \\"ErrorMessage\\": \\"error_message\\",\\n \\"ErrorCode\\": \\"200\\",\\n \\"CompleteTime\\": \\"2019-01-01T01:11:01Z\\",\\n \\"JobId\\": \\"86c1925fba0****\\",\\n \\"UserData\\": \\"{\\\\\\"MessageCallback\\\\\\":\\\\\\"{\\\\\\"CallbackURL\\\\\\":\\\\\\"http://example.aliyundoc.com\\\\\\"}\\\\\\", \\\\\\"Extend\\\\\\":\\\\\\"{\\\\\\"localId\\\\\\":\\\\\\"***\\\\\\", \\\\\\"test\\\\\\":\\\\\\"www\\\\\\"}\\\\\\"}\\",\\n \\"UploadURL\\": \\"http://****.mp4\\",\\n \\"MediaId\\": \\"93ab850b4f6f54b6e91d24d81d4****\\",\\n \\"FileSize\\": \\"24\\",\\n \\"RegisteredMediaId\\": \\"93ab850b4f654b6e91d24d81d44****\\"\\n }\\n ]\\n}","type":"json"}]',
],
'GetUploadDetails' => [
'summary' => 'Queries the upload details, such as the upload time, upload ratio, and upload source, about one or more media files based on the media IDs.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39988',
'abilityTreeNodes' => ['FEATUREvodVQ27S4'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'MediaIds',
'in' => 'query',
'schema' => ['description' => 'The ID of the media file, namely, the audio or video ID. You can specify a maximum of 20 IDs. Separate multiple IDs with commas (,). You can use one of the following methods to obtain the audio or video ID:'."\n"
."\n"
.'- Log on to the [ApsaraVideo VOD](https://vod.console.aliyun.com) console. In the left-side navigation pane, choose **Media Files** > **Audio/Video**. On the Video and Audio page, you can view the audio or video ID. Use this method if the audio or video file is uploaded by using the ApsaraVideo VOD console.'."\n"
."\n"
.'- View the value of the VideoId parameter returned by the [CreateUploadVideo](~~55407~~) operation that you called to obtain an upload URL and credential.'."\n"
."\n"
.'- View the value of the VideoId parameter returned by the [SearchMedia](~~86044~~) operation that you called to query media information after the audio or video file is uploaded.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '61ccbdb06fa83012be4d8083f6****,7d2fbc380b0e08e55f****', 'title' => ''],
],
[
'name' => 'MediaType',
'in' => 'query',
'schema' => ['description' => 'The type of the media file. Set the value to **video**, which indicates audio and video files.', 'type' => 'string', 'required' => false, 'example' => 'video', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned data.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '9E290613-04F4-47F4-795D30732077****', 'title' => ''],
'ForbiddenMediaIds' => [
'description' => 'The IDs of the media files that cannot be accessed.',
'type' => 'array',
'items' => ['description' => 'The IDs of the media files that cannot be accessed.', 'type' => 'string', 'example' => '7d2fbc380b0e08e55f****', 'title' => ''],
'title' => '',
'example' => '',
],
'NonExistMediaIds' => [
'description' => 'The IDs of the media files that do not exist.',
'type' => 'array',
'items' => ['description' => 'The IDs of the media files that do not exist.', 'type' => 'string', 'example' => 'dfsg****', 'title' => ''],
'title' => '',
'example' => '',
],
'UploadDetails' => [
'description' => 'The upload details.',
'type' => 'array',
'items' => [
'description' => 'The upload details.',
'type' => 'object',
'properties' => [
'Status' => ['description' => 'The status of the video. For more information about the valid values and value description of the parameter, see the "Status: the status of a video" section of the [Basic structures](~~52839~~) topic.', 'type' => 'string', 'example' => 'Uploading', 'title' => ''],
'CreationTime' => ['description' => 'The time when the upload job was created. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2019-04-28T09:42:07Z', 'title' => ''],
'UploadSource' => ['description' => 'The method that is used to upload the media file.', 'type' => 'string', 'example' => 'WebSDK', 'title' => ''],
'UploadIP' => ['description' => 'The IP address of the server that uploads the media file.', 'type' => 'string', 'example' => '192.168.0.1', 'title' => ''],
'DeviceModel' => ['description' => 'The device model.', 'type' => 'string', 'example' => 'Chrome', 'title' => ''],
'ModificationTime' => ['description' => 'The time when the information about the media file was updated. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2019-04-28T09:43:12Z', 'title' => ''],
'CompletionTime' => ['description' => 'The time when the upload job was complete. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2019-04-28T09:45:07Z', 'title' => ''],
'MediaId' => ['description' => 'The ID of the uploaded audio or video.', 'type' => 'string', 'example' => '61ccbdb06fa83012be4d8083f6****', 'title' => ''],
'UploadSize' => ['description' => 'The upload size. Unit: byte.', 'type' => 'integer', 'format' => 'int64', 'example' => '346', 'title' => ''],
'UploadRatio' => ['description' => 'The upload ratio.', 'type' => 'number', 'format' => 'float', 'example' => '0.038', 'title' => ''],
'UploadStatus' => ['description' => 'The status of the upload job. For more information about the valid values and value description of the parameter, see the "Status: the status of a URL-based upload job" section of the [Basic structures](~~52839~~) topic.', 'type' => 'string', 'example' => 'Uploading', 'title' => ''],
'Title' => ['description' => 'The title of the media file.', 'type' => 'string', 'example' => 'Test file upload details', 'title' => ''],
'FileSize' => ['description' => 'The size of the uploaded file. Unit: byte.', 'type' => 'integer', 'format' => 'int64', 'example' => '46', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9E290613-04F4-47F4-795D30732077****\\",\\n \\"ForbiddenMediaIds\\": [\\n \\"7d2fbc380b0e08e55f****\\"\\n ],\\n \\"NonExistMediaIds\\": [\\n \\"dfsg****\\"\\n ],\\n \\"UploadDetails\\": [\\n {\\n \\"Status\\": \\"Uploading\\",\\n \\"CreationTime\\": \\"2019-04-28T09:42:07Z\\",\\n \\"UploadSource\\": \\"WebSDK\\",\\n \\"UploadIP\\": \\"192.168.0.1\\",\\n \\"DeviceModel\\": \\"Chrome\\",\\n \\"ModificationTime\\": \\"2019-04-28T09:43:12Z\\",\\n \\"CompletionTime\\": \\"2019-04-28T09:45:07Z\\",\\n \\"MediaId\\": \\"61ccbdb06fa83012be4d8083f6****\\",\\n \\"UploadSize\\": 346,\\n \\"UploadRatio\\": 0.038,\\n \\"UploadStatus\\": \\"Uploading\\",\\n \\"Title\\": \\"Test file upload details\\",\\n \\"FileSize\\": 46\\n }\\n ]\\n}","type":"json"}]',
'title' => 'GetUploadDetails',
'description' => '- You can call this operation to obtain the upload details only about audio and video files.'."\n"
."\n"
.'- If you use the ApsaraVideo VOD console to upload audio and video files, you can call this operation to query information such as the upload ratio. If you use an upload SDK to upload audio and video files, make sure that the version of the [upload SDK](~~52200~~) meets one of the following requirements:'."\n"
."\n"
.' - The version of the upload SDK for Java is 1.4.4 or later.'."\n"
."\n"
.' - The version of the upload SDK for C++ is 1.0.0 or later.'."\n"
."\n"
.' - The version of the upload SDK for PHP is 1.0.2 or later.'."\n"
."\n"
.' - The version of the upload SDK for Python is 1.3.0 or later.'."\n"
."\n"
.' - The version of the upload SDK for JavaScript is 1.4.0 or later.'."\n"
."\n"
.' - The version of the upload SDK for Android is 1.5.0 or later.'."\n"
."\n"
.' - The version of the upload SDK for iOS is 1.5.0 or later.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return. '."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| LimitExceeded.MediaIds | The input parameter \'MediaIds\' Exceed the limit. | 400 | The error message returned because the number of media IDs exceeds 20. |',
'changeSet' => [
['createdAt' => '2025-07-16T02:18:38.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:17:25.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetUploadDetails'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetUploadDetails',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'translator' => 'manual',
],
'GetVideoInfo' => [
'summary' => 'Call this operation to retrieve the title, description, duration, thumbnail URL, status, creation time, size, snapshots, category, and tags of a single audio or video file by its ID.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39998',
'abilityTreeNodes' => ['FEATUREvodYRQNEN'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'VideoId',
'in' => 'query',
'schema' => ['description' => 'The ID of the audio or video file. Specify only one ID. Obtain the ID in one of the following ways:'."\n"
."\n"
.'- For a video uploaded in the [VOD console](https://vod.console.aliyun.com), log on to the console and choose **Media Library** > **Audio/Video** to view the ID.'."\n"
."\n"
.'- When you call the [CreateUploadVideo](~~55407~~) operation to create an upload URL and credential, the value of the VideoId parameter in the response is the audio or video ID.'."\n"
."\n"
.'- After the audio or video file is uploaded, call the [SearchMedia](~~86044~~) operation to query the ID. The value of the VideoId parameter in the response is the audio or video ID.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => '9b73864d75f1d231e9001cd5f8****', 'title' => ''],
],
[
'name' => 'ReferenceId',
'in' => 'query',
'schema' => ['description' => 'The custom ID. The ID can contain lowercase letters, uppercase letters, digits, hyphens (-), and underscores (\\_). The ID must be 6 to 64 characters in length and unique for each user.', 'type' => 'string', 'example' => '123-123', 'title' => '', 'required' => false],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '25818875-5F78-4AF6-D7393642CA58****', 'title' => ''],
'Video' => [
'description' => 'The information about the audio or video file.',
'type' => 'object',
'properties' => [
'StorageLocation' => ['description' => 'The storage address of the audio or video file.', 'type' => 'string', 'example' => 'out-201703232251****.oss-cn-shanghai.aliyuncs.com', 'title' => ''],
'CreationTime' => ['description' => 'The time when the audio or video file was created. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2017-11-14T09:15:50Z', 'title' => ''],
'Status' => ['description' => 'The status of the audio or video file. For more information about the available operations and limits for each state, see [Status: the status of an audio or video file](~~52839#title-vqg-8cz-7p8~~). Valid values:'."\n"
."\n"
.'- **Uploading**: The file is being uploaded.'."\n"
."\n"
.'- **UploadFail**: The file failed to be uploaded.'."\n"
."\n"
.'- **UploadSucc**: The file is uploaded.'."\n"
."\n"
.'- **Transcoding**: The file is being transcoded.'."\n"
."\n"
.'- **TranscodeFail**: The file failed to be transcoded.'."\n"
."\n"
.'- **Blocked**: The file is blocked.'."\n"
."\n"
.'- **Normal**: The file is in a normal state.', 'type' => 'string', 'example' => 'Normal', 'title' => ''],
'CateId' => ['description' => 'The category ID.', 'type' => 'integer', 'format' => 'int64', 'example' => '781111****', 'title' => ''],
'VideoId' => ['description' => 'The ID of the audio or video file.', 'type' => 'string', 'example' => '9b73864d75f1d231e9001cd5f8****', 'title' => ''],
'DownloadSwitch' => ['description' => 'The status of the offline download feature. When this feature is enabled, mobile client users can use ApsaraVideo Player to cache videos for offline viewing. For more information, see [Configure offline download](~~86107~~). Valid values:'."\n"
."\n"
.'- **on**: The offline download feature is enabled.'."\n"
."\n"
.'- **off**: The offline download feature is disabled.', 'type' => 'string', 'example' => 'on', 'title' => ''],
'Tags' => ['description' => 'The tags of the audio or video file. Multiple tags are separated by commas (,).', 'type' => 'string', 'example' => 'tag1, tag2', 'title' => ''],
'ModificationTime' => ['description' => 'The time when the audio or video file was last updated. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2017-11-14T10:15:50Z', 'title' => ''],
'RegionId' => ['description' => 'The region where the audio or video file is stored.', 'type' => 'string', 'example' => 'cn-shanghai', 'title' => ''],
'CustomMediaInfo' => ['description' => 'The custom media information.'."\n"
."\n"
.'> This parameter is deprecated. This parameter is not returned in API calls.', 'type' => 'string', 'example' => '{"aaa":"test"}', 'title' => ''],
'CateName' => ['description' => 'The category name.', 'type' => 'string', 'example' => 'cate1', 'title' => ''],
'Description' => ['description' => 'The description of the audio or video file.', 'type' => 'string', 'example' => 'Alibaba Cloud VOD video description', 'title' => ''],
'AppId' => ['description' => 'The application ID.', 'type' => 'string', 'example' => 'app-****', 'title' => ''],
'Size' => ['description' => 'The size of the source audio or video file. Unit: bytes.', 'type' => 'integer', 'format' => 'int64', 'example' => '10897890', 'title' => ''],
'CoverURL' => ['description' => 'The URL of the thumbnail.', 'type' => 'string', 'example' => 'https://example.aliyundoc.com/****.jpg', 'title' => ''],
'TemplateGroupId' => ['description' => 'The ID of the transcoding template group.', 'type' => 'string', 'example' => '9ae2af636ca64835b0c10412f448****', 'title' => ''],
'Duration' => ['description' => 'The duration of the audio or video file. Unit: seconds.', 'type' => 'number', 'format' => 'float', 'example' => '135.6', 'title' => ''],
'Title' => ['description' => 'The title of the audio or video file.', 'type' => 'string', 'example' => 'Alibaba Cloud VOD Video Title', 'title' => ''],
'AuditStatus' => ['description' => 'The final review result of the audio or video file. Valid values:'."\n"
."\n"
.'- **Normal**: The file passed the review.'."\n"
."\n"
.'- **Blocked**: The file is blocked.', 'type' => 'string', 'example' => 'Normal', 'title' => ''],
'Snapshots' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Snapshot' => [
'description' => 'An array of video snapshot URLs.',
'type' => 'array',
'items' => ['description' => 'An array of video snapshot URLs.'."\n"
."\n"
.'> This operation returns only the thumbnail data of the video. To query the data of normal snapshots, sprites, original sprite images, and WebVTT snapshots that are captured using the [snapshot](~~99368~~) feature, call the [ListSnapshots](~~ListSnapshots~~) operation.', 'type' => 'string', 'example' => '["http://example.aliyundoc.com/snapshot/****.jpg?auth_key=1498476426-0-0-f00b9455c49a423ce69cf4e27333****","http://example.aliyundoc.com/snapshot/****.jpg?auth_key=1498476426-0-0-f00b9455c49a423ce69cf4e27243****",...]', 'title' => ''],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'StorageClass' => ['description' => 'The storage class of the media asset. Valid values:'."\n"
."\n"
.'- **Standard**'."\n"
."\n"
.'- **IA**'."\n"
."\n"
.'- **Archive**'."\n"
."\n"
.'- **ColdArchive**'."\n"
."\n"
.'- **SourceIA**'."\n"
."\n"
.'- **SourceArchive**'."\n"
."\n"
.'- **SourceColdArchive**'."\n"
."\n"
.'- **Changing**: The storage class of the media asset is being changed.'."\n"
."\n"
.'- **SourceChanging**: The storage class of the source file is being changed.', 'type' => 'string', 'example' => 'Standard', 'title' => ''],
'RestoreStatus' => ['description' => 'The restored state of the media asset. Valid values:'."\n"
."\n"
.'- **Processing**: The media asset is being restored.'."\n"
."\n"
.'- **Success**: The media asset is restored.'."\n"
."\n"
.'- **Failed**: The media asset failed to be restored.', 'type' => 'string', 'example' => 'Success', 'title' => ''],
'RestoreExpiration' => ['description' => 'The expiration time of the restored media asset.', 'type' => 'string', 'example' => '2023-03-30T10:14:14Z', 'title' => ''],
'UserData' => ['description' => 'The custom settings. The value is a JSON string. The settings include message callbacks and upload acceleration. For more information, see [UserData](~~86952~~).', 'type' => 'string', 'example' => '{"MessageCallback":{"CallbackURL":"http://example.aliyundoc.com"},"Extend":{"localId":"*****","test":"www"}}', 'title' => ''],
'ReferenceId' => ['description' => 'The custom ID. The ID can contain lowercase letters, uppercase letters, digits, hyphens (-), and underscores (\\_). The ID must be 6 to 64 characters in length and unique for each user.', 'type' => 'string', 'example' => '123-123', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4AF6-D7393642CA58****\\",\\n \\"Video\\": {\\n \\"StorageLocation\\": \\"out-201703232251****.oss-cn-shanghai.aliyuncs.com\\",\\n \\"CreationTime\\": \\"2017-11-14T09:15:50Z\\",\\n \\"Status\\": \\"Normal\\",\\n \\"CateId\\": 0,\\n \\"VideoId\\": \\"9b73864d75f1d231e9001cd5f8****\\",\\n \\"DownloadSwitch\\": \\"on\\",\\n \\"Tags\\": \\"tag1, tag2\\",\\n \\"ModificationTime\\": \\"2017-11-14T10:15:50Z\\",\\n \\"RegionId\\": \\"cn-shanghai\\",\\n \\"CustomMediaInfo\\": \\"{\\\\\\"aaa\\\\\\":\\\\\\"test\\\\\\"}\\",\\n \\"CateName\\": \\"cate1\\",\\n \\"Description\\": \\"Alibaba Cloud VOD video description\\",\\n \\"AppId\\": \\"app-****\\",\\n \\"Size\\": 10897890,\\n \\"CoverURL\\": \\"https://example.aliyundoc.com/****.jpg\\",\\n \\"TemplateGroupId\\": \\"9ae2af636ca64835b0c10412f448****\\",\\n \\"Duration\\": 135.6,\\n \\"Title\\": \\"Alibaba Cloud VOD Video Title\\",\\n \\"AuditStatus\\": \\"Normal\\",\\n \\"Snapshots\\": {\\n \\"Snapshot\\": [\\n \\"[\\\\\\"http://example.aliyundoc.com/snapshot/****.jpg?auth_key=1498476426-0-0-f00b9455c49a423ce69cf4e27333****\\\\\\",\\\\\\"http://example.aliyundoc.com/snapshot/****.jpg?auth_key=1498476426-0-0-f00b9455c49a423ce69cf4e27243****\\\\\\",...]\\"\\n ]\\n },\\n \\"StorageClass\\": \\"Standard\\",\\n \\"RestoreStatus\\": \\"Success\\",\\n \\"RestoreExpiration\\": \\"2023-03-30T10:14:14Z\\",\\n \\"UserData\\": \\"{\\\\\\"MessageCallback\\\\\\":{\\\\\\"CallbackURL\\\\\\":\\\\\\"http://example.aliyundoc.com\\\\\\"},\\\\\\"Extend\\\\\\":{\\\\\\"localId\\\\\\":\\\\\\"*****\\\\\\",\\\\\\"test\\\\\\":\\\\\\"www\\\\\\"}}\\",\\n \\"ReferenceId\\": \\"123-123\\"\\n }\\n}","type":"json"}]',
'title' => 'GetVideoInfo',
'description' => 'After an audio or video file is uploaded, VOD analyzes the source file and generates the media asset information asynchronously. You can configure [event notifications](~~55627~~) for [video and audio analysis completion](~~99935~~). After you receive an event notification that indicates the analysis is complete, call this operation to retrieve the audio or video information.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## 接口错误码'."\n"
."\n"
.'下表列举了本接口特有的错误码。'."\n"
.'| 错误代码 | 错误信息 | HTTP 状态码 | 说明 |'."\n"
.'| ------------- |------------ | ----- | ------ |'."\n"
.'| InvalidVideo.NotFound |The video does not exist. |404 |视频不存在。|'."\n",
'changeSet' => [
['createdAt' => '2025-07-16T02:17:25.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:16:50.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetVideoInfo'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetVideoInfo',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'GetVideoInfos' => [
'summary' => 'You can call this operation to retrieve information about multiple audio or video files in a batch using their IDs. The information includes the title, description, duration, thumbnail URL, status, creation time, size, snapshots, categorization, and tags.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'list',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '43387',
'abilityTreeNodes' => ['FEATUREvodYRQNEN'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'VideoIds',
'in' => 'query',
'schema' => ['description' => 'A list of audio or video IDs. Separate multiple IDs with commas (,). A maximum of 20 IDs is supported. You can obtain audio or video IDs in the following ways:'."\n"
."\n"
.'- For videos uploaded using the console, log on to the [VOD console](https://vod.console.aliyun.com) and choose **Media Library** > **Audio/Video** to view the audio or video IDs.'."\n"
."\n"
.'- When you call the [CreateUploadVideo](~~55407~~) operation to obtain an upload URL and credentials, the audio or video ID is the value of the VideoId response parameter.'."\n"
."\n"
.'- After you upload an audio or video file, call the [SearchMedia](~~86044~~) operation to query the audio or video ID. The ID is the value of the VideoId response parameter.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => '7753d144efd8e649c6c45fe0579****,7753d144efd74d6c45fe0570****', 'title' => ''],
],
[
'name' => 'ReferenceIds',
'in' => 'query',
'schema' => ['description' => 'A list of one or more custom IDs. Separate multiple IDs with commas (,). A maximum of 20 IDs is supported.', 'type' => 'string', 'example' => '123-123,1234-1234', 'title' => '', 'required' => false],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response that is returned.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '25818875-5F78-4AF6-D7393642CA58****', 'title' => ''],
'NonExistVideoIds' => [
'description' => 'A list of audio or video IDs that do not exist.',
'type' => 'array',
'items' => ['description' => 'A list of audio or video IDs that do not exist.', 'type' => 'string', 'example' => '["7753d144efd8e649c6c45fe0579****"]', 'title' => ''],
'title' => '',
'example' => '',
],
'NonExistReferenceIds' => [
'type' => 'array',
'items' => ['description' => 'A list of custom IDs that do not exist.', 'type' => 'string', 'example' => '123-123', 'title' => ''],
'description' => 'A list of custom IDs that do not exist.',
'title' => '',
'example' => '',
],
'VideoList' => [
'description' => 'The list of audio or video information.',
'type' => 'array',
'items' => [
'description' => 'The details of the audio or video information.',
'type' => 'object',
'properties' => [
'StorageLocation' => ['description' => 'The storage address of the audio or video file.', 'type' => 'string', 'example' => 'out-****.oss-cn-shanghai.aliyuncs.com', 'title' => ''],
'CreationTime' => ['description' => 'The time when the audio or video file was created. The format is *yyyy-MM-dd*T*HH:mm:ss*Z in UTC.', 'type' => 'string', 'example' => '2017-06-26T05:38:48Z', 'title' => ''],
'Status' => ['description' => 'The status of the video. Valid values:'."\n"
."\n"
.'- **Uploading**: The video is being uploaded.'."\n"
."\n"
.'- **UploadFail**: The video failed to be uploaded.'."\n"
."\n"
.'- **UploadSucc**: The video was successfully uploaded.'."\n"
."\n"
.'- **Transcoding**: The video is being transcoded.'."\n"
."\n"
.'- **TranscodeFail**: The video failed to be transcoded.'."\n"
."\n"
.'- **Blocked**: The video is blocked.'."\n"
."\n"
.'- **Normal**: The video is available.', 'type' => 'string', 'example' => 'Normal', 'title' => ''],
'CateId' => ['description' => 'The category ID.', 'type' => 'integer', 'format' => 'int64', 'example' => '781111****', 'title' => ''],
'VideoId' => ['description' => 'The audio or video ID.', 'type' => 'string', 'example' => '7753d144efd74d6c45fe0570****', 'title' => ''],
'DownloadSwitch' => ['description' => 'The status of the offline download feature. If this feature is enabled, users of mobile devices can use ApsaraVideo Player to cache videos for offline viewing. For more information, see [Offline download](~~86107~~). Valid values:'."\n"
."\n"
.'- **on**: Offline download is enabled.'."\n"
."\n"
.'- **off**: Offline download is disabled.', 'type' => 'string', 'example' => 'on', 'title' => ''],
'Tags' => ['description' => 'The tags of the audio or video file. Separate multiple tags with commas (,).', 'type' => 'string', 'example' => 'tag1, tag2', 'title' => ''],
'ModificationTime' => ['description' => 'The time when the audio or video file was last updated. The format is *yyyy-MM-dd*T*HH:mm:ss*Z in UTC.', 'type' => 'string', 'example' => '2017-06-26T06:38:48Z', 'title' => ''],
'CateName' => ['description' => 'The category name.', 'type' => 'string', 'example' => 'cate1', 'title' => ''],
'Description' => ['description' => 'The description of the audio or video file.', 'type' => 'string', 'example' => 'Alibaba Cloud VOD video description', 'title' => ''],
'AppId' => ['description' => 'The application ID.', 'type' => 'string', 'example' => 'app-****', 'title' => ''],
'Size' => ['description' => 'The size of the source audio or video file, in bytes.', 'type' => 'integer', 'format' => 'int64', 'example' => '453', 'title' => ''],
'CoverURL' => ['description' => 'The thumbnail URL of the audio or video file.', 'type' => 'string', 'example' => 'https://example.aliyundoc.com/****.jpg', 'title' => ''],
'TemplateGroupId' => ['description' => 'The ID of the transcoding template group.', 'type' => 'string', 'example' => 'b4039216985f4312a5382a4ed****', 'title' => ''],
'Duration' => ['description' => 'The duration of the audio or video file, in seconds.', 'type' => 'number', 'format' => 'float', 'example' => '120', 'title' => ''],
'Title' => ['description' => 'The title of the audio or video file.', 'type' => 'string', 'example' => 'Alibaba Cloud VOD Video Title', 'title' => ''],
'Snapshots' => [
'description' => 'An array of video snapshot URLs.',
'type' => 'array',
'items' => ['description' => 'An array of video snapshot URLs.'."\n"
."\n"
.'> This operation returns only the thumbnail snapshot data of the video. To query data for normal snapshots, sprites, original sprite images, and WebVTT snapshots that are captured using the [video snapshot](~~99368~~) feature, call the [ListSnapshots](~~ListSnapshots~~) operation.', 'type' => 'string', 'example' => '["http://example.aliyundoc.com/snapshot/****.jpg?auth_key=1498476426-0-0-f00b9455c49a423ce69cf4e27333****","http://example.aliyundoc.com/snapshot/****.jpg?auth_key=1498476426-0-0-f00b9455c49a423ce69cf4e27243****",...]', 'title' => ''],
'title' => '',
'example' => '',
],
'StorageClass' => ['description' => 'The storage class of the media asset. Valid values:'."\n"
."\n"
.'- **Standard**: Standard'."\n"
."\n"
.'- **IA**: Infrequent Access'."\n"
."\n"
.'- **Archive**: Archive'."\n"
."\n"
.'- **ColdArchive**: Cold Archive'."\n"
."\n"
.'- **SourceIA**: The storage class of the source file is Infrequent Access.'."\n"
."\n"
.'- **SourceArchive**: The storage class of the source file is Archive.'."\n"
."\n"
.'- **SourceColdArchive**: The storage class of the source file is Cold Archive.'."\n"
."\n"
.'- **Changing**: The storage class of the media asset is being changed.'."\n"
."\n"
.'- **SourceChanging**: The storage class of the source file is being changed.', 'type' => 'string', 'example' => 'Standard', 'title' => ''],
'RestoreStatus' => ['description' => 'The restoration status of the media asset. Valid values:'."\n"
."\n"
.'- **Processing**: The media asset is being restored.'."\n"
."\n"
.'- **Success**: The media asset is restored.'."\n"
."\n"
.'- **Failed**: The media asset failed to be restored.', 'type' => 'string', 'example' => 'Success', 'title' => ''],
'RestoreExpiration' => ['description' => 'The time when the restored media asset expires.', 'type' => 'string', 'example' => '2023-03-30T10:14:14Z', 'title' => ''],
'UserData' => ['description' => 'Custom settings. This is a JSON string that supports settings such as message callbacks and upload acceleration. For more information, see [UserData](~~86952~~).', 'type' => 'string', 'example' => '{"MessageCallback":{"CallbackURL":"http://example.aliyundoc.com"},"Extend":{"localId":"*****","test":"www"}}', 'title' => ''],
'ReferenceId' => ['description' => 'The custom ID. The ID can contain only lowercase letters, uppercase letters, digits, hyphens (-), and underscores (\\_). The ID must be 6 to 64 characters in length and unique for each user.', 'type' => 'string', 'example' => '123-123', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4AF6-D7393642CA58****\\",\\n \\"NonExistVideoIds\\": [\\n \\"[\\\\\\"7753d144efd8e649c6c45fe0579****\\\\\\"]\\"\\n ],\\n \\"NonExistReferenceIds\\": [\\n \\"123-123\\"\\n ],\\n \\"VideoList\\": [\\n {\\n \\"StorageLocation\\": \\"out-****.oss-cn-shanghai.aliyuncs.com\\",\\n \\"CreationTime\\": \\"2017-06-26T05:38:48Z\\",\\n \\"Status\\": \\"Normal\\",\\n \\"CateId\\": 0,\\n \\"VideoId\\": \\"7753d144efd74d6c45fe0570****\\",\\n \\"DownloadSwitch\\": \\"on\\",\\n \\"Tags\\": \\"tag1, tag2\\",\\n \\"ModificationTime\\": \\"2017-06-26T06:38:48Z\\",\\n \\"CateName\\": \\"cate1\\",\\n \\"Description\\": \\"Alibaba Cloud VOD video description\\",\\n \\"AppId\\": \\"app-****\\",\\n \\"Size\\": 453,\\n \\"CoverURL\\": \\"https://example.aliyundoc.com/****.jpg\\",\\n \\"TemplateGroupId\\": \\"b4039216985f4312a5382a4ed****\\",\\n \\"Duration\\": 120,\\n \\"Title\\": \\"Alibaba Cloud VOD Video Title\\",\\n \\"Snapshots\\": [\\n \\"[\\\\\\"http://example.aliyundoc.com/snapshot/****.jpg?auth_key=1498476426-0-0-f00b9455c49a423ce69cf4e27333****\\\\\\",\\\\\\"http://example.aliyundoc.com/snapshot/****.jpg?auth_key=1498476426-0-0-f00b9455c49a423ce69cf4e27243****\\\\\\",...]\\"\\n ],\\n \\"StorageClass\\": \\"Standard\\",\\n \\"RestoreStatus\\": \\"Success\\",\\n \\"RestoreExpiration\\": \\"2023-03-30T10:14:14Z\\",\\n \\"UserData\\": \\"{\\\\\\"MessageCallback\\\\\\":{\\\\\\"CallbackURL\\\\\\":\\\\\\"http://example.aliyundoc.com\\\\\\"},\\\\\\"Extend\\\\\\":{\\\\\\"localId\\\\\\":\\\\\\"*****\\\\\\",\\\\\\"test\\\\\\":\\\\\\"www\\\\\\"}}\\",\\n \\"ReferenceId\\": \\"123-123\\"\\n }\\n ]\\n}","type":"json"}]',
'title' => 'GetVideoInfos',
'description' => '- You can retrieve information for a maximum of 20 audio or video files in a single call.'."\n"
."\n"
.'- After you upload an audio or video file, VOD analyzes the source file. The media asset information is generated asynchronously. You can set an [event notification](~~55627~~) for the [VideoAnalysisComplete](~~99935~~) event. After you receive the notification, you can call this operation to retrieve the audio or video information.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return.'."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| InvalidVideo.NotFound | The video does not exist. | 404 | The error message returned because the video does not exist. |',
'changeSet' => [
['createdAt' => '2025-07-16T02:18:37.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:17:23.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetVideoInfos'],
],
],
'ramActions' => [
[
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:GetVideoInfos',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'GetVideoList' => [
'summary' => 'Retrieves a list of video information.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'list',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40000',
'abilityTreeNodes' => ['FEATUREvodYRQNEN'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'CateId',
'in' => 'query',
'schema' => ['description' => 'The category ID. Obtain the ID in one of the following ways:'."\n"
."\n"
.'- Log on to the [VOD console](https://vod.console.aliyun.com) and choose **Configuration Management** > **Media Management** > **Categories** to view the category ID.'."\n"
."\n"
.'- The value of the CateId parameter that is returned after you call the [AddCategory](~~56401~~) operation.'."\n"
."\n"
.'- The value of the CateId parameter that is returned after you call the [GetCategories](~~56406~~) operation.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '781111', 'title' => ''],
],
[
'name' => 'Status',
'in' => 'query',
'schema' => ['description' => 'The status of the video. To retrieve videos in multiple statuses, separate the statuses with a comma (,). Valid values:'."\n"
."\n"
.'- **Uploading**: The video is being uploaded.'."\n"
."\n"
.'- **UploadFail**: The video failed to be uploaded.'."\n"
."\n"
.'- **UploadSucc**: The video is uploaded.'."\n"
."\n"
.'- **Transcoding**: The video is being transcoded.'."\n"
."\n"
.'- **TranscodeFail**: The video failed to be transcoded.'."\n"
."\n"
.'- **Checking**: The video is being reviewed.'."\n"
."\n"
.'- **Blocked**: The video is blocked.'."\n"
."\n"
.'- **Normal**: The video is in a normal state.'."\n"
."\n"
.'- **ProduceFail**: The video failed to be produced.'."\n"
."\n"
.'For more information about each video status and its limits, see [Status: Video status](~~52839#section-p7c-jgy-070~~).', 'type' => 'string', 'required' => false, 'example' => 'Uploading,Normal', 'title' => ''],
],
[
'name' => 'PageNo',
'in' => 'query',
'schema' => ['description' => 'The page number. The default value is **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries to return on each page. The default value is **10**. The maximum value is **100**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''],
],
[
'name' => 'SortBy',
'in' => 'query',
'schema' => ['description' => 'The sorting rule for the query results. Valid values:'."\n"
."\n"
.'- **CreationTime:Desc** (default): Sorts the results by creation time in descending order.'."\n"
."\n"
.'- **CreationTime:Asc**: Sorts the results by creation time in ascending order.', 'type' => 'string', 'required' => false, 'example' => 'CreationTime:Asc', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query based on the creation time. The time is in UTC. The format is *yyyy-MM-dd*T*HH:mm:ss*Z.', 'type' => 'string', 'required' => false, 'example' => '2017-01-11T12:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query based on the creation time. The end time must be later than the start time. The time is in UTC. The format is *yyyy-MM-dd*T*HH:mm:ss*Z.', 'type' => 'string', 'required' => false, 'example' => '2017-01-11T12:59:00Z', 'title' => ''],
],
[
'name' => 'StorageLocation',
'in' => 'query',
'schema' => ['description' => 'The storage address of the audio or video file.', 'type' => 'string', 'required' => false, 'example' => 'out-****.oss-cn-shanghai.aliyuncs.com', 'title' => ''],
],
[
'name' => 'ReferenceIds',
'in' => 'query',
'schema' => ['description' => 'A list of one or more custom IDs. Separate multiple IDs with a comma (,). You can specify up to 20 IDs.', 'type' => 'string', 'example' => '123-123,1234-1234', 'title' => '', 'required' => false],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
'Total' => ['description' => 'The total number of audio or video files.', 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '25818875-5F78-4AF6-D7393642CA58****', 'title' => ''],
'VideoList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Video' => [
'description' => 'A list of audio or video information. You can retrieve a maximum of 5,000 entries.',
'type' => 'array',
'items' => [
'description' => 'The details of the audio or video file.',
'type' => 'object',
'properties' => [
'StorageLocation' => ['description' => 'The storage address of the audio or video file.', 'type' => 'string', 'example' => 'out-****.oss-cn-shanghai.aliyuncs.com', 'title' => ''],
'Status' => ['description' => 'The status of the video. Valid values:'."\n"
."\n"
.'- **Uploading**: The video is being uploaded.'."\n"
."\n"
.'- **UploadFail**: The video failed to be uploaded.'."\n"
."\n"
.'- **UploadSucc**: The video is uploaded.'."\n"
."\n"
.'- **Transcoding**: The video is being transcoded.'."\n"
."\n"
.'- **TranscodeFail**: The video failed to be transcoded.'."\n"
."\n"
.'- **Checking**: The video is being reviewed.'."\n"
."\n"
.'- **Blocked**: The video is blocked.'."\n"
."\n"
.'- **Normal**: The video is in a normal state.'."\n"
."\n"
.'- **ProduceFail**: The video failed to be produced.'."\n"
."\n"
.'For more information about each video status and its limits, see [Status: Video status](~~52839#section-p7c-jgy-070~~).', 'type' => 'string', 'example' => 'Normal', 'title' => ''],
'CreationTime' => ['description' => 'The time when the audio or video file was created. The time is in UTC. The format is *yyyy-MM-dd*T*HH:mm:ss*Z.', 'type' => 'string', 'example' => '2017-11-14T09:15:50Z', 'title' => ''],
'CateId' => ['description' => 'The category ID.', 'type' => 'integer', 'format' => 'int64', 'example' => '781111', 'title' => ''],
'VideoId' => ['description' => 'The audio or video ID.', 'type' => 'string', 'example' => '9ae2af636ca6c10412f44891fc****', 'title' => ''],
'Tags' => ['description' => 'The tags of the audio or video file. Multiple tags are separated by a comma (,).', 'type' => 'string', 'example' => 'Tag 1, Tag 2', 'title' => ''],
'ModificationTime' => ['description' => 'The time when the video was last updated. The time is in UTC. The format is *yyyy-MM-dd*T*HH:mm:ss*Z.', 'type' => 'string', 'example' => '2017-11-14T09:16:50Z', 'title' => ''],
'CateName' => ['description' => 'The category name.', 'type' => 'string', 'example' => 'Category name', 'title' => ''],
'Description' => ['description' => 'The description of the audio or video file.', 'type' => 'string', 'example' => 'Alibaba Cloud VOD video description', 'title' => ''],
'AppId' => ['description' => 'The application ID. Default value: **app-1000000**.', 'type' => 'string', 'example' => 'app-1000000', 'title' => ''],
'Size' => ['description' => 'The size of the source audio or video file. Unit: bytes.', 'type' => 'integer', 'format' => 'int64', 'example' => '10897890', 'title' => ''],
'CoverURL' => ['description' => 'The URL of the cover image for the audio or video file.', 'type' => 'string', 'example' => 'https://example.aliyundoc.com/****.jpg', 'title' => ''],
'Duration' => ['description' => 'The duration of the audio or video file. Unit: seconds.', 'type' => 'number', 'format' => 'float', 'example' => '135.6', 'title' => ''],
'Title' => ['description' => 'The title of the audio or video file.', 'type' => 'string', 'example' => 'Alibaba Cloud VOD video title', 'title' => ''],
'Snapshots' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Snapshot' => [
'description' => 'An array of video snapshot URLs.',
'type' => 'array',
'items' => ['description' => 'The URL of a video snapshot.'."\n"
."\n"
.'> Snapshot data is returned only for videos that are processed by the [video snapshot](~~99368~~) feature. Otherwise, this parameter is empty.', 'type' => 'string', 'example' => 'http://example.aliyundoc.com/snapshot/****.jpg?auth_key=1498476426-0-0-f00b9455c49a423ce69cf4e27333****', 'title' => ''],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'StorageClass' => ['description' => 'The storage class of the media asset. Valid values:'."\n"
."\n"
.'- **Standard**: Standard.'."\n"
."\n"
.'- **IA**: Infrequent Access.'."\n"
."\n"
.'- **Archive**: Archive.'."\n"
."\n"
.'- **ColdArchive**: Cold Archive.'."\n"
."\n"
.'- **SourceIA**: Infrequent Access for the source file.'."\n"
."\n"
.'- **SourceArchive**: Archive for the source file.'."\n"
."\n"
.'- **SourceColdArchive**: Cold Archive for the source file.'."\n"
."\n"
.'- **Changing**: The storage class of the media asset is being changed.'."\n"
."\n"
.'- **SourceChanging**: The storage class of the source file is being changed.', 'type' => 'string', 'example' => 'Standard', 'title' => ''],
'RestoreStatus' => ['description' => 'The restoration status of the media asset. Valid values:'."\n"
."\n"
.'- **Processing**: The media asset is being restored.'."\n"
."\n"
.'- **Success**: The media asset is restored.'."\n"
."\n"
.'- **Failed**: The media asset failed to be restored.', 'type' => 'string', 'example' => 'Success', 'title' => ''],
'RestoreExpiration' => ['description' => 'The expiration time of the restored media asset.', 'type' => 'string', 'example' => '2023-03-30T10:14:14Z', 'title' => ''],
'UserData' => ['description' => 'Custom settings. This is a JSON string that supports settings such as message callbacks and upload acceleration. For more information, see [UserData](~~86952~~).', 'type' => 'string', 'example' => '{"MessageCallback":{"CallbackURL":"http://example.aliyundoc.com"},"Extend":{"localId":"*****","test":"www"}}', 'title' => ''],
'ReferenceId' => ['description' => 'The custom ID. It can contain only lowercase letters, uppercase letters, digits, hyphens (-), and underscores (\\_). The ID must be 6 to 64 characters in length. The ID must be unique for each user.', 'type' => 'string', 'example' => '123-123', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Total\\": 100,\\n \\"RequestId\\": \\"25818875-5F78-4AF6-D7393642CA58****\\",\\n \\"VideoList\\": {\\n \\"Video\\": [\\n {\\n \\"StorageLocation\\": \\"out-****.oss-cn-shanghai.aliyuncs.com\\",\\n \\"Status\\": \\"Normal\\",\\n \\"CreationTime\\": \\"2017-11-14T09:15:50Z\\",\\n \\"CateId\\": 781111,\\n \\"VideoId\\": \\"9ae2af636ca6c10412f44891fc****\\",\\n \\"Tags\\": \\"Tag 1, Tag 2\\",\\n \\"ModificationTime\\": \\"2017-11-14T09:16:50Z\\",\\n \\"CateName\\": \\"Category name\\",\\n \\"Description\\": \\"Alibaba Cloud VOD video description\\",\\n \\"AppId\\": \\"app-1000000\\",\\n \\"Size\\": 10897890,\\n \\"CoverURL\\": \\"https://example.aliyundoc.com/****.jpg\\",\\n \\"Duration\\": 135.6,\\n \\"Title\\": \\"Alibaba Cloud VOD video title\\",\\n \\"Snapshots\\": {\\n \\"Snapshot\\": [\\n \\"http://example.aliyundoc.com/snapshot/****.jpg?auth_key=1498476426-0-0-f00b9455c49a423ce69cf4e27333****\\"\\n ]\\n },\\n \\"StorageClass\\": \\"Standard\\",\\n \\"RestoreStatus\\": \\"Success\\",\\n \\"RestoreExpiration\\": \\"2023-03-30T10:14:14Z\\",\\n \\"UserData\\": \\"{\\\\\\"MessageCallback\\\\\\":{\\\\\\"CallbackURL\\\\\\":\\\\\\"http://example.aliyundoc.com\\\\\\"},\\\\\\"Extend\\\\\\":{\\\\\\"localId\\\\\\":\\\\\\"*****\\\\\\",\\\\\\"test\\\\\\":\\\\\\"www\\\\\\"}}\\",\\n \\"ReferenceId\\": \\"123-123\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
'title' => 'GetVideoList',
'description' => 'This operation retrieves up to **5000** media files based on filter conditions, such as video status or category ID. To retrieve data in batches, specify the StartTime and EndTime parameters. To query more files or traverse all media asset information, see [SearchMedia](~~86044~~).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return.'."\n"
."\n"
.'|Error code|Error message|HTTP status code|Description|'."\n"
.'|---|---|---|---|'."\n"
.'|VideoListExceededMax|The video list exceeded maximum.|400|The error message returned because the total number of entries returned exceeds the upper limit.|'."\n"
.'|InvalidVideo.NotFound|The video does not exist.|404|The error message returned because the video does not exist.|',
'changeSet' => [
['createdAt' => '2025-07-16T02:18:31.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:16:57.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetVideoList'],
],
],
'ramActions' => [
[
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:GetVideoList',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'translator' => 'manual',
],
'GetVideoPlayAuth' => [
'summary' => 'Obtains a playback credential (PlayAuth) for an audio or video file. The ApsaraVideo Player SDK uses this credential to automatically retrieve the playback URL. Credentials are time-bound and file-specific—do not reuse across files. Expired or invalid credentials cause playback failures. Use this method for high-security playback scenarios.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40001',
'abilityTreeNodes' => ['FEATUREvodCOWQO0'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'VideoId',
'in' => 'query',
'schema' => ['description' => 'The ID of the audio or video file. You can specify only one ID. You can obtain the ID in one of the following ways:'."\n"
."\n"
.'- Log on to the [VOD console](https://vod.console.aliyun.com). In the navigation pane, choose **Media Assets** > **Audio/Video** to view the file ID.'."\n"
."\n"
.'- Call the [CreateUploadVideo](~~55407~~) operation to upload a file. The value of the VideoId parameter in the response is the file ID.'."\n"
."\n"
.'- After a file is uploaded, call the [SearchMedia](~~86044~~) operation to query the file ID. The value of the VideoId parameter in the response is the file ID.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'dfde02284a5c46622a097adaf44a****', 'title' => ''],
],
[
'name' => 'AuthInfoTimeout',
'in' => 'query',
'schema' => ['description' => 'The time-to-live (TTL) of the playback credential, in **seconds**. If the credential expires, you cannot get the playback URL. Get a new credential.'."\n"
."\n"
.'- Default value: **100**.'."\n"
."\n"
.'- Valid values: `[100,3000]`.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '100', 'title' => ''],
],
[
'name' => 'ApiVersion',
'in' => 'query',
'schema' => ['description' => 'The API version. Set the value to **1.0.0**.', 'type' => 'string', 'example' => '1.0.0', 'required' => false, 'title' => ''],
],
[
'name' => 'ReferenceId',
'in' => 'query',
'schema' => ['description' => 'A custom ID that is 6 to 64 characters in length. It can contain letters, digits, hyphens (-), and underscores (\\_). The ID must be unique for each user.', 'type' => 'string', 'example' => '123-123', 'title' => '', 'required' => false],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned result.',
'type' => 'object',
'properties' => [
'PlayAuth' => ['description' => 'The playback credential for the audio or video file.', 'type' => 'string', 'example' => 'sstyYuew6789000000xtt7TYUh****', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'E4EBD2BF-5EB0-4476-8829-9D94E1B1****', 'title' => ''],
'VideoMeta' => [
'description' => 'The metadata of the audio or video file.',
'type' => 'object',
'properties' => [
'Status' => ['description' => 'The status of the audio or video file. For more information about the valid values and descriptions, see [Status of an audio or video file](~~52839#title-vqg-8cz-7p8~~).', 'type' => 'string', 'example' => 'Normal', 'title' => ''],
'Duration' => ['description' => 'The duration of the audio or video file, in seconds.', 'type' => 'number', 'format' => 'float', 'example' => '120.0', 'title' => ''],
'Title' => ['description' => 'The title of the audio or video file.', 'type' => 'string', 'example' => 'Alibaba Cloud VOD Video Title', 'title' => ''],
'VideoId' => ['description' => 'The ID of the audio or video file.', 'type' => 'string', 'example' => 'dfde02284a5c46622a097adaf44a****', 'title' => ''],
'CoverURL' => ['description' => 'The URL of the thumbnail of the audio or video file.', 'type' => 'string', 'example' => 'https://example.aliyundoc.com/****.jpg', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PlayAuth\\": \\"sstyYuew6789000000xtt7TYUh****\\",\\n \\"RequestId\\": \\"E4EBD2BF-5EB0-4476-8829-9D94E1B1****\\",\\n \\"VideoMeta\\": {\\n \\"Status\\": \\"Normal\\",\\n \\"Duration\\": 120,\\n \\"Title\\": \\"Alibaba Cloud VOD Video Title\\",\\n \\"VideoId\\": \\"dfde02284a5c46622a097adaf44a****\\",\\n \\"CoverURL\\": \\"https://example.aliyundoc.com/****.jpg\\"\\n }\\n}","type":"json"}]',
'title' => 'GetVideoPlayAuth',
'description' => '- If you use PlayAuth for playback, you must use the ApsaraVideo Player SDK. Call this operation to obtain a playback credential, which the SDK uses to automatically retrieve the playback URL. For more information, see [ApsaraVideo Player SDK](~~125579~~).'."\n"
."\n"
.'- If a playback credential expires, you cannot retrieve the playback URL. You must obtain a new credential.',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return. '."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| Forbidden.IllegalStatus | Status of the video is illegal. | 403 | The error message returned because the video status is invalid. |'."\n"
.'| InvalidVideo.NotFound | The video does not exist. | 404 | The error message returned because the video does not exist. |'."\n"
.'| MissingVideoId | VideoId is mandatory for this action. | 400 | The error message returned because the VideoId parameter is not specified. |',
'changeSet' => [
['createdAt' => '2025-07-16T02:16:59.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:16:57.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '360', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetVideoPlayAuth'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetVideoPlayAuth',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'GetVodTemplate' => [
'summary' => 'Queries details of a snapshot template.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40007',
'abilityTreeNodes' => ['FEATUREvodL077M7'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'VodTemplateId',
'in' => 'query',
'schema' => ['description' => 'The ID of the snapshot template.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '7c49f2f4c0969*****fcd446690', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'DE7A1F49-41C1-47*****DF-4CD0C02087DB', 'title' => ''],
'VodTemplateInfo' => [
'description' => 'The information about the snapshot template.'."\n",
'type' => 'object',
'properties' => [
'CreationTime' => ['description' => 'The time when the template was created. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2018-11-30T08:05:59:57Z', 'title' => ''],
'IsDefault' => ['description' => 'Indicates whether the template is the default one. Valid values:'."\n"
."\n"
.'* **Default**: The template is the default one.'."\n"
.'* **NotDefault**: The template is not the default one.'."\n", 'type' => 'string', 'example' => 'NotDefault', 'title' => ''],
'TemplateType' => ['description' => 'The type of the template. Valid values:'."\n"
."\n"
.'* **Snapshot**'."\n"
.'* **DynamicImage**'."\n", 'type' => 'string', 'example' => 'Snapshot', 'title' => ''],
'VodTemplateId' => ['description' => 'The ID of the template.'."\n", 'type' => 'string', 'example' => '7c49f2f4c09*****69fcd446690', 'title' => ''],
'TemplateConfig' => ['description' => 'The detailed configurations of the template. The value is a JSON-formatted string. For more information about the data structure, see the "SnapshotTemplateConfig" section of the [Media processing parameters](~~98618~~) topic.'."\n", 'type' => 'string', 'example' => '{\\"SnapshotConfig\\":{\\"Count\\":10,\\"SpecifiedOffsetTime\\":0,\\"Interval\\":1},\\"SnapshotType\\":\\"NormalSnapshot\\"}', 'title' => ''],
'Name' => ['description' => 'The name of the template.'."\n", 'type' => 'string', 'example' => 'test', 'title' => ''],
'ModifyTime' => ['description' => 'The time when the template was modified. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2018-11-30T09:05:59:57Z', 'title' => ''],
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"DE7A1F49-41C1-47*****DF-4CD0C02087DB\\",\\n \\"VodTemplateInfo\\": {\\n \\"CreationTime\\": \\"2018-11-30T08:05:59:57Z\\",\\n \\"IsDefault\\": \\"NotDefault\\",\\n \\"TemplateType\\": \\"Snapshot\\",\\n \\"VodTemplateId\\": \\"7c49f2f4c09*****69fcd446690\\",\\n \\"TemplateConfig\\": \\"{\\\\\\\\\\\\\\"SnapshotConfig\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"Count\\\\\\\\\\\\\\":10,\\\\\\\\\\\\\\"SpecifiedOffsetTime\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\"Interval\\\\\\\\\\\\\\":1},\\\\\\\\\\\\\\"SnapshotType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"NormalSnapshot\\\\\\\\\\\\\\"}\\",\\n \\"Name\\": \\"test\\",\\n \\"ModifyTime\\": \\"2018-11-30T09:05:59:57Z\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n DE7A1F49-41C1-47*****DF-4CD0C02087DB\\n \\n test\\n Snapshot\\n Custom\\n 2018-11-30T08:05:59:57Z\\n 7c49f2f4c09*****69fcd446690\\n NotDefault\\n {\\"SnapshotConfig\\":{\\"Count\\":10,\\"SpecifiedOffsetTime\\":0,\\"Interval\\":1},\\"SnapshotType\\":\\"NormalSnapshot\\"}\\n 2018-11-30T09:05:59:57Z\\n \\n","errorExample":""}]',
'title' => 'GetVodTemplate',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-16T02:19:16.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:16:51.000Z', 'description' => 'OpenAPI offline'],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetVodTemplate',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetVodTemplate'],
],
],
],
'GetWatermark' => [
'summary' => 'Queries the configurations of an image or text watermark template based on tits ID. You can call this operation to obtain information such as the position, size, and display time of an image watermark or the content, position, font, and font color of a text watermark.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40009',
'abilityTreeNodes' => ['FEATUREvodL077M7'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'WatermarkId',
'in' => 'query',
'schema' => ['description' => 'The ID of the watermark template. You can specify only one watermark template ID. You can obtain the ID by using one of the following methods:'."\n"
."\n"
.'* Obtain the watermark template ID from the response to the [AddWatermark](~~AddWatermark~~) operation that you call to create a watermark template.'."\n"
.'* Obtain the watermark template ID from the response to the [ListWatermark](~~ListWatermark~~) operation that you call to query all watermarks within your account.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '9bcc8bfadb843f*****09a2671d0df97', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4A*****F6-D7393642CA58', 'title' => ''],
'WatermarkInfo' => [
'description' => 'The information about the watermark template.'."\n",
'type' => 'object',
'properties' => [
'CreationTime' => ['description' => 'The time when the watermark template was created. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2018-11-06T08:03:17Z', 'title' => ''],
'Type' => ['description' => 'The type of the watermark template. Valid values:'."\n"
."\n"
.'* **Image**: image watermark template'."\n"
.'* **Text**: text watermark template'."\n", 'type' => 'string', 'example' => 'Image', 'title' => ''],
'IsDefault' => ['description' => 'Indicates whether the watermark template is the default one. Valid values:'."\n"
."\n"
.'* **Default**'."\n"
.'* **NotDefault**'."\n", 'type' => 'string', 'example' => 'NotDefault', 'title' => ''],
'FileUrl' => ['description' => 'The URL of the watermark file. The URL is an Object Storage Service (OSS) URL or an Alibaba Cloud CDN URL.'."\n"
."\n"
.'> This parameter is returned only for image watermark templates.'."\n", 'type' => 'string', 'example' => 'https://outin-32*****f4b3e7.oss-cn-shanghai.aliyuncs.com/image/cover/F85529C8B715E6F8A72EC6B-6-2.png?Expires=1541600583&OSSAccessKeyId=****&Signature=gmf1eYMoDVg%2BHQCb4UGozBW****', 'title' => ''],
'AppId' => ['description' => 'The ID of the application.'."\n", 'type' => 'string', 'example' => 'app-****', 'title' => ''],
'WatermarkConfig' => ['description' => 'The configuration information of the watermark such as the display position and special effects. The value is a JSON string. The configuration parameters for image and text watermarks are different. For more information about the parameter structure, see [WatermarkConfig](~~98618#section-h01-44s-2lr~~).'."\n", 'type' => 'string', 'example' => '{"ReferPos": "BottomRight","Height": "55","Width": "55","Dx": "8","Dy": "8" }', 'title' => ''],
'Name' => ['description' => 'The name of the watermark template.'."\n", 'type' => 'string', 'example' => 'Image watermark test', 'title' => ''],
'WatermarkId' => ['description' => 'The ID of the watermark template.'."\n", 'type' => 'string', 'example' => '505e2e287ea*****ecfddd386d384', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4A*****F6-D7393642CA58\\",\\n \\"WatermarkInfo\\": {\\n \\"CreationTime\\": \\"2018-11-06T08:03:17Z\\",\\n \\"Type\\": \\"Image\\",\\n \\"IsDefault\\": \\"NotDefault\\",\\n \\"FileUrl\\": \\"https://outin-32*****f4b3e7.oss-cn-shanghai.aliyuncs.com/image/cover/F85529C8B715E6F8A72EC6B-6-2.png?Expires=1541600583&OSSAccessKeyId=****&Signature=gmf1eYMoDVg%2BHQCb4UGozBW****\\",\\n \\"AppId\\": \\"app-****\\",\\n \\"WatermarkConfig\\": \\"{\\\\\\"ReferPos\\\\\\": \\\\\\"BottomRight\\\\\\",\\\\\\"Height\\\\\\": \\\\\\"55\\\\\\",\\\\\\"Width\\\\\\": \\\\\\"55\\\\\\",\\\\\\"Dx\\\\\\": \\\\\\"8\\\\\\",\\\\\\"Dy\\\\\\": \\\\\\"8\\\\\\" }\\",\\n \\"Name\\": \\"Image watermark test\\",\\n \\"WatermarkId\\": \\"505e2e287ea*****ecfddd386d384\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]',
'title' => 'GetWatermark',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return.'."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| NoSuchResource | The specified resource %s does not exist. | 404 | The error message returned because the user-related resource does not exist. %s indicates the specific resource information. |',
'changeSet' => [
['createdAt' => '2025-07-16T02:19:16.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetWatermark'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetWatermark',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'ListAIImageInfo' => [
'summary' => 'Queries the AI processing results about the images of a specified video.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'list',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40020',
'abilityTreeNodes' => ['FEATUREvodYRQNEN'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'VideoId',
'in' => 'query',
'schema' => ['description' => 'The ID of the video. You can use one of the following methods to obtain the ID:'."\n"
."\n"
.'* Log on to the [ApsaraVideo VOD](https://vod.console.aliyun.com) console. In the left-side navigation pane, choose **Media Files** > **Audio/Video**. On the Video and Audio page, view the ID of the audio or video file. This method is applicable to files that are uploaded by using the ApsaraVideo VOD console.'."\n"
.'* Obtain the value of VideoId from the response to the [CreateUploadVideo](~~55407~~) operation that you call to upload media files.'."\n"
.'* Obtain the value of VideoId from the response to the [SearchMedia](~~86044~~) operation after you upload media files.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '357a8748c5789d2726e6436aa****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned data.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'D73420CD-D221-9122-5B8FA995A511****', 'title' => ''],
'AIImageInfoList' => [
'description' => 'The image files that are uploaded for AI processing.'."\n",
'type' => 'array',
'items' => [
'description' => 'The details of the image file.'."\n",
'type' => 'object',
'properties' => [
'CreationTime' => ['description' => 'The time when the file was created. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2020-10-15T03:30:03Z', 'title' => ''],
'AIImageInfoId' => ['description' => 'The ID of the image information.'."\n", 'type' => 'string', 'example' => 'b89a6aabf1b6197ebd6fe6cf29****', 'title' => ''],
'FileURL' => ['description' => 'The URL of the image file.'."\n", 'type' => 'string', 'example' => 'http://example.aliyundoc.com/357a8748c5789d2726e6436aa****/image/ai/b0a7612554d6400013-0****.gif?auth_key=1602745717-0-0-005ee05616c5925596d****', 'title' => ''],
'Version' => ['description' => 'The data version ID.'."\n", 'type' => 'string', 'example' => 'b547f3f0e199c3b457369f3cf****', 'title' => ''],
'VideoId' => ['description' => 'The ID of the video.'."\n", 'type' => 'string', 'example' => '357a8748c5789d2726e6436aa****', 'title' => ''],
'JobId' => ['description' => 'The ID of the image AI processing job.'."\n", 'type' => 'string', 'example' => 'cf08a2c6e11ee1711b738b9067****', 'title' => ''],
'Score' => ['description' => 'The score of the image.'."\n", 'type' => 'string', 'example' => '5.035636554444242', 'title' => ''],
'Format' => ['description' => 'The format of the image. Valid values: **gif** and **png**.'."\n", 'type' => 'string', 'example' => 'gif', 'title' => ''],
],
'title' => '',
],
'title' => '',
],
],
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"D73420CD-D221-9122-5B8FA995A511****\\",\\n \\"AIImageInfoList\\": [\\n {\\n \\"CreationTime\\": \\"2020-10-15T03:30:03Z\\",\\n \\"AIImageInfoId\\": \\"b89a6aabf1b6197ebd6fe6cf29****\\",\\n \\"FileURL\\": \\"http://example.aliyundoc.com/357a8748c5789d2726e6436aa****/image/ai/b0a7612554d6400013-0****.gif?auth_key=1602745717-0-0-005ee05616c5925596d****\\",\\n \\"Version\\": \\"b547f3f0e199c3b457369f3cf****\\",\\n \\"VideoId\\": \\"357a8748c5789d2726e6436aa****\\",\\n \\"JobId\\": \\"cf08a2c6e11ee1711b738b9067****\\",\\n \\"Score\\": \\"5.035636554444242\\",\\n \\"Format\\": \\"gif\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n D73420CD-D221-9122-5B8FA995A511****\\n \\n 2020-10-15T03:30:03Z\\n b89a6aabf1b6197ebd6fe6cf29****\\n http://example.aliyundoc.com/357a8748c5789d2726e6436aa****/image/ai/b0a7612554d6400013-0****.gif?auth_key=1602745717-0-0-005ee05616c5925596d****\\n b547f3f0e199c3b457369f3cf****\\n 357a8748c5789d2726e6436aa****\\n cf08a2c6e11ee1711b738b9067****\\n 5.035636554444242\\n gif\\n \\n","errorExample":""}]',
'title' => 'ListAIImageInfo',
'description' => '* Regions that support this operation: **China (Beijing)** and **China (Shanghai)**.'."\n"
.'* You can call this operation to query AI processing results about images of a specified video. Images of different videos cannot be queried in one request.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-16T02:18:38.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:16:26.000Z', 'description' => 'OpenAPI offline'],
],
'ramActions' => [
[
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:ListAIImageInfo',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListAIImageInfo'],
],
],
],
'ListAIJob' => [
'summary' => 'Queries a smart tagging or video fingerprinting job. After you submit a smart tagging or video fingerprinting job, ApsaraVideo VOD asynchronously processes the job. You can call this operation to query the job information in real time.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'list',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40022',
'abilityTreeNodes' => ['FEATUREvodW76Z9M'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'JobIds',
'in' => 'query',
'schema' => ['description' => 'The list of job IDs. You can obtain the job ID from the PlayInfo parameter in the response to the [GetPlayInfo](~~56124~~) operation.'."\n"
."\n"
.'> You can specify a maximum of 10 job IDs in a request. Separate multiple IDs with commas (,).'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'a718a3a1e8bb42ee3bc88921e94****,aasdcsfg782740asd3****,k2l3ibaskod98wrns9d****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '8233A0E4-E112-44*****58-2BCED1B88173', 'title' => ''],
'NonExistAIJobIds' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'String' => [
'description' => 'The IDs of the jobs that do not exist.'."\n",
'type' => 'array',
'items' => ['description' => 'The IDs of the jobs that do not exist.'."\n", 'type' => 'string', 'example' => '["aasdcsfg782740asd3****", "k2l3ibaskod98wrns9d****"]', 'title' => ''],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'AIJobList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'AIJob' => [
'description' => 'The list of jobs.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'CreationTime' => ['description' => 'The time when the job was created. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2020-06-28T02:04:32Z', 'title' => ''],
'Status' => ['description' => 'The status of the job. Valid values:'."\n"
."\n"
.'* **success**: The job is successful.'."\n"
.'* **fail**: The job failed.'."\n"
.'* **init**: The job is being initialized.'."\n"
.'* **Processing**: The job is in progress.'."\n", 'type' => 'string', 'example' => 'success', 'title' => ''],
'Type' => ['description' => 'The type of the job. Valid values:'."\n"
."\n"
.'* **AIMediaDNA**: video fingerprinting'."\n"
.'* **AIVideoTag**: smart tagging'."\n", 'type' => 'string', 'example' => 'AIVideoTag', 'title' => ''],
'Data' => ['description' => 'The returned data. The value is a JSON string. For more information, see [AITemplateConfig](~~89863~~).'."\n", 'type' => 'string', 'example' => '{"OrigASRData":{"AsrTextList":[{"EndTime":700,"StartTime":0,"Text":"Hmm.","ChannelId":0,"SpeechRate":85},{"EndTime":3750,"StartTime":1630,"Text":"Yes.","ChannelId":0,"SpeechRate":28},{"EndTime":5910,"StartTime":4020,"Text":"Never gets old.","ChannelId":0,"SpeechRate":95},{"EndTime":12750,"StartTime":10090,"Text":"Leave a message.","ChannelId":0,"SpeechRate":45},{"EndTime":25230,"StartTime":13590,"Text":"Hello, good afternoon.","ChannelId":0,"SpeechRate":20},{"EndTime":30000,"StartTime":28220,"Text":"Hmm.","ChannelId":0,"SpeechRate":33}],"Duration":"30016"}}', 'title' => ''],
'CompleteTime' => ['description' => 'The time when the job was complete. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2020-06-28T02:04:47Z', 'title' => ''],
'JobId' => ['description' => 'The job ID.'."\n", 'type' => 'string', 'example' => 'a718a3a1e8bb42ee3bc88921e94****', 'title' => ''],
'Code' => ['description' => 'The error code. This parameter is returned if the value of Status is fail.'."\n", 'type' => 'string', 'example' => '0', 'title' => ''],
'Message' => ['description' => 'The error message. This parameter is returned if the value of Status is fail.'."\n", 'type' => 'string', 'example' => 'OK', 'title' => ''],
'MediaId' => ['description' => 'The ID of the video file.'."\n", 'type' => 'string', 'example' => '3D3D12340d9401fab46a0b847****', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"8233A0E4-E112-44*****58-2BCED1B88173\\",\\n \\"NonExistAIJobIds\\": {\\n \\"String\\": [\\n \\"[\\\\\\"aasdcsfg782740asd3****\\\\\\", \\\\\\"k2l3ibaskod98wrns9d****\\\\\\"]\\"\\n ]\\n },\\n \\"AIJobList\\": {\\n \\"AIJob\\": [\\n {\\n \\"CreationTime\\": \\"2020-06-28T02:04:32Z\\",\\n \\"Status\\": \\"success\\",\\n \\"Type\\": \\"AIVideoTag\\",\\n \\"Data\\": \\"{\\\\\\"OrigASRData\\\\\\":{\\\\\\"AsrTextList\\\\\\":[{\\\\\\"EndTime\\\\\\":700,\\\\\\"StartTime\\\\\\":0,\\\\\\"Text\\\\\\":\\\\\\"Hmm.\\\\\\",\\\\\\"ChannelId\\\\\\":0,\\\\\\"SpeechRate\\\\\\":85},{\\\\\\"EndTime\\\\\\":3750,\\\\\\"StartTime\\\\\\":1630,\\\\\\"Text\\\\\\":\\\\\\"Yes.\\\\\\",\\\\\\"ChannelId\\\\\\":0,\\\\\\"SpeechRate\\\\\\":28},{\\\\\\"EndTime\\\\\\":5910,\\\\\\"StartTime\\\\\\":4020,\\\\\\"Text\\\\\\":\\\\\\"Never gets old.\\\\\\",\\\\\\"ChannelId\\\\\\":0,\\\\\\"SpeechRate\\\\\\":95},{\\\\\\"EndTime\\\\\\":12750,\\\\\\"StartTime\\\\\\":10090,\\\\\\"Text\\\\\\":\\\\\\"Leave a message.\\\\\\",\\\\\\"ChannelId\\\\\\":0,\\\\\\"SpeechRate\\\\\\":45},{\\\\\\"EndTime\\\\\\":25230,\\\\\\"StartTime\\\\\\":13590,\\\\\\"Text\\\\\\":\\\\\\"Hello, good afternoon.\\\\\\",\\\\\\"ChannelId\\\\\\":0,\\\\\\"SpeechRate\\\\\\":20},{\\\\\\"EndTime\\\\\\":30000,\\\\\\"StartTime\\\\\\":28220,\\\\\\"Text\\\\\\":\\\\\\"Hmm.\\\\\\",\\\\\\"ChannelId\\\\\\":0,\\\\\\"SpeechRate\\\\\\":33}],\\\\\\"Duration\\\\\\":\\\\\\"30016\\\\\\"}}\\",\\n \\"CompleteTime\\": \\"2020-06-28T02:04:47Z\\",\\n \\"JobId\\": \\"a718a3a1e8bb42ee3bc88921e94****\\",\\n \\"Code\\": \\"0\\",\\n \\"Message\\": \\"OK\\",\\n \\"MediaId\\": \\"3D3D12340d9401fab46a0b847****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]',
'title' => 'ListAIJob',
'description' => '* Regions that support this operation: **China (Beijing)**, **China (Shanghai)**, and **Singapore**.'."\n"
.'* You can call this operation to query video fingerprinting jobs and smart tagging jobs.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-16T02:17:25.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:16:34.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListAIJob'],
],
],
'ramActions' => [
[
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:ListAIJob',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'ListAITemplate' => [
'summary' => 'Queries AI templates.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'list',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40026',
'abilityTreeNodes' => ['FEATUREvodW76Z9M'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'TemplateType',
'in' => 'query',
'schema' => ['description' => 'The type of the AI template. Valid values:'."\n"
."\n"
.'* **AIMediaAudit**: automated review'."\n"
.'* **AIImage**: smart thumbnail'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'AIMediaAudit', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '75B7BC67-FB8C-4653-4788-F4B01ED2****', 'title' => ''],
'TemplateInfoList' => [
'description' => 'The information about the AI templates.'."\n",
'type' => 'array',
'items' => [
'description' => 'Details of the AI template.'."\n",
'type' => 'object',
'properties' => [
'CreationTime' => ['description' => 'The time when the AI template was created. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2020-07-08T06:50:45Z', 'title' => ''],
'IsDefault' => ['description' => 'Indicates whether the template is the default AI template. Valid values:'."\n"
."\n"
.'* **Default**'."\n"
.'* **NotDefault**'."\n", 'type' => 'string', 'example' => 'NoDefault', 'title' => ''],
'TemplateType' => ['description' => 'The type of the AI template. Valid values:'."\n"
."\n"
.'* **AIMediaAudit**: automated review'."\n"
.'* **AIImage**: smart thumbnail'."\n", 'type' => 'string', 'example' => 'AIMediaAudit', 'title' => ''],
'TemplateConfig' => ['description' => 'The detailed configurations of the AI template. The value is a JSON string. For more information, see [AITemplateConfig](~~89863#title-vd3-499-o36~~).'."\n", 'type' => 'string', 'example' => '{"AuditRange":["text-title","video"],"AuditContent":["screen"],"AuditItem":["terrorism","porn"],"AuditAutoBlock":"yes"}', 'title' => ''],
'TemplateName' => ['description' => 'The name of the AI template.'."\n", 'type' => 'string', 'example' => 'DemoAITemplate', 'title' => ''],
'Source' => ['description' => 'The source of the AI template. Valid values:'."\n"
."\n"
.'* **System**'."\n"
.'* **Custom**'."\n", 'type' => 'string', 'example' => 'Custom', 'title' => ''],
'TemplateId' => ['description' => 'The ID of the AI template.'."\n", 'type' => 'string', 'example' => '1706a0063dd733f6a823ef32e0a5****', 'title' => ''],
'ModifyTime' => ['description' => 'The time when the AI template was modified. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2020-07-08T06:58:45Z', 'title' => ''],
],
'title' => '',
],
'title' => '',
],
],
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'ListAITemplate',
'description' => '* Regions that support this operation: **China (Beijing)**, **China (Shanghai)**, and **Singapore**.'."\n"
.'* You can call this operation to query AI templates of a specified type.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-16T02:18:38.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:16:35.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListAITemplate'],
],
],
'ramActions' => [
[
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:ListAITemplate',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"75B7BC67-FB8C-4653-4788-F4B01ED2****\\",\\n \\"TemplateInfoList\\": [\\n {\\n \\"CreationTime\\": \\"2020-07-08T06:50:45Z\\",\\n \\"IsDefault\\": \\"NoDefault\\",\\n \\"TemplateType\\": \\"AIMediaAudit\\",\\n \\"TemplateConfig\\": \\"{\\\\\\"AuditRange\\\\\\":[\\\\\\"text-title\\\\\\",\\\\\\"video\\\\\\"],\\\\\\"AuditContent\\\\\\":[\\\\\\"screen\\\\\\"],\\\\\\"AuditItem\\\\\\":[\\\\\\"terrorism\\\\\\",\\\\\\"porn\\\\\\"],\\\\\\"AuditAutoBlock\\\\\\":\\\\\\"yes\\\\\\"}\\",\\n \\"TemplateName\\": \\"DemoAITemplate\\",\\n \\"Source\\": \\"Custom\\",\\n \\"TemplateId\\": \\"1706a0063dd733f6a823ef32e0a5****\\",\\n \\"ModifyTime\\": \\"2020-07-08T06:58:45Z\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 75B7BC67-FB8C-4653-4788-F4B01ED2****\\n \\n 2020-07-08T06:50:45Z\\n NoDefault\\n AIMediaAudit\\n {\\"AuditRange\\":[\\"text-title\\",\\"video\\"],\\"AuditContent\\":[\\"screen\\"],\\"AuditItem\\":[\\"terrorism\\",\\"porn\\"],\\"AuditAutoBlock\\":\\"yes\\"}\\n DemoAITemplate\\n Custom\\n 1706a0063dd733f6a823ef32e0a5****\\n 2020-07-08T06:58:45Z\\n \\n","errorExample":""}]',
],
'ListAppInfo' => [
'summary' => 'Call this operation to retrieve a list of application information based on specified query conditions.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'list',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40042',
'abilityTreeNodes' => ['FEATUREvodHJ3KAX'],
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'Status',
'in' => 'query',
'schema' => ['description' => 'The status of the application. You can query applications in a specific status. After an application is created, its status is **Normal** by default. Valid values:'."\n"
."\n"
.'- **Normal**'."\n"
."\n"
.'- **Disable**', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'Normal'],
],
[
'name' => 'PageNo',
'in' => 'query',
'schema' => ['description' => 'The page number. The default value is **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'title' => '', 'example' => '1'],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries to return on each page. The default value is **10**. The maximum value is **100**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'title' => '', 'example' => '10'],
],
[
'name' => 'ResourceGroupId',
'in' => 'query',
'schema' => ['description' => 'The ID of the resource group.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'rg-aekzko7fsuj****'],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned results.',
'type' => 'object',
'properties' => [
'Total' => ['description' => 'The total number of entries.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '10'],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '25818875-5F78-4A13-4D5C-D7393642****'],
'AppInfoList' => [
'description' => 'The list of application information.',
'type' => 'array',
'items' => [
'description' => 'The details of the application.',
'type' => 'object',
'properties' => [
'Type' => ['description' => 'The type of the application. Valid values:'."\n"
."\n"
.'- **System**'."\n"
."\n"
.'- **Custom**', 'type' => 'string', 'title' => '', 'example' => 'System'],
'Status' => ['description' => 'The status of the application. Valid values:'."\n"
."\n"
.'- **Normal**'."\n"
."\n"
.'- **Disable**', 'type' => 'string', 'title' => '', 'example' => 'Normal'],
'CreationTime' => ['description' => 'The time when the application was created. The time is in UTC. The format is *yyyy-MM-dd*T*HH:mm:ss*Z.', 'type' => 'string', 'title' => '', 'example' => '2019-03-01T08:00:00Z'],
'AppName' => ['description' => 'The name of the application.', 'type' => 'string', 'title' => '', 'example' => 'test'],
'Description' => ['description' => 'The description of the application.', 'type' => 'string', 'title' => '', 'example' => 'my first app.'],
'AppId' => ['description' => 'The ID of the application.', 'type' => 'string', 'title' => '', 'example' => 'app-****'],
'ModificationTime' => ['description' => 'The time when the application was last updated. The time is in UTC. The format is `yyyy-MM-ddTHH:mm:ssZ`.', 'type' => 'string', 'title' => '', 'example' => '2019-03-01T09:00:00Z'],
'RegionId' => ['description' => 'The region.', 'type' => 'string', 'title' => '', 'example' => 'cn-shanghai'],
'ResourceGroupId' => ['description' => 'The ID of the resource group.', 'type' => 'string', 'title' => '', 'example' => 'rg-aekzko7fsuj****'],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'title' => 'ListAppInfo',
'description' => '### Usage notes'."\n"
."\n"
.'You can filter the query by application status.'."\n"
."\n"
.'### QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 30 for each user. If you exceed this limit, your API calls are throttled. This may affect your business operations. Plan your calls accordingly. For more information, see [QPS limits](~~342790~~).',
'extraInfo' => '## 接口错误码'."\n"
."\n"
.'下表列举了本接口特有的错误码。'."\n"
.'| 错误代码 | 错误信息 | HTTP 状态码 | 说明 |'."\n"
.'| ------------- |------------ | ----- | ------ |'."\n"
.'| OperationDenied.NotOpenAppService | The app service is not open. | 403 | 多应用服务未开通。 |',
'changeSet' => [
['createdAt' => '2025-07-10T08:39:33.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-06-19T08:27:35.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-06-18T07:27:36.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-06-17T07:30:27.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListAppInfo'],
],
],
'ramActions' => [
[
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:ListAppInfo',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Total\\": 10,\\n \\"RequestId\\": \\"25818875-5F78-4A13-4D5C-D7393642****\\",\\n \\"AppInfoList\\": [\\n {\\n \\"Type\\": \\"System\\",\\n \\"Status\\": \\"Normal\\",\\n \\"CreationTime\\": \\"2019-03-01T08:00:00Z\\",\\n \\"AppName\\": \\"test\\",\\n \\"Description\\": \\"my first app.\\",\\n \\"AppId\\": \\"app-****\\",\\n \\"ModificationTime\\": \\"2019-03-01T09:00:00Z\\",\\n \\"RegionId\\": \\"cn-shanghai\\",\\n \\"ResourceGroupId\\": \\"rg-aekzko7fsuj****\\"\\n }\\n ]\\n}","type":"json"}]',
],
'ListAppPoliciesForIdentity' => [
'summary' => 'Queries the application policies that are attached to the specified identity. The identity may be a RAM user or RAM role.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'list',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40044',
'abilityTreeNodes' => ['FEATUREvodHJ3KAX'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'IdentityType',
'in' => 'query',
'schema' => ['description' => 'The type of the identity. Valid values:'."\n"
."\n"
.'* **RamUser**: a RAM user.'."\n"
.'* **RamRole**: a RAM role.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'RamUser', 'title' => ''],
],
[
'name' => 'IdentityName',
'in' => 'query',
'schema' => ['description' => 'The name of the identity.'."\n"
."\n"
.'* Specifies the ID of the RAM user when the IdentityType parameter is set to RamUser.'."\n"
.'* Specifies the name of the RAM role when the IdentityType parameter is set to RamRole.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'test****name', 'title' => ''],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the application. Default value: **app-1000000**. For more information, see [Overview](~~113600~~).'."\n", 'type' => 'string', 'required' => false, 'example' => 'app-****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'C9F3E715-B3B8-4D*****27-3A70346F0E04', 'title' => ''],
'AppPolicyList' => [
'description' => 'The details of each policy.'."\n"
."\n"
.'> A maximum of 100 entries can be returned.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'CreationTime' => ['description' => 'The time when the application policy was created. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2019-01-01T01:01:01Z', 'title' => ''],
'Description' => ['description' => 'The description of the policy.'."\n", 'type' => 'string', 'example' => 'App full access permission', 'title' => ''],
'AppId' => ['description' => 'The ID of the application.'."\n", 'type' => 'string', 'example' => 'app-****', 'title' => ''],
'PolicyValue' => ['description' => 'The content of the policy.'."\n", 'type' => 'string', 'example' => '****', 'title' => ''],
'PolicyName' => ['description' => 'The name of the policy.'."\n", 'type' => 'string', 'example' => 'VODAppFullAccess', 'title' => ''],
'ModificationTime' => ['description' => 'The last time when the application policy was modified. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2019-01-01T01:08:01Z', 'title' => ''],
'PolicyType' => ['description' => 'The type of the policy. Valid values:'."\n"
."\n"
.'* **System**'."\n"
.'* **Custom**'."\n", 'type' => 'string', 'example' => 'System', 'title' => ''],
],
'description' => '',
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C9F3E715-B3B8-4D*****27-3A70346F0E04\\",\\n \\"AppPolicyList\\": [\\n {\\n \\"CreationTime\\": \\"2019-01-01T01:01:01Z\\",\\n \\"Description\\": \\"App full access permission\\",\\n \\"AppId\\": \\"app-****\\",\\n \\"PolicyValue\\": \\"****\\",\\n \\"PolicyName\\": \\"VODAppFullAccess\\",\\n \\"ModificationTime\\": \\"2019-01-01T01:08:01Z\\",\\n \\"PolicyType\\": \\"System\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\nC9F3E715-B3B8-4D*****27-3A70346F0E04\\n\\n System\\n App full access permission\\n app-****\\n VODAppFullAccess\\n ****\\n 2019-01-01T01:01:01Z\\n 2019-01-01T01:08:01Z\\n\\n","errorExample":""}]',
'title' => 'ListAppPoliciesForIdentity',
'description' => '> The IdentityType and IdentityName parameters take effect only when an identity assumes the application administrator role to call this operation. Otherwise, only application policies that are attached to the current identity are returned.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return.'."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| OperationDenied.NotOpenAppService | The app service is not open. | 403 | The error message returned because the multi-application service has not been activated. |',
'changeSet' => [
['createdAt' => '2025-07-16T02:18:37.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:17:24.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListAppPoliciesForIdentity'],
],
],
'ramActions' => [
[
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:ListAppPoliciesForIdentity',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'ListAuditSecurityIp' => [
'summary' => 'Queries the IP addresses in a security group.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'list',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40047',
'abilityTreeNodes' => ['FEATUREvod7FWSSO'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'SecurityGroupName',
'in' => 'query',
'schema' => ['description' => 'The name of the review security group in which you want to query IP addresses. If you do not specify this parameter, IP addresses in all review security groups are queried.'."\n", 'type' => 'string', 'required' => false, 'example' => 'Default', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '664BBD08-C7DB-4E*****73-9D0958D9A899', 'title' => ''],
'SecurityIpList' => [
'description' => 'The details of the review security group.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'CreationTime' => ['description' => 'The time when the review security group was created. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2018-05-22T06:54:23Z', 'title' => ''],
'Ips' => ['description' => 'The IP addresses in the review security group.'."\n", 'type' => 'string', 'example' => '30.27.14.0/24,30.39.127.245', 'title' => ''],
'ModificationTime' => ['description' => 'The time when the review security group was last modified. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2018-05-22T06:55:14Z', 'title' => ''],
'SecurityGroupName' => ['description' => 'The name of the review security group.'."\n", 'type' => 'string', 'example' => 'Default', 'title' => ''],
],
'description' => '',
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"664BBD08-C7DB-4E*****73-9D0958D9A899\\",\\n \\"SecurityIpList\\": [\\n {\\n \\"CreationTime\\": \\"2018-05-22T06:54:23Z\\",\\n \\"Ips\\": \\"30.27.14.0/24,30.39.127.245\\",\\n \\"ModificationTime\\": \\"2018-05-22T06:55:14Z\\",\\n \\"SecurityGroupName\\": \\"Default\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\t\\r\\n\\t\\tDefault\\r\\n\\t\\t30.27.14.0/24,30.39.127.245\\r\\n\\t\\t2018-05-22T06:54:23Z\\r\\n\\t\\t2018-05-22T06:55:14Z\\r\\n\\t\\r\\n\\t664BBD08-C7DB-4E*****73-9D0958D9A899\\r\\n","errorExample":""}]',
'title' => 'ListAuditSecurityIp',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return. '."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| SecurityIp.NotFound | The audit security ip does not exist. | 404 | The error message returned because no IP addresses are found in the review security group. |'."\n"
.'| ListSecurityIpFailed | List audit security ip has failed due to some unknown error. | 500 | The error message returned because the IP addresses in the review security group fail to be queried due to an unknown error. Refresh the page and try again. |',
'changeSet' => [
['createdAt' => '2025-07-16T02:17:58.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:16:33.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListAuditSecurityIp'],
],
],
'ramActions' => [
[
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:ListAuditSecurityIp',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'ListDynamicImage' => [
'summary' => 'Queries the information about animated images of a video based on the video ID.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'list',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40053',
'abilityTreeNodes' => ['FEATUREvodYRQNEN'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'VideoId',
'in' => 'query',
'schema' => ['description' => 'The ID of the video.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '2e114f1100590c3193918fd449a****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned data.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '570189B6-572E-4953-13B4278EE0D8****', 'title' => ''],
'DynamicImageList' => [
'description' => 'The list of animated stickers.',
'type' => 'array',
'items' => [
'description' => 'The list of animated stickers.',
'type' => 'object',
'properties' => [
'CreationTime' => ['description' => 'The time when the animated sticker was created. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2020-07-28T02:01:06Z', 'title' => ''],
'FileURL' => ['description' => 'The URL of the animated sticker file.'."\n", 'type' => 'string', 'example' => 'https://example.aliyundoc.com/2e114f110059*****0c3193918fd449a/image/dynamic/2b4e51df60*****323ef43d6e336ecf.webp?auth_key=1597296785-0-0-4a48e85*****bd2bb358e0b3cade', 'title' => ''],
'VideoId' => ['description' => 'The ID of the video.'."\n", 'type' => 'string', 'example' => '2e114f1100590c3193918fd449a****', 'title' => ''],
'Width' => ['description' => 'The width of the animated sticker. Unit: pixel.'."\n", 'type' => 'string', 'example' => '640', 'title' => ''],
'JobId' => ['description' => 'The job ID for creating the animated sticker.'."\n", 'type' => 'string', 'example' => '2bf4390af9e5491c09cc720ad****', 'title' => ''],
'Height' => ['description' => 'The height of the animated sticker. Unit: pixel.'."\n", 'type' => 'string', 'example' => '360', 'title' => ''],
'Fps' => ['description' => 'The frame rate of the animated sticker. Unit: frames per second.'."\n", 'type' => 'string', 'example' => '10', 'title' => ''],
'Duration' => ['description' => 'The duration of the animated sticker. Unit: seconds.'."\n", 'type' => 'string', 'example' => '2', 'title' => ''],
'Format' => ['description' => 'The format of the animated sticker. Valid values: gif and webp.'."\n", 'type' => 'string', 'example' => 'webp', 'title' => ''],
'DynamicImageId' => ['description' => 'The ID of the animated sticker.'."\n", 'type' => 'string', 'example' => '2b4e51df60323ef43d6e336ecf****', 'title' => ''],
'FileSize' => ['description' => 'The size of the animated sticker file. Unit: byte.'."\n", 'type' => 'string', 'example' => '119866', 'title' => ''],
],
'title' => '',
],
'title' => '',
],
],
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'ListDynamicImage',
'description' => '### 使用说明'."\n"
.'- 视频动图截取完成后,可以调用本接口来获取视频的动图信息。'."\n"
.'- 视频动图任务可通过API([提交媒体动图作业](~~186842~~)接口)或控制台发起,更多内容,请参见[视频动图](~~177484~~)。'."\n"
."\n"
.'### QPS限制'."\n"
.'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~342790~~)。',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2025-07-16T02:17:25.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListDynamicImage'],
],
],
'ramActions' => [
[
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:ListDynamicImage',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"570189B6-572E-4953-13B4278EE0D8****\\",\\n \\"DynamicImageList\\": [\\n {\\n \\"CreationTime\\": \\"2020-07-28T02:01:06Z\\",\\n \\"FileURL\\": \\"https://example.aliyundoc.com/2e114f110059*****0c3193918fd449a/image/dynamic/2b4e51df60*****323ef43d6e336ecf.webp?auth_key=1597296785-0-0-4a48e85*****bd2bb358e0b3cade\\",\\n \\"VideoId\\": \\"2e114f1100590c3193918fd449a****\\",\\n \\"Width\\": \\"640\\",\\n \\"JobId\\": \\"2bf4390af9e5491c09cc720ad****\\",\\n \\"Height\\": \\"360\\",\\n \\"Fps\\": \\"10\\",\\n \\"Duration\\": \\"2\\",\\n \\"Format\\": \\"webp\\",\\n \\"DynamicImageId\\": \\"2b4e51df60323ef43d6e336ecf****\\",\\n \\"FileSize\\": \\"119866\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 570189B6-572E-4953-13B4278EE0D8****\\n \\n 2020-07-28T02:01:06Z\\n https://example.aliyundoc.com/2e114f110059*****0c3193918fd449a/image/dynamic/2b4e51df60*****323ef43d6e336ecf.webp?auth_key=1597296785-0-0-4a48e85*****bd2bb358e0b3cade\\n 2e114f1100590c3193918fd449a****\\n 640\\n 2bf4390af9e5491c09cc720ad****\\n 360\\n 10\\n 2\\n webp\\n 2b4e51df60323ef43d6e336ecf****\\n 119866\\n \\n","errorExample":""}]',
],
'ListJobInfo' => [
'summary' => 'Queries historical tasks based on the media asset ID.',
'methods' => ['get', 'post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'abilityTreeCode' => '248267',
'abilityTreeNodes' => ['FEATUREvodAFH3DF', 'FEATUREvodW76Z9M', 'FEATUREvod7BX3NA', 'FEATUREvodFAR72I', 'FEATUREvodIPBMLH', 'FEATUREvod5413CB'],
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'MediaId',
'in' => 'query',
'schema' => ['description' => 'The ID of the media asset.'."\n", 'type' => 'string', 'required' => true, 'example' => '30e5d7**********bd900764de7c0102', 'title' => ''],
],
[
'name' => 'JobType',
'in' => 'query',
'schema' => ['description' => 'The type of the task. Valid values:'."\n"
."\n"
.'* transcode'."\n"
.'* snapshot'."\n"
.'* ai'."\n", 'type' => 'string', 'required' => true, 'example' => 'transcode', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '6708D849-F109-1A6C-AC91-************'."\n"],
'MediaId' => ['description' => 'The ID of the media asset.'."\n", 'type' => 'string', 'example' => '30e5d7**********bd900764de7c0102'."\n", 'title' => ''],
'JobType' => ['description' => 'The type of the task. Valid values:'."\n"
."\n"
.'* transcode'."\n"
.'* snapshot'."\n"
.'* ai'."\n", 'type' => 'string', 'example' => 'transcode', 'title' => ''],
'JobInfoList' => [
'description' => 'The historical tasks of the last 6 months.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'JobId' => ['description' => 'The ID of the task.'."\n", 'type' => 'string', 'example' => '5c9dff751ba**********59d50a967f5', 'title' => ''],
'Status' => ['description' => 'The status of the task.'."\n", 'type' => 'string', 'example' => 'TranscodeSuccess', 'title' => ''],
'UserId' => ['description' => 'The ID of the user who submitted the task.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '139109*****84930', 'title' => ''],
'CreateTime' => ['description' => 'The time when the task was created. The time follows the ISO 8601 standard in the YYYY-MM-DDTHH:mm:ssZ format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2024-10-14T07:39:25Z'."\n", 'title' => ''],
'CompleteTime' => ['description' => 'The time when the task was complete.'."\n", 'type' => 'string', 'example' => '2024-10-14T07:39:34Z', 'title' => ''],
],
'description' => '',
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6708D849-F109-1A6C-AC91-************\\\\n\\",\\n \\"MediaId\\": \\"30e5d7**********bd900764de7c0102\\\\n\\",\\n \\"JobType\\": \\"transcode\\",\\n \\"JobInfoList\\": [\\n {\\n \\"JobId\\": \\"5c9dff751ba**********59d50a967f5\\",\\n \\"Status\\": \\"TranscodeSuccess\\",\\n \\"UserId\\": 0,\\n \\"CreateTime\\": \\"2024-10-14T07:39:25Z\\\\n\\",\\n \\"CompleteTime\\": \\"2024-10-14T07:39:34Z\\"\\n }\\n ]\\n}","type":"json"}]',
'title' => 'ListJobInfo',
'description' => '****'."\n"
."\n"
.'* You can call the [GetJobDetail](https://apiworkbench.aliyun-inc.com/document/vod/2017-03-21/GetJobDetail?spm=openapi-amp.newDocPublishment.0.0.616a281fSegn0e) operation to query detailed information about the tasks.'."\n"
.'* You can call this operation to query only asynchronous tasks of the last six months. The types of tasks that you can query include transcoding tasks, snapshot tasks, and AI tasks.'."\n"
."\n"
.'**QPS limits**'."\n"
."\n"
.'You can call this operation up to 15 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation. For more information, see [QPS limits](~~342790~~).',
'changeSet' => [
['createdAt' => '2025-07-16T02:16:59.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:16:57.000Z', 'description' => 'OpenAPI offline'],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:ListJobInfo',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListJobInfo'],
],
],
],
'ListLiveRecordVideo' => [
'summary' => 'Queries live-to-VOD videos.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40057',
'abilityTreeNodes' => ['FEATUREvodKX7ANE'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'StreamName',
'in' => 'query',
'schema' => ['description' => 'The name of the recorded live stream.'."\n", 'type' => 'string', 'required' => false, 'example' => 'live-test', 'title' => ''],
],
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The domain name of the recorded live stream.'."\n", 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the application that was used to record the live stream.'."\n", 'type' => 'string', 'required' => false, 'example' => 'testApp', 'title' => ''],
],
[
'name' => 'PageNo',
'in' => 'query',
'schema' => ['description' => 'The number of the page to return. Default value: **1**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries to return on each page. Maximum value: **100**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''],
],
[
'name' => 'SortBy',
'in' => 'query',
'schema' => ['description' => 'The sorting rule of the results. Valid values:'."\n"
."\n"
.'* **CreationTime:Desc**: The results are sorted in reverse chronological order based on the creation time.'."\n"
.'* **CreationTime:Asc**: The results are sorted in chronological order based on the creation time.'."\n", 'type' => 'string', 'required' => false, 'example' => 'CreationTime:Desc', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query. The query is performed based on the time range during which the required live streams were recorded. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => false, 'example' => '2017-01-11T12:00:00Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. The query is performed based on the time range during which the required live streams were recorded. The end time must be later than the start time. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => false, 'example' => '2017-01-11T13:00:00Z', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'Total' => ['description' => 'The total number of videos.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '123', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4A13-****-D7393642CA58', 'title' => ''],
'LiveRecordVideoList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'LiveRecordVideo' => [
'description' => 'The list of videos.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'AppName' => ['description' => 'The name of the app.'."\n", 'type' => 'string', 'example' => 'testApp', 'title' => ''],
'PlaylistId' => ['description' => 'The ID of the playlist.'."\n", 'type' => 'string', 'example' => '****', 'title' => ''],
'StreamName' => ['description' => 'The name of the live-to-VOD file.'."\n", 'type' => 'string', 'example' => 'live-test', 'title' => ''],
'RecordEndTime' => ['description' => 'The recording end time. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2017-12-08T08:44:56Z', 'title' => ''],
'RecordStartTime' => ['description' => 'The recording start time. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2017-12-08T07:40:56Z', 'title' => ''],
'DomainName' => ['description' => 'The domain name.'."\n", 'type' => 'string', 'example' => 'example.com', 'title' => ''],
'Video' => [
'description' => 'The information about the live-to-VOD file.'."\n",
'type' => 'object',
'properties' => [
'CreationTime' => ['description' => 'The time when the audio or video file was created. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2017-12-08T07:40:56Z', 'title' => ''],
'Status' => ['description' => 'The status of the video. Valid values:'."\n"
."\n"
.'* **Uploading**'."\n"
.'* **UploadFail**'."\n"
.'* **UploadSuccess**'."\n"
.'* **Transcoding**'."\n"
.'* **TranscodeFail**'."\n"
.'* **Blocked**'."\n"
.'* **Normal**: The video is normal.'."\n", 'type' => 'string', 'example' => 'Normal', 'title' => ''],
'CateId' => ['description' => 'The ID of the video category.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '78', 'title' => ''],
'VideoId' => ['description' => 'The ID of the video.'."\n", 'type' => 'string', 'example' => '93ab850b4f6f*****54b6e91d24d81d4', 'title' => ''],
'Tags' => ['description' => 'The tags of the video. Multiple tags are separated with commas (,).'."\n", 'type' => 'string', 'example' => 'Tag 1, Tag 2', 'title' => ''],
'CateName' => ['description' => 'The category of the video.'."\n", 'type' => 'string', 'example' => 'Category name', 'title' => ''],
'Description' => ['description' => 'The description of the video file.'."\n", 'type' => 'string', 'example' => 'Alibaba Cloud VOD video description', 'title' => ''],
'Size' => ['description' => 'The size of the source video file. Unit: bytes.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '10897890', 'title' => ''],
'CoverURL' => ['description' => 'The URL of the video thumbnail.'."\n", 'type' => 'string', 'example' => 'https://image.example.com/coversample.jpg', 'title' => ''],
'TemplateGroupId' => ['description' => 'The ID of the transcoding template group.'."\n", 'type' => 'string', 'example' => '1', 'title' => ''],
'Duration' => ['description' => 'The duration of the video file. Unit: seconds.'."\n", 'type' => 'number', 'format' => 'float', 'example' => '135.6', 'title' => ''],
'Title' => ['description' => 'The title of the video.'."\n", 'type' => 'string', 'example' => 'Alibaba Cloud VOD video title', 'title' => ''],
'ModifyTime' => ['description' => 'The time when the video was updated. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2017-12-08T09:40:56Z', 'title' => ''],
'Snapshots' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Snapshot' => [
'description' => 'The array of video snapshot URLs.'."\n",
'type' => 'array',
'items' => ['description' => 'The video snapshot URL.'."\n", 'type' => 'string', 'example' => '{"Snapshot":["http://image.example.com/snapshot/sample000001.jpg?auth_key=1498476426-0-0-f00b9455c49a423ce69cf4e273334f52","http://image.example.com/snapshot/sample00002.jpg?auth_key=1498476426-0-0-f00b9455c49a423ce69cf4e272434f52"]}', 'title' => ''],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"Total\\": 123,\\n \\"RequestId\\": \\"25818875-5F78-4A13-****-D7393642CA58\\",\\n \\"LiveRecordVideoList\\": {\\n \\"LiveRecordVideo\\": [\\n {\\n \\"AppName\\": \\"testApp\\",\\n \\"PlaylistId\\": \\"****\\",\\n \\"StreamName\\": \\"live-test\\",\\n \\"RecordEndTime\\": \\"2017-12-08T08:44:56Z\\",\\n \\"RecordStartTime\\": \\"2017-12-08T07:40:56Z\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"Video\\": {\\n \\"CreationTime\\": \\"2017-12-08T07:40:56Z\\",\\n \\"Status\\": \\"Normal\\",\\n \\"CateId\\": 78,\\n \\"VideoId\\": \\"93ab850b4f6f*****54b6e91d24d81d4\\",\\n \\"Tags\\": \\"Tag 1, Tag 2\\",\\n \\"CateName\\": \\"Category name\\",\\n \\"Description\\": \\"Alibaba Cloud VOD video description\\",\\n \\"Size\\": 10897890,\\n \\"CoverURL\\": \\"https://image.example.com/coversample.jpg\\",\\n \\"TemplateGroupId\\": \\"1\\",\\n \\"Duration\\": 135.6,\\n \\"Title\\": \\"Alibaba Cloud VOD video title\\",\\n \\"ModifyTime\\": \\"2017-12-08T09:40:56Z\\",\\n \\"Snapshots\\": {\\n \\"Snapshot\\": [\\n \\"{\\\\\\"Snapshot\\\\\\":[\\\\\\"http://image.example.com/snapshot/sample000001.jpg?auth_key=1498476426-0-0-f00b9455c49a423ce69cf4e273334f52\\\\\\",\\\\\\"http://image.example.com/snapshot/sample00002.jpg?auth_key=1498476426-0-0-f00b9455c49a423ce69cf4e272434f52\\\\\\"]}\\"\\n ]\\n }\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]',
'title' => 'ListLiveRecordVideo',
'description' => 'You can query up to 5,000 videos based on the specified filter condition.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => 'The following table describes the errors that are specific to this operation. For more information about errors common to all operations, see [Common errors](https://www.alibabacloud.com/help/en/apsaravideo-for-vod/latest/api-reference-error-codes). '."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| IpsIsEmpty | The specified “Ips” can not be empty. | 400 | The error message returned because the Ips parameter is not specified. |'."\n"
.'| IpsExceededMax | The specified Ips count has exceeded 100. | 403 | The error message returned because more than 100 IP addresses are added to a group. |'."\n"
.'| SecurityIpGroupExceededMax | The audit security group count has exceeded 10. | 403 | The error message returned because the number of review security groups exceeds the upper limit. |',
'changeSet' => [
['createdAt' => '2025-07-16T02:19:09.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:15:55.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListLiveRecordVideo'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:ListLiveRecordVideo',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'ListSnapshots' => [
'summary' => 'Queries snapshots that were captured by submitting snapshot jobs or the thumbnail that was generated by the system when you uploaded a video.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'list',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40067',
'abilityTreeNodes' => ['FEATUREvodYRQNEN'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'VideoId',
'in' => 'query',
'schema' => ['description' => 'The ID of the video. You can use one of the following methods to obtain the ID:'."\n"
."\n"
.'* Log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com). In the left-side navigation pane, choose **Media Files** > **Audio/Video** to view the video ID.'."\n"
.'* Obtain the video ID from the response to the [CreateUploadVideo](~~CreateUploadVideo~~) operation that you call to obtain the upload URL and credential.'."\n"
.'* Obtain the video ID from the response to the [SearchMedia](~~SearchMedia~~) operation that you call to query videos.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'd3e680e618708fbf2cae7cc931****', 'title' => ''],
],
[
'name' => 'SnapshotType',
'in' => 'query',
'schema' => ['description' => 'The type of snapshots to return. Valid values:'."\n"
."\n"
.'* **CoverSnapshot**: thumbnail snapshot'."\n"
.'* **NormalSnapshot**: regular snapshot'."\n"
.'* **SpriteSnapshot**: sprite snapshot'."\n"
.'* **SpriteOriginSnapshot**: sprite source snapshot'."\n"
.'* **WebVttSnapshot**: WebVTT snapshot'."\n", 'type' => 'string', 'required' => false, 'example' => 'CoverSnapshot', 'title' => ''],
],
[
'name' => 'AuthTimeout',
'in' => 'query',
'schema' => ['description' => 'The validity period of the snapshot URL. Default value: **3600**. Minimum value: **3600**. Unit: seconds.'."\n"
."\n"
.'* This parameter takes effect only when you enable URL signing. For more information, see [Configure URL signing](~~57007~~).'."\n"
.'* If you specify a value smaller than **3,600 seconds**, **3600** is used by default.'."\n"
.'* If the snapshot URL is an Object Storage Service (OSS) URL, the maximum value for this parameter is **2592000** (30 days). This reduces risks on the origin.'."\n", 'type' => 'string', 'required' => false, 'example' => '3600', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries per page. Default value: **20**. Maximum value: **100**.'."\n", 'type' => 'string', 'required' => false, 'example' => '20', 'title' => ''],
],
[
'name' => 'PageNo',
'in' => 'query',
'schema' => ['description' => 'The page number. Default value: **1**.'."\n", 'type' => 'string', 'required' => false, 'example' => '1', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4AF6-D7393642CA58****', 'title' => ''],
'MediaSnapshot' => [
'description' => 'The information about the snapshot.'."\n",
'type' => 'object',
'properties' => [
'CreationTime' => ['description' => 'The time when the snapshot job was created. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2017-12-20T12:23:45Z', 'title' => ''],
'Regular' => ['description' => 'The rule used to generate snapshot URLs.'."\n", 'type' => 'string', 'example' => 'http://example.aliyundoc.com/snapshot/sample{SnapshotCount}.jpg', 'title' => ''],
'Total' => ['description' => 'The total number of snapshots.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '100', 'title' => ''],
'JobId' => ['description' => 'The ID of the snapshot job.'."\n", 'type' => 'string', 'example' => 'ad90a501b1b9472374ad005046****', 'title' => ''],
'Snapshots' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Snapshot' => [
'description' => 'The details of the snapshot.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'Index' => ['description' => 'The index of the snapshot.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
'Url' => ['description' => 'The URL of the snapshot.'."\n", 'type' => 'string', 'example' => 'http://example.aliyundoc.com/snapshot/sample00001****.jpg', 'title' => ''],
],
'description' => 'The snapshot data.',
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
'title' => '',
],
],
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'ListSnapshots',
'description' => 'If multiple snapshots exist for a video, you can call this operation to query information about the latest snapshot.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return.'."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| InvalidVideo.NotFound | The video does not exist. | 404 | The error message returned because the video does not exist. |'."\n"
.'| NoSuchResource | The specified resource %s does not exist. | 404 | The error message returned because the specified resource does not exist. |'."\n"
.'| Forbidden.IllegalStatus | Status of the video is illegal. | 400 | The error message returned because the video status is invalid. You can query the snapshot data of videos only when they are in the **UploadSucc**, **Normal**, **Checking**, or **Blocked** state. |',
'changeSet' => [
['createdAt' => '2025-07-16T02:18:38.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:16:31.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListSnapshots'],
],
],
'ramActions' => [
[
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:ListSnapshots',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4AF6-D7393642CA58****\\",\\n \\"MediaSnapshot\\": {\\n \\"CreationTime\\": \\"2017-12-20T12:23:45Z\\",\\n \\"Regular\\": \\"http://example.aliyundoc.com/snapshot/sample{SnapshotCount}.jpg\\",\\n \\"Total\\": 100,\\n \\"JobId\\": \\"ad90a501b1b9472374ad005046****\\",\\n \\"Snapshots\\": {\\n \\"Snapshot\\": [\\n {\\n \\"Index\\": 1,\\n \\"Url\\": \\"http://example.aliyundoc.com/snapshot/sample00001****.jpg\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 25818875-5F78-4AF6-D7393642CA58****\\n \\n 2017-12-20T12:23:45Z\\n http://example.aliyundoc.com/snapshot/sample{SnapshotCount}.jpg\\n 100\\n ad90a501b1b9472374ad005046****\\n \\n 1\\n http://example.aliyundoc.com/snapshot/sample00001****.jpg\\n \\n \\n","errorExample":""}]',
],
'ListTranscodeTask' => [
'summary' => 'Queries transcoding tasks based on the media ID. This operation does not return specific job information.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'list',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40073',
'abilityTreeNodes' => ['FEATUREvodAFH3DF'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'VideoId',
'in' => 'query',
'schema' => ['description' => 'The ID of the audio or video file. You can use one of the following methods to obtain the ID of the file:'."\n"
.'* Log on to the [ApsaraVideo VOD](https://vod.console.aliyun.com) console. In the left-side navigation pane, choose **Media Files** > **Audio/Video**. On the Video and Audio page, view the ID of the audio or video file. This method is applicable to files that are uploaded by using the ApsaraVideo VOD console.'."\n"
.'* Obtain the value of VideoId from the response to the [CreateUploadVideo](~~55407~~) operation that you call to obtain the upload URL and credential.'."\n"
.'* Obtain the value of VideoId by calling the [SearchMedia](~~86044~~) operation. This method is applicable to files that have been uploaded.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'd4860fcc6a5*****bce9fed52e893824', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2019-01-23T12:35:12Z', 'title' => ''],
],
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. The end time must be later than the start time. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2019-01-23T12:40:12Z', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries to return on each page. Maximum value: **50**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''],
],
[
'name' => 'PageNo',
'in' => 'query',
'schema' => ['description' => 'The number of the page to return. You can specify a page number to return data from the specified page. Default value: **1**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4A*****F6-D7393642CA58', 'title' => ''],
'TranscodeTaskList' => [
'description' => 'Details about transcoding tasks.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'CreationTime' => ['description' => 'The time when the transcoding task was created. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2019-01-23T12:35:12Z', 'title' => ''],
'Trigger' => ['description' => 'The mode in which the transcoding task is triggered. Valid values:'."\n"
.'* **Auto**: The transcoding task is automatically triggered when the video is uploaded.'."\n"
.'* **Manual**: The transcoding task is triggered by calling the SubmitTranscodeJobs operation.', 'type' => 'string', 'example' => 'Auto', 'title' => ''],
'TaskStatus' => ['description' => 'The status of the transcoding task. Valid values:'."\n"
.'* **Processing**: In progress.'."\n"
.'* **Partial**: Some transcoding jobs were complete.'."\n"
.'* **CompleteAllSucc**: All transcoding jobs were successful.'."\n"
.'* **CompleteAllFail**: All transcoding jobs failed. If an exception occurs in the source file, no transcoding job is initiated and the transcoding task fails.'."\n"
.'* **CompletePartialSucc**: All transcoding jobs were complete but only some were successful.', 'type' => 'string', 'example' => 'Processing', 'title' => ''],
'VideoId' => ['description' => 'The ID of the audio or video file.'."\n", 'type' => 'string', 'example' => 'd4860fcc6a5*****bce9fed52e893824', 'title' => ''],
'CompleteTime' => ['description' => 'The time when the transcoding task was complete. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2019-01-23T12:40:12Z', 'title' => ''],
'TranscodeTemplateGroupId' => ['description' => 'The ID of the transcoding template group.'."\n", 'type' => 'string', 'example' => 'b500c7094bd24*****f3e9900752d7c3', 'title' => ''],
'TranscodeTaskId' => ['description' => 'The ID of the transcoding task.'."\n", 'type' => 'string', 'example' => 'b1b65ab107*****ba3dbb900f6c1fe0', 'title' => ''],
],
'description' => '',
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4A*****F6-D7393642CA58\\",\\n \\"TranscodeTaskList\\": [\\n {\\n \\"CreationTime\\": \\"2019-01-23T12:35:12Z\\",\\n \\"Trigger\\": \\"Auto\\",\\n \\"TaskStatus\\": \\"Processing\\",\\n \\"VideoId\\": \\"d4860fcc6a5*****bce9fed52e893824\\",\\n \\"CompleteTime\\": \\"2019-01-23T12:40:12Z\\",\\n \\"TranscodeTemplateGroupId\\": \\"b500c7094bd24*****f3e9900752d7c3\\",\\n \\"TranscodeTaskId\\": \\"b1b65ab107*****ba3dbb900f6c1fe0\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 25818875-5F78-4A*****F6-D7393642CA58\\r\\n\\t\\r\\n\\t\\tb1b65ab107*****ba3dbb900f6c1fe0\\r\\n\\t\\td4860fcc6a5*****bce9fed52e893824\\r\\n\\t\\tProcessing\\r\\n\\t\\tb500c7094bd24*****f3e9900752d7c3\\r\\n\\t\\t2019-01-23T12:35:12Z\\r\\n\\t\\t2019-01-23T12:40:12Z\\r\\n\\t\\r\\n\\t\\r\\n\\t\\t91449a74a9d7*****31e179a1ec1e\\r\\n\\t\\td4860fcc6a5*****bce9fed52e893824\\r\\n\\t\\tCompeleteAllSucc\\r\\n\\t\\t947b9f5b0eb*****3d985df69d76b7\\r\\n\\t\\t2019-01-23T12:35:12Z\\r\\n\\t\\t2019-01-23T12:40:12Z\\r\\n\\t\\r\\n","errorExample":""}]',
'title' => 'ListTranscodeTask',
'description' => '* You can call the [GetTranscodeTask](~~109121~~) operation to query details about transcoding jobs.'."\n"
.'* **You can call this operation to query only transcoding tasks created within the past year.**',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2025-07-16T02:16:57.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:16:17.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListTranscodeTask'],
],
],
'ramActions' => [
[
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:ListTranscodeTask',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'ListTranscodeTemplateGroup' => [
'summary' => 'Queries transcoding template groups.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'list',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40075',
'abilityTreeNodes' => ['FEATUREvodL077M7'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the application. Default value: **app-1000000**. For more information, see [Overview](~~113600~~).'."\n", 'type' => 'string', 'required' => false, 'example' => 'app-****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4A*****F6-D7393642CA58', 'title' => ''],
'TranscodeTemplateGroupList' => [
'description' => 'The transcoding template groups.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'CreationTime' => ['description' => 'The time when the template group was created. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2018-12-05T10:20:09Z', 'title' => ''],
'IsDefault' => ['description' => 'Indicates whether the template group is the default one. Valid values:'."\n"
."\n"
.'* **Default**: The template group is the default one.'."\n"
.'* **NotDefault**: The template group is not the default one.'."\n", 'type' => 'string', 'example' => 'Default', 'title' => ''],
'AppId' => ['description' => 'The ID of the application.'."\n", 'type' => 'string', 'example' => 'app-****', 'title' => ''],
'TranscodeTemplateGroupId' => ['description' => 'The ID of the transcoding template group.'."\n", 'type' => 'string', 'example' => '17a9889fc66852*****d791c886700932', 'title' => ''],
'Name' => ['description' => 'The name of the template group.'."\n", 'type' => 'string', 'example' => 'test', 'title' => ''],
'ModifyTime' => ['description' => 'The time when the template group was modified. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2018-12-05T10:22:09Z', 'title' => ''],
'Locked' => ['description' => 'The lock status of the transcoding template group. Valid values:'."\n"
."\n"
.'* **Disabled**: The template group is not locked.'."\n"
.'* **Enabled**: The template group is locked.'."\n", 'type' => 'string', 'example' => 'Disabled', 'title' => ''],
],
'description' => '',
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'ListTranscodeTemplateGroup',
'description' => '> This operation does not return the configurations of transcoding templates in each transcoding template group. To query the configurations of transcoding templates in a specific transcoding template group, call the [GetTranscodeTemplateGroup](~~102670~~) operation.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-16T02:17:58.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:16:11.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListTranscodeTemplateGroup'],
],
],
'ramActions' => [
[
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:ListTranscodeTemplateGroup',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4A*****F6-D7393642CA58\\",\\n \\"TranscodeTemplateGroupList\\": [\\n {\\n \\"CreationTime\\": \\"2018-12-05T10:20:09Z\\",\\n \\"IsDefault\\": \\"Default\\",\\n \\"AppId\\": \\"app-****\\",\\n \\"TranscodeTemplateGroupId\\": \\"17a9889fc66852*****d791c886700932\\",\\n \\"Name\\": \\"test\\",\\n \\"ModifyTime\\": \\"2018-12-05T10:22:09Z\\",\\n \\"Locked\\": \\"Disabled\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n25818875-5F78-4A*****F6-D7393642CA58\\n\\n Default\\n Disabled\\n 2018-12-05T10:22:09Z\\n app-****\\n FastTranscode\\n 17a9889fc66852*****d791c886700932\\n 2018-12-05T10:20:09Z\\n test\\n\\n","errorExample":""}]',
],
'ListVodTemplate' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'list',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40083',
'abilityTreeNodes' => ['FEATUREvodL077M7'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'TemplateType',
'in' => 'query',
'schema' => ['description' => 'The type of the template. Set the value to **Snapshot**.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'title' => '', 'example' => 'Snapshot'],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the application. Set the value to **app-1000000**. For more information, see [Multi-application](~~113600~~).', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'app-****'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'title' => '', 'example' => '2A56B75B-B7E6-48*****27-A9BEAA3E50A8'],
'VodTemplateInfoList' => [
'description' => 'The list of snapshot template data.',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'CreationTime' => ['description' => 'The time when the template was created. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.', 'type' => 'string', 'title' => '', 'example' => '2018-11-30T08:05:59:57Z'],
'IsDefault' => ['description' => 'Indicates whether the template is the default one. Valid values:'."\n"
."\n"
.'- **Default**: The template is the default one.'."\n"
.'- **NotDefault**: The template is not the default one.', 'type' => 'string', 'title' => '', 'example' => 'NotDefault'],
'AppId' => ['description' => 'The ID of the application.', 'type' => 'string', 'title' => '', 'example' => 'app-****'],
'TemplateType' => ['description' => 'The type of the template. Valid values:'."\n"
."\n"
.'- **Snapshot**: snapshot.'."\n"
.'- **DynamicImage**: animated image.', 'type' => 'string', 'title' => '', 'example' => 'Snapshot'],
'VodTemplateId' => ['description' => 'The ID of the template.', 'type' => 'string', 'title' => '', 'example' => '7c49f2f42b1c*****0969fcd446690'],
'TemplateConfig' => ['description' => 'The detailed configurations of the template in a JSON string. For more information about the data structure, see [SnapshotTemplateConfig](~~98618~~).', 'type' => 'string', 'title' => '', 'example' => '{\\"SnapshotConfig\\":{\\"Count\\":10,\\"SpecifiedOffsetTime\\":0,\\"Interval\\":1},\\"SnapshotType\\":\\"NormalSnapshot\\"}'],
'Name' => ['description' => 'The name of the template.', 'type' => 'string', 'title' => '', 'example' => 'test'],
'ModifyTime' => ['description' => 'The time when the template was last modified. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.', 'type' => 'string', 'title' => '', 'example' => '2018-11-30T09:05:59:97Z'],
],
'description' => '',
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'ListVodTemplate',
'summary' => 'Lists the available snapshot templates.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-16T02:18:38.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:15:49.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListVodTemplate'],
],
],
'ramActions' => [
[
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:ListVodTemplate',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"2A56B75B-B7E6-48*****27-A9BEAA3E50A8\\",\\n \\"VodTemplateInfoList\\": [\\n {\\n \\"CreationTime\\": \\"2018-11-30T08:05:59:57Z\\",\\n \\"IsDefault\\": \\"NotDefault\\",\\n \\"AppId\\": \\"app-****\\",\\n \\"TemplateType\\": \\"Snapshot\\",\\n \\"VodTemplateId\\": \\"7c49f2f42b1c*****0969fcd446690\\",\\n \\"TemplateConfig\\": \\"{\\\\\\\\\\\\\\"SnapshotConfig\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"Count\\\\\\\\\\\\\\":10,\\\\\\\\\\\\\\"SpecifiedOffsetTime\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\"Interval\\\\\\\\\\\\\\":1},\\\\\\\\\\\\\\"SnapshotType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"NormalSnapshot\\\\\\\\\\\\\\"}\\",\\n \\"Name\\": \\"test\\",\\n \\"ModifyTime\\": \\"2018-11-30T09:05:59:97Z\\"\\n }\\n ]\\n}","type":"json"}]',
],
'ListWatermark' => [
'summary' => 'Queries the configuration information about all image and text watermark templates in a region. You can call this operation to obtain information such as the position, size, and display time of image watermarks or the content, position, font, and font color of text watermarks.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'list',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40085',
'abilityTreeNodes' => ['FEATUREvodCOT3DK'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the application. Default value: **app-1000000**.'."\n"
."\n"
.'If you have activated the multi-application service, specify the ID of the application to query all image and text watermark templates in the specified application. If you leave this parameter empty, image and text watermark templates in all applications are queried. For more information, see [Overview](~~113600~~).'."\n", 'type' => 'string', 'required' => false, 'example' => 'app-****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4A*****F6-D7393642CA58', 'title' => ''],
'WatermarkInfos' => [
'description' => 'The information about the watermark template.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'CreationTime' => ['description' => 'The time when the watermark template was created. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2018-11-07T09:05:52Z', 'title' => ''],
'Type' => ['description' => 'The type of the watermark template.'."\n"
."\n"
.'* **Image**: image watermark template'."\n"
.'* **Text**: text watermark template'."\n", 'type' => 'string', 'example' => 'Text', 'title' => ''],
'IsDefault' => ['description' => 'Indicates whether the watermark template is the default one. Valid values:'."\n"
."\n"
.'* **Default**'."\n"
.'* **NotDefault**'."\n", 'type' => 'string', 'example' => 'NotDefault', 'title' => ''],
'FileUrl' => ['description' => 'The URL of the watermark file. The URL is an Object Storage Service (OSS) URL or an Alibaba Cloud CDN URL.'."\n"
."\n"
.'> This parameter is returned only for image watermark templates.'."\n", 'type' => 'string', 'example' => 'https://outin-3262681cd*****89f4b3e7.oss-cn-shanghai.aliyuncs.com/image/cover/8CC8B715E6F8A72EC6B-6-2.png?Expires=1541600583&OSSAccessKeyId=****&Signature=gmf1eYMoDVg%2BHQCb4UGozB****', 'title' => ''],
'AppId' => ['description' => 'The ID of the application.'."\n", 'type' => 'string', 'example' => 'app-****', 'title' => ''],
'WatermarkConfig' => ['description' => 'The configuration information of the watermark such as the display position and special effects. The value is a JSON string. The configuration parameters for image and text watermarks are different. For more information about the parameter structure, see [WatermarkConfig](~~98618#section-h01-44s-2lr~~).'."\n", 'type' => 'string', 'example' => '{"FontColor": "Blue","FontSize": 80,"Content": " watermark test"}', 'title' => ''],
'Name' => ['description' => 'The name of the watermark template.'."\n", 'type' => 'string', 'example' => 'Text watermark test', 'title' => ''],
'WatermarkId' => ['description' => 'The ID of the watermark template.'."\n", 'type' => 'string', 'example' => '9bcc8bfadb843*****109a2671d0df97', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4A*****F6-D7393642CA58\\",\\n \\"WatermarkInfos\\": [\\n {\\n \\"CreationTime\\": \\"2018-11-07T09:05:52Z\\",\\n \\"Type\\": \\"Text\\",\\n \\"IsDefault\\": \\"NotDefault\\",\\n \\"FileUrl\\": \\"https://outin-3262681cd*****89f4b3e7.oss-cn-shanghai.aliyuncs.com/image/cover/8CC8B715E6F8A72EC6B-6-2.png?Expires=1541600583&OSSAccessKeyId=****&Signature=gmf1eYMoDVg%2BHQCb4UGozB****\\",\\n \\"AppId\\": \\"app-****\\",\\n \\"WatermarkConfig\\": \\"{\\\\\\"FontColor\\\\\\": \\\\\\"Blue\\\\\\",\\\\\\"FontSize\\\\\\": 80,\\\\\\"Content\\\\\\": \\\\\\" watermark test\\\\\\"}\\",\\n \\"Name\\": \\"Text watermark test\\",\\n \\"WatermarkId\\": \\"9bcc8bfadb843*****109a2671d0df97\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]',
'title' => 'ListWatermark',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-16T02:19:16.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:15:59.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListWatermark'],
],
],
'ramActions' => [
[
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:ListWatermark',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'MoveAppResource' => [
'summary' => 'Migrates resources between applications. The application administrator can directly migrate resources between applications. Resource Access Management (RAM) users or RAM roles must obtain the write permissions on the source and destination applications before they migrate resources between applications. Multiple resources can be migrated at a time.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40094',
'abilityTreeNodes' => ['FEATUREvodHJ3KAX'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'TargetAppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the application to which resources are migrated. Default value: **app-1000000**. For more information, see [Use the multi-application service](~~113600~~).'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'app-****', 'title' => ''],
],
[
'name' => 'ResourceType',
'in' => 'query',
'schema' => ['description' => 'The resource type. Valid values:'."\n"
."\n"
.'* **video**: video files.'."\n"
.'* **image**: image files.'."\n"
.'* **attached**: auxiliary media assets.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'video', 'title' => ''],
],
[
'name' => 'ResourceIds',
'in' => 'query',
'schema' => ['description' => 'The resource ID. You can specify a maximum of 20 IDs at a time. Separate multiple IDs with commas (,).'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '9afb4****06de180880e,f7bba****caa546cfe2ba', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4A13-BEF6-****', 'title' => ''],
'NonExistResourceIds' => [
'description' => 'The IDs of the resources that were not found.'."\n",
'type' => 'array',
'items' => ['description' => 'The ID of the resource that was not found.'."\n", 'type' => 'string', 'example' => '9afb4****06de180880e', 'title' => ''],
'title' => '',
],
'FailedResourceIds' => [
'description' => 'The IDs of the resources that failed to be migrated.'."\n",
'type' => 'array',
'items' => ['description' => 'The ID of the resource that failed to be migrated.'."\n", 'type' => 'string', 'example' => 'f7bba****caa546cfe2ba', 'title' => ''],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4A13-BEF6-****\\",\\n \\"NonExistResourceIds\\": [\\n \\"9afb4****06de180880e\\"\\n ],\\n \\"FailedResourceIds\\": [\\n \\"f7bba****caa546cfe2ba\\"\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 25818875-5F78-4A13-BEF6-****\\n 9afb4****06de180880e\\n f7bba****caa546cfe2ba\\n","errorExample":""}]',
'title' => 'MoveAppResource',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return.'."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| OperationDenied.NotOpenAppService | The app service is not open. | 403 | The error message returned because the multi-application service has not been activated. |'."\n"
.'| Forbidden.OperateAppResource | Invalid app permission to operate on the specified resource. | 403 | The error message returned because you are not authorized to manage resources under the destination application. |',
'changeSet' => [
['createdAt' => '2025-07-16T02:20:13.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:19:01.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'MoveAppResource'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:MoveAppResource',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'PreloadVodObjectCaches' => [
'summary' => 'Prefetches resources from an origin server to L2 nodes. Users can directly hit the cache upon their first visits. This way, workloads on the origin server can be reduced.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40098',
'abilityTreeNodes' => ['FEATUREvod59E0PR'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'ObjectPath',
'in' => 'query',
'schema' => ['description' => 'The URL of the file to be prefetched. Separate multiple URLs with line breaks (\\n or \\r\\n).'."\n", 'type' => 'string', 'required' => true, 'example' => 'vod.test.com/test.txt', 'title' => ''],
],
[
'name' => 'Area',
'in' => 'query',
'schema' => [
'description' => 'The acceleration region in which you want to prefetch content. If you do not specify a region, the value overseas is used.'."\n"
."\n"
.'* **domestic**: Chinese mainland'."\n"
.'* **overseas**: outside the Chinese mainland'."\n",
'type' => 'string',
'required' => false,
'example' => 'domestic',
'enum' => ['domestic', 'overseas'],
'title' => '',
],
],
[
'name' => 'L2Preload',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to prefetch content to POPs. Valid values:'."\n"
."\n"
.'* **true**: prefetches content to nodes that include L2 DCDN nodes.'."\n"
.'* **false**: prefetches content to L2 POPs or L3 POPs.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'default' => 'false', 'title' => ''],
],
[
'name' => 'WithHeader',
'in' => 'query',
'schema' => ['description' => 'The custom header for prefetch in the JSON format.'."\n", 'type' => 'string', 'required' => false, 'example' => '{'."\n"
.' "Accept-Encoding": ['."\n"
.' "gzip, deflate, br"'."\n"
.' ]'."\n"
.'}', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => '',
'type' => 'object',
'properties' => [
'PreloadTaskId' => ['description' => 'The ID of the prefetch task. Separate multiple task IDs with commas (,).'."\n", 'type' => 'string', 'example' => '9524****', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'E5BD4B50-7A02-493A-*****-97B9024B4135', 'title' => ''],
],
'title' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'SingleRequest.OverLimit', 'errorMessage' => 'A maximum of 1000 URLs are supported for each request.', 'description' => ''],
['errorCode' => 'QuotaExceeded.Preload', 'errorMessage' => 'Your refresh attempts have exceeded the daily limit.', 'description' => ''],
['errorCode' => 'InvalidObjectPath.Malformed', 'errorMessage' => 'The specified ObjectPath is invalid.', 'description' => 'The ObjectPath parameter is invalid.'],
['errorCode' => 'InvalidExtensiveDomain.ValueNotSupported', 'errorMessage' => 'The specified ExtensiveDomain is not supported.', 'description' => ''],
['errorCode' => 'PreloadQueueFull', 'errorMessage' => 'The warming queue is full; please try again later.', 'description' => ''],
['errorCode' => 'InvalidCustomHeader', 'errorMessage' => 'Parse preload header failed.', 'description' => 'Failed to parse preload header.'],
],
404 => [
['errorCode' => 'InvalidDomain.Offline', 'errorMessage' => 'The domain provided is offline.', 'description' => ''],
['errorCode' => 'InvalidDomain.NotFound', 'errorMessage' => 'The domain provided does not belong to you.', 'description' => ''],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"PreloadTaskId\\": \\"9524****\\",\\n \\"RequestId\\": \\"E5BD4B50-7A02-493A-*****-97B9024B4135\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 9525****\\r\\n 5FF9B16E-FBAC-48E5-****-65B5F0184DB3\\r\\n","errorExample":""}]',
'title' => 'PreloadVodObjectCaches',
'description' => '> * This operation is available only in the **China (Shanghai)** region.'."\n"
.'> * You can submit a maximum of 500 requests to prefetch resources based on URLs each day by using an Alibaba Cloud account. You cannot prefetch resources based on directories.'."\n"
.'> * You can call the [RefreshVodObjectCaches](~~69215~~) operation to refresh content and the [PreloadVodObjectCaches](~~69211~~l) operation to prefetch content.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return.'."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| Throttling | Request was denied due to request throttling. | 503 | The error message returned because the request was denied due to throttling. |'."\n"
.'| IllegalOperation | Illegal domain operate is not permitted. | 403 | The error message returned because the domain name is invalid. |'."\n"
.'| OperationDenied | Your account does not open VOD service yet. | 403 | The error message returned because ApsaraVideo VOD has not been activated for your Alibaba Cloud account. |'."\n"
.'| OperationDenied.Suspended | Your VOD service is suspended. | 403 | The error message returned because your Alibaba Cloud account has overdue payments. Add funds to your account. If you do not settle your overdue payments within 15 days, you must re-activate ApsaraVideo VOD after you settle all the overdue payments. |'."\n"
.'| InvalidDomain.NotFound | The domain provided does not belong to you. | 404 | The error message returned because the domain name does not exist or does not belong to you. |'."\n"
.'| InvalidDomain.Offline | The domain provided is offline. | 404 | The error message returned because the domain name has been disabled. |'."\n"
.'| QuotaExceeded.Refresh | You’ve exceeded the prescribed refresh limits. | 400 | The error message returned because the number of requests to refresh or prefetch the content exceeds the upper limit on the current day. |'."\n"
.'| PreloadQueueFull | Preload queue is full, please try again later! | 403 | The error message returned because the number of URLs of the files being prefetched has reached the upper limit. Try again later. |'."\n"
.'| InvalidDomain.Configure_failed | Failed to configure the provided domain. | 500 | The error message returned because the system failed to configure the domain name and cannot refresh or prefetch the content. |'."\n"
.'| MissingParameter | The input parameter “ObjectPath” that is mandatory for processing this request is not supplied. | 400 | The error message returned because the ObjectPath parameter is not specified. |'."\n"
.'| InvalidObjectPath.Malformed | The specific value of parameter ObjectPath is malformed. | 400 | The error message returned because the value of the ObjectPath parameter is in an invalid format. |'."\n"
.'| InvalidExtensiveDomain.ValueNotSupported | Extensive domain not supported. | 400 | The error message returned because the domain name contains a wildcard character. |'."\n"
.'| InvalidObjectPath.Size.Malformed | The size of ObjectPath is bigger than 1000. | 400 | The error message returned because a maximum of 1,000 URLs of files can be prefetched at a time. |',
'changeSet' => [
['createdAt' => '2025-07-16T06:26:15.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'PreloadVodObjectCaches'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:PreloadVodObjectCaches',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'ProduceEditingProjectVideo' => [
'summary' => 'Synthesizes one or more videos into a final composite video. You can submit the source videos directly by using the `Timeline` parameter, or create a cloud editing project first and then submit it for production.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40100',
'abilityTreeNodes' => ['FEATUREvod89J0DP'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'ProjectId',
'in' => 'query',
'schema' => ['description' => 'The ID of the cloud editing project. You can obtain the ID in one of the following ways:'."\n"
."\n"
.'- Log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com). In the left-side navigation pane, choose **Production Center** > **Video Editing** to view the project ID.'."\n"
."\n"
.'- The `ProjectId` returned by the [CreateEditingProject](~~69048~~) operation.', 'type' => 'string', 'required' => false, 'example' => 'fb2101bf24b4cb318787dc****', 'title' => ''],
],
[
'name' => 'Timeline',
'in' => 'query',
'schema' => ['description' => 'The timeline of the cloud editing project, in JSON format. For more information about the schema, see [timeline](~~52839#07bc7fe0f2xuh~~).'."\n"
."\n"
.'> Ensure each `VideoTrackClip` object contains a valid `MediaId`. Otherwise, the request fails.', 'type' => 'string', 'required' => false, 'example' => '{"VideoTracks":[{"VideoTrackClips":[{"MediaId":"cc3308ac59615a54328bc3443****"},{"MediaId":"da87a9cff645cd88bc6d8326e4****"}]}]}', 'title' => ''],
],
[
'name' => 'Title',
'in' => 'query',
'schema' => ['description' => 'The title of the cloud editing project.', 'type' => 'string', 'required' => false, 'example' => 'Cloud Clip Project Title', 'title' => ''],
],
[
'name' => 'Description',
'in' => 'query',
'schema' => ['description' => 'The description of the cloud editing project.', 'type' => 'string', 'required' => false, 'example' => 'Cloud clip project description', 'title' => ''],
],
[
'name' => 'CoverURL',
'in' => 'query',
'schema' => ['description' => 'The cover URL of the cloud editing project.', 'type' => 'string', 'required' => false, 'example' => 'https://example.aliyundoc.com/6AB4D0E1E1C7446888351****.png', 'title' => ''],
],
[
'name' => 'MediaMetadata',
'in' => 'query',
'schema' => ['description' => 'The metadata of the synthesized video, in JSON format. For more information about the schema, see [MediaMetadata](~~52839#title-rtf-ry5-gjp~~).', 'type' => 'string', 'required' => false, 'example' => '{"Description":"Synthetic Video Description","Title":"Synthetic userData test"}', 'title' => ''],
],
[
'name' => 'ProduceConfig',
'in' => 'query',
'schema' => ['description' => 'The synthesis configuration, in JSON format. For more information about the schema, see [ProduceConfig](~~52839#title-ybl-7cs-y7d~~).'."\n"
.'>The `StorageLocation` field can be omitted if the storage Region is Shanghai. This field is required for all other storage Regions.>', 'type' => 'string', 'required' => false, 'example' => '{"TemplateGroupId":"6d11e25ea30a4c465435c74****"}', 'title' => ''],
],
[
'name' => 'UserData',
'in' => 'query',
'schema' => ['description' => 'Custom settings in a JSON string. The string can be up to 256 characters in length and supports settings such as message callbacks. For more information about the schema, see [UserData](~~86952#title-vz7-xzs-0c5~~).'."\n"
."\n"
.'> To use the message callback feature, you must configure an HTTP callback URL and select the corresponding event types in the ApsaraVideo VOD console. Otherwise, the callback settings do not take effect.', 'type' => 'string', 'required' => false, 'example' => '{"Extend":{"width":1280,"id":"028a8e56b1ebf6bb7afc74****","height":720},"MessageCallback":{"CallbackURL":"https://example.aliyundoc.com/2016-08-15/proxy/httpcallback/testcallback/","CallbackType":"http"}}', 'title' => ''],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The Application ID. Default value: **app-1000000**. For more information, see [Use apps](~~113600~~).', 'type' => 'string', 'required' => false, 'example' => 'app-****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response body.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The Request ID.', 'type' => 'string', 'example' => '25818875-5F78-4AF6-D7393642CA58****', 'title' => ''],
'MediaId' => ['description' => 'The ID of the synthesized video.'."\n"
."\n"
.'> - This operation returns the ID of the synthesized video in its synchronous response.'."\n"
.'>'."\n"
.'> - A `MediaId` in the response indicates that the service has accepted the video synthesis task for asynchronous processing.', 'type' => 'string', 'example' => '006204a11bb386bb25491f95f****', 'title' => ''],
'ProjectId' => ['description' => 'The ID of the cloud editing project.', 'type' => 'string', 'example' => 'fb2101bf24b4cb318787dc****', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4AF6-D7393642CA58****\\",\\n \\"MediaId\\": \\"006204a11bb386bb25491f95f****\\",\\n \\"ProjectId\\": \\"fb2101bf24b4cb318787dc****\\"\\n}","type":"json"}]',
'title' => 'ProduceEditingProjectVideo',
'description' => '- **Important: Cloud editing is a paid feature. Before you call this operation, review the billing methods and pricing of ApsaraVideo VOD. For more information, see [Online editing and production](~~188310#section-pyv-b8h-bo7~~).**'."\n"
."\n"
.'- This is an [asynchronous API](~~3027551~~). After you submit a task, the system returns the ID of the cloud editing project. Production does not begin immediately. The task is processed asynchronously, and the final result is sent via a callback. You can also call the [GetEditingProject](~~69052~~) operation to query the task status.'."\n"
."\n"
.'- A cloud editing timeline can use video resources from material management or the media library. If you use videos from the media library, ensure their status is Normal.'."\n"
."\n"
.'- The service synthesizes videos based on `ProjectId` and `Timeline`. The logic is as follows:'."\n"
."\n"
.' - You must provide either `ProjectId` or `Timeline`.'."\n"
."\n"
.' - If you provide a `Timeline` but no `ProjectId`, the system automatically creates a new cloud editing project. This `Timeline` becomes the project\'s timeline, and any material referenced in it is added to the project. The system then proceeds with video synthesis.'."\n"
."\n"
.' - If you provide a `ProjectId` but no `Timeline`, the system retrieves the most recently saved timeline for that project to synthesize the video.'."\n"
."\n"
.' - If you provide both `ProjectId` and `Timeline`, the system uses the specified `Timeline` to synthesize the video and updates the project\'s timeline and materials. If you specify other parameters, the system also updates the corresponding project fields.'."\n"
."\n"
.'- You can use a maximum of 100 tracks for each of the following types: video tracks, image tracks, and subtitle tracks.'."\n"
."\n"
.'- The total number of materials cannot exceed 200, and the total file size of all materials cannot exceed 1 TB.'."\n"
."\n"
.'- The Region of the input or output bucket must be the same as the Region where you use the ApsaraVideo VOD service.'."\n"
."\n"
.'- The output video resolution must meet the following constraints:'."\n"
."\n"
.' - The width and height cannot be less than 128 px.'."\n"
."\n"
.' - The width and height cannot be greater than 4,096 px.'."\n"
."\n"
.' - The shorter dimension cannot be greater than 2,160 px.'."\n"
."\n"
.'- After the service synthesizes a video, it automatically uploads the video to ApsaraVideo VOD. The service then sends event notifications for **media synthesis completion** and **video upload completion**. After the synthesized video is transcoded, the service sends event notifications for **TranscodeComplete** and **AllStreamTranscodeComplete**.'."\n"
."\n"
.'- You can also add special effects to the synthesized video. For more information, see [Special effects](~~69082~~).',
'requestParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-16T02:18:32.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:15:32.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ProduceEditingProjectVideo'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:ProduceEditingProjectVideo',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'RefreshMediaPlayUrls' => [
'summary' => 'Submits media refresh or prefetch tasks based on the media IDs.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => ['operationType' => 'update'],
'parameters' => [
[
'name' => 'MediaIds',
'in' => 'query',
'schema' => ['description' => 'The IDs of the media files that you want to refresh or prefetch. You can specify a maximum of 20 IDs. Separate multiple IDs with commas (,). You can use one of the following methods to obtain the ID:'."\n"
."\n"
.'- Log on to the [ApsaraVideo VOD](https://vod.console.aliyun.com) console. In the left-side navigation pane, choose **Media Files** > **Audio/Video**. On the Video and Audio page, view the ID of the audio or video file. This method is applicable to files that are uploaded by using the ApsaraVideo VOD console.'."\n"
."\n"
.'- Obtain the value of VideoId from the response to the [CreateUploadVideo](~~55407~~) operation that you call to upload media files.'."\n"
."\n"
.'- Obtain the value of VideoId from the response to the [SearchMedia](~~86044~~) operation that you call to query the media ID after the media file is uploaded.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'ca3a8f6e4957b658067095869****, a6e49sfgd23p5g9ja7095863****'],
],
[
'name' => 'TaskType',
'in' => 'query',
'schema' => ['description' => 'The type of the task that you want to create. Valid values:'."\n"
."\n"
.'- **Refresh**'."\n"
."\n"
.'- **Preload**', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'Preload'],
],
[
'name' => 'Formats',
'in' => 'query',
'schema' => ['description' => 'The formats of the media streams you want to refresh or prefetch. You can specify multiple formats. Separate multiple formats with commas (,). If you leave this parameter empty, media streams in all formats are refreshed or prefetched by default. Valid values:'."\n"
."\n"
.'- **mp4**'."\n"
."\n"
.'- **m3u8**'."\n"
."\n"
.'- **mp3**'."\n"
."\n"
.'- **flv**'."\n"
."\n"
.'- **webm**'."\n"
."\n"
.'- **ts**', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'mp4,m3u8'],
],
[
'name' => 'Definitions',
'in' => 'query',
'schema' => ['description' => 'Specifies the resolutions of the media streams you want to refresh or prefetch. You can specify multiple resolutions. Separate multiple resolutions with commas (,). If you leave this parameter empty, media streams in all resolutions are refreshed or prefetched by default.'."\n"
."\n"
.'> The value must be supported in the **Definition** section in [Parameters for media assets](~~124671~~).', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'HD, SD'],
],
[
'name' => 'StreamType',
'in' => 'query',
'schema' => ['description' => 'Specifies the types of media streams you want to refresh or prefetch. You can specify multiple types. Separate multiple types with commas (,). If you leave this parameter empty, media streams in all types are refreshed or prefetched by default. Valid values:'."\n"
."\n"
.'- **video**'."\n"
."\n"
.'- **audio**', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'video'],
],
[
'name' => 'ResultType',
'in' => 'query',
'schema' => ['description' => 'Specifies the type of the refresh or prefetch operation. Default value: Single. Valid values:'."\n"
."\n"
.'- **Single**: Only one latest transcoded stream is refreshed or prefetched for each resolution and format.'."\n"
."\n"
.'- **Multiple**: All transcoded streams are refreshed or prefetched for each resolution and format.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'Single'],
],
[
'name' => 'SliceFlag',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to refresh or prefetch the playback URLs of the TS files of the M3U8 media stream. Default value: false. Valid values:'."\n"
."\n"
.'- **false**'."\n"
."\n"
.'- **true**', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'false'],
],
[
'name' => 'SliceCount',
'in' => 'query',
'schema' => ['description' => 'Specifies the number of the playback URLs of the TS files for the M3U8 media stream you want to refresh or prefetch. After you set this parameter, only the playback URLs of the first N TS files will be refreshed or prefetched. Valid values: 1 to 20. Default value: 5.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '5'],
],
[
'name' => 'UserData',
'in' => 'query',
'schema' => ['description' => 'The custom configurations such as callback configurations and upload acceleration configurations. The value must be a JSON string. For more information, see the "UserData: specifies the custom configurations for media upload" section in the [Request parameter](~~86952~~) topic.'."\n"
."\n"
.'> - The callback configurations take effect only after you specify the HTTP callback URL and select specific callback events in the ApsaraVideo VOD console. For more information about how to configure HTTP callback settings in the ApsaraVideo VOD console, see [Configure callback settings](~~86071~~).'."\n"
.'>'."\n"
.'> - To enable the upload acceleration feature, submit a ticket. For more information, see [Overview](~~55396~~). For more information about how to submit a ticket, see [Contact us](~~464625~~).', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '{"MessageCallback":{"CallbackURL":"http://example.aliyundoc.com"}, "Extend":{"localId":"xxx","test":"www"}}'],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned data.',
'type' => 'object',
'properties' => [
'MediaRefreshJobId' => ['description' => 'The ID of the refresh or prefetch task.', 'type' => 'string', 'title' => '', 'example' => '41d465e31957****'],
'NonExistMediaIds' => ['description' => 'The IDs of the media files that do not exist.', 'type' => 'string', 'title' => '', 'example' => 'ca3a8f6e4957b658067095869****'],
'ForbiddenMediaIds' => ['description' => 'The IDs of the media files that cannot be operated on. In most cases, media files cannot be operated on because you are not authorized to perform the operations. For more information, see [Overview](~~113600~~).', 'type' => 'string', 'title' => '', 'example' => 'a6e49sfgd23p5g9ja7095863****'],
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '25818875-5F78-4AF6-04D5-D7393642****', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'title' => 'RefreshMediaPlayUrls',
'description' => '- ApsaraVideo VOD allows you to purge and prefetch resources. The purge feature forces the point of presence (POP) to clear cached resources and retrieve the latest resources from origin servers. The prefetch feature allows the POP to retrieve frequently accessed resources from origin servers during off-peak hours. This increases the cache hit ratio.'."\n"
."\n"
.'- Submit purge or prefetch tasks based on the media ID. You can also specify the format and resolution of the media streams to purge or prefetch based on your business requirements.'."\n"
."\n"
.'- You can submit a maximum of 20 purge or prefetch tasks at a time.',
'changeSet' => [
['createdAt' => '2025-07-16T02:18:38.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:15:58.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RefreshMediaPlayUrls'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:RefreshMediaPlayUrls',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"MediaRefreshJobId\\": \\"41d465e31957****\\",\\n \\"NonExistMediaIds\\": \\"ca3a8f6e4957b658067095869****\\",\\n \\"ForbiddenMediaIds\\": \\"a6e49sfgd23p5g9ja7095863****\\",\\n \\"RequestId\\": \\"25818875-5F78-4AF6-04D5-D7393642****\\"\\n}","type":"json"}]',
],
'RefreshUploadVideo' => [
'summary' => 'Obtains a new upload credential for a video file after the original credential expires.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40108',
'abilityTreeNodes' => ['FEATUREvodVQ27S4'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'VideoId',
'in' => 'query',
'schema' => ['description' => 'The ID of the audio or video file. You can obtain the ID in one of the following ways:'."\n"
."\n"
.'- Log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com). In the navigation pane, choose **Media Files** > **Audio/Video**. On the page that appears, view the ID of the audio or video file.'."\n"
."\n"
.'- Obtain the value of VideoId from the response to the [CreateUploadVideo](~~55407~~) operation.'."\n"
."\n"
.'- Obtain the value of VideoId from the response to the [SearchMedia](~~86044~~) operation after the media file is uploaded.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'title' => '', 'example' => 'c6a23a870c8c4ffcd40cbd381333****'],
],
[
'name' => 'ReferenceId',
'in' => 'query',
'schema' => ['type' => 'string', 'title' => '', 'description' => 'A custom ID. The ID can be 6 to 64 characters in length and can contain lowercase letters, uppercase letters, digits, hyphens (-), and underscores (\\_). The ID must be unique for each user.', 'required' => false, 'example' => '123-123'],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The data returned in the response.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'title' => '', 'example' => '25818875-5F78-4A43-7DF6-D7393642****'],
'UploadAddress' => ['description' => 'The upload URL.'."\n"
."\n"
.'> The upload URL is Base64-encoded. You must decode the URL before you use it to upload media files with an SDK or an API. You need to parse the UploadAddress parameter only when you use a native OSS SDK or call an OSS API to upload files.', 'type' => 'string', 'title' => '', 'example' => 'eyJTZWN1cml0eVRiQ0FJU3p3TjFxNkZ0NUIyeW****'],
'VideoId' => ['description' => 'The ID of the audio or video file.', 'type' => 'string', 'title' => '', 'example' => 'c6a23a870c8c4ffcd40cbd381333****'],
'UploadAuth' => ['description' => 'The upload credential.'."\n"
."\n"
.'> The upload credential is Base64-encoded. You must decode the credential before you use it to upload media files with an SDK or an API. You need to parse the UploadAuth parameter only when you use a native OSS SDK or call an OSS API to upload files.', 'type' => 'string', 'title' => '', 'example' => 'FJU3p3TZ0NUIyeW****'],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4A43-7DF6-D7393642****\\",\\n \\"UploadAddress\\": \\"eyJTZWN1cml0eVRiQ0FJU3p3TjFxNkZ0NUIyeW****\\",\\n \\"VideoId\\": \\"c6a23a870c8c4ffcd40cbd381333****\\",\\n \\"UploadAuth\\": \\"FJU3p3TZ0NUIyeW****\\"\\n}","type":"json"}]',
'title' => 'RefreshUploadVideo',
'description' => 'You can also use this operation to overwrite source audio or video files. When you overwrite a file, you re-upload the source file using a new upload URL, but the audio or video ID remains the same. This action may automatically trigger transcoding and snapshot jobs that are configured for uploads. For more information, see [Upload URLs and credentials](~~55397~~).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return. '."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| InvalidVideo.Damaged | The video has been Damaged. | 400 | The error message returned because an error occurred during the video creation or the video was damaged. |'."\n"
.'| InvalidVideo.NotFound | The video not exist. | 404 | The error message returned because the video does not exist. |',
'changeSet' => [
['createdAt' => '2025-07-16T02:19:09.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:16:09.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '80', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RefreshUploadVideo'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:RefreshUploadVideo',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'RefreshVodObjectCaches' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40109',
'abilityTreeNodes' => ['FEATUREvod59E0PR'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'ObjectPath',
'in' => 'query',
'schema' => ['description' => 'The URL of the file to be prefetched. Separate multiple URLs with line breaks (\\n or \\r\\n).'."\n", 'type' => 'string', 'required' => true, 'example' => 'abc.com/image/1.png'],
],
[
'name' => 'ObjectType',
'in' => 'query',
'schema' => ['description' => 'The type of the object that you want to refresh. Valid values:'."\n"
."\n"
.'* **File** (default): refreshes one or more files.'."\n"
.'* **Directory**: refreshes the files in specified directories.'."\n"
.'* **Regex**: refreshes content based on regular expressions.'."\n"
.'* **IgnoreParams**: removes the question mark (?) and parameters after the question mark (?) in a request URL and refreshes content. After you call this operation with the request URL submitted, the system compares the submitted URL with the URL of the cached resource without specific parameters. If the URLs match, the POPs refresh the cached resource.'."\n", 'type' => 'string', 'required' => false, 'example' => 'File', 'default' => 'File'],
],
[
'name' => 'Force',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to purge resources in a directory if the resources requested are different from the resources on the origin server.'."\n"
."\n"
.'* **true**: refreshes all resources in the directory. If you set this parameter to true, when the requested content matches the resource in the directory, the POP retrieves the resource from the origin server, returns the resource to the client, and caches the resource.'."\n"
.'* **false** (default): refreshes the changed resources in the directory. If you set this parameter to false, when the requested content matches the resource in the directory, the POP obtains the Last-Modified parameter of the resource from the origin server. If the value of the obtained Last-Modified parameter is the same as that of the cached resource, the cached resource is returned. Otherwise, the POP retrieves the resource from the origin server, returns the resource to the client, and caches the resource.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RefreshTaskId' => ['description' => 'The ID of the refresh task. Multiple IDs are separated by commas (,). Refresh tasks are merged based on the following rules:'."\n"
."\n"
.'If the tasks are set for the same accelerated domain name, submitted within the same second, and refresh content based on URLs instead of directories, the tasks IDs are merged into the same task ID (RefreshTaskId). If the number of these tasks exceeds 2,000, every 2,000 tasks IDs are merged into the same task ID (RefreshTaskId).'."\n", 'type' => 'string', 'example' => '70422*****2904'],
'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'D61E4801-EAFF-4A63-****-FBF6CE1CFD1C'],
],
'description' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'SingleRequest.OverLimit', 'errorMessage' => 'A maximum of 1000 URLs are supported for each request.', 'description' => ''],
['errorCode' => 'InvalidObjectType.Malformed', 'errorMessage' => 'The specified ObjectType is invalid.', 'description' => ''],
['errorCode' => 'QuotaExceeded.Refresh', 'errorMessage' => 'Your refresh attempts have exceeded the daily limit.', 'description' => 'The daily refresh quota has been exceeded.'],
['errorCode' => 'InvalidObjectPath.Malformed', 'errorMessage' => 'The specified ObjectPath is invalid.', 'description' => 'The ObjectPath parameter is invalid.'],
['errorCode' => 'InvalidExtensiveDomain.ValueNotSupported', 'errorMessage' => 'The specified ExtensiveDomain is not supported.', 'description' => ''],
['errorCode' => 'QuotaPerMinuteExceeded.Refresh', 'errorMessage' => 'You tried to refresh too frequently; please try again later.', 'description' => ''],
['errorCode' => 'TooMany.Refresh', 'errorMessage' => 'The refresh queue is full; please try again later.', 'description' => ''],
],
404 => [
['errorCode' => 'InvalidDomain.NotFound', 'errorMessage' => 'The domain provided does not belong to you.', 'description' => ''],
['errorCode' => 'InvalidDomain.Offline', 'errorMessage' => 'The domain provided is offline.', 'description' => ''],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RefreshTaskId\\": \\"70422*****2904\\",\\n \\"RequestId\\": \\"D61E4801-EAFF-4A63-****-FBF6CE1CFD1C\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 70422*****2904\\n D61E4801-EAFF-4A63-****-FBF6CE1CFD1C\\n","errorExample":""}]',
'title' => 'RefreshVodObjectCaches',
'summary' => 'Refreshes files on Alibaba Cloud CDN nodes. You can refresh multiple files at a time based on URLs.',
'description' => '* This operation is available only in the **China (Shanghai)** region.'."\n"
."\n"
.'* You can submit a maximum of 2,000 requests to refresh resources based on URLs and 100 requests to refresh resources based on directories each day by using an Alibaba Cloud account.'."\n"
."\n"
.'* You can call the [RefreshVodObjectCaches](~~69215~~) operation to refresh content and the [PreloadVodObjectCaches](~~69211~~) operation to prefetch content.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return.'."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| Throttling | Request was denied due to request throttling. | 503 | The error message returned because the request was denied due to throttling. |'."\n"
.'| IllegalOperation | Illegal domain operate is not permitted. | 403 | The error message returned because the domain name is invalid. |'."\n"
.'| OperationDenied | Your account does not open VOD service yet. | 403 | The error message returned because ApsaraVideo VOD has not been activated for your Alibaba Cloud account. |'."\n"
.'| OperationDenied.Suspended | Your VOD service is suspended. | 403 | The error message returned because your Alibaba Cloud account has overdue payments. Add funds to your account. |'."\n"
.'| InvalidDomain.NotFound | The domain provided does not belong to you. | 404 | The error message returned because the domain name does not exist or does not belong to you. |'."\n"
.'| InvalidDomain.Offline | The domain provided is offline. | 404 | The error message returned because the domain name has been disabled. |'."\n"
.'| QuotaExceeded.Refresh | You’ve exceeded the prescribed refresh limits. | 400 | The error message returned because the number of requests to refresh or prefetch the content exceeds the upper limit on the current day. |'."\n"
.'| ServiceBusy | The specified Domain is configuring, please retry later. | 403 | The error message returned because the domain name is being configured. Try again later. |'."\n"
.'| InvalidDomain.Configure_failed | Failed to configure the provided domain. | 500 | The error message returned because the system failed to configure the domain name and cannot refresh or prefetch the content. |'."\n"
.'| MissingParameter | The input parameter “ObjectPath” that is mandatory for processing this request is not supplied. | 400 | The error message returned because the ObjectPath parameter is not specified. |'."\n"
.'| InvalidObjectType.ValueNotSupported | The specified value of "" is not supported. | 400 | The error message returned because the value of the ObjectType parameter is invalid. |'."\n"
.'| InvalidObjectPath.Malformed | The specific value of parameter ObjectPath is malformed. | 400 | The error message returned because the value of the ObjectPath parameter is in an invalid format. |'."\n"
.'| InvalidExtensiveDomain.ValueNotSupported | Extensive domain not supported. | 400 | The error message returned because the domain name contains a wildcard character. |'."\n"
.'| QuotaPerMinuteExceeded.Refresh | You’ve exceeded the prescribed refresh limits per minute. | 400 | The error message returned because the number of requests to refresh the content exceeds the upper limit per minute. |',
'changeSet' => [],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:RefreshVodObjectCaches',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'RegisterMedia' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '43406',
'abilityTreeNodes' => ['FEATUREvodVQ27S4'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'RegisterMetadatas',
'in' => 'query',
'schema' => ['description' => 'The metadata of the media to be registered. This parameter is a JSON string. You can specify metadata for up to 10 media files. For more information about the parameter structure, see the **RegisterMetadata** table below.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '[{"FileURL":"https://****.oss-cn-shanghai.aliyuncs.com/video/test/video123.m3u8","Title":"VideoName"}]', 'title' => ''],
],
[
'name' => 'TemplateGroupId',
'in' => 'query',
'schema' => ['description' => 'The ID of the transcoding template group. You can obtain the ID in one of the following ways:'."\n"
."\n"
.'- Log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com). In the left-side navigation pane, choose **configuration management** > **media processing configuration** > **transcoding template groups** to view the transcoding template group ID.'."\n"
."\n"
.'- Call the [AddTranscodeTemplateGroup](~~102665~~) operation to create a transcoding template group. The value of `TranscodeTemplateGroupId` in the response is the ID of the transcoding template group.'."\n"
."\n"
.'- Call the [ListTranscodeTemplateGroup](~~102669~~) operation to query transcoding template groups. The value of `TranscodeTemplateGroupId` in the response is the ID of the transcoding template group.'."\n"
."\n"
.'> * If you do not need to transcode the media, set this parameter to VOD\\_NO\\_TRANSCODE. Otherwise, the video status remains **uploaded**, and the media cannot be played.'."\n"
.'>'."\n"
.'> * If you specify both `WorkflowId` and `TemplateGroupId`, `WorkflowId` takes precedence. For more information, see [Workflows](~~115347~~).'."\n"
.'>'."\n"
.'> * This parameter triggers an [asynchronous task](~~3027551~~). After the request is submitted, the task is queued for background processing and does not complete immediately.', 'type' => 'string', 'required' => false, 'example' => 'ca3a8f6e49c87b65806709586****', 'title' => ''],
],
[
'name' => 'UserData',
'in' => 'query',
'schema' => ['description' => 'Custom settings in a JSON string format, including configurations for message callbacks. For more information, see [UserData](~~86952#section_6fg_qll_v3w~~).'."\n"
."\n"
.'> This operation does not generate a callback upon registration. However, the callback address specified in UserData is used for subsequent transcoding or snapshot tasks on the registered media, unless a different callback is specified for those tasks.', 'type' => 'string', 'required' => false, 'example' => '{"Extend":{"localId":"****","test":"www"}}', 'title' => ''],
],
[
'name' => 'WorkflowId',
'in' => 'query',
'schema' => ['description' => 'The ID of the workflow. You can log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com) and choose **configuration management** > **media processing configuration** > **workflows** in the left-side navigation pane to view the workflow ID.'."\n"
."\n"
.'> - If you specify both `WorkflowId` and `TemplateGroupId`, `WorkflowId` takes precedence. For more information, see [Workflows](~~115347~~).'."\n"
.'>'."\n"
.'> - This parameter triggers an [asynchronous task](~~3027551~~). After the request is submitted, the task is queued for background processing and does not complete immediately.', 'type' => 'string', 'required' => false, 'example' => '637adc2b7ba51a83d841606f8****', 'title' => ''],
],
[
'name' => 'EnableFirstFrameCover',
'in' => 'query',
'schema' => ['type' => 'boolean', 'description' => '', 'title' => '', 'example' => ''],
],
[
'name' => 'GenerateThumbnail',
'in' => 'query',
'schema' => ['type' => 'boolean', 'description' => '', 'title' => '', 'example' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '14F43C5C-8033-448B-AD04F64E5098****', 'title' => ''],
'FailedFileURLs' => [
'description' => 'A list of URLs for the files that failed to be registered.',
'type' => 'array',
'items' => ['description' => 'A list of URLs for the files that failed to be registered.', 'type' => 'string', 'example' => '["http://****.oss-cn-shanghai.aliyuncs.com/vod_sample_03.mp4"]', 'title' => ''],
'title' => '',
'example' => '',
],
'RegisteredMediaList' => [
'description' => 'A list of all media successfully processed in the request, including both newly registered and previously registered files.',
'type' => 'array',
'items' => [
'description' => 'The registration details.',
'type' => 'object',
'properties' => [
'NewRegister' => ['description' => 'Indicates whether the media was newly registered or was already registered.'."\n"
."\n"
.'- **true**: Newly registered.'."\n"
."\n"
.'- **false**: Already registered.', 'type' => 'boolean', 'example' => 'false', 'title' => ''],
'FileURL' => ['description' => 'The OSS file URL.', 'type' => 'string', 'example' => 'http://****.oss-cn-shanghai.aliyuncs.com/vod_sample_01.mp4', 'title' => ''],
'MediaId' => ['description' => 'The media ID. For audio or video files, this ID corresponds to the VideoId.', 'type' => 'string', 'example' => 'd97af32828084d1896683b1aa38****', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'RegisterMedia',
'summary' => 'Registers media files from your OSS buckets for use in ApsaraVideo VOD. To apply features like transcoding and snapshots to your media, you must first register the files to generate the necessary metadata.',
'description' => '- To process audio and video files from an OSS bucket using ApsaraVideo VOD, you must first register them. After registration, you can use the media ID to initiate tasks such as transcoding, snapshotting, and AI processing.'."\n"
."\n"
.'- You can register up to **10** OSS media files in a single API call. All files in the request must share the same storage location.'."\n"
."\n"
.'- Media files uploaded directly to ApsaraVideo VOD are automatically transcoded by using the default template group if no other is specified. Registered media, however, is not automatically transcoded. To trigger transcoding, you must specify a transcoding template group ID during registration.'."\n"
."\n"
.'- Re-registering a file returns its existing **media ID** and performs no other action.'."\n"
."\n"
.'- Ensure that the media files you want to register have valid file extensions. Otherwise, the registration fails.',
'requestParamsDescription' => '## RegisterMetadata'."\n"
."\n"
.'Specifies the metadata for the media you want to register.'."\n"
."\n"
.'| Parameter | Type | Required | Description |'."\n"
.'| ----------- | ------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |'."\n"
.'| FileURL | String | Yes | The [source file URL](~~59624~~). You can call the GetMezzanineInfo operation to obtain the URL. The URL must not exceed 1,024 bytes in length and the filename must be globally unique. If you register a file with the same name, the operation returns the unique media ID associated with it. The URL consists of the public endpoint of an OSS bucket followed by the object name. |'."\n"
.'| Title | String | Yes | The title of the media. The title can be up to 128 bytes in length and must be UTF-8 encoded. |'."\n"
.'| Description | String | No | The description of the media. The description can be up to 1,024 bytes in length and must be UTF-8 encoded. |'."\n"
.'| Tags | String | No | The media tags. You can specify up to 16 tags, separated by commas (,). Each tag can be up to 32 bytes and must be UTF-8 encoded. |'."\n"
.'| CoverURL | String | No | The URL of the cover image. The URL must not exceed 1,024 bytes in length. |'."\n"
.'| CateId | Long | No | The category ID. You can obtain the ID in one of the following ways: Log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com). In the left-side navigation pane, choose **configuration management** > **media asset configuration** > **category management** to view the category ID. Call the [AddCategory](~~56401~~) operation to create a category. The value of `CateId` in the response is the category ID. Call the [GetCategories](~~56406~~) operation to query categories. The value of `CateId` in the response is the category ID. |'."\n"
.'| ReferenceId | String | No | A custom ID. It can contain lowercase letters, uppercase letters, digits, hyphens (-), and underscores (_). The ID must be 6 to 64 characters in length and must be unique within your account. |',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2025-07-16T02:19:17.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:15:44.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RegisterMedia'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:RegisterMedia',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"14F43C5C-8033-448B-AD04F64E5098****\\",\\n \\"FailedFileURLs\\": [\\n \\"[\\\\\\"http://****.oss-cn-shanghai.aliyuncs.com/vod_sample_03.mp4\\\\\\"]\\"\\n ],\\n \\"RegisteredMediaList\\": [\\n {\\n \\"NewRegister\\": false,\\n \\"FileURL\\": \\"http://****.oss-cn-shanghai.aliyuncs.com/vod_sample_01.mp4\\",\\n \\"MediaId\\": \\"d97af32828084d1896683b1aa38****\\"\\n }\\n ]\\n}","type":"json"}]',
],
'RestoreMedia' => [
'summary' => 'Restores media assets.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '171760',
'abilityTreeNodes' => ['FEATUREvodM1QLPK'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'MediaIds',
'in' => 'query',
'schema' => ['description' => 'The ID of the media asset (VideoId). Separate multiple IDs with commas (,). You can specify a maximum of 20 IDs. You can use one of the following methods to obtain the ID of the media asset:'."\n"
."\n"
.'* Log on to the ApsaraVideo VOD console. In the left-side navigation pane, choose Media Files > Audio/Video. On the Video and Audio page, view the ID of the media asset. This method is applicable to files that are uploaded by using the ApsaraVideo VOD console.'."\n"
.'* Obtain the value of VideoId from the response to the CreateUploadVideo operation that you call to upload media assets.'."\n"
.'* Obtain the value of VideoId from the response to the SearchMedia operation that you call to query the media ID after the media asset is uploaded.'."\n", 'type' => 'string', 'required' => true, 'example' => '8bc8e94fe4e55abde85718****,eb186180e989dd56****', 'title' => ''],
],
[
'name' => 'Scope',
'in' => 'query',
'schema' => ['description' => 'The modification range. Valid values:'."\n"
."\n"
.'* **All**: restores all resources, including the source files and transcoded streams.'."\n"
.'* **SourceFile**: restores only the source files.'."\n", 'type' => 'string', 'required' => false, 'example' => 'All', 'title' => ''],
],
[
'name' => 'RestoreDays',
'in' => 'query',
'schema' => ['description' => 'The number of days during which media assets remain in the restored state. Default value: 1. The maximum validity period of a restored Archive media asset is 7 days and the maximum validity period of a restored Cold Archive media asset is 365 days.'."\n", 'type' => 'string', 'required' => false, 'example' => '2', 'title' => ''],
],
[
'name' => 'RestoreTier',
'in' => 'query',
'schema' => ['description' => 'The restoration priority. This parameter is required only when you restore a Cold Archive media file. Valid values:'."\n"
."\n"
.'* **Expedited**: The file is restored within 1 hour.'."\n"
.'* **Standard**: The file is restored within 2 to 5 hours.'."\n"
.'* **Bulk**: The file is restored within 5 to 12 hours.'."\n", 'type' => 'string', 'required' => false, 'example' => 'Standard', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '8E70E3F8-E2EE-47BC-4677-379D6F28****', 'title' => ''],
'Success' => ['description' => 'Indicates whether the request was successful.'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''],
'IgnoredList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'MediaId' => [
'description' => 'The IDs of the media assets that failed to be obtained.'."\n",
'type' => 'array',
'items' => ['description' => 'The ID of the media asset that failed to be obtained.'."\n", 'type' => 'string', 'example' => '[\'7f29b8d0c5fa71ed9685e6f7d559****\']', 'title' => ''],
'title' => '',
],
],
'description' => '',
'title' => '',
],
'ForbiddenList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'MediaForbiddenReasonDTO' => [
'description' => 'The IDs of the media asset that failed to be processed.'."\n",
'type' => 'array',
'items' => [
'description' => 'The information about the media asset that failed to be processed.'."\n",
'type' => 'object',
'properties' => [
'MediaId' => ['description' => 'The ID of the media asset.'."\n", 'type' => 'string', 'example' => 'fa10ee70898671edb99f6eb3690d****', 'title' => ''],
'Reason' => ['description' => 'The reason for the failure.'."\n", 'type' => 'string', 'example' => 'Forbidden.RestoreMedia', 'title' => ''],
],
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'RestoreMedia',
'description' => 'You can call this operation to restore only Archive and Cold Archive audio and video files. You can access the audio and video files after the files are restored. You cannot change the storage class of an audio or video file that is being restored. You are charged for the retrieval traffic generated during restoration. After a Cold Archive audio or video file is restored, a Standard replica of the file is generated for access. You are charged for the storage of the replica before the file returns to the frozen state.'."\n",
'changeSet' => [
['createdAt' => '2025-07-16T02:16:59.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:16:57.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RestoreMedia'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:RestoreMedia',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"8E70E3F8-E2EE-47BC-4677-379D6F28****\\",\\n \\"Success\\": true,\\n \\"IgnoredList\\": {\\n \\"MediaId\\": [\\n \\"[\'7f29b8d0c5fa71ed9685e6f7d559****\']\\"\\n ]\\n },\\n \\"ForbiddenList\\": {\\n \\"MediaForbiddenReasonDTO\\": [\\n {\\n \\"MediaId\\": \\"fa10ee70898671edb99f6eb3690d****\\",\\n \\"Reason\\": \\"Forbidden.RestoreMedia\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
],
'SearchEditingProject' => [
'summary' => 'Queries online editing projects.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'list',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40114',
'abilityTreeNodes' => ['FEATUREvod89J0DP'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'EndTime',
'in' => 'query',
'schema' => ['description' => 'The end of the time range to query. The query is performed based on the time range during which the required online editing projects were created. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => false, 'example' => '2017-01-11T13:00:00Z', 'title' => ''],
],
[
'name' => 'StartTime',
'in' => 'query',
'schema' => ['description' => 'The beginning of the time range to query. The query is performed based on the time range during which the required online editing projects were created. Specify the time in the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => false, 'example' => '2017-01-11T12:00:00Z', 'title' => ''],
],
[
'name' => 'Status',
'in' => 'query',
'schema' => ['description' => 'The status of the online editing project. Separate multiple states with commas (,). By default, all online editing projects are queried. Valid values:'."\n"
.'* **Normal**: indicates that the online editing project is in draft.'."\n"
.'* **Producing**: indicates that the video is being produced.'."\n"
.'* **Produced**: indicates that the video was produced.'."\n"
.'* **ProduceFailed**: indicates that the video failed to be produced.', 'type' => 'string', 'required' => false, 'example' => 'Normal', 'title' => ''],
],
[
'name' => 'PageNo',
'in' => 'query',
'schema' => ['description' => 'The number of the page to return. Default value: **1**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of entries to return on each page. Default value: **10**. Maximum value: **100**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''],
],
[
'name' => 'SortBy',
'in' => 'query',
'schema' => ['description' => 'The sorting rule of results. Valid values:'."\n"
.'* **CreationTime:Desc**: sorts the results based on the creation time in descending order. This is the default value.'."\n"
.'* **CreationTime:Asc**: sorts the results based on the creation time in ascending order.', 'type' => 'string', 'required' => false, 'example' => 'desc', 'title' => ''],
],
[
'name' => 'Title',
'in' => 'query',
'schema' => ['description' => 'The title of the online editing project.'."\n", 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'Total' => ['description' => 'The total number of online editing projects returned.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '9262E3DA-07FA-48*****62-FCBB6BC61D08', 'title' => ''],
'ProjectList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'Project' => [
'description' => 'The list of online editing projects.'."\n",
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
'StorageLocation' => ['description' => 'The path of the Object Storage Service (OSS) bucket where the produced video is stored.'."\n"
.'> To view the path of the OSS bucket, log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com/?spm=a2c4g.11186623.2.15.6948257eaZ4m54#/vod/settings/censored), and choose **Configuration Management** > **Media Management** > **Storage**. On the Storage page, you can view the path of the OSS bucket.', 'type' => 'string', 'example' => 'location_s', 'title' => ''],
'Status' => ['description' => 'The status of the online editing project. Separate multiple states with commas (,). By default, all online editing projects were queried. Valid values:'."\n"
.'* **Normal**: indicates that the online editing project is in draft.'."\n"
.'* **Producing**: indicates that the video is being produced.'."\n"
.'* **Produced**: indicates that the video was produced.'."\n"
.'* **ProduceFailed**: indicates that the video failed to be produced.', 'type' => 'string', 'example' => 'Normal', 'title' => ''],
'CreationTime' => ['description' => 'The time when the online editing project was created. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2017-01-11T12:00:00Z', 'title' => ''],
'ModifiedTime' => ['description' => 'The last time when the online editing project was modified. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2017-01-11T13:00:00Z', 'title' => ''],
'Description' => ['description' => 'The description of the online editing project.'."\n", 'type' => 'string', 'example' => '故事板测试工程001', 'title' => ''],
'CoverURL' => ['description' => 'The thumbnail URL of the online editing project.'."\n", 'type' => 'string', 'example' => 'cover_url', 'title' => ''],
'ProjectId' => ['description' => 'The ID of the online editing project.'."\n", 'type' => 'string', 'example' => '25cfc178d2de4*****e77aebed6afcd', 'title' => ''],
'Duration' => ['description' => 'The duration of the online editing project, which must be consistent with the duration of the timeline.'."\n"
.'> The Timeline parameter is not included in response parameters.', 'type' => 'number', 'format' => 'float', 'example' => '22.65', 'title' => ''],
'Title' => ['description' => 'The title of the online editing project.'."\n", 'type' => 'string', 'example' => 'Video_150873681****', 'title' => ''],
'RegionId' => ['description' => 'The region where the online editing project was created.'."\n", 'type' => 'string', 'example' => 'cn-shanghai', 'title' => ''],
],
'description' => '',
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"Total\\": 2,\\n \\"RequestId\\": \\"9262E3DA-07FA-48*****62-FCBB6BC61D08\\",\\n \\"ProjectList\\": {\\n \\"Project\\": [\\n {\\n \\"StorageLocation\\": \\"location_s\\",\\n \\"Status\\": \\"Normal\\",\\n \\"CreationTime\\": \\"2017-01-11T12:00:00Z\\",\\n \\"ModifiedTime\\": \\"2017-01-11T13:00:00Z\\",\\n \\"Description\\": \\"故事板测试工程001\\",\\n \\"CoverURL\\": \\"cover_url\\",\\n \\"ProjectId\\": \\"25cfc178d2de4*****e77aebed6afcd\\",\\n \\"Duration\\": 22.65,\\n \\"Title\\": \\"Video_150873681****\\",\\n \\"RegionId\\": \\"cn-shanghai\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n9262E3DA-07FA-48*****62-FCBB6BC61D08\\n2\\n\\n \\n Normal\\n 故事板测试工程001\\n 2017-01-11T13:00:00Z\\n 2017-01-11T12:00:00Z\\n 25cfc178d2de4*****e77aebed6afcd\\n 视频_150873681****\\n 22.65\\n cover_url\\n cn-shanghai\\n location_s\\n \\n\\n","errorExample":""}]',
'title' => 'SearchEditingProject',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-16T02:19:09.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:15:14.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SearchEditingProject'],
],
],
'ramActions' => [
[
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:SearchEditingProject',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'SearchMedia' => [
'summary' => 'This operation searches for media assets in ApsaraVideo VOD, such as videos, audio, and images. You can call this operation and use the media search protocol to perform multi-dimensional searches. You can specify the fields to return, perform exact matches, fuzzy queries, multi-value queries, and range queries, and specify the fields for sorting.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'deprecated' => false,
'systemTags' => [
'operationType' => 'list',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40118',
'abilityTreeNodes' => ['FEATUREvodCOT3DK'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'SearchType',
'in' => 'query',
'schema' => ['description' => 'The type of the media asset to search for. Valid values:'."\n"
."\n"
.'- **video** (default): video.'."\n"
."\n"
.'- **audio**: audio.'."\n"
."\n"
.'- **image**: image.'."\n"
."\n"
.'- **attached**: auxiliary media asset.'."\n"
."\n"
.'> If this parameter is set to **video** or **audio** and you need to traverse all data that meets the search criteria, you must set the ScrollToken parameter.', 'type' => 'string', 'required' => false, 'example' => 'video', 'title' => ''],
],
[
'name' => 'Fields',
'in' => 'query',
'schema' => ['description' => 'The media asset fields to return in the search results.'."\n"
."\n"
.'By default, only basic media asset fields are returned. You can specify more fields to return. For more information, see [Examples](~~99179~~).', 'type' => 'string', 'required' => false, 'example' => 'Title,CoverURL', 'title' => ''],
],
[
'name' => 'Match',
'in' => 'query',
'schema' => ['description' => 'The filter condition. For more information about the syntax, see [Search protocol syntax](~~86991~~).', 'type' => 'string', 'required' => false, 'example' => 'field = value', 'title' => ''],
],
[
'name' => 'SortBy',
'in' => 'query',
'schema' => ['description' => 'The sorting field and order. Separate multiple values with commas (,). Valid values:'."\n"
."\n"
.'- **CreationTime:Desc** (default): Sorts by creation time in descending order.'."\n"
."\n"
.'- **CreationTime:Asc**: Sorts by creation time in ascending order.'."\n"
."\n"
.'> * For more information about sorting fields, see [Sorting fields](~~99179~~).'."\n"
.'>'."\n"
.'> * When you retrieve the first 5,000 data records that meet the search criteria, you can specify up to three sorting fields.'."\n"
.'>'."\n"
.'> * When you retrieve all data that meets the search criteria, you can specify only one sorting field.', 'type' => 'string', 'required' => false, 'example' => 'CreationTime:Desc', 'title' => ''],
],
[
'name' => 'PageNo',
'in' => 'query',
'schema' => ['description' => 'The page number. The default value is **1**.'."\n"
."\n"
.'> If the value of this parameter exceeds **200**, we recommend that you also set the ScrollToken parameter.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'PageSize',
'in' => 'query',
'schema' => ['description' => 'The number of data records to return on each page. The default value is **10**. The maximum value is **100**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''],
],
[
'name' => 'ScrollToken',
'in' => 'query',
'schema' => ['description' => 'The pagination token. It is a 32-character string.'."\n"
.'You do not need to set this parameter for the first search request. The server-side returns this parameter to mark the current position in the search results. Record the returned value. For the next search, set this parameter as required or recommended:'."\n"
."\n"
.'- If the SearchType parameter is set to **video** or **audio** and you need to traverse all data that meets the search criteria, you must set this parameter.'."\n"
."\n"
.'- If the value of the PageNo parameter exceeds **200**, we recommend that you set this parameter to optimize search performance.', 'type' => 'string', 'required' => false, 'example' => '24e0fba7188fae707e146esa54****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '3E0CEF83-FB09-4E34-BA1451814B03****', 'title' => ''],
'Total' => ['description' => 'The total number of media assets that meet the search criteria.', 'type' => 'integer', 'format' => 'int64', 'example' => '10', 'title' => ''],
'ScrollToken' => ['description' => 'The pagination token.', 'type' => 'string', 'example' => '24e0fba7188fae707e146esa54****', 'title' => ''],
'MediaList' => [
'description' => 'The list of media assets.',
'type' => 'array',
'items' => [
'description' => 'The details of the media asset.',
'type' => 'object',
'properties' => [
'CreationTime' => ['description' => 'The time when the media asset was created. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format in UTC.', 'type' => 'string', 'example' => '2018-07-19T03:45:25Z', 'title' => ''],
'MediaType' => ['description' => 'The type of the media asset. Valid values:'."\n"
."\n"
.'- **video**: video.'."\n"
."\n"
.'- **audio**: audio.'."\n"
."\n"
.'- **image**: image.'."\n"
."\n"
.'- **attached**: auxiliary media asset.', 'type' => 'string', 'example' => 'video', 'title' => ''],
'MediaId' => ['description' => 'The ID of the media asset.', 'type' => 'string', 'example' => 'a82a2cd7d4e147bbed6c1ee372****', 'title' => ''],
'Video' => [
'description' => 'The [video information](~~86991~~).',
'type' => 'object',
'properties' => [
'Status' => ['description' => 'The status. Valid values:'."\n"
."\n"
.'- **Uploading**: The video is being uploaded.'."\n"
."\n"
.'- **UploadFail**: The video failed to be uploaded.'."\n"
."\n"
.'- **UploadSucc**: The video was uploaded.'."\n"
."\n"
.'- **Transcoding**: The video is being transcoded.'."\n"
."\n"
.'- **TranscodeFail**: The video failed to be transcoded.'."\n"
."\n"
.'- **Blocked**: The video is blocked.'."\n"
."\n"
.'- **Normal**: The video is in a normal state.', 'type' => 'string', 'example' => 'UploadSucc', 'title' => ''],
'CreationTime' => ['description' => 'The time when the video information was created. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format in UTC.', 'type' => 'string', 'example' => '2018-07-19T03:45:25Z', 'title' => ''],
'StorageLocation' => ['description' => 'The storage region.', 'type' => 'string', 'example' => 'outin-bfefbb90a47c******163e1c7426.oss-cn-shanghai.aliyuncs.com', 'title' => ''],
'CateId' => ['description' => 'The category ID.', 'type' => 'integer', 'format' => 'int64', 'example' => '10000123', 'title' => ''],
'Tags' => ['description' => 'The video tags.', 'type' => 'string', 'example' => 'tag1', 'title' => ''],
'ModificationTime' => ['description' => 'The time when the video information was last updated. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format in UTC.', 'type' => 'string', 'example' => '2018-07-19T03:48:25Z', 'title' => ''],
'MediaSource' => ['description' => 'The source. Valid values:'."\n"
."\n"
.'- **general**: VOD upload.'."\n"
."\n"
.'- **short\\_video**: Short video SDK.'."\n"
."\n"
.'- **editing**: Video editing and production.'."\n"
."\n"
.'- **live**: Live stream recording.', 'type' => 'string', 'example' => 'general', 'title' => ''],
'Description' => ['description' => 'The video description.', 'type' => 'string', 'example' => 'Alibaba Cloud VOD video description', 'title' => ''],
'AppId' => ['description' => 'The application ID.', 'type' => 'string', 'example' => 'app-****', 'title' => ''],
'CoverURL' => ['description' => 'The thumbnail URL.', 'type' => 'string', 'example' => 'https://example.aliyundoc.com/image01.png', 'title' => ''],
'VideoId' => ['description' => 'The video ID.', 'type' => 'string', 'example' => 'a82a2asdasqadaf3faa0ed6c1ee372****', 'title' => ''],
'DownloadSwitch' => ['description' => 'The download switch. Offline download is allowed only when the switch is turned on. Valid values:'."\n"
."\n"
.'- **on**: The initial state. Offline download is allowed.'."\n"
."\n"
.'- **off**: Offline download is disabled.', 'type' => 'string', 'example' => 'on', 'title' => ''],
'CateName' => ['description' => 'The category name.', 'type' => 'string', 'example' => 'video1', 'title' => ''],
'TranscodeMode' => ['description' => 'The transcoding mode. Valid values:'."\n"
."\n"
.'- **FastTranscode** (Normal transcoding): The default mode. Transcoding starts immediately after the upload is complete. Playback is available after transcoding is complete.'."\n"
."\n"
.'- **NoTranscode** (Distribute without transcoding): No transcoding is performed after the upload is complete. Playback is available immediately.'."\n"
."\n"
.'- **AsyncTranscode** (Distribute upon upload and transcode asynchronously): Playback is available immediately after the upload is complete. Transcoding is performed asynchronously.', 'type' => 'string', 'example' => 'FastTranscode', 'title' => ''],
'PreprocessStatus' => ['description' => 'The pre-processing status. Valid values:'."\n"
."\n"
.'- **UnPreprocess**: Not pre-processed.'."\n"
."\n"
.'- **Preprocessing**: Pre-processing.'."\n"
."\n"
.'- **PreprocessSucceed**: Pre-processing succeeded.'."\n"
."\n"
.'- **PreprocessFailed**: Pre-processing failed.', 'type' => 'string', 'example' => 'Preprocessing', 'title' => ''],
'RestoreExpiration' => ['description' => 'The expiration time of the restored media asset.', 'type' => 'string', 'example' => '2023-03-30T10:14:14Z', 'title' => ''],
'RestoreStatus' => ['description' => 'The restored state of the media asset. Valid values:'."\n"
."\n"
.'- **Processing**: Restoring.'."\n"
."\n"
.'- **Success**: Restored.'."\n"
."\n"
.'- **Failed**: Restoration failed.', 'type' => 'string', 'example' => 'Success', 'title' => ''],
'StorageClass' => ['description' => 'The storage class of the media asset. Valid values:'."\n"
."\n"
.'- **Standard**: Standard.'."\n"
."\n"
.'- **IA**: Infrequent Access (IA).'."\n"
."\n"
.'- **Archive**: Archive.'."\n"
."\n"
.'- **ColdArchive**: Cold Archive.'."\n"
."\n"
.'- **SourceIA**: Source IA.'."\n"
."\n"
.'- **SourceArchive**: Source Archive.'."\n"
."\n"
.'- **SourceColdArchive**: Source Cold Archive.'."\n"
."\n"
.'- **Changing**: The storage class is being changed.'."\n"
."\n"
.'- **SourceChanging**: The storage class of the source file is being changed.', 'type' => 'string', 'example' => 'Standard', 'title' => ''],
'Size' => ['description' => 'The video size.', 'type' => 'integer', 'format' => 'int64', 'example' => '123', 'title' => ''],
'Duration' => ['description' => 'The video duration. Unit: seconds.', 'type' => 'number', 'format' => 'float', 'example' => '123', 'title' => ''],
'Title' => ['description' => 'The video title.', 'type' => 'string', 'example' => 'Alibaba Cloud VOD Video Title', 'title' => ''],
'SpriteSnapshots' => [
'description' => 'The list of sprites.',
'type' => 'array',
'items' => ['description' => 'The list of sprites.', 'type' => 'string', 'example' => '{“http://example.aliyundoc.com/image02.jpg”}', 'title' => ''],
'title' => '',
'example' => '',
],
'Snapshots' => [
'description' => 'The list of automatically captured snapshots.',
'type' => 'array',
'items' => ['description' => 'The list of automatically captured snapshots.', 'type' => 'string', 'example' => '{“http://example.aliyundoc.com/image03.jpg”}', 'title' => ''],
'title' => '',
'example' => '',
],
'ReferenceId' => ['description' => 'The custom ID. It can contain lowercase letters, uppercase letters, digits, hyphens (-), and underscores (\\_). The ID must be 6 to 64 characters in length and unique for each user.', 'type' => 'string', 'example' => '123-123', 'title' => ''],
],
'title' => '',
'example' => '',
],
'Audio' => [
'description' => 'The [audio information](~~86991~~).',
'type' => 'object',
'properties' => [
'Status' => ['description' => 'The status. Valid values:'."\n"
."\n"
.'- **Uploading**: The audio is being uploaded.'."\n"
."\n"
.'- **Normal**: The audio is in a normal state.'."\n"
."\n"
.'- **UploadFail**: The audio failed to be uploaded.'."\n"
."\n"
.'- **Deleted**: The audio is deleted.', 'type' => 'string', 'example' => 'Normal', 'title' => ''],
'CreationTime' => ['description' => 'The time when the audio was created. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format in UTC.', 'type' => 'string', 'example' => '2018-07-19T03:45:25Z', 'title' => ''],
'StorageLocation' => ['description' => 'The storage region.', 'type' => 'string', 'example' => 'outin-aaa*****aa.oss-cn-shanghai.aliyuncs.com', 'title' => ''],
'CateId' => ['description' => 'The category ID.', 'type' => 'integer', 'format' => 'int64', 'example' => '10000123', 'title' => ''],
'Tags' => ['description' => 'The tags.', 'type' => 'string', 'example' => 'tag1,tag2', 'title' => ''],
'ModificationTime' => ['description' => 'The time when the audio was last updated. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format in UTC.', 'type' => 'string', 'example' => '2018-07-19T03:48:25Z', 'title' => ''],
'MediaSource' => ['description' => 'The source. Valid values:'."\n"
."\n"
.'- **general** (VOD upload): The file is uploaded using a normal method.'."\n"
."\n"
.'- **short\\_video** (Short video SDK): The file is uploaded to VOD using a short video SDK. For more information, see [Short video SDK](~~53407~~).'."\n"
."\n"
.'- **editing** (Online editing): The file is uploaded to VOD after it is synthesized using online editing. For more information, see [Video synthesis](~~68536~~).'."\n"
."\n"
.'- **live** (Live stream recording): The file is uploaded to VOD after it is recorded from a live stream.', 'type' => 'string', 'example' => 'general', 'title' => ''],
'Description' => ['description' => 'The description.', 'type' => 'string', 'example' => 'Alibaba Cloud VOD Audio Description', 'title' => ''],
'AppId' => ['description' => 'The application ID.', 'type' => 'string', 'example' => 'app-****', 'title' => ''],
'CoverURL' => ['description' => 'The thumbnail URL.', 'type' => 'string', 'example' => 'http://example.com/image04.jpg', 'title' => ''],
'AudioId' => ['description' => 'The audio ID.', 'type' => 'string', 'example' => 'a82a2cd7d4e147bbed6c1ee372****', 'title' => ''],
'DownloadSwitch' => ['description' => 'The download switch. Offline download is allowed only when the switch is turned on. Valid values:'."\n"
."\n"
.'- **on**: The initial state. Offline download is allowed.'."\n"
."\n"
.'- **off**: Offline download is disabled.', 'type' => 'string', 'example' => 'on', 'title' => ''],
'CateName' => ['description' => 'The category name.', 'type' => 'string', 'example' => 'cate1', 'title' => ''],
'TranscodeMode' => ['description' => 'The transcoding mode. Valid values:'."\n"
."\n"
.'- **FastTranscode** (Normal transcoding, default): Transcoding starts immediately after the upload is complete. Playback is available after transcoding is complete.'."\n"
."\n"
.'- **NoTranscode** (Distribute without transcoding): No transcoding is performed after the upload is complete. Playback is available immediately.'."\n"
."\n"
.'- **AsyncTranscode** (Distribute upon upload and transcode asynchronously): Playback is available immediately after the upload is complete. Transcoding is performed asynchronously.', 'type' => 'string', 'example' => 'FastTranscode', 'title' => ''],
'PreprocessStatus' => ['description' => 'The pre-processing status. Only pre-processed audio files can be used for live stream directing. Valid values:'."\n"
."\n"
.'- **UnPreprocess**: Not pre-processed.'."\n"
."\n"
.'- **Preprocessing**: Pre-processing.'."\n"
."\n"
.'- **PreprocessSucceed**: Pre-processing succeeded.'."\n"
."\n"
.'- **PreprocessFailed**: Pre-processing failed.', 'type' => 'string', 'example' => 'UnPreprocess', 'title' => ''],
'RestoreExpiration' => ['description' => 'The expiration time of the restored media asset.', 'type' => 'string', 'example' => '2023-03-30T10:14:14Z', 'title' => ''],
'RestoreStatus' => ['description' => 'The restored state of the media asset. Valid values:'."\n"
."\n"
.'- **Processing**: Restoring.'."\n"
."\n"
.'- **Success**: Restored.'."\n"
."\n"
.'- **Failed**: Restoration failed.', 'type' => 'string', 'example' => 'Success', 'title' => ''],
'StorageClass' => ['description' => 'The storage class of the media asset. Valid values:'."\n"
."\n"
.'- **Standard**: Standard.'."\n"
."\n"
.'- **IA**: IA.'."\n"
."\n"
.'- **Archive**: Archive.'."\n"
."\n"
.'- **ColdArchive**: Cold Archive.'."\n"
."\n"
.'- **SourceIA**: Source IA.'."\n"
."\n"
.'- **SourceArchive**: Source Archive.'."\n"
."\n"
.'- **SourceColdArchive**: Source Cold Archive.'."\n"
."\n"
.'- **Changing**: The storage class is being changed.', 'type' => 'string', 'example' => 'Standard', 'title' => ''],
'Size' => ['description' => 'The size.', 'type' => 'integer', 'format' => 'int64', 'example' => '123', 'title' => ''],
'Duration' => ['description' => 'The duration.', 'type' => 'number', 'format' => 'float', 'example' => '123', 'title' => ''],
'Title' => ['description' => 'The title.', 'type' => 'string', 'example' => 'Alibaba Cloud VOD Audio Title', 'title' => ''],
'SpriteSnapshots' => [
'description' => 'The list of sprites.',
'type' => 'array',
'items' => ['description' => 'The list of sprites.', 'type' => 'string', 'example' => '{“http://example.aliyundoc.com/image02.jpg”}', 'title' => ''],
'title' => '',
'example' => '',
],
'Snapshots' => [
'description' => 'The list of automatically captured snapshots.',
'type' => 'array',
'items' => ['description' => 'The list of automatically captured snapshots.', 'type' => 'string', 'example' => '{“http://example.aliyundoc.com/image03.jpg”}', 'title' => ''],
'title' => '',
'example' => '',
],
'ReferenceId' => ['description' => 'The custom ID. It can contain lowercase letters, uppercase letters, digits, hyphens (-), and underscores (\\_). The ID must be 6 to 64 characters in length and unique for each user.', 'type' => 'string', 'example' => '123-123', 'title' => ''],
],
'title' => '',
'example' => '',
],
'Image' => [
'description' => 'The [image information](~~86991~~).',
'type' => 'object',
'properties' => [
'StorageLocation' => ['description' => 'The storage region.', 'type' => 'string', 'example' => 'outin-bfefbb90a47c******163e1c7426.oss-cn-shanghai.aliyuncs.com', 'title' => ''],
'CreationTime' => ['description' => 'The time when the image was created. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format in UTC.', 'type' => 'string', 'example' => '2018-07-19T03:45:25Z', 'title' => ''],
'Status' => ['description' => 'The image status.'."\n"
."\n"
.'- **Uploading**: The initial state. The image is being uploaded.'."\n"
."\n"
.'- **Normal**: The image was uploaded.'."\n"
."\n"
.'- **UploadFail**: The image failed to be uploaded.', 'type' => 'string', 'example' => 'Uploading', 'title' => ''],
'CateId' => ['description' => 'The category ID.', 'type' => 'integer', 'format' => 'int64', 'example' => '1000123', 'title' => ''],
'Tags' => ['description' => 'The tags.', 'type' => 'string', 'example' => 'tag1', 'title' => ''],
'ModificationTime' => ['description' => 'The time when the image was last updated. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format in UTC.', 'type' => 'string', 'example' => '2018-07-19T03:48:25Z', 'title' => ''],
'CateName' => ['description' => 'The category name.', 'type' => 'string', 'example' => 'cate1', 'title' => ''],
'Description' => ['description' => 'The description.', 'type' => 'string', 'example' => 'Alibaba Cloud VOD Image Description', 'title' => ''],
'AppId' => ['description' => 'The application ID.', 'type' => 'string', 'example' => 'app-****', 'title' => ''],
'URL' => ['description' => 'The image URL.', 'type' => 'string', 'example' => 'https://example.com/****.png', 'title' => ''],
'Title' => ['description' => 'The title.', 'type' => 'string', 'example' => 'Alibaba Cloud VOD Image Title', 'title' => ''],
'ImageId' => ['description' => 'The image ID.', 'type' => 'string', 'example' => '11130843741se99wqmoes****', 'title' => ''],
],
'title' => '',
'example' => '',
],
'AttachedMedia' => [
'description' => 'The [auxiliary media asset information](~~86991~~).',
'type' => 'object',
'properties' => [
'CreationTime' => ['description' => 'The time when the asset was created. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format in UTC.', 'type' => 'string', 'example' => '2018-07-19T03:45:25Z', 'title' => ''],
'Status' => ['description' => 'The status. Valid values:'."\n"
."\n"
.'- **Uploading**: The initial state. The auxiliary media asset is being uploaded.'."\n"
."\n"
.'- **Normal**: The auxiliary media asset was uploaded.'."\n"
."\n"
.'- **UploadFail**: The auxiliary media asset failed to be uploaded.', 'type' => 'string', 'example' => 'Normal', 'title' => ''],
'StorageLocation' => ['description' => 'The storage region.', 'type' => 'string', 'example' => 'outin-bfefbb90a47c11*****7426.oss-cn-shanghai.aliyuncs.com', 'title' => ''],
'Tags' => ['description' => 'The tags.', 'type' => 'string', 'example' => 'tag1', 'title' => ''],
'ModificationTime' => ['description' => 'The time when the asset was last updated. The time is in the *yyyy-MM-dd*T*HH:mm:ss*Z format in UTC.', 'type' => 'string', 'example' => '2018-07-19T03:48:25Z', 'title' => ''],
'MediaId' => ['description' => 'The auxiliary media asset ID.', 'type' => 'string', 'example' => 'a82a2cd7d4e147ba0ed6c1ee372****', 'title' => ''],
'BusinessType' => ['description' => 'The business type. Valid values:'."\n"
."\n"
.'- **watermark**: watermark.'."\n"
."\n"
.'- **subtitle**: subtitle.'."\n"
."\n"
.'- **material**: material.', 'type' => 'string', 'example' => 'watermark', 'title' => ''],
'Description' => ['description' => 'The description.', 'type' => 'string', 'example' => 'Alibaba Cloud VOD-assisted media asset description', 'title' => ''],
'AppId' => ['description' => 'The application ID.', 'type' => 'string', 'example' => 'app-****', 'title' => ''],
'URL' => ['description' => 'The URL of the auxiliary media asset.', 'type' => 'string', 'example' => 'https://example.com/****.png', 'title' => ''],
'Title' => ['description' => 'The title.', 'type' => 'string', 'example' => 'Alibaba Cloud VOD-assisted media asset Title', 'title' => ''],
'Categories' => [
'description' => 'The list of category IDs.',
'type' => 'array',
'items' => [
'description' => 'The category details.',
'type' => 'object',
'properties' => [
'ParentId' => ['description' => 'The parent node ID.', 'type' => 'integer', 'format' => 'int64', 'example' => '-1', 'title' => ''],
'CateName' => ['description' => 'The category name.', 'type' => 'string', 'example' => 'cate1', 'title' => ''],
'CateId' => ['description' => 'The category ID.', 'type' => 'integer', 'format' => 'int64', 'example' => '10027394', 'title' => ''],
'Level' => ['description' => 'The category level.', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"3E0CEF83-FB09-4E34-BA1451814B03****\\",\\n \\"Total\\": 10,\\n \\"ScrollToken\\": \\"24e0fba7188fae707e146esa54****\\",\\n \\"MediaList\\": [\\n {\\n \\"CreationTime\\": \\"2018-07-19T03:45:25Z\\",\\n \\"MediaType\\": \\"video\\",\\n \\"MediaId\\": \\"a82a2cd7d4e147bbed6c1ee372****\\",\\n \\"Video\\": {\\n \\"Status\\": \\"UploadSucc\\",\\n \\"CreationTime\\": \\"2018-07-19T03:45:25Z\\",\\n \\"StorageLocation\\": \\"outin-bfefbb90a47c******163e1c7426.oss-cn-shanghai.aliyuncs.com\\",\\n \\"CateId\\": 10000123,\\n \\"Tags\\": \\"tag1\\",\\n \\"ModificationTime\\": \\"2018-07-19T03:48:25Z\\",\\n \\"MediaSource\\": \\"general\\",\\n \\"Description\\": \\"Alibaba Cloud VOD video description\\",\\n \\"AppId\\": \\"app-****\\",\\n \\"CoverURL\\": \\"https://example.aliyundoc.com/image01.png\\",\\n \\"VideoId\\": \\"a82a2asdasqadaf3faa0ed6c1ee372****\\",\\n \\"DownloadSwitch\\": \\"on\\",\\n \\"CateName\\": \\"video1\\",\\n \\"TranscodeMode\\": \\"FastTranscode\\",\\n \\"PreprocessStatus\\": \\"Preprocessing\\",\\n \\"RestoreExpiration\\": \\"2023-03-30T10:14:14Z\\",\\n \\"RestoreStatus\\": \\"Success\\",\\n \\"StorageClass\\": \\"Standard\\",\\n \\"Size\\": 123,\\n \\"Duration\\": 123,\\n \\"Title\\": \\"Alibaba Cloud VOD Video Title\\",\\n \\"SpriteSnapshots\\": [\\n \\"{“http://example.aliyundoc.com/image02.jpg”}\\"\\n ],\\n \\"Snapshots\\": [\\n \\"{“http://example.aliyundoc.com/image03.jpg”}\\"\\n ],\\n \\"ReferenceId\\": \\"123-123\\"\\n },\\n \\"Audio\\": {\\n \\"Status\\": \\"Normal\\",\\n \\"CreationTime\\": \\"2018-07-19T03:45:25Z\\",\\n \\"StorageLocation\\": \\"outin-aaa*****aa.oss-cn-shanghai.aliyuncs.com\\",\\n \\"CateId\\": 10000123,\\n \\"Tags\\": \\"tag1,tag2\\",\\n \\"ModificationTime\\": \\"2018-07-19T03:48:25Z\\",\\n \\"MediaSource\\": \\"general\\",\\n \\"Description\\": \\"Alibaba Cloud VOD Audio Description\\",\\n \\"AppId\\": \\"app-****\\",\\n \\"CoverURL\\": \\"http://example.com/image04.jpg\\",\\n \\"AudioId\\": \\"a82a2cd7d4e147bbed6c1ee372****\\",\\n \\"DownloadSwitch\\": \\"on\\",\\n \\"CateName\\": \\"cate1\\",\\n \\"TranscodeMode\\": \\"FastTranscode\\",\\n \\"PreprocessStatus\\": \\"UnPreprocess\\",\\n \\"RestoreExpiration\\": \\"2023-03-30T10:14:14Z\\",\\n \\"RestoreStatus\\": \\"Success\\",\\n \\"StorageClass\\": \\"Standard\\",\\n \\"Size\\": 123,\\n \\"Duration\\": 123,\\n \\"Title\\": \\"Alibaba Cloud VOD Audio Title\\",\\n \\"SpriteSnapshots\\": [\\n \\"{“http://example.aliyundoc.com/image02.jpg”}\\"\\n ],\\n \\"Snapshots\\": [\\n \\"{“http://example.aliyundoc.com/image03.jpg”}\\"\\n ],\\n \\"ReferenceId\\": \\"123-123\\"\\n },\\n \\"Image\\": {\\n \\"StorageLocation\\": \\"outin-bfefbb90a47c******163e1c7426.oss-cn-shanghai.aliyuncs.com\\",\\n \\"CreationTime\\": \\"2018-07-19T03:45:25Z\\",\\n \\"Status\\": \\"Uploading\\",\\n \\"CateId\\": 1000123,\\n \\"Tags\\": \\"tag1\\",\\n \\"ModificationTime\\": \\"2018-07-19T03:48:25Z\\",\\n \\"CateName\\": \\"cate1\\",\\n \\"Description\\": \\"Alibaba Cloud VOD Image Description\\",\\n \\"AppId\\": \\"app-****\\",\\n \\"URL\\": \\"https://example.com/****.png\\",\\n \\"Title\\": \\"Alibaba Cloud VOD Image Title\\",\\n \\"ImageId\\": \\"11130843741se99wqmoes****\\"\\n },\\n \\"AttachedMedia\\": {\\n \\"CreationTime\\": \\"2018-07-19T03:45:25Z\\",\\n \\"Status\\": \\"Normal\\",\\n \\"StorageLocation\\": \\"outin-bfefbb90a47c11*****7426.oss-cn-shanghai.aliyuncs.com\\",\\n \\"Tags\\": \\"tag1\\",\\n \\"ModificationTime\\": \\"2018-07-19T03:48:25Z\\",\\n \\"MediaId\\": \\"a82a2cd7d4e147ba0ed6c1ee372****\\",\\n \\"BusinessType\\": \\"watermark\\",\\n \\"Description\\": \\"Alibaba Cloud VOD-assisted media asset description\\",\\n \\"AppId\\": \\"app-****\\",\\n \\"URL\\": \\"https://example.com/****.png\\",\\n \\"Title\\": \\"Alibaba Cloud VOD-assisted media asset Title\\",\\n \\"Categories\\": [\\n {\\n \\"ParentId\\": -1,\\n \\"CateName\\": \\"cate1\\",\\n \\"CateId\\": 10027394,\\n \\"Level\\": 1\\n }\\n ]\\n }\\n }\\n ]\\n}","type":"json"}]',
'title' => 'SearchMedia',
'description' => 'For fields that support both exact match and fuzzy query, the results for other query types are based on the supported query method. For example, if a field supports only fuzzy query, a multi-value query on that field also returns results based on a fuzzy match.'."\n"
."\n"
.'The limits on the number of search results that you can retrieve are as follows:'."\n"
."\n"
.'- Method 1: Paging'."\n"
."\n"
.' You can traverse up to 5,000 search results by setting the PageNo (page number) and PageSize (number of records per page) parameters. If the number of search results exceeds 5,000, you must adjust the search conditions to narrow the result set. Note that this method cannot traverse the entire dataset. To traverse more data, see Method 2.'."\n"
."\n"
.'- Method 2: Full traversal (for audio and video search only)'."\n"
."\n"
.' This method applies only to audio and video searches and supports traversing all search results, up to a maximum of 2 million records. If the number of search results exceeds 2 million, you must add more filter conditions to reduce the result set. When you use this method, you must use the ScrollToken parameter in addition to the PageNo and PageSize parameters for paging. Note that you can traverse a maximum of 100 records backward at a time.'."\n"
.' The following example shows the paging logic when PageSize is set to 20:'."\n"
."\n"
.' - If PageNo is 1, you can query up to the next 5 pages of data.'."\n"
."\n"
.' - If PageNo is 2, you can query up to the next 6 pages of data.'."\n"
."\n"
.'You must set the paging parameters properly for your search and select the appropriate traversal method based on the size of the result set. To page through more than 1,000 records, use Method 2 for faster and more convenient data processing.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return. '."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| SortByExceededMax | The SortBy parameter only supports one sort field when traversing all data. | 400 | The error message returned because more than one sort field is specified to traverse all data. |'."\n"
.'| ErrorMatchSyntax | The parameter Match.%s has an error syntax, please check it. | 400 | The error message returned because the syntax of the Match parameter is invalid. Check the syntax and try again. |'."\n"
.'| InvalidScrollToken.Expired | The ScrollToken is expired, please refresh it. | 400 | The error message returned because the value of the ScrollToken parameter is invalid. Obtain data again from Page 1. |',
'changeSet' => [
['createdAt' => '2025-07-16T02:16:57.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:16:16.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SearchMedia'],
],
],
'ramActions' => [
[
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:SearchMedia',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'SetAppPlayKey' => [
'methods' => ['get', 'post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '39805',
'abilityTreeNodes' => ['FEATUREvodHJ3KAX'],
'autoTest' => true,
'tenantRelevance' => 'tenant',
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['type' => 'string', 'required' => false, 'description' => 'The application ID. The default value is **app-1000000**. For more information, see [Multi-application management](~~113600~~).', 'title' => '', 'example' => 'app-1000231'],
],
[
'name' => 'PlayKey',
'in' => 'query',
'schema' => ['type' => 'string', 'description' => 'The playback key.'."\n"
."\n"
.'- The key must be 8 to 20 characters in length and can contain only uppercase letters, lowercase letters, and digits.'."\n"
."\n"
.'- The key must be UTF-8 encoded.', 'required' => false, 'title' => '', 'example' => 'yzNgTUtAl6HAuosIA'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['type' => 'string', 'description' => 'The request ID.', 'title' => '', 'example' => '25818875-5F78-4A*****F6-D7393642CA58'],
],
'description' => '',
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'SetAppPlayKey',
'summary' => 'Sets the playback key for an application.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:SetAppPlayKey',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4A*****F6-D7393642CA58\\"\\n}","type":"json"}]',
],
'SetAuditSecurityIp' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'abilityTreeCode' => '40122',
'abilityTreeNodes' => ['FEATUREvodW76Z9M'],
],
'parameters' => [
[
'name' => 'SecurityGroupName',
'in' => 'query',
'schema' => ['description' => 'The name of the review security group. Default value: **Default**. You can specify a maximum of 10 review security groups.'."\n", 'type' => 'string', 'required' => false, 'example' => 'Default', 'title' => ''],
],
[
'name' => 'Ips',
'in' => 'query',
'schema' => ['description' => 'The IP addresses that you want to add to the review security group. You can add a maximum of 100 IP addresses to a review security group. Separate multiple IP addresses with commas (,). You can add IP addresses in the following formats to review security groups:'."\n"
."\n"
.'* IP address: 192.168.0.1'."\n"
.'* CIDR block: 192.168.0.1/24. /24 indicates that the prefix of the CIDR block is 24 bits in length. You can replace 24 with a value that ranges `from 1 to 32`.'."\n", 'type' => 'string', 'required' => true, 'example' => '192.168.0.1', 'title' => ''],
],
[
'name' => 'OperateMode',
'in' => 'query',
'schema' => ['description' => 'The operation type. Valid values:'."\n"
."\n"
.'* **Append** (default): adds the IP addresses to the original whitelist.'."\n"
.'* **Cover**: overwrites the original whitelist.'."\n"
.'* **Delete**: removes the IP addresses from the original whitelist.'."\n"
."\n"
.'> If the value that you specify is invalid, the default value is used.'."\n", 'type' => 'string', 'required' => false, 'example' => 'Cover', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned results.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4AF6-D7393642CA58****', 'title' => ''],
],
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'SetAuditSecurityIp',
'summary' => 'Sets IP addresses in review security groups.',
'description' => 'You can play videos in the Checking or Blocked state only from the IP addresses that are added to review security groups.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return. '."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| IpsIsEmpty | The specified "Ips" can not be empty. | 400 | The error message returned because the Ips parameter is not specified. |'."\n"
.'| IpsExceededMax | The specified Ips count has exceeded 100. | 403 | The error message returned because more than 100 IP addresses are added to a review security group. |'."\n"
.'| SecurityIpGroupExceededMax | The audit security group count has exceeded 10. | 403 | The error message returned because the number of review security groups exceeds the upper limit. |',
'changeSet' => [
['createdAt' => '2025-08-05T08:16:39.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:18:32.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:15:57.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetAuditSecurityIp'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:SetAuditSecurityIp',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4AF6-D7393642CA58****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 25818875-5F78-4AF6-D7393642CA58****\\n","errorExample":""}]',
],
'SetCrossdomainContent' => [
'summary' => 'Updates the cross-domain policy file crossdomain.xml.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40126',
'abilityTreeNodes' => ['FEATUREvodHI57GB'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'Content',
'in' => 'query',
'schema' => ['description' => 'The content of the cross-domain policy file. The file must be in the XML format and can contain up to 2,048 characters.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '<cross-domain-policy><allow-access-from domain="*"/><allow-http-request-headers-from domain="*" headers="*" secure="false"/></cross-domain-policy>', 'title' => ''],
],
[
'name' => 'StorageLocation',
'in' => 'query',
'schema' => ['description' => 'The URL of the Object Storage Service (OSS) bucket.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'outin-67870fd5b****1e98a3900163e1c35d5.oss-cn-shanghai.aliyuncs.com', 'title' => ''],
],
[
'name' => 'ResourceRealOwnerId',
'in' => 'query',
'schema' => ['description' => 'The ID of the resource owner.'."\n", 'type' => 'string', 'required' => false, 'example' => '3461111', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4A13-****-D7393642CA58', 'title' => ''],
],
'description' => '',
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4A13-****-D7393642CA58\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 25818875-5F78-4A13-****-D7393642CA58\\r\\n","errorExample":""}]',
'title' => 'SetCrossdomainContent',
'description' => '> After you use the cross-domain policy file to update the resources on the origin server, you must refresh the resources that are cached on Alibaba Cloud CDN nodes. You can use the ApsaraVideo VOD console to refresh resources. For more information, see [Refresh and prefetch](~~86098~~). Alternatively, you can call the [RefreshVodObjectCaches](~~69215~~) operation to refresh resources.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2025-07-16T02:19:08.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:17:26.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetCrossdomainContent'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:SetCrossdomainContent',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'SetDefaultAITemplate' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40130',
'abilityTreeNodes' => ['FEATUREvodW76Z9M'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'TemplateId',
'in' => 'query',
'schema' => ['description' => 'The ID of the AI template.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '1706a0063dd733f6a823ef32e0a5****'],
],
],
'responses' => [
200 => [
'schema' => [
'description' => '',
'type' => 'object',
'properties' => [
'TemplateId' => ['description' => 'The ID of the AI template.'."\n", 'type' => 'string', 'example' => '1706a0063dd733f6a823ef32e0a5****'],
'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '8E70E3F8-E2EE-47BC-4677-379D6F28****'],
],
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"TemplateId\\": \\"1706a0063dd733f6a823ef32e0a5****\\",\\n \\"RequestId\\": \\"8E70E3F8-E2EE-47BC-4677-379D6F28****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 1706a0063dd733f6a823ef32e0a5****\\n 8E70E3F8-E2EE-47BC-4677-379D6F28****\\n","errorExample":""}]',
'title' => 'SetDefaultAITemplate',
'summary' => 'Specifies an AI template as the default template.',
'description' => 'Specifies an AI template as the default template.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetDefaultAITemplate'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:SetDefaultAITemplate',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'SetDefaultTranscodeTemplateGroup' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40136',
'abilityTreeNodes' => ['FEATUREvodL077M7'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'TranscodeTemplateGroupId',
'in' => 'query',
'schema' => ['description' => 'The ID of the transcoding template group.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'd58079958be8d*****b699ab7ab6e1bf', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4A*****F6-D7393642CA58', 'title' => ''],
],
'description' => '',
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'SetDefaultTranscodeTemplateGroup',
'summary' => 'Specifies a transcoding template group as the default one.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return.'."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| InvalidTranscodeTemplateGroup.NotFound | The transcode template group does not exist. | 404 | The error message returned because the specified transcoding template group does not exist. |',
'changeSet' => [
['createdAt' => '2025-07-16T02:19:17.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:15:49.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetDefaultTranscodeTemplateGroup'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:SetDefaultTranscodeTemplateGroup',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4A*****F6-D7393642CA58\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 25818875-5F78-4A*****F6-D7393642CA58\\r\\n","errorExample":""}]',
],
'SetDefaultWatermark' => [
'summary' => 'Sets a watermark template as the default one.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40142',
'abilityTreeNodes' => ['FEATUREvodL077M7'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'WatermarkId',
'in' => 'query',
'schema' => ['description' => 'The ID of the watermark template. You can specify only one watermark template ID. You can obtain the ID by using one of the following methods:'."\n"
."\n"
.'* Obtain the watermark template ID from the response to the [AddWatermark](~~AddWatermark~~) operation that you call to create a watermark template.'."\n"
.'* Obtain the watermark template ID from the response to the [ListWatermark](~~ListWatermark~~) operation that you call to query all watermark templates within your account.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '9bcc8bfadb843f*****09a2671d0df97', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4A*****F6-D7393642CA58', 'title' => ''],
],
'description' => '',
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4A*****F6-D7393642CA58\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 25818875-5F78-4A*****F6-D7393642CA58\\r\\n","errorExample":""}]',
'title' => 'SetDefaultWatermark',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return.'."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| NoSuchResource | The specified resource %s does not exist. | 404 | The error message returned because the user-related resource does not exist. %s indicates the specific resource information. |',
'changeSet' => [
['createdAt' => '2025-07-16T02:19:09.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:15:14.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '2', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetDefaultWatermark'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:SetDefaultWatermark',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'SetEditingProjectMaterials' => [
'summary' => 'Specifies the media assets that you want to edit in an online editing project.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40146',
'abilityTreeNodes' => ['FEATUREvod89J0DP'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'ProjectId',
'in' => 'query',
'schema' => ['description' => 'The ID of the online editing project.'."\n", 'type' => 'string', 'required' => true, 'example' => 'fb2101bf24bf4*****754cb318787dc', 'title' => ''],
],
[
'name' => 'MaterialIds',
'in' => 'query',
'schema' => ['description' => 'The ID of the media asset. You can specify IDs of media assets such as videos, images, or auxiliary media assets. Separate multiple IDs with commas (,).'."\n", 'type' => 'string', 'required' => true, 'example' => '9e3101bf24bf41c*****123318788ca', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '746FFA07-8BBB-46*****B1-3E94E3B2915E', 'title' => ''],
],
'description' => '',
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'SetEditingProjectMaterials',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-16T02:18:38.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:15:37.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetEditingProjectMaterials'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:SetEditingProjectMaterials',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"746FFA07-8BBB-46*****B1-3E94E3B2915E\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 746FFA07-8BBB-46*****B1-3E94E3B2915E\\r\\n","errorExample":""}]',
],
'SetMessageCallback' => [
'summary' => 'You can call this operation to set the callback method, webhook address, and event type for event notifications.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40150',
'abilityTreeNodes' => ['FEATUREvod9NUA3V'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'CallbackType',
'in' => 'query',
'schema' => ['description' => 'The callback method. Valid values:'."\n"
."\n"
.'- **HTTP**'."\n"
.'- **Simple Message Queue (formerly MNS)**', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'HTTP'],
],
[
'name' => 'CallbackURL',
'in' => 'query',
'schema' => ['description' => 'The webhook address. This parameter is required if you set CallbackType to **HTTP**. The webhook address can be a maximum of 256 bytes in length. You cannot specify multiple webhook addresses.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'title' => '', 'example' => 'http://developer.aliyundoc.com'],
],
[
'name' => 'EventTypeList',
'in' => 'query',
'schema' => ['description' => 'The type of the callback event. If you leave this parameter empty, all event notifications are disabled. If you set this parameter to **ALL**, all event notifications are enabled. You can also specify event types to enable notifications. Separate multiple event types with commas (,). For information about the valid values, see [Event types](~~55627~~).'."\n"
."\n"
.''."\n"
."\n"
.'> The value of all AI-related events, such as AIMediaAuditComplete and AIMediaDNAComplete, is **AIComplete**.'."\n"
."\n"
.'', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'FileUploadComplete'],
],
[
'name' => 'AuthSwitch',
'in' => 'query',
'schema' => ['description' => 'The authentication switch for HTTP callbacks. This parameter is valid only when CallbackType is set to **HTTP**. Valid values:'."\n"
."\n"
.'- **on**: enabled'."\n"
.'- **off**: disabled', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'on'],
],
[
'name' => 'AuthKey',
'in' => 'query',
'schema' => ['description' => 'The authentication key. It can be up to 32 characters in length and must contain uppercase letters, lowercase letters, and digits. You can set this parameter when CallbackType is set to **HTTP**.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'Dsf346dvet'],
],
[
'name' => 'MnsEndpoint',
'in' => 'query',
'schema' => ['description' => 'The public endpoint of the MNS queue. This parameter is required if you set **CallbackType** to **Simple Message Queue (formerly MNS)**. You can log on to the [Message Service console](https://account.aliyun.com/login/login.html) and click Get Endpoint in the upper-right corner to obtain the endpoint. For more information, see [Endpoint](~~27480~~).', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'http://****.mns.cn-shanghai.aliyuncs.com/'],
],
[
'name' => 'MnsQueueName',
'in' => 'query',
'schema' => ['description' => 'The name of the MNS queue. You can log on to the [Message Service console](https://account.aliyun.com/login/login.html) and view the queue name in the Queue List. This parameter is required if you set CallbackType to **Simple Message Queue (formerly MNS)**.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'quene_name'],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the application. If you do not set this parameter, the ID of the default application is used, which is **app-1000000**.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'app-1000000'],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned results.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'title' => '', 'example' => '25818875-5F78-4AF6-D7393642CA58****'],
],
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'SetMessageCallback',
'description' => 'HTTP and MNS callbacks are supported. For more information, see [Event notifications](~~55627~~).'."\n"
."\n"
.'### QPS limit'."\n"
."\n"
.'The queries per second (QPS) limit for a single user on this operation is 15. If this limit is exceeded, API calls are throttled, which may affect your business. We recommend that you call this operation at a reasonable rate. For more information, see [QPS limits](~~342790~~).',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2025-07-16T02:19:09.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:15:48.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetMessageCallback'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:SetMessageCallback',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4AF6-D7393642CA58****\\"\\n}","type":"json"}]',
],
'SetVodDomainCertificate' => [
'summary' => 'Enables or disables the certificate of a domain name and modifies the certificate information.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40153',
'abilityTreeNodes' => ['FEATUREvodHI57GB'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The domain name that is secured by the certificate. The domain name must use HTTPS acceleration.'."\n", 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'CertName',
'in' => 'query',
'schema' => ['description' => 'The name of the certificate.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cert_name', 'title' => ''],
],
[
'name' => 'SSLProtocol',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to enable the SSL certificate. Default value: off. Valid values:'."\n"
."\n"
.'* **on**'."\n"
.'* **off**'."\n", 'type' => 'string', 'required' => true, 'example' => 'off', 'title' => ''],
],
[
'name' => 'SSLPub',
'in' => 'query',
'schema' => ['description' => 'The content of the certificate. This parameter is required only if you enable the SSL certificate.'."\n", 'type' => 'string', 'required' => false, 'example' => '****', 'title' => ''],
],
[
'name' => 'SSLPri',
'in' => 'query',
'schema' => ['description' => 'The private key. This parameter is required only if you enable the SSL certificate.'."\n", 'type' => 'string', 'required' => false, 'example' => '****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '04F0F334-1335-436C-****-6C044FE73368', 'title' => ''],
],
'description' => '',
'title' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidSSLProtocol.ValueNotSupported', 'errorMessage' => 'The specified value of parameter SSLProtocol is not supported.', 'description' => ''],
['errorCode' => 'SSLPub.MissingParameter', 'errorMessage' => 'An input parameter "SSLPub" that is mandatory for processing the request is not supplied.', 'description' => ''],
['errorCode' => 'SSLPri.MissingParameter', 'errorMessage' => 'An input parameter "SSLPri" that is mandatory for processing the request is not supplied.', 'description' => ''],
['errorCode' => 'InvalidSSLPub', 'errorMessage' => 'The SSLPub you provided is malformed!', 'description' => ''],
['errorCode' => 'InvalidSSLPri', 'errorMessage' => 'The SSLPri you provided is malformed!', 'description' => ''],
['errorCode' => 'Certificate.MissMatch', 'errorMessage' => 'The SSLPri does not math the specified Certificate!', 'description' => ''],
['errorCode' => 'InvalidCertificate.TooLong', 'errorMessage' => 'The Certificate you provided is over the max length!', 'description' => ''],
['errorCode' => 'InvalidCertName.TooLong', 'errorMessage' => 'The Certificate name you provided is over the max length 128!', 'description' => ''],
['errorCode' => 'Certificate.NotPermittedOff', 'errorMessage' => 'Turn off certificate will change domain scheduling, please contact customer service', 'description' => ''],
['errorCode' => 'Certificate.SetNotEffect', 'errorMessage' => 'Certificate was successfully set but doesn\'t take effect for protecting current service. Please contact customer service.', 'description' => ''],
['errorCode' => 'AuthenticationFailed', 'errorMessage' => 'Authentication failed.', 'description' => ''],
['errorCode' => 'SetDomainCertificate.ParameterError', 'errorMessage' => 'Parameters have error.', 'description' => ''],
['errorCode' => 'InvalidSSLPubOrInvalidSSLPri', 'errorMessage' => 'The SSLPri or SSLPub you provided is malformed!', 'description' => ''],
['errorCode' => 'Certificate.StatusError', 'errorMessage' => 'Certificate is not exist or its status is error.', 'description' => ''],
['errorCode' => 'DeleteFailed', 'errorMessage' => 'Delete certificate is failed.', 'description' => ''],
['errorCode' => 'Certificate.NotFind', 'errorMessage' => 'Not find the certificate info.', 'description' => ''],
['errorCode' => 'Certificate.Duplicated', 'errorMessage' => 'The certificate name is duplicated.', 'description' => 'The certificate name already exists.'],
['errorCode' => 'Certificate.FormatError', 'errorMessage' => 'The certificate format is error.', 'description' => ''],
['errorCode' => 'Certificate.KeyNull', 'errorMessage' => 'The private key is not null.', 'description' => ''],
['errorCode' => 'Key.Malformed', 'errorMessage' => 'The private key format is error.', 'description' => ''],
['errorCode' => 'CertStorage.failed', 'errorMessage' => 'The certificate storage failed.', 'description' => ''],
['errorCode' => 'CertificateContent.Duplicated', 'errorMessage' => 'The certificate is already uploaded, please don\'t upload again.', 'description' => ''],
['errorCode' => 'Certificate.Expired', 'errorMessage' => 'The certificate is expired.', 'description' => ''],
['errorCode' => 'InvalidDomain.notOnline', 'errorMessage' => 'The domain is not online, please check the domain status and try again later.', 'description' => ''],
['errorCode' => 'Decode.Error', 'errorMessage' => 'The certificate sslpub or sslpri decode error.', 'description' => ''],
['errorCode' => 'sslPub.Error', 'errorMessage' => 'The SSLPub encoded failed.', 'description' => ''],
['errorCode' => 'sslPri.Error', 'errorMessage' => 'The SSLPri encoded failed.', 'description' => ''],
['errorCode' => 'DomainInSafeMode', 'errorMessage' => 'This domain is in the safe mode. if you want to do this operation, please contact us!', 'description' => ''],
['errorCode' => 'DomainInProtectedMode', 'errorMessage' => 'This domain is in the protected mode. if you want to do this operation, please contact us!', 'description' => ''],
],
403 => [
['errorCode' => 'IllegalOperation', 'errorMessage' => 'Illegal domain operate is not permitted.', 'description' => ''],
['errorCode' => 'ServiceBusy', 'errorMessage' => 'The specified Domain is configuring, please retry later', 'description' => ''],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-****-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 04F0F334-1335-436C-****-6C044FE73368\\r\\n","errorExample":""}]',
'title' => 'SetVodDomainCertificate',
'description' => '> This operation is available only in the **China (Shanghai)** region.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the error codes that this operation can return.'."\n"
."\n"
.'|Error code|Error message|HTTP status code|Description|'."\n"
.'|---|---|---|---|'."\n"
.'|InvalidDomain.NotFound|The domain provided does not belong to you.|404|The error message returned because the specified domain name does not exist or does not belong to the current account.|'."\n"
.'|IllegalOperation|Illegal domain operate is not permitted.|403|The error message returned because you are not authorized to perform this operation.|'."\n"
.'|ServiceBusy|The specified Domain is configuring, please retry later.|403|The error message returned because the domain name is being configured. Try again later.|'."\n"
.'|InvalidDomain.Offline|The domain provided is offline.|400|The error message returned because the domain name is disabled.|'."\n"
.'|OperationDenied|Your CDN service is suspended.|403|The error message returned because your Alibaba Cloud account has overdue payments. Add funds to your account.|'."\n"
.'|InvalidSSLProtocol.ValueNotSupported|The specified value of parameter Enable is not supported.|400|The error message returned because the value of the SSLProtocol parameter is invalid.|'."\n"
.'|SSLPub.MissingParameter|An input parameter SSLPub that is mandatory for processing the request is not supplied.|400|The error message returned because the SSLPub parameter is not specified.|'."\n"
.'|SSLPri.MissingParameter|An input parameter SSLPri that is mandatory for processing the request is not supplied.|400|The error message returned because the SSLPri parameter is not specified.|'."\n"
.'|InvalidCertificate|The Certificate you provided is malformed!|400|The error message returned because the certificate content is invalid.|'."\n"
.'|InvalidSSLPri|The SSLPri you provided is malformed!|400|The error message returned because the private key is invalid.|'."\n"
.'|Certificate.MissMatch|The SSLPri does not math the specified Certificate!|400|The error message returned because the certificate and the private key do not match.|'."\n"
.'|InvalidCertificate.TooLong|The Certificate you provided is over the max length!|400|The error message returned because the length of the certificate content exceeds the upper limit.|'."\n"
.'|InvalidCertName.TooLong|The Certificate name you provided is over the max length 128!|400|The error message returned because the certificate name contains more than 128 characters.|'."\n"
.'|SetDomainSSLPub.ParameterError|Parameters have error.|400|The error message returned because one or more parameters are invalid.|'."\n"
.'|Certificate.StatusError|Certificate is not exist or its status is error.|400|The error message returned because the certificate does not exist or the certificate status is invalid.|'."\n"
.'|DeleteFailed|Delete certificate is failed.|400|The error message returned because the system failed to delete the specified certificate.|'."\n"
.'|Certificate.NotFind|Not find the certificate info.|400|The error message returned because the certificate was not found.|'."\n"
.'|Certificate.Duplicated|The certificate name is duplicated.|400|The error message returned because the certificate name already exists.|'."\n"
.'|Certificate.FormatError|The certificate format is error.|400|The error message returned because the certificate format is invalid.|'."\n"
.'|Certificate.StatusError|The certificate status is error.|400|The error message returned because the certificate status is invalid.|'."\n"
.'|Certificate.KeyNull|The SSLPri is not null.|400|The error message returned because the private key is not specified.|'."\n"
.'|SSLPri.Malformed|The SSLPri format is error.|400|The error message returned because the format of the private key is invalid.|'."\n"
.'|Certificate.NotPermittedOff|Turn off certificate will change domain scheduling, please contact customer service.|400|The error message returned because disabling the certificate may affect the scheduling of the domain name. Contact Customer Service.|'."\n"
.'|Certificate.SettedNotEffect|Certificate was successfully set but doesn\'t take effect for protecting current service, please contact customer service.|400|The error message returned because the certificate is configured but temporarily disabled to protect your service. To enable the certificate, contact Customer Service.|',
'changeSet' => [
['createdAt' => '2025-07-16T06:24:10.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T06:19:43.000Z', 'description' => 'OpenAPI offline'],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:SetVodDomainCertificate',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetVodDomainCertificate'],
],
],
],
'SetVodDomainSSLCertificate' => [
'summary' => 'This operation enables or disables the SSL certificate feature for a domain name and updates certificate information.',
'methods' => ['get', 'post'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '236821',
'abilityTreeNodes' => ['FEATUREvod0O92P0'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The accelerated domain name for ApsaraVideo VOD.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'example.com'],
],
[
'name' => 'CertName',
'in' => 'query',
'schema' => ['description' => 'The name of the certificate.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'cert_name'],
],
[
'name' => 'CertId',
'in' => 'query',
'schema' => ['description' => 'The ID of the certificate.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'title' => '', 'example' => '12342707'],
],
[
'name' => 'CertType',
'in' => 'query',
'allowEmptyValue' => true,
'schema' => [
'description' => 'The type of the certificate.'."\n"
."\n"
.'- **upload**: an uploaded certificate.'."\n"
.'- **cas**: a certificate that is purchased from Alibaba Cloud SSL Certificates Service.',
'type' => 'string',
'required' => false,
'enum' => ['cas', 'upload'],
'title' => '',
'example' => 'cas',
],
],
[
'name' => 'SSLProtocol',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to enable the HTTPS certificate. Valid values:'."\n"
."\n"
.'- **on**: enable.'."\n"
.'- **off**: disable.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'off'],
],
[
'name' => 'SSLPub',
'in' => 'query',
'schema' => ['description' => 'The content of the security certificate. You must specify this parameter to configure a certificate. You do not need to specify this parameter if you disable the certificate.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '****'],
],
[
'name' => 'SSLPri',
'in' => 'query',
'schema' => ['description' => 'The content of the private key. You must specify this parameter to configure a certificate. You do not need to specify this parameter if you disable the certificate.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '****'],
],
[
'name' => 'CertRegion',
'in' => 'query',
'schema' => ['description' => 'The region of the certificate. Valid values:'."\n"
."\n"
.'- **ap-southeast-1** (Singapore)'."\n"
.'- **cn-hangzhou** (Hangzhou)'."\n"
."\n"
.'The default value is **cn-hangzhou**.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'cn-hangzhou'],
],
[
'name' => 'Env',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to enable grayscale release for the certificate. Valid value: **staging**: enables grayscale release. If you do not set this parameter or set it to another value, the certificate is officially released.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'staging'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'title' => '', 'example' => 'F4C6D5BE-BF13-45*****6C-516EA8906DCD'],
],
'description' => '',
'title' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'InvalidSSLProtocol.ValueNotSupported', 'errorMessage' => 'The specified SSLProtocol is invalid.', 'description' => ''],
['errorCode' => 'SSLPub.MissingParameter', 'errorMessage' => 'The SSLPub parameter is required.', 'description' => ''],
['errorCode' => 'SSLPri.MissingParameter', 'errorMessage' => 'The SSLPri parameter is required.', 'description' => ''],
['errorCode' => 'InvalidSSLPub', 'errorMessage' => 'The specified SSLPub is invalid.', 'description' => ''],
['errorCode' => 'InvalidSSLPri', 'errorMessage' => 'The specified SSLPri is invalid.', 'description' => ''],
['errorCode' => 'Certificate.MissMatch', 'errorMessage' => 'The SSLPri does not match the certificate.', 'description' => ''],
['errorCode' => 'InvalidCertificate.TooLong', 'errorMessage' => 'The maximum length of the certificate is exceeded.', 'description' => ''],
['errorCode' => 'InvalidCertName.TooLong', 'errorMessage' => 'The length of the certificate name cannot exceed 128 characters.', 'description' => ''],
['errorCode' => 'AuthenticationFailed', 'errorMessage' => 'Error performing verification.', 'description' => ''],
['errorCode' => 'SetDomainCertificate.ParameterError', 'errorMessage' => 'The specified parameters are invalid.', 'description' => ''],
['errorCode' => 'Certificate.StatusError', 'errorMessage' => 'The status of the certificate is invalid.', 'description' => ''],
['errorCode' => 'DeleteFailed', 'errorMessage' => 'Error deleting the certificate.', 'description' => ''],
['errorCode' => 'Certificate.NotFind', 'errorMessage' => 'The certificate does not exist.', 'description' => ''],
['errorCode' => 'Certificate.Duplicated', 'errorMessage' => 'The certificate name already exists.', 'description' => ''],
['errorCode' => 'Certificate.FormatError', 'errorMessage' => 'The format of the certificate is invalid.', 'description' => ''],
['errorCode' => 'Certificate.KeyNull', 'errorMessage' => 'The private key is required.', 'description' => ''],
['errorCode' => 'Key.Malformed', 'errorMessage' => 'The specified Key format is invalid.', 'description' => ''],
['errorCode' => 'CertStorage.failed', 'errorMessage' => 'Error saving the certificate.', 'description' => ''],
['errorCode' => 'CertificateContent.Duplicated', 'errorMessage' => 'The certificate has been uploaded; do not upload again.', 'description' => ''],
['errorCode' => 'Certificate.Expired', 'errorMessage' => 'The certificate has expired.', 'description' => ''],
['errorCode' => 'InvalidDomain.notOnline', 'errorMessage' => 'The domain is offline. Check the status of the domain and try again later.', 'description' => ''],
['errorCode' => 'Decode.Error', 'errorMessage' => 'Error decoding the SSLPub or SSLPri certificate.', 'description' => ''],
['errorCode' => 'sslPub.Error', 'errorMessage' => 'Error encoding SSLPub.', 'description' => ''],
['errorCode' => 'sslPri.Error', 'errorMessage' => 'Error encoding SSLPri.', 'description' => ''],
['errorCode' => 'DomainInSafeMode', 'errorMessage' => 'The domain is in safe mode. To request permission, contact Customer Service.', 'description' => ''],
['errorCode' => 'CreateCertificateFailed', 'errorMessage' => 'Create certificate failed,please try again.', 'description' => ''],
['errorCode' => 'Abs.CertRegion.ValueNotSupported', 'errorMessage' => 'CertRegion is not supported.', 'description' => ''],
['errorCode' => 'CertNameAlreadyExists', 'errorMessage' => 'The CertName already exists.', 'description' => ''],
['errorCode' => 'InvalidDomain.Offline', 'errorMessage' => 'The domain provided is offline.', 'description' => ''],
['errorCode' => 'DomainOwnerVerifyFail', 'errorMessage' => 'Owner verification of the root domain failed.', 'description' => 'Failed to verify domain ownership.'],
],
403 => [
['errorCode' => 'DomainInProtectedMode', 'errorMessage' => 'The domain is in protection mode. To request permission, contact Customer Service.', 'description' => ''],
],
[
['errorCode' => 'CertName.MissingParameter', 'errorMessage' => 'You must specify CertName.', 'description' => ''],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F4C6D5BE-BF13-45*****6C-516EA8906DCD\\"\\n}","type":"json"}]',
'title' => 'SetVodDomainSSLCertificate',
'description' => '- This operation is available only in the **China (Shanghai)** region.'."\n"
.'- The rate limit for this operation is 30 calls per second per user.'."\n"
.'- The request method is POST.',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetVodDomainSSLCertificate'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:SetVodDomainSSLCertificate',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'SubmitAIImageAuditJob' => [
'summary' => 'Call this operation to submit an intelligent media moderation job for an image. After the job is submitted, it is processed asynchronously. The response does not mean the job is complete.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40163',
'abilityTreeNodes' => ['FEATUREvodIPBMLH'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'MediaId',
'in' => 'query',
'schema' => ['description' => 'The ID of the image.'."\n"
."\n"
.'This ID is returned after you upload the image to ApsaraVideo VOD.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'f1aa3024aee64*****6dc8ca20dbc320', 'title' => ''],
],
[
'name' => 'TemplateId',
'in' => 'query',
'schema' => ['description' => 'The ID of the AI template. You can obtain the ID in one of the following ways:'."\n"
."\n"
.'- Call the [Add AI template](~~102930~~) operation. The template ID is returned as TemplateId in the response.'."\n"
."\n"
.'- Call the [Query AI template list](~~102936~~) operation. The template ID is returned as TemplateId in the response.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'a07a7f7d7d10eb9fd999e56ecc****', 'title' => ''],
],
[
'name' => 'MediaAuditConfiguration',
'in' => 'query',
'schema' => ['description' => 'The configuration of the moderation job.'."\n"
."\n"
.'- Use this field to specify the type of the media file and adjust moderation rules for that type.'."\n"
."\n"
.'- The value of ResourceType can contain only letters, digits, and underscores (\\_).'."\n"
."\n"
.'> * You can customize the value of ResourceType. After customization, you must [fill out the Yida form](https://yida.alibaba-inc.com/o/ticketapply) and submit it to Alibaba Cloud. The custom value takes effect after Alibaba Cloud processes your submission.'."\n"
.'>'."\n"
.'> * To adjust the moderation criteria and rules for a specific ResourceType, you can [fill out the Yida form](https://yida.alibaba-inc.com/o/ticketapply) to request technical support.', 'type' => 'string', 'required' => false, 'example' => '{"ResourceType":"****_short_video"}', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned data.',
'type' => 'object',
'properties' => [
'JobId' => ['description' => 'The ID of the image moderation job.', 'type' => 'string', 'example' => 'b1aa3024aee64*****6dc8ca20dbc328', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '6F42D500-1956-4B*****30-C09E755F4F4B', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"b1aa3024aee64*****6dc8ca20dbc328\\",\\n \\"RequestId\\": \\"6F42D500-1956-4B*****30-C09E755F4F4B\\"\\n}","type":"json"}]',
'title' => 'SubmitAIImageAuditJob',
'description' => '- **Intelligent media moderation is a paid service. Before you call this operation, make sure that you fully understand the billing methods and pricing of ApsaraVideo VOD. For more information, see [Billing of intelligent media moderation](~~188310#section-g7l-s3o-9ng~~).To learn more, submit a ticket or contact your Alibaba Cloud account manager.**'."\n"
."\n"
.''."\n"
."\n"
.'- This operation is available only in the **China (Shanghai), China (Beijing), and Singapore** regions.'."\n"
."\n"
.'This operation is available only in the Singapore region.'."\n"
."\n"
.'- This is an [asynchronous API](~~3027551~~). After a task is submitted, the system returns a job ID and queues the job for asynchronous processing. The job is not complete when the initial response is returned. The final result is delivered through a [callback](~~454959~~). You can also call the [Query intelligent media moderation jobs](~~454959~~) operation to check the task status.'."\n"
."\n"
.'- An image cannot exceed 20 MB in size. Its height or width cannot exceed 30,000 pixels, and the total number of pixels cannot exceed 250 million.'."\n"
."\n"
.'- (Recommended) For best results, use an image with a resolution of at least 256 × 256 pixels. A lower resolution may affect the moderation accuracy.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-16T02:17:25.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:15:31.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SubmitAIImageAuditJob'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:SubmitAIImageAuditJob',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'SubmitAIImageJob' => [
'summary' => 'Submits an AI image processing job.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40165',
'abilityTreeNodes' => ['FEATUREvodIPBMLH'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'VideoId',
'in' => 'query',
'schema' => ['description' => 'The video ID. You can obtain the video ID in the following ways:'."\n"
."\n"
.'- To find the ID of a video uploaded from the console, log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com) and navigate to **Media Assets** > **Audio/Video**.'."\n"
."\n"
.'- If you upload a video by calling the [CreateUploadVideo](~~55407~~) operation, the video ID is the `VideoId` in the response.'."\n"
."\n"
.'- After you upload a video, call the [SearchMedia](~~86044~~) operation to query the video ID. The video ID is the `VideoId` in the response.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '357a8748c5774*****89d2726e6436aa', 'title' => ''],
],
[
'name' => 'AITemplateId',
'in' => 'query',
'schema' => ['description' => 'The AI image template ID. You can obtain the template ID in the following ways:'."\n"
."\n"
.'- If you create an image template by calling the [AddAITemplate](~~102930~~) operation, the template ID is the `TemplateId` in the response.'."\n"
."\n"
.'- After you create a template, you can call the [ListAITemplate](~~102936~~) operation to query the AI image template ID. The template ID is the `TemplateId` in the response.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ef1a8842cb9f*****cea80cad902e416', 'title' => ''],
],
[
'name' => 'UserData',
'in' => 'query',
'schema' => ['description' => 'Custom settings.'."\n"
."\n"
.'- The value must be a JSON string.'."\n"
."\n"
.'- The value must include the `MessageCallback` or `Extend` parameter.'."\n"
."\n"
.'- The maximum length is 512 bytes.'."\n"
."\n"
.'For more information about how to structure this parameter, see [UserData](~~86952~~).', 'type' => 'string', 'required' => false, 'example' => '{"Extend":{"localId":"****","test":"www"}}', 'title' => ''],
],
[
'name' => 'AIPipelineId',
'in' => 'query',
'schema' => ['description' => 'The AI pipeline ID.'."\n"
."\n"
.'> If you leave this parameter empty, the system uses a default pipeline ID. If you need to perform batch imports, you must use a dedicated pipeline. To request a dedicated pipeline, submit a ticket or contact Alibaba Cloud after-sales support. For more information about how to submit a ticket, see [Contact Us](~~464625~~).', 'type' => 'string', 'required' => false, 'example' => '6492025b8f*****6ba5bb755a33438', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response object.',
'type' => 'object',
'properties' => [
'JobId' => ['description' => 'The AI image processing job ID.', 'type' => 'string', 'example' => 'cf08a2c6e11e*****de1711b738b9067', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '218A6807-A21E-43*****54-C0512880B0B0', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"cf08a2c6e11e*****de1711b738b9067\\",\\n \\"RequestId\\": \\"218A6807-A21E-43*****54-C0512880B0B0\\"\\n}","type":"json"}]',
'title' => 'SubmitAIImageJob',
'description' => '- This operation is available in the following service regions: **China (Beijing)** and **China (Shanghai)**.'."\n"
."\n"
.'- This is an [asynchronous API](~~3027551~~). After you submit a job, the operation returns a job ID. The job is queued for asynchronous processing. The system delivers the result through a [callback notification](~~186923~~). You can also call the GetAIImageJobs operation to query the job status.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-16T02:17:58.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:15:13.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SubmitAIImageJob'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:SubmitAIImageJob',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'SubmitAIJob' => [
'summary' => 'Use this operation to submit a smart tag or video DNA job.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40167',
'abilityTreeNodes' => ['FEATUREvodW76Z9M'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'MediaId',
'in' => 'query',
'schema' => ['description' => 'The ID of the video. You can find the video ID in one of the following ways:'."\n"
."\n"
.'- For videos uploaded through the console, log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com) and choose **Media Library** > **Audio/Video** to view the video ID.'."\n"
."\n"
.'- The `VideoId` value returned by the [Get Upload URL and Credential](~~55407~~) operation.'."\n"
."\n"
.'- The `VideoId` value returned by the [Search for Media Information](~~86044~~) operation.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '3D3D12340d9401fab46a0b847****', 'title' => ''],
],
[
'name' => 'Types',
'in' => 'query',
'schema' => ['description' => 'The type of the AI job. Separate multiple job types with a comma (,). Valid values:'."\n"
."\n"
.'- **AIMediaDNA**: video DNA.'."\n"
."\n"
.'- **AIVideoTag**: smart tag.', 'type' => 'string', 'required' => false, 'example' => 'AIVideoTag', 'title' => ''],
],
[
'name' => 'Config',
'in' => 'query',
'schema' => ['description' => 'The AI job configurations, as a JSON-formatted string.'."\n"
."\n"
.'- If you set `Types` to `AIVideoTag`, you can configure `AnalyseTypes` in the `Config` parameter to specify the analysis algorithm for the smart tag job. Valid values:'."\n"
."\n"
.' - ASR (Automatic Speech Recognition): Extracts tags from spoken words in the video\'s audio.'."\n"
."\n"
.' - OCR (Optical Character Recognition): Extracts tags from text that appears in the video frames.'."\n"
."\n"
.'- If you set `Types` to `AIMediaDNA`, you can configure `DNADBId` in the `Config` parameter to specify the ID of the DNA fingerprint library for the video DNA job.', 'type' => 'string', 'required' => false, 'example' => '{"AIVideoTag": {"AnalyseTypes": "ASR"} }', 'title' => ''],
],
[
'name' => 'UserData',
'in' => 'query',
'schema' => ['description' => 'Custom settings as a JSON-formatted string. For more information about the parameter structure, see [UserData](~~86952#h2--userdata-div-id-userdata-div-3~~).', 'type' => 'string', 'required' => false, 'example' => '{"Extend":{"localId":"***","test":"www"}}', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '25818875-5F78-4A13-BEF6-D73936****', 'title' => ''],
'AIJobList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'AIJob' => [
'description' => 'A list of AI jobs.',
'type' => 'array',
'items' => [
'description' => 'The details of an AI job.',
'type' => 'object',
'properties' => [
'Type' => ['description' => 'The type of the AI job. Valid values:'."\n"
."\n"
.'- **AIMediaDNA**: video DNA.'."\n"
."\n"
.'- **AIVideoTag**: smart tag.', 'type' => 'string', 'example' => 'AIVideoTag', 'title' => ''],
'JobId' => ['description' => 'The ID of the AI job.', 'type' => 'string', 'example' => '9e82640c85114bf5af23edfaf****', 'title' => ''],
'MediaId' => ['description' => 'The ID of the video.', 'type' => 'string', 'example' => '3D3D12340d92c641401fab46a0b847****', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => 'A list of AI jobs.',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4A13-BEF6-D73936****\\",\\n \\"AIJobList\\": {\\n \\"AIJob\\": [\\n {\\n \\"Type\\": \\"AIVideoTag\\",\\n \\"JobId\\": \\"9e82640c85114bf5af23edfaf****\\",\\n \\"MediaId\\": \\"3D3D12340d92c641401fab46a0b847****\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
'title' => 'SubmitAIJob',
'description' => '- **Before using this operation, ensure you understand the billing methods and pricing for ApsaraVideo VOD. Both smart tag and video DNA are paid features. For more information, see [Video AI Billing](~~188310#section-g7l-s3o-9ng~~).**'."\n"
."\n"
.'- The video DNA feature is available in the following regions: **China (Beijing)**, **China (Shanghai)**, and **Singapore**. The smart tag feature is available in **China (Beijing)** and **China (Shanghai)**.'."\n"
."\n"
.'- This is an [asynchronous call](~~3027551~~). When you submit an AI job, the system returns a job ID and queues the job for background processing. To get the final results, we recommend you configure an [event notification](~~55627~~) for the **VideoAIComplete** event. Alternatively, you can call the [Get Job Details](~~2861326~~) operation to query the job status.'."\n"
."\n"
.'- To submit an AI job, you must first activate the video DNA or smart tag feature.'."\n"
."\n"
.'- The first time you use the video DNA feature, you must submit a ticket with your account UID and desired region to create a free DNA fingerprint library. Otherwise, the feature may not function correctly. For instructions on submitting a ticket, see [Contact us](~~464625~~).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-16T02:16:57.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:15:18.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SubmitAIJob'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:SubmitAIJob',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'SubmitAIMediaAuditJob' => [
'summary' => 'Submits an intelligent review job for an audio or video file. After submission, the job is processed asynchronously. A successful response means the job is queued, not that it is complete.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40168',
'abilityTreeNodes' => ['FEATUREvodW76Z9M'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'MediaId',
'in' => 'query',
'schema' => ['description' => 'The ID of the audio or video file. To obtain the ID, log in to the [ApsaraVideo VOD console](https://vod.console.aliyun.com) and navigate to **Review Management** > **Video Moderation**.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'fe028d09441afffb138cd7ee****', 'title' => ''],
],
[
'name' => 'TemplateId',
'in' => 'query',
'schema' => ['description' => 'The ID of the AI template. You can obtain the template ID in one of the following ways:'."\n"
."\n"
.'- Call the [AddAITemplate](~~102930~~) operation. The `TemplateId` in the response is the AI template ID.'."\n"
."\n"
.'- Call the [ListAITemplates](~~102936~~) operation to query for existing AI template IDs.'."\n"
."\n"
.'> If you omit this parameter, ApsaraVideo VOD uses the default AI template for intelligent review.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'a07a7f7d7d10eb9fd999e56ecc****', 'title' => ''],
],
[
'name' => 'UserData',
'in' => 'query',
'schema' => ['description' => 'The custom settings. This parameter must be a JSON string. Use this parameter to specify settings, such as a message callback. For more information, see [UserData](~~86952~~).'."\n"
."\n"
.'> To use the message callback feature, you must configure a callback URL and select the corresponding callback event type in the ApsaraVideo VOD console. Otherwise, the callback settings do not take effect. For more information about configuring HTTP callbacks, see [Callback settings](~~86071~~).', 'type' => 'string', 'required' => false, 'example' => '{"MessageCallback":{"CallbackURL":"http://test.test.com"},"Extend":{"localId":"xxx","test":"www"}}', 'title' => ''],
],
[
'name' => 'MediaType',
'in' => 'query',
'schema' => ['description' => 'The media type. Only **video** is supported.', 'type' => 'string', 'required' => false, 'example' => 'video', 'title' => ''],
],
[
'name' => 'MediaAuditConfiguration',
'in' => 'query',
'schema' => ['description' => 'Configurations for the review job.'."\n"
."\n"
.'- Additional configurations for the review job. Currently, only the `ResourceType` field is supported. Use this field to specify the media file type to adjust review standards and rules accordingly.'."\n"
."\n"
.'- To adjust the review standards and rules for a specific `ResourceType`, submit a ticket. For information about how to submit a ticket, see [Contact us](~~464625~~).'."\n"
."\n"
.'- The `ResourceType` value can contain only letters, digits, and underscores (\\_).', 'type' => 'string', 'required' => false, 'example' => '{"ResourceType":"****_movie"}', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'F4631053-8D9F-42B2-4A67281DB88E****', 'title' => ''],
'MediaId' => ['description' => 'The ID of the audio or video file.', 'type' => 'string', 'example' => 'fe028d09441afffb138cd7ee****', 'title' => ''],
'JobId' => ['description' => 'The job ID.', 'type' => 'string', 'example' => 'bdbc266af6893943a70176d92e99****', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F4631053-8D9F-42B2-4A67281DB88E****\\",\\n \\"MediaId\\": \\"fe028d09441afffb138cd7ee****\\",\\n \\"JobId\\": \\"bdbc266af6893943a70176d92e99****\\"\\n}","type":"json"}]',
'title' => 'SubmitAIMediaAuditJob',
'description' => '- **Before you call this operation, make sure you understand the billing methods and pricing of ApsaraVideo VOD. The intelligent review feature is a paid service. For more information, see [Billing of intelligent review](~~188310#section-g7l-s3o-9ng~~).submit a ticket or contact your account manager.**'."\n"
."\n"
.'- This operation is available only in the **China (Shanghai)**, **China (Beijing)**, and **Singapore** regions.'."\n"
."\n"
.'- This is an [asynchronous API](~~3027551~~). After you submit a job, a job ID is returned. The job is then processed asynchronously. The final result is delivered via a [callback](~~3027551~~). You can also call the [GetAIMediaAuditJob](~~454959~~) operation to query the job status.'."\n"
."\n"
.'- For guidelines on submitting intelligent review jobs, see [Intelligent review](~~101148~~).'."\n"
."\n"
.'- After an intelligent review job completes, ApsaraVideo VOD stores the generated image resources in a system bucket for two weeks free of charge. After this period, the resources are automatically deleted.',
'changeSet' => [
['createdAt' => '2025-07-16T02:18:38.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:15:28.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SubmitAIMediaAuditJob'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:SubmitAIMediaAuditJob',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'SubmitDigitalWatermarkExtractJob' => [
'summary' => 'Call this operation to submit a job to asynchronously extract a digital watermark. The watermark can be a copyright watermark or a tracing watermark.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => ['operationType' => 'create'],
'parameters' => [
[
'name' => 'MediaId',
'in' => 'query',
'schema' => ['description' => 'The ID of the video from which you want to extract the watermark. You can specify only one video ID. You can obtain the video ID in one of the following ways:'."\n"
."\n"
.'- Log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com). In the navigation pane, choose **Media Files** > **Audio/Video** to view the video ID.'."\n"
.'- Call the [SearchMedia](~~436559~~) operation. The video ID is the value of the VideoId parameter in the response.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'title' => '', 'example' => '0222e203cf80f9c22870a4d2c****'],
],
[
'name' => 'ExtractType',
'in' => 'query',
'schema' => ['description' => 'The type of the watermark that you want to extract. Valid values:'."\n"
."\n"
.'- **TraceMark**: tracing watermark.'."\n"
.'- **CopyrightMark**: copyright watermark.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'title' => '', 'example' => 'TraceMark'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'JobId' => ['description' => 'The ID of the watermark extraction job. You can use this ID to call the [GetDigitalWatermarkExtractResult](~~2587769~~) operation.', 'type' => 'string', 'title' => '', 'example' => 'ad90a501b1b9472374ad005046****'],
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'title' => '', 'example' => '04F0F334-1335-436C-****-6C044FE73368'],
],
'description' => '',
'title' => '',
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"ad90a501b1b9472374ad005046****\\",\\n \\"RequestId\\": \\"04F0F334-1335-436C-****-6C044FE73368\\"\\n}","type":"json"}]',
'title' => 'SubmitDigitalWatermarkExtractJob',
'description' => '- **Before you call this operation, make sure that you understand the billing methods and pricing for ApsaraVideo VOD. The digital watermark feature is a paid service, and you are charged for both generating and extracting digital watermarks. For more information about billing, see [Digital watermark billing](~~188310#62b9c940403se~~).**'."\n"
.'- This operation is supported only in the following regions: **China (Shanghai)** and **China (Beijing)**.'."\n"
.''."\n"
."\n"
.'- For more information about how to generate and extract digital watermarks, see '."\n"
."\n"
.' [Digital watermarks](~~2527021~~)'."\n"
."\n"
.' .'."\n"
."\n"
.''."\n"
."\n"
.' Before you submit a digital watermark extraction job, make sure that the following conditions are met:'."\n"
."\n"
.' - The video from which you want to extract the watermark is uploaded to ApsaraVideo VOD.'."\n"
.' - The video from which you want to extract the watermark is longer than 6 minutes.'."\n"
.'- After you submit a digital watermark extraction job, you can call the [GetDigitalWatermarkExtractResult](~~2587769~~) operation to query the job result.',
'changeSet' => [
['createdAt' => '2025-07-16T02:19:16.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:17:38.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SubmitDigitalWatermarkExtractJob'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:SubmitDigitalWatermarkExtractJob',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'SubmitDynamicImageJob' => [
'summary' => 'Call this operation to submit a dynamic image job for asynchronous processing.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40185',
'abilityTreeNodes' => ['FEATUREvodFAR72I'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'VideoId',
'in' => 'query',
'schema' => ['description' => 'The video ID. You can get the video ID in the following ways:'."\n"
."\n"
.'- Log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com). In the left-side navigation pane, choose **Media Files** > **Audio/Video** to view the video ID.'."\n"
."\n"
.'- The value of the `VideoId` parameter returned by the [CreateUploadVideo](~~55407~~) operation.'."\n"
."\n"
.'- The value of the `VideoId` parameter returned by the [SearchMedia](~~86044~~) operation, which you can call after the video is uploaded.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '7d2fbc3e273441bdb0e08e55f8****', 'title' => ''],
],
[
'name' => 'DynamicImageTemplateId',
'in' => 'query',
'schema' => ['description' => 'The dynamic image template ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '1a443dc52ef10abc4794d700*****', 'title' => ''],
],
[
'name' => 'OverrideParams',
'in' => 'query',
'schema' => ['description' => 'The override parameters, specified as a JSON string. For more information, see [OverrideParams](~~98618~~). For details on the settings that can be overridden, see [DynamicImageTemplateConfig](~~52839~~).', 'type' => 'string', 'required' => false, 'example' => '{"Watermarks":[{"Content":"UserID: 666**","WatermarkId":"8ca03c884944bd05efccc312367****"}]}', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response body.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '25818875-5F78-74A6-BEF6-D7393642****', 'title' => ''],
'DynamicImageJob' => [
'description' => 'The dynamic image job details.',
'type' => 'object',
'properties' => [
'JobId' => ['description' => 'The dynamic image job ID.', 'type' => 'string', 'example' => 'ad90a501b1bfb72374ad0050746****', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25818875-5F78-74A6-BEF6-D7393642****\\",\\n \\"DynamicImageJob\\": {\\n \\"JobId\\": \\"ad90a501b1bfb72374ad0050746****\\"\\n }\\n}","type":"json"}]',
'title' => 'SubmitDynamicImageJob',
'description' => '### Usage notes'."\n"
."\n"
.'- This is an [asynchronous interface](~~3027551~~). After you submit a job, the operation returns a job ID and queues it for asynchronous processing. The final result is sent through a callback notification, or you can query the job status by calling the [GetDynamicImageJob](~~2861326~~) operation.'."\n"
."\n"
.'- You can start a dynamic image job only for videos that are in the **Uploaded**, **Transcoding**, **Normal**, **UnderReview**, or **Blocked** state.'."\n"
."\n"
.'- The fees for generating dynamic images are included in transcoding costs and are calculated using the same standard, which is based on video resolution and duration. For more information, see [media transcoding billing](~~188308~~).'."\n"
."\n"
.'### QPS limit'."\n"
."\n"
.'The QPS limit for this operation is 30 queries per second (QPS) per user. The system throttles calls that exceed this limit, which may affect your business. Call this operation at a reasonable rate. For more information, see [QPS limits](~~342790~~).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## 接口错误码'."\n"
."\n"
.'下表列举了本接口特有的错误码。'."\n"
.'| 错误代码 | 错误信息 | HTTP 状态码 | 说明 |'."\n"
.'| ------------- |------------ | ----- | ------ |'."\n"
.'| InvalidVideo.NotFound |The video does not exist. |404 |视频不存在。|'."\n"
.'| NoSuchResource |The specified resource %s does not exist. |404 |用户相关的资源数据不存在, %s表示具体资源信息。|'."\n"
.'| Forbidden.IllegalStatus| Status of the video is illegal. |400 |视频状态无效。只有状态为**上传完成**、**转码中**、**正常**、**审核中**和**屏蔽**的视频才能发起动图作业。|',
'changeSet' => [
['createdAt' => '2025-07-16T02:18:32.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:15:31.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SubmitDynamicImageJob'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:SubmitDynamicImageJob',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'SubmitMediaDNADeleteJob' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40187',
'abilityTreeNodes' => ['FEATUREvod5413CB'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'MediaId',
'in' => 'query',
'schema' => ['description' => 'The ID of the video.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '656eaaa8c43a4597******1f09a36'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'e5b1a2e7bee******b632c2710b9423f'],
'JobId' => ['description' => 'The ID of the job.'."\n", 'type' => 'string', 'example' => '6805B2EC-CE87-****-8FF6-9C0E97719A26'],
],
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"e5b1a2e7bee******b632c2710b9423f\\",\\n \\"JobId\\": \\"6805B2EC-CE87-****-8FF6-9C0E97719A26\\"\\n}","errorExample":""},{"type":"xml","example":"\\ne5b1a2e7bee******b632c2710b9423f\\n6805B2EC-CE87-****-8FF6-9C0E97719A26\\n","errorExample":""}]',
'title' => 'SubmitMediaDNADeleteJob',
'summary' => 'Deletes a video fingerprinting job.',
'description' => 'Regions that support this operation: **China (Beijing)**, **China (Shanghai)**, and **Singapore**.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:SubmitMediaDNADeleteJob',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'SubmitPreprocessJobs' => [
'summary' => 'Use this operation to transcode videos for Caster.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40191',
'abilityTreeNodes' => ['FEATUREvodAFH3DF'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'VideoId',
'in' => 'query',
'schema' => ['description' => 'The video ID. You can get the video ID in one of the following ways:'."\n"
."\n"
.'- Log on to the [VOD Console](https://vod.console.aliyun.com) and navigate to **Media Library** > **Audio/Video** to find the video ID.'."\n"
."\n"
.'- After you upload a video by calling the [CreateUploadVideo](~~55407~~) operation, the video ID is returned in the `VideoId` parameter of the response.'."\n"
."\n"
.'- After you upload a video, you can call the [SearchMedia](~~86044~~) operation to find its ID. The ID is returned in the `VideoId` field of the response.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'd3e680e618708efbf2cae7cc9312****', 'title' => ''],
],
[
'name' => 'PreprocessType',
'in' => 'query',
'schema' => ['description' => 'The preprocessing type. Valid value: **LivePreprocess** (video preprocessing for Caster).', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'LivePreprocess', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'E4EBD2BF-5EB0-4476-8829-9D94E1B1****', 'title' => ''],
'PreprocessJobs' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'PreprocessJob' => [
'description' => 'The preprocessing jobs.',
'type' => 'array',
'items' => [
'description' => 'The details of a preprocessing job.',
'type' => 'object',
'properties' => [
'JobId' => ['description' => 'The job ID.', 'type' => 'string', 'example' => 'bb396607fd11fee9effbb99c4****', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"E4EBD2BF-5EB0-4476-8829-9D94E1B1****\\",\\n \\"PreprocessJobs\\": {\\n \\"PreprocessJob\\": [\\n {\\n \\"JobId\\": \\"bb396607fd11fee9effbb99c4****\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
'title' => 'SubmitPreprocessJobs',
'description' => '- This is an [asynchronous API](~~3027551~~). After you submit a job, the operation returns a job ID. The job is then queued for asynchronous processing. You can get the result from a callback or by calling the [GetMediaProducingJob](~~2861326~~) operation to query the job status.'."\n"
."\n"
.'- Video preprocessing is a transcoding process that prepares videos for playback in Caster. This process incurs **charges**. For more information about pricing, see [Alibaba Cloud Caster pricing](~~64531~~).'."\n"
."\n"
.'- To be preprocessed for Caster, an MP4 video with a shorter side of 360 pixels must meet at least one of the following conditions: a horizontal resolution greater than 1920 pixels, a bitrate greater than 6,000 kbps, or a frame rate greater than 25 fps.'."\n"
."\n"
.'- You can get the processing result from the [TranscodeComplete](~~55638~~) callback message. Video preprocessing is complete when the callback message contains **Preprocess=true**.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return.'."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| InvalidVideo.NotFound | The video does not exist. | 404 | The error message returned because the video does not exist. |'."\n"
.'| NoSuchResource | The specified resource %s does not exist. | 404 | The error message returned because the specified resource does not exist. |'."\n"
.'| Forbidden.IllegalStatus | Status of the video is illegal. | 400 | The error message returned because the video status is invalid. You can preprocess a video only in the **UploadSucces**, **Normal**, **Checking**, or **Transcoding** state. |',
'changeSet' => [
['createdAt' => '2025-07-16T02:19:17.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:14:50.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SubmitPreprocessJobs'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:SubmitPreprocessJobs',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'SubmitSnapshotJob' => [
'summary' => 'Call this operation to submit a snapshot job to asynchronously capture snapshots from a video.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40195',
'abilityTreeNodes' => ['FEATUREvodFAR72I'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'VideoId',
'in' => 'query',
'schema' => ['description' => 'The ID of the video. You can obtain the video ID in one of the following ways:'."\n"
."\n"
.'- Log in to the [ApsaraVideo for VOD console](https://vod.console.aliyun.com). In the left-side navigation pane, choose **Media Files** > **Audio/Video** to view the video ID.'."\n"
."\n"
.'- Get the VideoId from the response to the [CreateUploadVideo](~~55407~~) operation. This operation provides the upload URL and credentials.'."\n"
."\n"
.'- After a video is uploaded, get the VideoId from the response to the [SearchMedia](~~86044~~) operation.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'd3e680e618708efbf2cae7cc9312****', 'title' => ''],
],
[
'name' => 'SpecifiedOffsetTime',
'in' => 'query',
'schema' => ['description' => 'The start time for capturing the snapshot.'."\n"
."\n"
.'- Unit: milliseconds.'."\n"
."\n"
.'- Default value: **0**.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '0', 'title' => ''],
],
[
'name' => 'Width',
'in' => 'query',
'schema' => ['description' => 'The width of the snapshot, in pixels (px). Valid values: `[8,4096]`. The default is the width of the source video.', 'type' => 'string', 'required' => false, 'example' => '1280', 'title' => ''],
],
[
'name' => 'Height',
'in' => 'query',
'schema' => ['description' => 'The height of the snapshot, in pixels (px). Valid values: `[8,4096]`. The default is the height of the source video.', 'type' => 'string', 'required' => false, 'example' => '720', 'title' => ''],
],
[
'name' => 'Count',
'in' => 'query',
'schema' => ['description' => 'The number of snapshots to capture. Default value: **1**.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'Interval',
'in' => 'query',
'schema' => ['description' => 'The interval for capturing snapshots. The value must be **greater than or equal to 0**.'."\n"
."\n"
.'- Unit: seconds.'."\n"
."\n"
.'- Default value: **1**.'."\n"
."\n"
.'- If you set `Interval` to **0**, the system captures snapshots at even intervals based on the video duration and the value of `Count`.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1', 'title' => ''],
],
[
'name' => 'SpriteSnapshotConfig',
'in' => 'query',
'schema' => ['description' => 'The configuration for generating a [sprite](~~86952~~). If you specify this parameter, the system generates a sprite. For more information about the parameter structure, see [SpriteSnapshotConfig](~~86952~~).', 'type' => 'string', 'required' => false, 'example' => '{\'CellWidth\': 120, \'CellHeight\': 68, \'Columns\': 3,\'Lines\': 10, \'Padding\': 20, \'Margin\': 50}', 'title' => ''],
],
[
'name' => 'SnapshotTemplateId',
'in' => 'query',
'schema' => ['description' => 'The ID of the snapshot template.'."\n"
."\n"
.'- We recommend creating a [snapshot template](~~99406~~) before you specify its ID. For more information, see [AddVodTemplate](~~99406~~).'."\n"
."\n"
.'- If you specify `SnapshotTemplateId`, the system ignores all other request parameters except for `Action` and `VideoId`.', 'type' => 'string', 'required' => false, 'example' => 'f5b228fe693bf55bd87b789****', 'title' => ''],
],
[
'name' => 'UserData',
'in' => 'query',
'schema' => ['description' => 'Custom settings in JSON format. This parameter allows you to pass custom [user data](~~86952~~) and specify a [callback URL](~~86952~~). For more information about the parameter structure, see [UserData](~~86952~~).'."\n"
."\n"
.'> To use the message callback feature, you must first configure an HTTP callback URL and select the corresponding event types in the console. Otherwise, the callback settings will not take effect.', 'type' => 'string', 'required' => false, 'example' => '{"MessageCallback":{"CallbackURL":"http://.example.aliyundoc.com"},"Extend":{"localId":"xxx","example":"www"}}', 'title' => ''],
],
[
'name' => 'SpecifiedOffsetTimes',
'in' => 'query',
'style' => 'json',
'schema' => [
'description' => 'An array of specific time points in the video to capture snapshots. Unit: milliseconds. You can specify up to 30 time points.',
'type' => 'array',
'items' => ['description' => 'A specific time point, in milliseconds.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1000', 'title' => ''],
'required' => false,
'title' => '',
'example' => '',
],
],
[
'name' => 'ReferenceId',
'in' => 'query',
'schema' => ['description' => 'A custom ID that can contain lowercase letters, uppercase letters, digits, hyphens (-), and underscores (\\_). The ID must be 6 to 64 characters long and unique per user.', 'type' => 'string', 'example' => '123-123', 'title' => '', 'required' => false],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '25818875-5F78-5EB0-4AF6-D7393642****', 'title' => ''],
'SnapshotJob' => [
'description' => 'Information about the snapshot job.',
'type' => 'object',
'properties' => [
'JobId' => ['description' => 'The snapshot job ID.', 'type' => 'string', 'example' => 'ad90a501b1b94b72374ad0050464****', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25818875-5F78-5EB0-4AF6-D7393642****\\",\\n \\"SnapshotJob\\": {\\n \\"JobId\\": \\"ad90a501b1b94b72374ad0050464****\\"\\n }\\n}","type":"json"}]',
'title' => 'SubmitSnapshotJob',
'description' => '- This is an [asynchronous API](~~3027551~~). After you submit a job, a job ID is returned. The job is then queued for asynchronous processing. The final result is sent via a [callback notification](~~2861326~~). You can also call the [GetTask](~~2861326~~) operation to query the job status.'."\n"
."\n"
.'- Currently, only snapshots in JPG format are supported.'."\n"
."\n"
.'- When a snapshot job is complete, the system generates a [SnapshotComplete](~~57337~~) event notification with `EventType=SnapshotComplete` and `SubType=SpecifiedTime`.'."\n"
."\n"
.'### QPS limit'."\n"
."\n"
.'This operation has a limit of 30 queries per second (QPS) per user. The system subjects calls that exceed this limit to [rate limiting](~~342790~~), which may impact your business. Plan your calls accordingly. For more information, see [QPS limit](~~342790~~).',
'requestParamsDescription' => '> You must specify at least one of `Count` or `Interval`. If you specify both, the system uses the parameter that results in fewer snapshots.',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return. '."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| InvalidVideo.NotFound | The video does not exist. | 404 | The error message returned because the video does not exist. |'."\n"
.'| NoSuchResource | The specified resource %s does not exist. | 404 | The error message returned because the specified resource does not exist. |'."\n"
.'| Forbidden.IllegalStatus | Status of the video is illegal. | 400 | The error message returned because the video status is invalid. You can submit a snapshot job for a video only when the video is in the **UploadSucc**, **Normal**, **Checking**, or **Blocked** state. |',
'changeSet' => [
['createdAt' => '2025-07-16T02:20:00.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:15:36.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SubmitSnapshotJob'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:SubmitSnapshotJob',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'SubmitTranscodeJobs' => [
'summary' => 'Call this API to submit media transcoding jobs and start asynchronous transcoding.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40196',
'abilityTreeNodes' => ['FEATUREvodAFH3DF'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'VideoId',
'in' => 'query',
'schema' => ['description' => 'The ID of the video. You can get the video ID in one of the following ways:'."\n"
."\n"
.'- For videos uploaded to the ApsaraVideo VOD console, log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com) and choose **Media Files** > **Audio/Video** to view the video ID.'."\n"
."\n"
.'- When you upload a video by calling the [CreateUploadVideo](~~55407~~) API, the video ID is the value of the `VideoId` parameter in the response.'."\n"
."\n"
.'- After a video is uploaded, you can call the [SearchMedia](~~86044~~) API to query the video ID, which is the value of the `VideoId` parameter in the response.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '142710f878bd42508932f660d7b1****', 'title' => ''],
],
[
'name' => 'TemplateGroupId',
'in' => 'query',
'schema' => ['description' => 'The ID of the transcoding template group to use for media transcoding. To view the template group ID, log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com) and choose **Configuration Management** >**Media Processing Settings** > **Transcoding Template Group**.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '0e408c803baf658ee637790c5d9f****', 'title' => ''],
],
[
'name' => 'PipelineId',
'in' => 'query',
'schema' => ['description' => 'The ID of the pipeline.', 'type' => 'string', 'required' => false, 'example' => 'd3e680e618708erf45fbf2cae7c****', 'title' => ''],
],
[
'name' => 'EncryptConfig',
'in' => 'query',
'schema' => ['description' => 'The encryption configuration, specified as a JSON string. This parameter is required only for HLS standard encryption.'."\n"
."\n"
.'> - The **CipherText** parameter in the [EncryptConfig](~~86952~~) structure must be an AES\\_128 ciphertext key generated by calling the [GenerateKMSDataKey](~~455051~~) API. Otherwise, the HLS standard encryption transcoding job fails. For more information about how to implement HLS standard encryption, see [HLS Standard Encryption](~~68612~~).'."\n"
.'>'."\n"
.'> - For both HLS standard encryption and private encryption, you must select the HLS encryption option in the template that corresponds to the specified **TemplateGroupId**. Otherwise, the output video is not encrypted.', 'type' => 'string', 'required' => false, 'example' => '{"CipherText":"ZjJmZGViNzUtZWY1Mi00Y2RlLTk3****", "DecryptKeyUri":"http://demo.aliyundoc.com?CipherText=ZjJmZGViNzUtZWY1Mi00Y2RlLTk3****","KeyServiceType":"KMS"}', 'title' => ''],
],
[
'name' => 'OverrideParams',
'in' => 'query',
'schema' => ['description' => 'Override parameters, specified as a JSON string. You can use this parameter to override settings in the transcoding template, including the image watermark file, text watermark content, subtitle file URL, and subtitle file encoding format. For details about the parameter structure, see [OverrideParams](~~98618~~).', 'type' => 'string', 'required' => false, 'example' => '{"Watermarks":[{"WatermarkId":"af2afe4761992c47dae973374****","FileUrl":"http://developer.aliyundoc.com/image/image.png"},{"WatermarkId":"e8e5b8038d7ada85b376c2707****","Content":"watermark test"}]}', 'title' => ''],
],
[
'name' => 'Priority',
'in' => 'query',
'schema' => ['description' => 'The priority of the transcoding job in the queue.'."\n"
."\n"
.'- Valid values: **1** to **10**.'."\n"
."\n"
.'- A value of **10** indicates the highest priority.'."\n"
."\n"
.'- Default value: **6**.'."\n"
."\n"
.'> This parameter affects only the priority of the current transcoding job among all queued jobs. It does not affect the priority of jobs that are being processed.', 'type' => 'string', 'required' => false, 'example' => '6', 'title' => ''],
],
[
'name' => 'UserData',
'in' => 'query',
'schema' => ['description' => 'Custom settings, specified as a JSON string. You can configure settings such as message callbacks. For more information, see [UserData](~~86952~~).'."\n"
."\n"
.'> To use the message callback feature, you must first configure an HTTP callback URL and select the corresponding event types in the console. Otherwise, the callback settings do not take effect.', 'type' => 'string', 'required' => false, 'example' => '{"Extend":{"localId":"****","test":"***"}}', 'title' => ''],
],
[
'name' => 'SessionId',
'in' => 'query',
'schema' => ['description' => 'A custom idempotency key. If you submit a request with the same idempotency key within seven days, the request fails and an error is returned.'."\n"
.'The key can be up to 50 characters in length and can contain uppercase and lowercase letters, digits, hyphens (-), and underscores (\\_). If you do not specify this parameter or pass an empty string, the system does not deduplicate the request.', 'type' => 'string', 'required' => false, 'example' => '5c62d40299034bbaa4c195da330****', 'title' => ''],
],
[
'name' => 'ReferenceId',
'in' => 'query',
'schema' => ['description' => 'A custom ID that must be unique for each user. The ID can be 6 to 64 characters long and can contain lowercase letters, uppercase letters, digits, hyphens (-), and underscores (\\_).', 'type' => 'string', 'example' => '123-123', 'title' => '', 'required' => false],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response body.',
'type' => 'object',
'properties' => [
'TranscodeTaskId' => ['description' => 'The ID of the submitted transcoding task.', 'type' => 'string', 'example' => '9f4a0df7da2c8a81c8c0408c84****', 'title' => ''],
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'E4EBD2BF-5EB0-4476-8829-9D94E1B1****', 'title' => ''],
'TranscodeJobs' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'TranscodeJob' => [
'description' => 'Details of the media transcoding jobs.'."\n"
."\n"
.'> This parameter is not returned for HLS adaptive bitrate streaming packaging jobs. You must receive asynchronous callbacks to handle the results.',
'type' => 'array',
'items' => [
'description' => 'Details of a transcoding job.',
'type' => 'object',
'properties' => [
'JobId' => ['description' => 'The job ID.'."\n"
."\n"
.'> This parameter is not returned for HLS adaptive bitrate streaming packaging jobs. You must receive asynchronous callbacks to handle the results.', 'type' => 'string', 'example' => 'd8921ce8505716cfe86fb112c4****', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'description' => 'The list of transcoding jobs.',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TranscodeTaskId\\": \\"9f4a0df7da2c8a81c8c0408c84****\\",\\n \\"RequestId\\": \\"E4EBD2BF-5EB0-4476-8829-9D94E1B1****\\",\\n \\"TranscodeJobs\\": {\\n \\"TranscodeJob\\": [\\n {\\n \\"JobId\\": \\"d8921ce8505716cfe86fb112c4****\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
'title' => 'SubmitTranscodeJobs',
'description' => '### Usage notes'."\n"
."\n"
.'- **Media transcoding is a paid feature. Before you call this API, make sure that you are familiar with the billing methods and pricing of ApsaraVideo VOD. For more information, see [Media Transcoding Billing](~~188308#section-ejb-nii-nqa~~).**'."\n"
."\n"
.'- This is an [asynchronous API](~~3027551~~). The job is queued in the background for asynchronous processing. The result is sent through a callback. You can also query the job status by calling the [GetTaskDetails](~~454946~~) operation.'."\n"
."\n"
.'- You can start a transcoding job only for videos that are in the Uploaded, Normal, or Under Review state.'."\n"
."\n"
.'- To get the transcoding result, you can receive message callbacks for the following events: [Single Transcoding Job Complete](~~55636~~) and [All Transcoding Jobs Complete](~~55638~~).'."\n"
."\n"
.'- This API supports dynamic replacement of subtitle URLs in HLS adaptive bitrate streaming packaging jobs. If a packaging job does not require subtitle processing, do not use this API. Instead, specify the corresponding packaging template group ID when you upload the video to automatically trigger the packaging process.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return. '."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| InvalidVideo.NotFound | The video does not exist. | 404 | The error message returned because the video does not exist. |'."\n"
.'| NoSuchResource | The specified resource %s does not exist. | 404 | The error message returned because the user-related resource does not exist. %s indicates the specific resource information. |'."\n"
.'| Forbidden.IllegalStatus | Status of the video is illegal. | 400 | The error message returned because the video status is invalid. You can transcode a video only in the **UploadSucc**, **Normal**, or **Checking** state. |',
'changeSet' => [
['createdAt' => '2025-07-16T02:18:38.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:15:06.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SubmitTranscodeJobs'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:SubmitTranscodeJobs',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'SubmitWorkflowJob' => [
'summary' => 'Submits a workflow job to process a video.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40198',
'abilityTreeNodes' => ['FEATUREvodR23QUR'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'WorkflowId',
'in' => 'query',
'schema' => ['description' => 'The workflow ID. Log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com). In the left-side navigation pane, choose **Configuration** > **Media Processing** > **Workflows** to view the ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '34d577eade633860bdf1237****', 'title' => ''],
],
[
'name' => 'MediaId',
'in' => 'query',
'schema' => ['description' => 'The ID of the video. You can obtain the media ID in one of the following ways:'."\n"
."\n"
.'- Log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com) and choose **Media Library** > **Audio/Video** to view the media ID of a video uploaded through the console.'."\n"
."\n"
.'- If you call the [CreateUploadVideo](~~55407~~) operation to obtain an upload URL and credentials, the media ID is returned as the value of the VideoId parameter in the response.'."\n"
."\n"
.'- After a video is uploaded, you can call the [SearchMedia](~~86044~~) operation to query the media ID. The media ID is returned as the value of the VideoId parameter in the response.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '058b39e75269da42b08f00459****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response object.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'A01C8FF4-C106-4431-418F973DADB7****', 'title' => ''],
'TaskId' => ['description' => 'The ID of the workflow job. You can use this ID to check the job status by calling the GetTask operation.', 'type' => 'string', 'title' => '', 'example' => ''],
],
'title' => '',
'example' => '',
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"A01C8FF4-C106-4431-418F973DADB7****\\",\\n \\"TaskId\\": \\"\\"\\n}","type":"json"}]',
'title' => 'SubmitWorkflowJob',
'description' => '- **Important: Before you call this operation, understand the billing methods and pricing of ApsaraVideo VOD. Using a workflow may incur fees for features such as transcoding, encryption, and content moderation. For more information, see [ApsaraVideo VOD pricing](~~188307~~).**'."\n"
."\n"
.'- This operation is an [asynchronous API](~~3027551~~). After you submit the job, the API returns a task ID. The job is queued and runs asynchronously. The service delivers the final result through a callback. You can also query the task status by calling [GetTask](~~2861326~~).'."\n"
."\n"
.'- Use this operation to submit a workflow job for a video. For more information about workflows, see [Workflows](~~115347~~).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2025-07-16T02:18:38.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:14:52.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SubmitWorkflowJob'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:SubmitWorkflowJob',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'UpdateAITemplate' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40205',
'abilityTreeNodes' => ['FEATUREvodW76Z9M'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'TemplateId',
'in' => 'query',
'schema' => ['description' => 'The ID of the AI template. You can use one of the following methods to obtain the ID:'."\n"
."\n"
.'* Call the [AddAITemplate](~~102930~~) operation to add an AI template if no AI template exists. The value of TemplateId in the response is the ID of the AI template.'."\n"
.'* Call the [ListAITemplate](~~102936~~) operation if the template already exists. The value of TemplateId in the response is the ID of the AI template.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '1706a0063dd733f6a823ef32e0a5****'],
],
[
'name' => 'TemplateName',
'in' => 'query',
'schema' => ['description' => 'The name of the AI template. The name can be up to 128 bytes in length.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'DemoAITemplate'],
],
[
'name' => 'TemplateConfig',
'in' => 'query',
'schema' => ['description' => 'The detailed configurations of the AI template. The value is a JSON string. For more information, see [AITemplateConfig](~~89863#title-vd3-499-o36~~).'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '{"AuditItem":["terrorism","porn"],"AuditRange":["text-title","video"],"AuditContent":["screen"],"AuditAutoBlock":"yes"}'],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned result.'."\n",
'type' => 'object',
'properties' => [
'TemplateId' => ['description' => 'The ID of the template.'."\n", 'type' => 'string', 'example' => '1706a0063dd733f6a823ef32e0a5****'],
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4A13-BEF6-****'],
],
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"TemplateId\\": \\"1706a0063dd733f6a823ef32e0a5****\\",\\n \\"RequestId\\": \\"25818875-5F78-4A13-BEF6-****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 1706a0063dd733f6a823ef32e0a5****\\n 25818875-5F78-4A13-BEF6-****\\n","errorExample":""}]',
'title' => 'UpdateAITemplate',
'summary' => 'Modifies an AI template.',
'description' => '* Regions that support this operation: **China (Beijing)**, **China (Shanghai)**, and **Singapore**.'."\n"
.'* After you call the [AddAITemplate](~~102930~~) operation to add an AI template, you can call this operation to modify the AI template.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateAITemplate'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:UpdateAITemplate',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'UpdateAppInfo' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
'abilityTreeCode' => '40207',
'abilityTreeNodes' => ['FEATUREvodHJ3KAX'],
],
'parameters' => [
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The ID of the application.'."\n"
."\n"
.'* Default value: **app-1000000**.'."\n"
.'* For more information, see [Overview](~~113600~~).'."\n", 'type' => 'string', 'required' => true, 'example' => 'app-****'],
],
[
'name' => 'AppName',
'in' => 'query',
'schema' => ['description' => 'The name of the application.'."\n"
."\n"
.'* The name can contain up to 128 characters in length, including Chinese letters, digits, and periods (.), dash (-), and at character (@).'."\n"
.'* The name can contain only UTF-8 characters.'."\n", 'type' => 'string', 'required' => false, 'example' => 'test'],
],
[
'name' => 'Description',
'in' => 'query',
'schema' => ['description' => 'The description of the application.'."\n"
."\n"
.'* The description can contain up to 512 characters in length.'."\n"
.'* The description can contain only UTF-8 characters.'."\n", 'type' => 'string', 'required' => false, 'example' => 'my first app.'],
],
[
'name' => 'Status',
'in' => 'query',
'schema' => ['description' => 'The status of the application. Valid values:'."\n"
."\n"
.'* **Normal**'."\n"
.'* **Disable**'."\n", 'type' => 'string', 'required' => false, 'example' => 'Disable'],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned data.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4A13-DF45-D7393642****'],
],
],
],
],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4A13-DF45-D7393642****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 25818875-5F78-4A13-DF45-D7393642****\\n","errorExample":""}]',
'title' => 'UpdateAppInfo',
'summary' => 'Updates the information about an application.',
'description' => '## QPS limit'."\n"
."\n"
.'A single user can perform a maximum of 30 queries per second (QPS). Throttling is triggered when the number of calls per second exceeds the QPS limit. The throttling may affect your business. Thus, we recommend that you observe the QPS limit on this operation.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => 'The following table describes the common errors that this operation can return. For more information about errors common to all operations, see [Common errors](https://www.alibabacloud.com/help/en/apsaravideo-for-vod/latest/api-reference-error-codes). '."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| OperationDenied.NotOpenAppService | The app service is not open. | 403 | The error message returned because the multi-application service has not been activated. |'."\n"
.'| Forbidden.OperateApp | User not authorized to operate app. | 403 | The error message returned because you are not authorized to manage the application. |',
'changeSet' => [],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateAppInfo'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:UpdateAppInfo',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'UpdateAttachedMediaInfos' => [
'summary' => 'Modifies the information about multiple auxiliary media assets at a time. After you upload auxiliary media assets, such as images that contain watermarks, subtitle files, or other materials, to ApsaraVideo VOD, you can call this operation to update their titles, descriptions, tags, and categories at a time based on the unique identifiers (IDs) of the auxiliary media assets.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40211',
'abilityTreeNodes' => ['FEATUREvod7B2GUR'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'UpdateContent',
'in' => 'query',
'schema' => ['description' => 'The new information about the one or more images. You can modify the information about up to 20 auxiliary media assets at a time. For more information, see the **UpdateContent** section of this topic.'."\n"
."\n"
.'> * You cannot specify emojis for `Title`, `Description`, or `Tags`.'."\n"
.'> * The specific parameter of a video is updated only when a new value is passed in the parameter.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '[{"MediaId":"bbc65bba53f6ed90de118a7849****","Title":" title1","Description":" description1","Tags":" tag1, tag2"},{"MediaId":"f45cf4eba5cb90233389558c39****","Title2":" title","Description2":" description","Tags":" tag3, tag4"}]', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4DF6-D7393642CA58****', 'title' => ''],
'NonExistMediaIds' => [
'description' => 'The IDs of the auxiliary media assets that do not exist.'."\n",
'type' => 'array',
'items' => ['description' => 'The ID of the auxiliary media assets that does not exist.'."\n", 'type' => 'string', 'example' => '["bbc65bba53f6ed90de118a7849****"]', 'title' => ''],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4DF6-D7393642CA58****\\",\\n \\"NonExistMediaIds\\": [\\n \\"[\\\\\\"bbc65bba53f6ed90de118a7849****\\\\\\"]\\"\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 25818875-5F78-4DF6-D7393642CA58****\\n [\\"bbc65bba53f6ed90de118a7849****\\"]\\n","errorExample":""}]',
'title' => 'UpdateAttachedMediaInfos',
'description' => 'You can modify the information about up to 20 auxiliary media assets at a time.'."\n",
'requestParamsDescription' => '## UpdateContent'."\n"
."\n"
.'**Note** You must convert the UpdateContent parameter to a string before you pass it in.'."\n"
."\n"
.'|Parameter|Type|Required|Description|'."\n"
.'|---|---|---|---|'."\n"
.'|MediaId|String|Yes|The ID of the auxiliary media asset. You can obtain the ID from the response to the [CreateUploadAttachedMedia](~~CreateUploadAttachedMedia~~) operation.|'."\n"
.'|Title|String|No|The title. The title cannot exceed 128 bytes. The value must be encoded in UTF-8.|'."\n"
.'|Description|String|No|The description. The description can be up to 1,024 bytes in length. The value must be encoded in UTF-8.|'."\n"
.'|Tags|String|No|The tags. Each tag can be up to 32 bytes in length. You can specify up to 16 tags. Separate multiple tags with commas (,). The value must be encoded in UTF-8.|'."\n"
.'|CateIds|String|No|The ID of the category. Separate multiple IDs with commas (,). You can obtain the ID by using one of the following methods:Log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com). In the left-side navigation pane, choose **Configuration Management** > **Media Management** >**Categories**. On the page that appears, view the category ID.Obtain the category ID from the response to the [AddCategory](~~AddCategory~~) operation that you call to create a category.Obtain the category ID from the response to the [GetCategories](~~GetCategories~~) operation that you call to query categories.|',
'changeSet' => [
['createdAt' => '2025-07-16T02:19:09.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:14:52.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateAttachedMediaInfos'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:UpdateAttachedMediaInfos',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
],
'UpdateCategory' => [
'summary' => 'Updates the category name.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40213',
'abilityTreeNodes' => ['FEATUREvodUYOK6S'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'CateName',
'in' => 'query',
'schema' => ['description' => 'The name of the category.'."\n"
."\n"
.'* The value can be up to 64 bytes in length.'."\n"
.'* The value must be encoded in UTF-8.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'Landscape', 'title' => ''],
],
[
'name' => 'CateId',
'in' => 'query',
'schema' => ['description' => 'The ID of the category. You can specify only one ID. You can use one of the following methods to obtain the ID:'."\n"
."\n"
.'* Log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com). Choose **Configuration Management** > **Media Management** > **Categories**. On the **Audio and Video / Image Category** or **Short Video Material Category** tab, view the category ID.'."\n"
.'* Obtain the category ID from the response to the [AddCategory](~~AddCategory~~) operation.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => true, 'docRequired' => true, 'example' => '10020****', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4AF6-D7393642CA58****', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4AF6-D7393642CA58****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 25818875-5F78-4AF6-D7393642CA58****\\n","errorExample":""}]',
'title' => 'UpdateCategory',
'description' => 'After you create a category, you can call this operation to modify the name of the category. If you have classified specific media resources to this category, the category names that are labeled on the media resources are automatically updated.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return.'."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| InvalidCateId.NotFound | The CateId not exist. | 404 | The error message returned because the specified category ID does not exist. |',
'changeSet' => [
['createdAt' => '2025-07-16T02:18:32.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:15:04.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateCategory'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:UpdateCategory',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'UpdateEditingProject' => [
'summary' => 'Modifies an online editing project.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40219',
'abilityTreeNodes' => ['FEATUREvod7B2GUR'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'ProjectId',
'in' => 'query',
'schema' => ['description' => 'The ID of the online editing project.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '4ee4b97e27*****b525142a6b2', 'title' => ''],
],
[
'name' => 'Title',
'in' => 'query',
'schema' => ['description' => 'The title of the online editing project.'."\n", 'type' => 'string', 'required' => false, 'example' => 'testtimeline', 'title' => ''],
],
[
'name' => 'Timeline',
'in' => 'query',
'schema' => ['description' => 'The timeline of the online editing project. For more information about the structure, see [Timeline](~~52839~~).'."\n", 'type' => 'string', 'required' => false, 'example' => '{"VideoTracks":[{"VideoTrackClips":[{"MediaId":"cc3308ac500c*****a54328bc3443"},{"MediaId":"da87a9cff64*****d88bc6d8326e4"}]}]}', 'title' => ''],
],
[
'name' => 'Description',
'in' => 'query',
'schema' => ['description' => 'The description of the online editing project.'."\n", 'type' => 'string', 'required' => false, 'example' => 'testtimeline001desciption', 'title' => ''],
],
[
'name' => 'CoverURL',
'in' => 'query',
'schema' => ['description' => 'The thumbnail URL of the online editing project.'."\n", 'type' => 'string', 'required' => false, 'example' => 'https://****.com/6AB4D0E1E1C7446888****.png', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4A*****F6-D7393642CA58', 'title' => ''],
],
'description' => '',
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'UpdateEditingProject',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-16T02:19:17.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:14:51.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateEditingProject'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:UpdateEditingProject',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4A*****F6-D7393642CA58\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 25818875-5F78-4A*****F6-D7393642CA58\\r\\n","errorExample":""}]',
],
'UpdateImageInfos' => [
'summary' => 'Modifies the information about multiple images at a time. After you upload images to ApsaraVideo VOD, you can call this operation to update their titles, descriptions, tags, and categories at a time based on the IDs of the images.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40221',
'abilityTreeNodes' => ['FEATUREvod7B2GUR'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'UpdateContent',
'in' => 'query',
'schema' => ['description' => 'The new information about the one or more images. You can modify the information about up to 20 images at a time. For more information about the parameter structure, see the **UpdateContent** section.'."\n"
."\n"
.'> The values of the nested parameters Title, Description, and Tags under the UpdateContent parameter cannot contain emoticons.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '[{"ImageId":"ff8fe57e3461416c6a267a4e09****","Title":" title","Description":" description","Tags":" tag1, tag2"}]', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4AF6-D7393642CA58****', 'title' => ''],
'NonExistImageIds' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'ImageId' => [
'description' => 'The IDs of the images that do not exist.'."\n",
'type' => 'array',
'items' => ['description' => 'The ID of the image that do not exist.'."\n", 'type' => 'string', 'example' => 'f45cf4eba5c80233389558c39****', 'title' => ''],
'title' => '',
'example' => '',
],
],
'description' => '',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4AF6-D7393642CA58****\\",\\n \\"NonExistImageIds\\": {\\n \\"ImageId\\": [\\n \\"f45cf4eba5c80233389558c39****\\"\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 25818875-5F78-4AF6-D7393642CA58****\\n f45cf4eba5c80233389558c39****\\n","errorExample":""}]',
'title' => 'UpdateImageInfos',
'description' => '* You can call this operation to modify information such as the title, tags, description, and category about images based on image IDs. You must pass in the parameters that you want to modify. Otherwise, parameter configurations are not overwritten.'."\n"
.'* You can modify the information about up to 20 images at a time.'."\n",
'requestParamsDescription' => '## UpdateContent'."\n"
."\n"
.'**Note** You must convert the UpdateContent parameter to a string before you pass it in.'."\n"
."\n"
.'|Parameter|Type|Required|Description|'."\n"
.'|---|---|---|---|'."\n"
.'|ImageId|String|Yes|The ID of the image. You can obtain the ID by using one of the following methods:Log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com). In the left-side navigation pane, choose **Media Files** > **Image** to view the image ID.Obtain the image ID from the response to the [CreateUploadImage](~~CreateUploadImage~~) operation that you call to obtain the upload URL and credential.Obtain the image ID from the response to the [SearchMedia](~~SearchMedia~~) operation that you call to query images.|'."\n"
.'|Title|String|No|The title of the image. The title cannot exceed 128 bytes. The title must be encoded in UTF-8.|'."\n"
.'|Description|String|No|The description of the image. The description can be up to 1,024 bytes in length. The description must be encoded in UTF-8.|'."\n"
.'|Tags|String|No|The tags of the image. Each tag can be up to 32 bytes in length. You can specify up to 16 tags. Separate multiple tags with commas (,). The value must be encoded in UTF-8.|'."\n"
.'|CateId|Long|No|The ID of the category. To obtain the category ID, perform the following steps:Log on to the [ApsaraVideo VOD console](https://vod.console.aliyun.com). In the left-side navigation pane, choose **Configuration Management** > **Media Management** > **Categories**.Obtain the category ID from the response to the [AddCategory](~~AddCategory~~) operation that you call to create a category.Obtain the category ID from the response to the [GetCategories](~~GetCategories~~) operation that you call to query categories.|',
'changeSet' => [
['createdAt' => '2025-07-16T02:19:17.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:14:54.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateImageInfos'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:UpdateImageInfos',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseParamsDescription' => ' ',
],
'UpdateMediaStorageClass' => [
'summary' => 'Modifies the storage classes of media assets.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
'abilityTreeCode' => '171759',
'abilityTreeNodes' => ['FEATUREvodM1QLPK'],
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'MediaIds',
'in' => 'query',
'schema' => ['description' => 'The media asset ID. You can specify a maximum of 20 IDs. Separate multiple IDs with commas (,). You can use one of the following methods to obtain the ID:'."\n"
."\n"
.'* Log on to the [ApsaraVideo VOD](https://vod.console.aliyun.com) console. In the left-side navigation pane, choose **Media Files** > **Audio/Video**. On the Video and Audio page, you can view the ID of the media asset. This method is applicable to files that are uploaded by using the ApsaraVideo VOD console.'."\n"
.'* Obtain the value of the VideoId parameter from the response to the [CreateUploadVideo](~~55407~~) operation that you call to upload media assets.'."\n"
.'* Obtain the value of the VideoId parameter from the response to the [SearchMedia](~~86044~~) operation that you call to query the media ID after the media asset is uploaded.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'd56c2ac0cee271ed80004710b5ba****', 'title' => ''],
],
[
'name' => 'Scope',
'in' => 'query',
'schema' => ['description' => 'The modification range. Valid values:'."\n"
."\n"
.'* **All**: modifies the storage classes of all resources including the source files and transcoded streams.'."\n"
.'* **SourceFile**: modifies the storage classes of only the source files. The storage class of other resources is Standard.'."\n", 'type' => 'string', 'required' => false, 'example' => 'All', 'title' => ''],
],
[
'name' => 'StorageClass',
'in' => 'query',
'schema' => ['description' => 'The storage class. Valid values:'."\n"
."\n"
.'* **Standard**'."\n"
.'* **IA**'."\n"
.'* **Archive**'."\n"
.'* **ColdArchive**'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'Archive', 'title' => ''],
],
[
'name' => 'RestoreTier',
'in' => 'query',
'schema' => ['description' => 'The restoration priority. This parameter is required only when you restore a Cold Archive media asset. Valid values:'."\n"
."\n"
.'* **Expedited**'."\n"
.'* **Standard**'."\n"
.'* **Bulk**'."\n", 'type' => 'string', 'required' => false, 'example' => 'Standard', 'title' => ''],
],
[
'name' => 'AllowUpdateWithoutTimeLimit',
'in' => 'query',
'schema' => ['description' => 'Specifies whether to change the storage class of a media asset that is stored for less than the minimum storage duration. Valid values:'."\n"
."\n"
.'* **true**'."\n"
.'* **false**'."\n"
."\n"
.'> If you forcibly change the storage class of a media asset that is stored for less than the minimum storage duration, additional data retrieval fees are incurred.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '30FA0B7C-3A81-5449-93CD-ACA149E6****', 'title' => ''],
'Status' => ['description' => 'The state of the task. Valid values:'."\n"
."\n"
.'* **Processing**'."\n"
.'* **Failed**'."\n", 'type' => 'string', 'example' => 'Processing', 'title' => ''],
'IgnoredList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'MediaId' => [
'description' => 'The IDs of the media assets that failed to be obtained.'."\n",
'type' => 'array',
'items' => ['description' => 'The ID of the media asset that failed to be obtained.'."\n", 'type' => 'string', 'example' => '[\'19e231ee6e3e417fbf2e92ec2680****\']', 'title' => ''],
'title' => '',
],
],
'description' => '',
'title' => '',
],
'ForbiddenList' => [
'type' => 'object',
'itemNode' => true,
'properties' => [
'MediaForbiddenReasonDTO' => [
'description' => 'The IDs of the media assets that failed to be processed.'."\n",
'type' => 'array',
'items' => [
'description' => 'The information about the media asset that failed to be processed.'."\n",
'type' => 'object',
'properties' => [
'MediaId' => ['description' => 'The ID of the media asset.'."\n", 'type' => 'string', 'example' => '19e231ee6e3e417fbf2e92ec2680****', 'title' => ''],
'Reason' => ['description' => 'The reason for the failure.'."\n", 'type' => 'string', 'example' => 'TargetStorageClassInconsistent', 'title' => ''],
],
'title' => '',
],
'title' => '',
],
],
'description' => '',
'title' => '',
],
],
'title' => '',
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"30FA0B7C-3A81-5449-93CD-ACA149E6****\\",\\n \\"Status\\": \\"Processing\\",\\n \\"IgnoredList\\": {\\n \\"MediaId\\": [\\n \\"[\'19e231ee6e3e417fbf2e92ec2680****\']\\"\\n ]\\n },\\n \\"ForbiddenList\\": {\\n \\"MediaForbiddenReasonDTO\\": [\\n {\\n \\"MediaId\\": \\"19e231ee6e3e417fbf2e92ec2680****\\",\\n \\"Reason\\": \\"TargetStorageClassInconsistent\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
'title' => 'UpdateMediaStorageClass',
'description' => '* This operation is an asynchronous operation. You can call this operation to modify the storage classes of media assets. After the storage class is modified, a callback notification is sent.'."\n"
.'* If the storage class of the media asset is Archive or Cold Archive and you call this operation to modify the storage class of the media asset, the media asset is automatically restored before the storage class is modified. You do not need to call the RestoreMedia operation to restore the media asset. You must specify the restoration priority for Cold Archive objects. Default configuration: RestoreTier=Standard.'."\n"
.'* Media assets whose storage classes are being modified cannot be used or processed.'."\n"
.'* Non-Standard objects have minimum storage durations. If an object is stored for less than the minimum storage duration, the storage class of the object cannot be changed. The following content describes the minimum storage durations for objects in different storage classes: IA or IA storage for source files: 30 days, Archive or Archive storage for source files: 60 days, Cold Archive or Cold Archive for source files: 180 days.'."\n",
'requestParamsDescription' => 'You can specify the duration of the restored state and the restoration priority of a Cold Archive object. The duration of the restored state ranges from 1 to 365 days. The time required for object restoration varies based on the restoration priority:'."\n"
."\n"
.'* Expedited: The object is restored within one hour.'."\n"
.'* Standard: The object is restored within two to five hours.'."\n"
.'* Bulk: The object is restored in five to twelve hours.'."\n",
'changeSet' => [
['createdAt' => '2025-07-16T02:19:17.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:14:50.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateMediaStorageClass'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:UpdateMediaStorageClass',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'UpdateTranscodeTemplateGroup' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40227',
'abilityTreeNodes' => ['FEATUREvodL077M7'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'Name',
'in' => 'query',
'schema' => ['description' => 'The name of the transcoding template group.'."\n"
."\n"
.'- The name cannot exceed 128 bytes.'."\n"
."\n"
.'- The value is encoded in UTF-8.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'transcodetemplate'],
],
[
'name' => 'TranscodeTemplateList',
'in' => 'query',
'schema' => ['description' => 'The configurations of the transcoding template. The value must be a JSON string. For more information about the parameter structure, see [TranscodeTemplate](~~52839#title-9mb-8o2-uu6~~).', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '[{"Video":{"Bitrate":"400","Codec":"H.264","Fps":"30"},"Audio":{"Codec":"AAC","Bitrate":"64","Definition":"SD","EncryptType":"Private","Container":{"Format":"m3u8"},"PackageType":"HLSPackage"}}]'],
],
[
'name' => 'Locked',
'in' => 'query',
'schema' => ['description' => 'The lock status of the transcoding template group. Valid values:'."\n"
."\n"
.'- **Enabled**: The template group is locked. A locked template group cannot be modified.'."\n"
."\n"
.'- **Disabled** (default): The template group is not locked.'."\n"
."\n"
.'The default value is **Disabled**. When you pass this parameter, the lock status of the template group is modified, but the name and configurations of the transcoding template group remain unchanged.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'Disabled'],
],
[
'name' => 'TranscodeTemplateGroupId',
'in' => 'query',
'schema' => ['description' => 'The ID of the transcoding template group.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'title' => '', 'example' => '4c71a339fe*****52b4fa6f4527'],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'Indicates whether the call is successful.',
'type' => 'object',
'properties' => [
'TranscodeTemplateGroupId' => ['description' => 'The ID of the transcoding template group.', 'type' => 'string', 'title' => '', 'example' => '34e908aa4024a*****f7821c31f93a2a'],
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'title' => '', 'example' => '25818875-5F78-4A*****F6-D7393642CA58'],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'UpdateTranscodeTemplateGroup',
'summary' => 'Modifies the configurations of a transcoding template group or configurations of transcoding templates within the transcoding template group.',
'description' => 'For security purposes, you cannot add, modify, or delete transcoding templates in a locked transcoding template group. You can call the [GetTranscodeTemplateGroup](~~GetTranscodeTemplateGroup~~) operation to query the template configurations and check whether the template group is locked based on the Locked response parameter. Alternatively, you can call this operation to unlock the template group before you add, modify, or delete templates.',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return.'."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| InvalidStorage.NotFound | The storage info dose not exist. | 404 | The error message returned because ApsaraVideo VOD has not allocated a bucket. |'."\n"
.'| InvalidTranscodeTemplateGroup.NotFound | The transcode template group does not exist. | 404 | The error message returned because the specified transcoding template group does not exist. |'."\n"
.'| Forbidden.LockedTemplateGroup | The transcode template group has been locked. | 403 | The error message returned because the specified template group is locked and cannot be managed. To manage the template group, contact the ApsaraVideo VOD technical support. |',
'changeSet' => [
['createdAt' => '2025-07-16T02:16:57.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:15:03.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateTranscodeTemplateGroup'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:UpdateTranscodeTemplateGroup',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TranscodeTemplateGroupId\\": \\"34e908aa4024a*****f7821c31f93a2a\\",\\n \\"RequestId\\": \\"25818875-5F78-4A*****F6-D7393642CA58\\"\\n}","type":"json"}]',
],
'UpdateVideoInfo' => [
'summary' => 'Updates the information for a single audio or video file.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'write',
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40229',
'abilityTreeNodes' => ['FEATUREvod7B2GUR'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'VideoId',
'in' => 'query',
'schema' => ['description' => 'The ID of the audio or video file. Obtain the ID in one of the following ways:'."\n"
."\n"
.'- Log on to the [VOD console](https://vod.console.aliyun.com). Choose **Media Library** > **Audio/Video** to view the ID of a video that was uploaded in the console.'."\n"
."\n"
.'- The response to a [CreateUploadVideo](~~55407~~) call contains the audio or video ID in the \\`VideoId\\` parameter.'."\n"
."\n"
.'- After you upload a video, the response to a [SearchMedia](~~86044~~) call contains the audio or video ID in the \\`VideoId\\` parameter.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => '2deda93265312baf9b0ed810d****', 'title' => ''],
],
[
'name' => 'Title',
'in' => 'query',
'schema' => ['description' => 'The title of the audio or video file.'."\n"
."\n"
.'- The title can be up to 128 bytes in length.'."\n"
."\n"
.'- The title must be UTF-8 encoded.', 'type' => 'string', 'required' => false, 'example' => 'Alibaba Cloud VOD Video Title', 'title' => ''],
],
[
'name' => 'Tags',
'in' => 'query',
'schema' => ['description' => 'The tags of the file.'."\n"
."\n"
.'- A single tag can be up to 32 bytes in length. A maximum of 16 tags are supported.'."\n"
."\n"
.'- Separate multiple tags with commas (,).'."\n"
."\n"
.'- The tags must be UTF-8 encoded.', 'type' => 'string', 'required' => false, 'example' => 'tag1,tag2', 'title' => ''],
],
[
'name' => 'Description',
'in' => 'query',
'schema' => ['description' => 'The description of the audio or video file.'."\n"
."\n"
.'- The description can be up to 1,024 bytes in length.'."\n"
."\n"
.'- The description must be UTF-8 encoded.', 'type' => 'string', 'required' => false, 'example' => 'Alibaba Cloud VOD video description', 'title' => ''],
],
[
'name' => 'CoverURL',
'in' => 'query',
'schema' => ['description' => 'The URL of the cover for the audio or video file.', 'type' => 'string', 'required' => false, 'example' => 'https://example.aliyundoc.com/****.jpg', 'title' => ''],
],
[
'name' => 'CateId',
'in' => 'query',
'schema' => ['description' => 'The ID of the category. Obtain the ID in one of the following ways:'."\n"
."\n"
.'- Log on to the [VOD console](https://vod.console.aliyun.com). Choose **Configuration Management** > **Media Asset Management** > **Category Management** to view the category ID.'."\n"
."\n"
.'- The response to an [AddCategory](~~56401~~) call contains the category ID in the \\`CateId\\` parameter.'."\n"
."\n"
.'- The response to a [GetCategories](~~56406~~) call contains the category ID in the \\`CateId\\` parameter.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '384761111', 'title' => ''],
],
[
'name' => 'UserData',
'in' => 'query',
'schema' => ['description' => 'Custom settings in a JSON string. These settings can include message callbacks and upload acceleration. For more information, see [UserData](~~86952~~).', 'type' => 'string', 'required' => false, 'example' => '{"MessageCallback":{"CallbackURL":"http://example.aliyundoc.com"},"Extend":{"localId":"*****","test":"www"}}', 'title' => ''],
],
[
'name' => 'ReferenceId',
'in' => 'query',
'schema' => ['description' => 'A custom ID. The ID can contain lowercase letters, uppercase letters, digits, hyphens (-), and underscores (\\_). The ID must be 6 to 64 characters in length and unique for each user.', 'type' => 'string', 'example' => '123-123', 'title' => '', 'required' => false],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response parameters.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '25818875-5F78-4AF6-D7393642CA58****', 'title' => ''],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4AF6-D7393642CA58****\\"\\n}","type":"json"}]',
'title' => 'UpdateVideoInfo',
'description' => '### Usage notes'."\n"
."\n"
.'This operation updates the information of an audio or video file based on its video ID, such as the title, tags, and description. If you include a parameter in the request, the corresponding field is updated. Fields for omitted parameters remain unchanged.'."\n"
."\n"
.'### QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for this API operation is 100 for each user. If you exceed the limit, API calls are throttled, which may affect your business. We recommend that you call this operation at a reasonable rate. For more information, see [QPS limits](~~342790~~).',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return.'."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| InvalidVideo.NotFound | The video does not exist. | 404 | The error message returned because the video does not exist. |',
'changeSet' => [
['createdAt' => '2025-07-16T02:19:09.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:14:50.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateVideoInfo'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:UpdateVideoInfo',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'UpdateVideoInfos' => [
'summary' => 'Updates information for multiple audio or video files.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40231',
'abilityTreeNodes' => ['FEATUREvod7B2GUR'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'UpdateContent',
'in' => 'query',
'schema' => ['description' => 'The content to update. You can modify the information of a maximum of 20 audio or video files in a single request. Separate the information of multiple audio or video objects with commas (,). If you attempt to update more than 20 files, the operation fails and a `CountExceededMax` error is returned.'."\n"
.'The value must be a JSON string. For more information about the parameters, see the **UpdateContent** table below.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '[{"VideoId":"f45cf4eba5cb90233389558c39****","Title":"Alibaba Cloud VOD Video Title1"},{"VideoId":"f45cf4eba5c84233389558c36****","Title":"Alibaba Cloud VOD Video Title2"}]', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '25818875-5F78-4AF6-D7393642CA58****', 'title' => ''],
'ForbiddenVideoIds' => [
'description' => 'A list of audio or video IDs for which the operation is forbidden. This is usually due to a lack of [permissions](~~113600~~).',
'type' => 'array',
'items' => ['description' => 'A list of audio or video IDs for which the operation is forbidden. This is usually due to a lack of [permissions](~~113600~~).', 'type' => 'string', 'example' => 'f45cf4eba5c84233389558c36****', 'title' => ''],
'title' => '',
'example' => '',
],
'NonExistVideoIds' => [
'description' => 'A list of audio or video IDs that do not exist.',
'type' => 'array',
'items' => ['description' => 'A list of audio or video IDs that do not exist.', 'type' => 'string', 'example' => 'f45cf4eba5cb90233389558c39****', 'title' => ''],
'title' => '',
'example' => '',
],
'NonExistReferenceIds' => [
'type' => 'array',
'items' => ['description' => 'A list of custom IDs that do not exist.', 'type' => 'string', 'example' => '123-123', 'title' => ''],
'description' => 'A list of custom IDs that do not exist.',
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4AF6-D7393642CA58****\\",\\n \\"ForbiddenVideoIds\\": [\\n \\"f45cf4eba5c84233389558c36****\\"\\n ],\\n \\"NonExistVideoIds\\": [\\n \\"f45cf4eba5cb90233389558c39****\\"\\n ],\\n \\"NonExistReferenceIds\\": [\\n \\"123-123\\"\\n ]\\n}","type":"json"}]',
'title' => 'UpdateVideoInfos',
'description' => '### Usage notes'."\n"
."\n"
.'- This operation locates audio or video files by their IDs. You can modify information such as the title, tags, and description. If a parameter is passed, the corresponding field is updated. If a parameter is not passed, the corresponding field is not updated.'."\n"
."\n"
.'- You can update information for a maximum of 20 audio or video files per request.'."\n"
."\n"
.'### QPS limits'."\n"
."\n"
.'The queries per second (QPS) limit for this operation is 30 calls per user. If you exceed this limit, API calls are throttled, which may affect your business. We recommend that you call this operation within this limit. For more information, see [QPS limits](~~342790~~).',
'requestParamsDescription' => '## UpdateContent'."\n"
."\n"
.'> You must convert the value of UpdateContent to a string before you pass it as a request parameter.'."\n"
."\n"
.'| Name | Type | Required | Description |'."\n"
.'| ----------- | ------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n"
.'| VideoId | String | Yes | The ID of the audio or video file. You can obtain the ID in the following ways: For audio or video files uploaded in the console, log on to the [VOD console](https://vod.console.aliyun.com) and choose **Media Assets** > **Audio/Video** to view the ID. When you call the [CreateUploadVideo](~~55407~~) operation to obtain an upload URL and credential, the audio or video ID is the value of the VideoId parameter in the response. After the audio or video file is uploaded, you can call the [SearchMedia](~~86044~~) operation to query the audio or video ID. The ID is the value of the VideoId parameter in the response. |'."\n"
.'| Title | String | No | The title of the audio or video file. |'."\n"
.'| Description | String | No | The description of the audio or video file. |'."\n"
.'| Tags | String | No | The tags of the audio or video file. A single tag can be up to 32 bytes in length. A maximum of 16 tags are supported. Separate multiple tags with commas (,). The tags must be UTF-8 encoded. |'."\n"
.'| CoverURL | String | No | The URL of the cover image for the audio or video file. |'."\n"
.'| CateId | Long | No | The ID of the category. You can obtain the ID in the following ways: Log on to the [VOD console](https://vod.console.aliyun.com) and choose **Configuration Management** > **Media Asset Management** > **Category Management** to view the category ID. When you call the [AddCategory](~~56401~~) operation to create a category, the category ID is the value of the CateId parameter in the response. When you call the [GetCategories](~~56406~~) operation to query categories, the category ID is the value of the CateId parameter in the response. |'."\n"
.'| ReferenceId | String | No | The custom ID. It can contain only lowercase letters, uppercase letters, digits, hyphens (-), and underscores (_). The length must be 6 to 64 characters. The ID must be unique for each user. |',
'responseParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-16T02:19:16.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:17:26.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateVideoInfos'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:UpdateVideoInfos',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'UpdateVodDomain' => [
'summary' => 'Modifies a specific accelerated domain name.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40233',
'abilityTreeNodes' => ['FEATUREvodHI57GB'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The domain name.'."\n", 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'Sources',
'in' => 'query',
'schema' => ['description' => 'The information about the addresses of origin servers.'."\n", 'type' => 'string', 'required' => false, 'example' => '[{"content":"1.1.1.1","type":"ipaddr","priority":"20","port":80}]', 'title' => ''],
],
[
'name' => 'TopLevelDomain',
'in' => 'query',
'schema' => ['description' => 'The top-level domain.'."\n", 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '15C66C7B-671A-4297-****-2C4477247A74', 'title' => ''],
],
'description' => '',
'title' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'MissingDomainName', 'errorMessage' => 'The domainName parameter is required.', 'description' => ''],
['errorCode' => 'InvalidDomainName.Malformed', 'errorMessage' => 'The specified DomainName is invalid.', 'description' => ''],
['errorCode' => 'InvalidSource.Content.Malformed', 'errorMessage' => 'The specified Source Content is invalid.', 'description' => ''],
['errorCode' => 'InvalidTypeContent.Mismatch', 'errorMessage' => 'The specified source type does not match the specified source content.', 'description' => ''],
['errorCode' => 'MissingSource.Content', 'errorMessage' => 'The Source Content must be specified.', 'description' => ''],
['errorCode' => 'MissingSource.Type', 'errorMessage' => 'The Source Type must be specified.', 'description' => ''],
['errorCode' => 'InvalidSource.Type.Malformed', 'errorMessage' => 'The specified Source Type is invalid.', 'description' => ''],
['errorCode' => 'InvalidSource.Priority.Malformed', 'errorMessage' => 'The specified Source Priority is invalid.', 'description' => ''],
['errorCode' => 'InvalidSources.Malformed', 'errorMessage' => 'Specified Sources is malformed.', 'description' => 'The origin information is in an invalid format.'],
['errorCode' => 'IllegalSources', 'errorMessage' => 'The specified origin site information is invalid.', 'description' => 'The origin information of the accelerated domain name is incorrect.'],
['errorCode' => 'TopLevelDomain.NotFound', 'errorMessage' => 'The specified TopLevelDomain does not exist.', 'description' => ''],
],
403 => [
['errorCode' => 'DomainInProtectedMode', 'errorMessage' => 'The domain is in protection mode. To request permission, contact Customer Service.', 'description' => ''],
['errorCode' => 'ServiceBusy', 'errorMessage' => 'The specified Domain is configuring, please retry later', 'description' => ''],
['errorCode' => 'IllegalOperation', 'errorMessage' => 'Illegal domain operate is not permitted.', 'description' => ''],
],
[
['errorCode' => 'InvalidDomain.NotFound', 'errorMessage' => 'The domain provided does not belong to you.', 'description' => ''],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"15C66C7B-671A-4297-****-2C4477247A74\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n15C66C7B-671A-4297-****-2C4477247A74\\r\\n","errorExample":""}]',
'title' => 'UpdateVodDomain',
'description' => 'UpdateVodDomain',
'requestParamsDescription' => 'Modifies a specific accelerated domain name.',
'responseParamsDescription' => ' ',
'extraInfo' => '> This operation is available only in the **China (Shanghai)** region.'."\n",
'changeSet' => [
['createdAt' => '2025-07-16T06:24:07.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T06:19:44.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T06:16:20.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateVodDomain'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:UpdateVodDomain',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'UpdateVodTemplate' => [
'summary' => 'Modifies a snapshot template.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40235',
'abilityTreeNodes' => ['FEATUREvodL077M7'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'VodTemplateId',
'in' => 'query',
'schema' => ['description' => 'The ID of the snapshot template.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '8c75a02e339b*****0b0d2c48171a22', 'title' => ''],
],
[
'name' => 'Name',
'in' => 'query',
'schema' => ['description' => 'The name of the template.'."\n"
."\n"
.'* The name can be up to 128 bytes in length.'."\n"
.'* The value must be encoded in UTF-8.'."\n", 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''],
],
[
'name' => 'TemplateConfig',
'in' => 'query',
'schema' => ['description' => 'The configurations of the snapshot template. The value is a JSON-formatted string. For more information about the data structure, see the "SnapshotTemplateConfig" section of the [Media processing parameters](~~98618~~) topic.'."\n", 'type' => 'string', 'required' => false, 'example' => '{"SnapshotConfig":{"Count":10,"SpecifiedOffsetTime":0,"Interval":1}', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'VodTemplateId' => ['description' => 'The ID of the snapshot template.'."\n", 'type' => 'string', 'example' => '8c75a02e339b*****0b0d2c48171a22', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4A*****F6-D7393642CA58', 'title' => ''],
],
'description' => '',
'title' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"VodTemplateId\\": \\"8c75a02e339b*****0b0d2c48171a22\\",\\n \\"RequestId\\": \\"25818875-5F78-4A*****F6-D7393642CA58\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 25818875-5F78-4A*****F6-D7393642CA58\\r\\n\\t8c75a02e339b*****0b0d2c48171a22\\r\\n","errorExample":""}]',
'title' => 'UpdateVodTemplate',
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [
['createdAt' => '2025-07-16T02:17:58.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:14:51.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateVodTemplate'],
],
],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:UpdateVodTemplate',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'UpdateWatermark' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'systemTags' => [
'operationType' => 'update',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40237',
'abilityTreeNodes' => ['FEATUREvodL077M7'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'Name',
'in' => 'query',
'schema' => ['description' => 'The name of the watermark template to which you want to change.'."\n"
."\n"
.'* Only letters and digits are supported.'."\n"
.'* The name cannot exceed 128 bytes.'."\n"
.'* The value must be encoded in UTF-8.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'test'],
],
[
'name' => 'WatermarkId',
'in' => 'query',
'schema' => ['description' => 'The ID of the watermark template. You can specify only one watermark template ID. You can obtain the ID by using one of the following methods:'."\n"
."\n"
.'* Obtain the watermark template ID from the response to the [AddWatermark](~~AddWatermark~~) operation that you call to create a watermark template.'."\n"
.'* Obtain the watermark template ID from the response to the [ListWatermark](~~ListWatermark~~) operation that you call to query all watermark templates within your account.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'af2afe4761992c*****bd947dae97337'],
],
[
'name' => 'WatermarkConfig',
'in' => 'query',
'schema' => ['description' => 'The configuration information of the watermark such as the display position and special effects. The value must be a JSON string. The configuration parameters for image and text watermarks are different. For more information about the parameter structure, see [WatermarkConfig](~~98618#section-h01-44s-2lr~~).'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '{"Width":"55","Height":"55","Dx":"9","Dy":"9","ReferPos":"BottonLeft","Type":"Image"}'],
],
],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '25818875-5F78-4A*****F6-D7393642CA58'],
'WatermarkInfo' => [
'description' => 'The information about the watermark template.'."\n",
'type' => 'object',
'properties' => [
'CreationTime' => ['description' => 'The time when the watermark template was created. The time follows the ISO 8601 standard in the *yyyy-MM-dd*T*HH:mm:ss*Z format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2018-11-06T08:03:17Z'],
'Type' => ['description' => 'The type of the watermark template.'."\n"
."\n"
.'* **Image**: image watermark template'."\n"
.'* **Text**: text watermark template'."\n", 'type' => 'string', 'example' => 'Text'],
'IsDefault' => ['description' => 'Indicates whether the watermark template is the default one.'."\n"
."\n"
.'* **Default**'."\n"
.'* **NotDefault**'."\n", 'type' => 'string', 'example' => 'NotDefault'],
'FileUrl' => ['description' => 'The URL of the watermark file. The URL is an Object Storage Service (OSS) URL or an Alibaba Cloud CDN URL.'."\n"
."\n"
.'> This parameter is returned only for image watermark templates.'."\n", 'type' => 'string', 'example' => 'https://outin-32****9f4b3e7.oss-cn-shanghai.aliyuncs.com/image/cover/E6C3448CC8B715E6F8A72EC6B-6-2.png?Expires=1541600583&OSSAccessKeyId=****&Signature=gmf1eYMoDVg%2BHQCb4UGozBW****'],
'WatermarkConfig' => ['description' => 'The configuration information of the watermark such as the display position and special effects. The value is a JSON string. The configuration parameters for image and text watermarks are different. For more information about the parameter structure, see [WatermarkConfig](~~98618#section-h01-44s-2lr~~).'."\n", 'type' => 'string', 'example' => '{"Width":"55","Height":"55","Dx":"9","Dy":"9","ReferPos":"BottonLeft","Type":"Image"}'],
'Name' => ['description' => 'The name of the watermark template.'."\n", 'type' => 'string', 'example' => 'image watermark test'],
'WatermarkId' => ['description' => 'The ID of the watermark template.'."\n", 'type' => 'string', 'example' => '505e2e287ea*****ecfddd386d384'],
],
],
],
'description' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4A*****F6-D7393642CA58\\",\\n \\"WatermarkInfo\\": {\\n \\"CreationTime\\": \\"2018-11-06T08:03:17Z\\",\\n \\"Type\\": \\"Image\\",\\n \\"IsDefault\\": \\"NotDefault\\",\\n \\"FileUrl\\": \\"https://outin-32****9f4b3e7.oss-cn-shanghai.aliyuncs.com/image/cover/E6C3448CC8B715E6F8A72EC6B-6-2.png?Expires=1541600583&OSSAccessKeyId=****&Signature=gmf1eYMoDVg%2BHQCb4UGozBW****\\",\\n \\"WatermarkConfig\\": \\"{\\\\\\"Width\\\\\\":\\\\\\"55\\\\\\",\\\\\\"Height\\\\\\":\\\\\\"55\\\\\\",\\\\\\"Dx\\\\\\":\\\\\\"9\\\\\\",\\\\\\"Dy\\\\\\":\\\\\\"9\\\\\\",\\\\\\"ReferPos\\\\\\":\\\\\\"BottomLeft\\\\\\"}\\",\\n \\"Name\\": \\"test\\",\\n \\"WatermarkId\\": \\"505e2e287ea*****ecfddd386d384\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n25818875-5F78-4A*****F6-D7393642CA58\\n\\n 图片水印测试\\n 2018-11-06T08:03:17Z\\n 505e2e287ea*****ecfddd386d384\\n https://outin-32****9f4b3e7.oss-cn-shanghai.aliyuncs.com/image/cover/E6C3448CC8B715E6F8A72EC6B-6-2.png?Expires=1541600583&OSSAccessKeyId=****&Signature=gmf1eYMoDVg%2BHQCb4UGozBW****\\n NotDefault\\n Image\\n \\n BottomRight\\n 55\\n 55\\n 8\\n 8\\n \\n\\n","errorExample":""}]',
'title' => 'UpdateWatermark',
'summary' => 'Modifies the name and configurations of a watermark template after you create a watermark template.',
'description' => '* You can modify the name and configurations of the watermark template after you call the [AddWatermark](~~AddWatermark~~) operation to create a watermark template.'."\n"
.'* You cannot call this operation to change the image in an image watermark template.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'changeSet' => [],
'ramActions' => [
[
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:UpdateWatermark',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'UploadMediaByURL' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'create',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40242',
'abilityTreeNodes' => ['FEATUREvodVQ27S4'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'UploadURLs',
'in' => 'query',
'schema' => ['description' => 'The URLs of the source media files.'."\n"
."\n"
.'- The URL must include the file extension. For example, mp4 is the file extension in `https://****.mp4`.'."\n"
."\n"
.' - If the URL does not contain a file extension, you can specify one by setting the `FileExtension` parameter in `UploadMetadatas`.'."\n"
."\n"
.' - If you specify a file extension in both the URL and the `FileExtension` parameter, the value of the `FileExtension` parameter takes precedence.'."\n"
."\n"
.' - For a list of supported file extensions, see [Overview of uploads](~~55396~~).'."\n"
."\n"
.'> * You can specify up to 20 URLs. Separate multiple URLs with commas (,). To prevent upload failures caused by special characters, you must **URL-encode** each URL before you concatenate them with commas.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'https://****.mp4', 'title' => ''],
],
[
'name' => 'TemplateGroupId',
'in' => 'query',
'schema' => ['description' => 'The ID of the transcoding template group. You can obtain the ID in one of the following ways:'."\n"
."\n"
.'- Log on to the [ApsaraVideo for VOD console](https://vod.console.aliyun.com). In the left-side navigation pane, choose **Configuration Management** > **Media Processing** > **Transcoding Template Groups** to view the transcoding template group ID.'."\n"
."\n"
.'- The value of `TranscodeTemplateGroupId` in the response to the [AddTranscodeTemplateGroup](~~102665~~) operation.'."\n"
."\n"
.'- The value of `TranscodeTemplateGroupId` in the response to the [ListTranscodeTemplateGroup](~~102669~~) operation.'."\n"
."\n"
.'> * If you do not specify this parameter, the default transcoding template group is used. If you specify this parameter, the specified transcoding template group is used.'."\n"
.'>'."\n"
.'> * You can also set this parameter in `UploadMetadatas`. If you set `TemplateGroupId` in both `UploadMetadatas` and at this level, the `TemplateGroupId` in `UploadMetadatas` takes precedence.', 'type' => 'string', 'required' => false, 'example' => 'ca3a8f6e4957b65806709586****', 'title' => ''],
],
[
'name' => 'StorageLocation',
'in' => 'query',
'schema' => ['description' => 'The storage location of the media file.'."\n"
."\n"
.'Log on to the [ApsaraVideo for VOD console](https://vod.console.aliyun.com/?spm=a2c4g.11186623.2.15.6948257eaZ4m54#/vod/settings/censored). In the left-side navigation pane, choose **Configuration Management** > **Media Asset Management** > **Storage** to view the storage location. If you do not specify this parameter, the default storage location is used.', 'type' => 'string', 'required' => false, 'example' => 'outin-bfefbb90a47c******163e1c7426.oss-cn-shanghai.aliyuncs.com', 'title' => ''],
],
[
'name' => 'UploadMetadatas',
'in' => 'query',
'schema' => ['description' => 'The metadata of the media file to be uploaded. The value must be a JSON string.'."\n"
."\n"
.'- This parameter takes effect only when it matches a URL in `UploadURLs`.'."\n"
."\n"
.'- The value must be a JSON string that represents an array of `UploadMetadata` objects.'."\n"
."\n"
.'- For more information, see the **UploadMetadata** table below.', 'type' => 'string', 'required' => false, 'example' => '[{"SourceURL":"https://example.aliyundoc.com/video01.mp4","Title":"urlUploadTest"}]', 'title' => ''],
],
[
'name' => 'UserData',
'in' => 'query',
'schema' => ['description' => 'Custom settings. The value must be a JSON string. This parameter supports features such as message callbacks and upload acceleration. For more information, see [UserData](~~86952#UserData~~).'."\n"
."\n"
.'> - To use message callbacks, you must configure an HTTP callback URL and select the corresponding event types in the console. Otherwise, the callback settings do not take effect. For more information about how to configure HTTP callbacks in the console, see [Callback settings](~~86071~~).'."\n"
.'>'."\n"
.'> - To use the upload acceleration feature, you must submit a ticket to enable it. For more information, see [Upload-related notes](~~55396~~). For information on how to submit a ticket, see [Contact us](~~464625~~).', 'type' => 'string', 'required' => false, 'example' => '{"MessageCallback":{"CallbackURL":"http://example.aliyundoc.com"},"Extend":{"localId":"xxx","test":"www"}}', 'title' => ''],
],
[
'name' => 'AppId',
'in' => 'query',
'schema' => ['description' => 'The application ID. The default value is **app-1000000**. For more information, see [Multi-application service](~~113600~~).', 'type' => 'string', 'required' => false, 'example' => 'app-****', 'title' => ''],
],
[
'name' => 'WorkflowId',
'in' => 'query',
'schema' => ['description' => 'The workflow ID. To view the workflow ID, log on to the [ApsaraVideo for VOD console](https://vod.console.aliyun.com). In the left-side navigation pane, choose **Configuration Management** > **Media Processing** > **Workflows**.'."\n"
."\n"
.'> If you specify both `WorkflowId` and `TemplateGroupId`, `WorkflowId` takes precedence. For more information, see [Workflows](~~115347~~).', 'type' => 'string', 'required' => false, 'example' => 'e1e243b42548248197d6f74f9****', 'title' => ''],
],
[
'name' => 'SessionId',
'in' => 'query',
'schema' => ['description' => 'A custom deduplication identifier. If you specify this parameter in a request, the service returns an error if a request with the same identifier is repeated within 10 minutes.'."\n"
."\n"
.'> - You can customize the identifier. The identifier can be up to 50 characters in length and can contain uppercase letters, lowercase letters, digits, hyphens (-), and underscores (\\_). If you do not specify this parameter or pass an empty string, the service does not perform deduplication.', 'type' => 'string', 'required' => false, 'example' => '5c62d40299034bbaa4c195da330****', 'title' => ''],
],
[
'name' => 'EnableFirstFrameCover',
'in' => 'query',
'schema' => ['type' => 'boolean', 'description' => '', 'title' => '', 'example' => ''],
],
[
'name' => 'GenerateThumbnail',
'in' => 'query',
'schema' => ['type' => 'boolean', 'description' => '', 'title' => '', 'example' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The response that is returned.',
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '25818875-5F78-4AF6-D7393642CA58****', 'title' => ''],
'UploadJobs' => [
'description' => 'A list of upload jobs.',
'type' => 'array',
'items' => [
'description' => 'The details of the upload job.',
'type' => 'object',
'properties' => [
'SourceURL' => ['description' => 'The source URL of the file in the upload job.', 'type' => 'string', 'example' => 'http://example****.mp4', 'title' => ''],
'JobId' => ['description' => 'The ID of the upload job.', 'type' => 'string', 'example' => 'ad90a501b1b94fb72374ad005046****', 'title' => ''],
],
'title' => '',
'example' => '',
],
'title' => '',
'example' => '',
],
],
'title' => '',
'example' => '',
],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'title' => 'UploadMediaByURL',
'summary' => 'Uploads audio or video media files by fetching them from source URLs. This operation supports batch uploads.',
'description' => '- **Before calling this operation, ensure you understand the billing methods and pricing of ApsaraVideo for VOD. Uploading media asset files to ApsaraVideo for VOD incurs storage fees. For more information, see [Media storage](~~188308#section_e97_xrp_mzz~~). If you have enabled storage transfer acceleration, uploading media asset files to ApsaraVideo for VOD also incurs upload acceleration fees. For more information, see [storage transfer acceleration](~~188310#section_sta_zm2_tsv~~).**'."\n"
."\n"
.'- For a list of supported media formats, see [Media formats](~~55396#section-e27-2rj-mde~~).'."\n"
."\n"
.'- Use this operation to upload files from a public URL instead of from a local server or device.'."\n"
."\n"
.'- This is an [asynchronous upload API](~~3027551~~). The operation does not complete in real time and has no guaranteed processing time. A job may take several hours or even days to complete. For faster uploads, use an upload SDK.'."\n"
."\n"
.'- If you configure a [callback](~~86326~~), you receive an `URLUploadComplete` event notification after the upload completes. You can call the [GetURLUploadInfos](~~106830~~) operation to query the upload status.'."\n"
."\n"
.'- When you submit an upload job, the service creates an asynchronous task. The service queues URL upload jobs from all users in the same region. The time it takes to complete a job depends on the number of existing jobs. After the upload is complete, you can use the URL and video ID returned in the event notification to associate resources.'."\n"
."\n"
.'- This operation is available only in the following regions: **China (Shanghai)**, **China (Beijing)**, **China (Shenzhen)**, **Singapore**, and **US** (**Silicon Valley**).'."\n"
."\n"
.'- Each time you submit an upload job for the same media file URL, ApsaraVideo for VOD creates a new media resource with a new media ID.'."\n"
."\n"
.'- If a single file exceeds 20 GB, the upload fails. If you need to upload files larger than 20 GB, use an upload SDK. For more information, see [Overview of upload SDKs](~~52200~~).',
'requestParamsDescription' => '## UploadMetadata'."\n"
."\n"
.'| Parameter | Type | Required | Description |'."\n"
.'| --------------- | ------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n"
.'| SourceURL | String | Yes | The URL of the source media file to be uploaded. |'."\n"
.'| Title | String | No | The title of the media file. The title can be up to 128 bytes in length and must be UTF-8 encoded. |'."\n"
.'| FileSize | String | No | The size of the file. |'."\n"
.'| Description | String | No | The description of the media file. The description can be up to 1,024 bytes in length and must be UTF-8 encoded. |'."\n"
.'| CoverURL | String | No | The URL of a custom video cover. |'."\n"
.'| CateId | String | No | The category ID. To view the category ID, log on to the [ApsaraVideo for VOD console](https://vod.console.aliyun.com). In the left-side navigation pane, choose **Configuration Management** > **Media Asset Management** > **Categories**. |'."\n"
.'| Tags | String | No | The tags of the media file. A single tag can be up to 32 bytes in length. You can specify a maximum of 16 tags. Separate multiple tags with commas (,). The tags must be UTF-8 encoded. |'."\n"
.'| TemplateGroupId | String | No | The ID of the transcoding template group. This parameter overrides the `TemplateGroupId` specified at the top level of the request. |'."\n"
.'| WorkflowId | String | No | The ID of the workflow. If you specify both `WorkflowId` and `TemplateGroupId`, `WorkflowId` takes precedence. For more information, see [Workflows](~~115347~~). |'."\n"
.'| FileExtension | String | No | The file extension of the media file. For a list of supported file extensions, see [Overview of uploads](~~55396~~). |'."\n"
.'| ReferenceId | String | No | A custom ID. The ID can be 6 to 64 characters in length and can contain letters, digits, hyphens (-), and underscores (_). The ID must be unique within your account. |'."\n"
."\n"
.'> - Parameters in `UploadMetadata`, such as `Title`, `Description`, and `Tags`, cannot contain emojis.'."\n"
.'>'."\n"
.'> - To ensure proper playback when transcoding is disabled (by setting `TemplateGroupId` to `VOD_NO_TRANSCODE`), only files in MP4, FLV, MP3, M3U8, and WEBM formats can be played directly after upload. Other formats are supported for storage only. The system checks the file extension. If you use Alibaba Cloud Player, its version must be 3.1.0 or later.'."\n"
.'>'."\n"
.'> - If you specify a transcoding-disabled template group (`TemplateGroupId` is set to `VOD_NO_TRANSCODE`), you receive only an event notification for `VideoUploadComplete` after the video is uploaded. You do not receive an event notification for `TranscodeComplete`.'."\n"
.'>'."\n"
.'> - If a callback is configured, you will receive an `URLUploadComplete` event notification in addition to upload and transcoding notifications after the video is uploaded.'."\n"
.'>'."\n"
.'> - For batch submissions, the service sends a separate notification for each `SourceURL`.',
'extraInfo' => '## Common errors'."\n"
."\n"
.'The following table describes the common errors that this operation can return. '."\n"
."\n"
.'| Error code | Error message | HTTP status code | Description |'."\n"
.'| ---------- | ------------- | ---------------- | ----------- |'."\n"
.'| InvalidParameter.UploadURLs | The specified parameter UploadURLs is not valid. | 400 | The error message returned because the UploadURLs parameter is invalid. |',
'changeSet' => [
['createdAt' => '2025-07-16T02:18:32.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T02:14:49.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UploadMediaByURL'],
],
],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:UploadMediaByURL',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25818875-5F78-4AF6-D7393642CA58****\\",\\n \\"UploadJobs\\": [\\n {\\n \\"SourceURL\\": \\"http://example****.mp4\\",\\n \\"JobId\\": \\"ad90a501b1b94fb72374ad005046****\\"\\n }\\n ]\\n}","type":"json"}]',
],
'UploadStreamByURL' => [
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'readAndWrite',
'deprecated' => false,
'systemTags' => [
'operationType' => 'create',
'abilityTreeCode' => '100689',
'abilityTreeNodes' => ['FEATUREvodVQ27S4'],
],
'parameters' => [
[
'name' => 'StreamURL',
'in' => 'query',
'schema' => ['description' => 'The URL of the transcoded stream.'."\n"
."\n"
.'If URL authentication is required, you must pass authentication information in this parameter and make sure that the URL can be accessed over the Internet.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'https://example.com/lesson-01.mp4'],
],
[
'name' => 'MediaId',
'in' => 'query',
'schema' => ['description' => 'The media ID in ApsaraVideo VOD.'."\n", 'type' => 'string', 'required' => true, 'example' => 'ca3a8f6e49*****57b65806709586'],
],
[
'name' => 'Definition',
'in' => 'query',
'schema' => ['description' => 'The quality of the video stream.'."\n"
."\n"
.'For more information about valid values of this parameter, see [Parameters for media assets](~~124671~~).'."\n", 'type' => 'string', 'required' => true, 'example' => 'HD'],
],
[
'name' => 'FileExtension',
'in' => 'query',
'schema' => ['description' => 'The file name extension of the transcoded stream.'."\n"
."\n"
.'For more information, see the Supported media file formats section in [Overview](~~55396~~).'."\n"
."\n"
.'If you set a value for this parameter, the file name extension specified in StreamURL is overwritten.'."\n"
."\n"
.'> This parameter is required if you do not specify a file name extension in StreamURL.'."\n", 'type' => 'string', 'required' => false, 'example' => 'mp4'],
],
[
'name' => 'HDRType',
'in' => 'query',
'schema' => ['title' => '', 'description' => 'The HDR type of the transcoded stream. Valid values:'."\n"
."\n"
.'* HDR'."\n"
.'* HDR10'."\n"
.'* HLG'."\n"
.'* DolbyVision'."\n"
.'* HDRVivid'."\n"
.'* SDR+'."\n"
."\n"
.'> '."\n"
."\n"
.'* The HDR type of the transcoded stream is not case-sensitive.'."\n"
."\n"
.'* You can leave this parameter empty for non-HDR streams.'."\n", 'type' => 'string', 'required' => false, 'example' => 'HDR10'],
],
[
'name' => 'UserData',
'in' => 'query',
'schema' => ['description' => 'The user-defined parameter. For more information, see the "UserData: specifies the custom configurations for media upload" section of the [Request parameters](~~86952~~) topic.'."\n"
."\n"
.'> The callback configurations you specify for this parameter take effect only after you specify the HTTP callback URL and select specific callback events in the ApsaraVideo VOD console. For more information about how to configure HTTP callback settings in the ApsaraVideo VOD console, see [Configure callback settings](~~86071~~).'."\n", 'type' => 'string', 'required' => false, 'example' => '{"MessageCallback":{"CallbackURL":"http://aliyundoc.com"}, "Extend":{"localId":"xxx","test":"www"}}'],
],
[
'name' => 'UploadMetadata',
'in' => 'query',
'schema' => ['description' => 'Metadata information for uploading media files, in JSON string format.'."\n"
."\n"
.'For more information, please refer to the table below for UploadMetadata.', 'type' => 'string', 'required' => false, 'example' => '{"AddressMapping":"1","CustomPath":"test/xxx","CustomFileName":"xxx.mp4","isOverwritePath":"0"}'],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The basic information.'."\n",
'type' => 'object',
'properties' => [
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '7AE96389-DF1E-598D-816B-7B40F13B4620'],
'StreamJobId' => ['description' => 'The ID of the stream upload job. This parameter is used when you call the [GetURLUploadInfos](~~106830~~) operation.'."\n"
."\n"
.'In ApsaraVideo VOD, you can upload only one transcoded stream in an upload job. For more information, see the PlayInfo: the playback information about a video stream section in [Basic structures](~~52839~~).'."\n", 'type' => 'string', 'example' => 'e304b34fb3d959f92baef97b6496****'],
'FileURL' => ['description' => 'The URL of the OSS object.'."\n", 'type' => 'string', 'example' => 'http://outin-31059bcee7810a200163e1c8dba****.oss-cn-shanghai.aliyuncs.com/lesson-01.mp4'],
'SourceURL' => ['description' => 'The URL of the input stream. This parameter is used when you call the [GetURLUploadInfos](~~106830~~) operation.'."\n", 'type' => 'string', 'example' => 'https://example.com/lesson-01.mp4'],
],
],
],
],
'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7AE96389-DF1E-598D-816B-7B40F13B4620\\",\\n \\"StreamJobId\\": \\"e304b34fb3d959f92baef97b6496****\\",\\n \\"FileURL\\": \\"http://outin-31059bcee7810a200163e1c8dba****.oss-cn-shanghai.aliyuncs.com/lesson-01.mp4\\",\\n \\"SourceURL\\": \\"https://example.com/lesson-01.mp4\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7AE96389-DF1E-598D-816B-7B40F13B4620\\n e304b34fb3d959f92baef97b6496****\\n http://outin-31059bcee7810a200163e1c8dba****.oss-cn-shanghai.aliyuncs.com/lesson-01.mp4\\n https://example.com/lesson-01.mp4\\n","errorExample":""}]',
'title' => 'UploadStreamByURL',
'summary' => 'Uploads transcoded streams to ApsaraVideo VOD from external storage.',
'description' => '* **Make sure that you understand the billing method and price of ApsaraVideo VOD before you call this operation. You are charged storage fees after you upload media files to ApsaraVideo VOD. For more information, see [Billing of media asset storage](~~188308#section_e97\\_xrp_mzz~~). If you have activated the acceleration service, you are charged acceleration fees when you upload media files to ApsaraVideo VOD. For more information, see [Billing of acceleration traffic](~~188310#section_sta_zm2\\_tsv~~).**'."\n"
.'* This operation is available only in the **China (Shanghai)** and **Singapore** regions.'."\n"
.'* You can call this operation to upload transcoded streams to ApsaraVideo VOD from external storage. The following HDR types of transcoded streams are supported: HDR, HDR 10, HLG, Dolby Vision, HDR Vivid, and SDR+.'."\n"
.'* You can call the [GetURLUploadInfos](~~106830~~) operation to query the upload status. After the upload is complete, the callback of the [UploadByURLComplete](~~376427~~) event is returned.'."\n",
'requestParamsDescription' => '| Name | Type | Required | Descriptio |'."\n"
.'| ------------- |------------ | ----- | ------ |'."\n"
.'| AddressMapping | String | No | Address mapping rule. Values: 1 represents mapping the transcoded stream URL, 2 represents a custom path.|'."\n"
.'| CustomPath |String |No|Custom file path. Length does not exceed 1000 bytes. UTF-8 encoded.|'."\n"
.'| CustomFileName| String |No|Custom file name. Length does not exceed 1000 bytes. UTF-8 encoded.|'."\n"
.'| IsOverwritePath| String |No |Whether to overwrite if the custom file path already exists. Values: 0 represents do not overwrite, 1 represents overwrite.'."\n"
.'|'."\n"
."\n"
.'> - When AddressMapping is set to 2, both CustomPath and CustomFileName must be provided.'."\n"
.'> - When IsOverwritePath is set to 0, if the custom file path already exists, the interface will return a failure.',
'changeSet' => [],
'ramActions' => [
[
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:UploadStreamByURL',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
'VerifyVodDomainOwner' => [
'summary' => 'Verifies the ownership of a specified domain name.',
'methods' => ['post', 'get'],
'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'operationType' => 'read',
'systemTags' => [
'operationType' => 'get',
'riskType' => 'none',
'chargeType' => 'free',
'abilityTreeCode' => '40244',
'abilityTreeNodes' => ['FEATUREvodHI57GB'],
'autoTest' => true,
'tenantRelevance' => 'publicInformation',
],
'parameters' => [
[
'name' => 'DomainName',
'in' => 'query',
'schema' => ['description' => 'The domain name of which you want to verify the ownership. You can specify only one domain name in each call.'."\n", 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''],
],
[
'name' => 'VerifyType',
'in' => 'query',
'schema' => ['description' => 'The verification method. Valid values:'."\n"
."\n"
.'* **dnsCheck**: uses a Domain Name System (DNS) record'."\n"
.'* **fileCheck**: uses a verification file'."\n", 'type' => 'string', 'required' => true, 'example' => 'dnsCheck', 'title' => ''],
],
],
'responses' => [
200 => [
'schema' => [
'description' => 'The returned results.'."\n",
'type' => 'object',
'properties' => [
'Content' => ['description' => 'The verification content.'."\n", 'type' => 'string', 'example' => 'verify_dffeb661*********a59c32cd91f', 'title' => ''],
'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'E4EBD2BF-5EB0-4476-8829-9D94E1B1****', 'title' => ''],
],
'title' => '',
],
],
],
'errorCodes' => [
400 => [
['errorCode' => 'DomainOwnerVerifyFail', 'errorMessage' => 'Owner verification of the root domain failed.', 'description' => 'Failed to verify domain ownership.'],
],
],
'staticInfo' => ['returnType' => 'synchronous'],
'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": \\"verify_dffeb661*********a59c32cd91f\\",\\n \\"RequestId\\": \\"E4EBD2BF-5EB0-4476-8829-9D94E1B1****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n verify_dffeb661*********a59c32cd91f\\n E4EBD2BF-5EB0-4476-8829-9D94E1B1****\\n","errorExample":""}]',
'title' => 'VerifyVodDomainOwner',
'description' => 'This operation is available only in the **China (Shanghai)** region.'."\n",
'requestParamsDescription' => ' ',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
'changeSet' => [
['createdAt' => '2025-07-16T06:29:05.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T06:24:07.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T06:19:43.000Z', 'description' => 'OpenAPI offline'],
['createdAt' => '2025-07-16T06:16:19.000Z', 'description' => 'OpenAPI offline'],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'VerifyVodDomainOwner'],
],
],
'ramActions' => [
[
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:VerifyVodDomainOwner',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
],
],
'endpoints' => [
['regionId' => 'cn-shenzhen', 'regionName' => 'China (Shenzhen)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'vod.cn-shenzhen.aliyuncs.com', 'endpoint' => 'vod.cn-shenzhen.aliyuncs.com', 'vpc' => 'vod-vpc.cn-shenzhen.aliyuncs.com'],
['regionId' => 'cn-beijing', 'regionName' => 'China (Beijing)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'vod.cn-beijing.aliyuncs.com', 'endpoint' => 'vod.cn-beijing.aliyuncs.com', 'vpc' => 'vod-vpc.cn-beijing.aliyuncs.com'],
['regionId' => 'cn-shanghai', 'regionName' => 'China (Shanghai)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'vod.cn-shanghai.aliyuncs.com', 'endpoint' => 'vod.cn-shanghai.aliyuncs.com', 'vpc' => 'vod-vpc.cn-shanghai.aliyuncs.com'],
['regionId' => 'cn-hongkong', 'regionName' => 'China (Hong Kong)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'vod.cn-hongkong.aliyuncs.com', 'endpoint' => 'vod.cn-hongkong.aliyuncs.com', 'vpc' => 'vod-vpc.cn-hongkong.aliyuncs.com'],
['regionId' => 'ap-southeast-1', 'regionName' => 'Singapore', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'vod.ap-southeast-1.aliyuncs.com', 'endpoint' => 'vod.ap-southeast-1.aliyuncs.com', 'vpc' => 'vod-vpc.ap-southeast-1.aliyuncs.com'],
['regionId' => 'ap-northeast-1', 'regionName' => 'Japan (Tokyo)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'vod.ap-northeast-1.aliyuncs.com', 'endpoint' => 'vod.ap-northeast-1.aliyuncs.com', 'vpc' => 'vod-vpc.ap-northeast-1.aliyuncs.com'],
['regionId' => 'ap-southeast-5', 'regionName' => 'Indonesia (Jakarta)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'vod.ap-southeast-5.aliyuncs.com', 'endpoint' => 'vod.ap-southeast-5.aliyuncs.com', 'vpc' => 'vod-vpc.ap-southeast-5.aliyuncs.com'],
['regionId' => 'us-west-1', 'regionName' => 'US (Silicon Valley)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'vod.us-west-1.aliyuncs.com', 'endpoint' => 'vod.us-west-1.aliyuncs.com', 'vpc' => 'vod-vpc.us-west-1.aliyuncs.com'],
['regionId' => 'eu-central-1', 'regionName' => 'Germany (Frankfurt)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'vod.eu-central-1.aliyuncs.com', 'endpoint' => 'vod.eu-central-1.aliyuncs.com', 'vpc' => 'vod-vpc.eu-central-1.aliyuncs.com'],
['regionId' => 'me-central-1', 'regionName' => 'Saudi Arabia (Riyadh)', 'areaId' => 'middleEast', 'areaName' => 'Middle East', 'public' => 'vod.me-central-1.aliyuncs.com', 'endpoint' => 'vod.me-central-1.aliyuncs.com', 'vpc' => 'vod-vpc.me-central-1.aliyuncs.com'],
['regionId' => 'ap-south-1', 'regionName' => 'India (Mumbai) Closed', 'areaId' => 'middleEast', 'areaName' => 'Middle East', 'public' => 'vod.ap-south-1.aliyuncs.com', 'endpoint' => 'vod.ap-south-1.aliyuncs.com', 'vpc' => 'vod-vpc.ap-south-1.aliyuncs.com'],
['regionId' => 'cn-north-2-gov-1', 'regionName' => 'Beijing Government Cloud', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'vod.cn-north-2-gov-1.aliyuncs.com', 'endpoint' => 'vod.cn-north-2-gov-1.aliyuncs.com', 'vpc' => 'vod-vpc.cn-north-2-gov-1.aliyuncs.com'],
],
'errorCodes' => [
['code' => 'AccountBlacklist', 'message' => 'Account blacklist restrictions, please submit a work order to contact customer service for processing.', 'http_code' => 400, 'description' => 'Account blacklist restrictions, please submit a work order to contact customer service for processing.'."\n"],
['code' => 'AIJob.NotFound', 'message' => 'The AIJob is not exist.', 'http_code' => 404, 'description' => 'The AI task does not exist.'],
['code' => 'AIJob.Processing', 'message' => 'AIJob status is processing, please wait a moment.', 'http_code' => 400, 'description' => 'The AI task is in progress.'],
['code' => 'AITemplate.Get.Error', 'message' => 'The AITemplate get failed due to some unknown error.', 'http_code' => 503, 'description' => 'Failed to obtain AI template, please try again later'],
['code' => 'AppServiceNotOpen', 'message' => 'The app manage service is not open.', 'http_code' => 400, 'description' => 'You have not opened the multi app manage service.'],
['code' => 'AuthRequestTimeout', 'message' => 'Auth request timeout, please retry.', 'http_code' => 408, 'description' => 'The playback credentials have expired. Obtain the credentials again.'],
['code' => 'Certificate.Duplicated', 'message' => 'The certificate name is duplicated.', 'http_code' => 400, 'description' => 'The certificate name already exists.'],
['code' => 'Certificate.MissMatch', 'message' => 'The certificate is not match the private key.', 'http_code' => 400, 'description' => 'The security certificate does not match the key.'],
['code' => 'CertificateContent.Duplicated', 'message' => 'The certificate is already uploaded, please do not upload again.', 'http_code' => 400, 'description' => 'The certificate is uploaded.'],
['code' => 'ConfigurationConflicts', 'message' => 'Failed to modify the parameter settings in the production environment because the parameter settings are different from those in the staging'."\n"
.'environment. Set parameters in the staging environment before you publish them to the production environment.', 'http_code' => 400, 'description' => 'Failed to modify the parameter settings in the production environment because the parameter settings are different from those in the staging environment. Set parameters in the staging environment before you publish them to the production environment.'],
['code' => 'DigitalWatermark.InvalidDuration', 'message' => 'The media duration is not satisfied.', 'http_code' => 400, 'description' => 'Video duration does not meet requirements.'],
['code' => 'DigitalWatermark.InvalidParameter.Definition', 'message' => 'The digital watermark param Definition is not valid.', 'http_code' => 400, 'description' => 'The digital watermark definition parameter is invalid.'],
['code' => 'DigitalWatermark.InvalidParameter.Trace', 'message' => 'The digital watermark param Trace is not valid.', 'http_code' => 400, 'description' => 'Invalid digital watermark parameter, invalid parameter: Trace'],
['code' => 'DigitalWatermark.NotWhiteListUser', 'message' => 'NotWhiteListUser Error.', 'http_code' => 400, 'description' => 'Non-whitelisted users'],
['code' => 'DomainAlreadyExist', 'message' => 'The specified domain already exists.', 'http_code' => 400, 'description' => 'The domain name has been added.'],
['code' => 'DomainNameOverLimit', 'message' => 'A maximum of 500 domains are supported for each request.', 'http_code' => 400, 'description' => 'Up to 500 domain names per request'],
['code' => 'DomainNotRegistration', 'message' => 'The domain name is not registered. Please register first.', 'http_code' => 400, 'description' => 'The domain name is not registered. Register the domain name and try again. Learn More'],
['code' => 'DomainOwnerVerifyFail', 'message' => 'Owner verification of the root domain failed.', 'http_code' => 400, 'description' => 'Failed to verify domain ownership.'],
['code' => 'DomainReserved', 'message' => 'The root domain of your domain is reserved by another account. Submit a ticket to contact customer support.', 'http_code' => 400, 'description' => 'The root domain name is already in use. Submit a ticket.'],
['code' => 'EdgeScriptCountExceedLimit', 'message' => 'The number of rules exceeds the default limit (1). To increase the limit, submit a ticket.', 'http_code' => 400, 'description' => 'You can configure only one script. To increase the limit, submit a ticket.'],
['code' => 'EditingProjectMaterialNotExist', 'message' => 'The specific Editing Project Materials are not exist.', 'http_code' => 404, 'description' => 'The specific Editing Project Materials are not exist.'],
['code' => 'EditingProjectNotExist', 'message' => 'The specific Editing Project is not exist.', 'http_code' => 404, 'description' => 'The editing project does not exist.'],
['code' => 'EntityNotExist.Role', 'message' => 'AliyunVODDefaultRole is not authorized by your account.', 'http_code' => 403, 'description' => 'The AliyunVODDefaultRole does not have permissions to access the resources. Authorize the role based on the documentation.'],
['code' => 'ErrorMatchSyntax', 'message' => 'The parameter Match.%s has an error syntax, please check it.', 'http_code' => 400, 'description' => 'Match syntax error.'],
['code' => 'ExtensiveAndSpecificDomainConflict', 'message' => 'Extensive domain and corresponding specific domain are mutually exclusive.', 'http_code' => 400, 'description' => 'Wildcard domain names and specific domain names of the same level as the wildcard domain names are mutually exclusive. Enter another domain name.'],
['code' => 'FileNameIsEmpty', 'message' => 'The specified FileName can not be empty.', 'http_code' => 400, 'description' => 'Specify a file name.'],
['code' => 'Forbidden', 'message' => 'User not authorized to operate on the specified resource.', 'http_code' => 403, 'description' => 'You are not authorized to perform this operation.'],
['code' => 'Forbidden.AliyunVoDEncryption', 'message' => 'Currently only the AliyunVoDEncryption stream exists, you must use the Aliyun player to play or set the value of ResultType to Multiple.', 'http_code' => 403, 'description' => 'Streams that use proprietary encryption can only be played by using ApsaraVideo Player.'],
['code' => 'Forbidden.OperateApp', 'message' => 'User not authorized to operate app.', 'http_code' => 403, 'description' => 'You do not have the permission to perform operations on multiple applications.'],
['code' => 'Forbidden.RAM', 'message' => 'You are not authorized to operate this resource, or this API does not support RAM.', 'http_code' => 403, 'description' => 'You are not authorized to manage the specified resource.'],
['code' => 'Function.ExceedLimit', 'message' => 'The maximum number of configurations (20) has been exceeded.', 'http_code' => 400, 'description' => 'The number of configurations for this feature exceeds the limit.'],
['code' => 'GrayConfigIsNull', 'message' => 'You cannot delete all gary configurations. You can clear them by rolling back the simulation environment.', 'http_code' => 400, 'description' => 'After you remove all rules in the staging environment, configurations on POPs are not removed. You can roll back the staging environment to remove configurations from the staging environment.'."\n"],
['code' => 'IllegalParameter', 'message' => 'The input contains illegal characters.', 'http_code' => 400, 'description' => 'Illegal character in input parameter'],
['code' => 'IllegalSources', 'message' => 'The specified origin site information is invalid.', 'http_code' => 400, 'description' => 'The origin information of the accelerated domain name is incorrect.'],
['code' => 'IllegalTimeFormat', 'message' => 'The time format is illegal.', 'http_code' => 400, 'description' => 'Illegal time format'],
['code' => 'InternalError', 'message' => 'The request processing has failed due to some unknown error.', 'http_code' => 500, 'description' => 'An internal error occurred. Please try again later or contact customer services.'],
['code' => 'InternalError.SubmitJob', 'message' => 'The aijob submit failed due to some unknown error.', 'http_code' => 400, 'description' => 'Failed to submit the AI task.'],
['code' => 'InvaildParameterSource', 'message' => 'The domain must be different from the origin site.', 'http_code' => 400, 'description' => 'The accelerated domain name cannot be the same as the origin domain name.'],
['code' => 'InvalidAIResult.Empty', 'message' => 'The AI Result is empty.', 'http_code' => 400, 'description' => 'The result of the AI task is empty.'],
['code' => 'InvalidAIResult.NotFound', 'message' => 'The AI Result does not exist.', 'http_code' => 404, 'description' => 'The AI task result does not exist.'],
['code' => 'InvalidAppPermission', 'message' => 'Invalid app permission to operate on the specified resource.', 'http_code' => 403, 'description' => 'You do not have the multi-application permission to perform operations on the specified resource.'],
['code' => 'InvalidArgValue.Malformed', 'message' => 'Specified ArgValue is malformed.', 'http_code' => 400, 'description' => 'Invalid parameter value format. Specify this parameter in a valid format and try again.'],
['code' => 'InvalidAuditHistory.NotFound', 'message' => 'The audit history does not exist.', 'http_code' => 404, 'description' => 'The review history does not exist.'],
['code' => 'InvalidAuthInfo.ExpireTime', 'message' => 'The specified parameter AuthInfo has expired.', 'http_code' => 400, 'description' => 'The AuthInfo parameter has expired.'],
['code' => 'InvalidAuthInfo.MediaId', 'message' => 'The specified parameter MediaId does not match VideoId.', 'http_code' => 400, 'description' => 'MediaId does not match the video ID.'],
['code' => 'InvalidBucketOut.NotFound', 'message' => 'There are no out buckets belong to you.', 'http_code' => 404, 'description' => 'The current account has no output buckets.'],
['code' => 'InvalidCateId', 'message' => 'Specified parameter CateId is not valid.', 'http_code' => 400, 'description' => 'Invalid category ID.'],
['code' => 'InvalidCustomHeader', 'message' => 'Parse preload header failed.', 'http_code' => 400, 'description' => 'Failed to parse preload header.'],
['code' => 'InvalidCustomHeader', 'message' => 'Unsupported Preload headers included.', 'http_code' => 400, 'description' => 'Unsupported preload head'],
['code' => 'InvalidEditingProject.NotFound', 'message' => 'The specified Editing project check failed.', 'http_code' => 404, 'description' => 'The editing project does not exist.'],
['code' => 'InvalidEndTime.BeyondCurrent', 'message' => 'The specified end time cannot be beyond current time.', 'http_code' => 400, 'description' => 'The end time cannot be less than the current time.'],
['code' => 'InvalidEndTime.Malformed', 'message' => 'Specified EndTime is malformed.', 'http_code' => 400, 'description' => 'The end time is in an invalid format.'],
['code' => 'InvalidEndTime.Mismatch', 'message' => 'StartTime or EndTime is mismatch.', 'http_code' => 400, 'description' => 'The start time and end time do not match.'],
['code' => 'InvalidEndTime.Mismatch', 'message' => 'The specified EndTime is earlier than the StartTime.', 'http_code' => 400, 'description' => 'End time is earlier than start time'],
['code' => 'InvalidFileName.Extension', 'message' => 'The specified FileName extension is illegal.', 'http_code' => 400, 'description' => 'Invalid filename extension. For filename extensions supported by ApsaraVideo VOD, visit https://www.alibabacloud.com/help/en/doc-detail/55396.html.'],
['code' => 'InvalidImage.NotFound', 'message' => 'The image not exist.', 'http_code' => 404, 'description' => 'The image does not exist.'],
['code' => 'InvalidImage.Status', 'message' => 'The image status check failed.', 'http_code' => 400, 'description' => 'Image status is illegal'],
['code' => 'InvalidMaterial.NotFound', 'message' => 'The specified material check failed.', 'http_code' => 404, 'description' => 'The material does not exist.'],
['code' => 'InvalidMultipartUpload.NotFound', 'message' => 'The multipart upload not exist.', 'http_code' => 400, 'description' => 'The uploaded part does not exist.'],
['code' => 'InvalidObjectPath.Malformed', 'message' => 'The specified ObjectPath is invalid.', 'http_code' => 400, 'description' => 'The ObjectPath parameter is invalid.'],
['code' => 'InvalidOperation.NotSupportedEndpoint', 'message' => 'The specified endpoint cant operate this region. Please check the endpoint.', 'http_code' => 400, 'description' => 'APIs are not supported in the region you specified.'],
['code' => 'InvalidOverrideParameter', 'message' => 'The specified override parameter is not valid.', 'http_code' => 400, 'description' => 'The specified override parameter is invalid.'],
['code' => 'InvalidPageNo', 'message' => 'Specified parameter PageNo is not valid.', 'http_code' => 400, 'description' => 'The value of the PageNo parameter is invalid.'],
['code' => 'InvalidPageSize', 'message' => 'Specified parameter PageSize is not valid.', 'http_code' => 400, 'description' => 'The value of the PageSize parameter is invalid.'],
['code' => 'InvalidParameter', 'message' => 'The specified parameter is not valid.', 'http_code' => 400, 'description' => 'The specified parameter is invalid.'],
['code' => 'InvalidParameter', 'message' => 'The last gray config cannot be deleted.', 'http_code' => 400, 'description' => 'The last configuration in the canary release environment cannot be deleted.'],
['code' => 'InvalidParameter', 'message' => 'Invalid input parameter.', 'http_code' => 400, 'description' => 'Input parameter error.'],
['code' => 'InvalidParameter.EmptyValue', 'message' => 'The specified parameter you provided can not be empty.', 'http_code' => 400, 'description' => 'Parameter cannot be empty.'],
['code' => 'InvalidParameter.InvalidJsonFormat', 'message' => 'The specified parameter is not valid because of JsonFormat.', 'http_code' => 400, 'description' => 'the input parameter is not in json format.'],
['code' => 'InvalidParameter.ResourceNotFound', 'message' => 'The resource operated cannot be found.', 'http_code' => 404, 'description' => 'The acquired resource does not exist.'],
['code' => 'InvalidParameter.UploadURLs', 'message' => 'The specified parameter UploadURLs is not valid.', 'http_code' => 400, 'description' => 'The error message returned because the UploadURLs parameter is invalid.'],
['code' => 'InvalidParameter.WorkFlowParameter', 'message' => 'The specified workFlow parameter is not valid.', 'http_code' => 400, 'description' => 'Invalid workflow parameter.'],
['code' => 'InvalidParameterArea', 'message' => 'The specified parameter Area is invalid.', 'http_code' => 400, 'description' => 'The value of Area is invalid. Set the parameter based on the parameter description in the API documentation.'],
['code' => 'InvalidParameterField', 'message' => 'The specified parameter Field is invalid.', 'http_code' => 400, 'description' => 'The value of Field is invalid. Set the parameter based on the parameter description in the API documentation.'],
['code' => 'InvalidParameterInterval', 'message' => 'The specified Interval is invalid.', 'http_code' => 400, 'description' => 'The specified time granularity is invalid. Specify the time granularity based on the requirements described in the API documentation.'],
['code' => 'InvalidParameterProduct', 'message' => 'The specified parameter Product is invalid.', 'http_code' => 400, 'description' => 'The value of Product is invalid. Set the parameter based on the parameter description in the official documentation.'],
['code' => 'InvalidParameterStartTime', 'message' => 'Invalid Parameter StartTime.', 'http_code' => 400, 'description' => 'The StartTime parameter is invalid.'],
['code' => 'InvalidParameterType', 'message' => 'The specified Type is invalid.', 'http_code' => 400, 'description' => 'The Type parameter is invalid. Modify the value of the Type parameter based on the documentation.'],
['code' => 'InvalidParamter.NotSupportOverrided', 'message' => 'Do not support override different subtitle language.', 'http_code' => 400, 'description' => 'Rewriting subtitle language is not supported'],
['code' => 'InvalidSources.Malformed', 'message' => 'Specified Sources is malformed.', 'http_code' => 400, 'description' => 'The origin information is in an invalid format.'],
['code' => 'InvalidSourceStr.Malformed', 'message' => 'Specified SourceStr is malformed.', 'http_code' => 400, 'description' => 'The format of the incoming source information is incorrect.'],
['code' => 'InvalidSSLPri', 'message' => 'The SSLPri you provided is malformed.', 'http_code' => 400, 'description' => 'The request parameter SSLPri is in an invalid format.'],
['code' => 'InvalidSSLPub', 'message' => 'The SSLPub you provided is malformed.', 'http_code' => 400, 'description' => 'Invalid SSLPub format.'],
['code' => 'InvalidStartTime.Malformed', 'message' => 'Specified StartTime is malformed.', 'http_code' => 400, 'description' => 'The start time is in an invalid format.'],
['code' => 'InvalidStartTime.Mismatch', 'message' => 'StartTime or EndTime is mismatch.', 'http_code' => 400, 'description' => 'The start time and end time do not match.'],
['code' => 'InvalidStartTime.ValueNotSupported', 'message' => 'The specified start time has invalid value.', 'http_code' => 400, 'description' => 'The start time is invalid.'],
['code' => 'InvalidStorage.NotFound', 'message' => 'The specified storage location cannot be found.', 'http_code' => 404, 'description' => 'The OSS address does not exist.'],
['code' => 'InvalidStorage.NotRegistered', 'message' => 'The storageLocation must be registered on VOD.', 'http_code' => 400, 'description' => 'Storage address not registered in VOD'],
['code' => 'InvalidStorageLocation', 'message' => 'The StorageLocation must be in the same division(apiRegion) as VOD service access point.', 'http_code' => 400, 'description' => 'The storage address must be in the same region as the API call address.'],
['code' => 'InvalidStream.NotFound', 'message' => 'The stream does not exist.', 'http_code' => 404, 'description' => 'The video stream does not exist.'],
['code' => 'InvalidTaskId.Malformed', 'message' => 'The specified TaskId is invalid.', 'http_code' => 400, 'description' => 'Invalid TaskId'],
['code' => 'InvalidTemplateGroupId.NotFound', 'message' => 'The TemplateGroupId does not exist.', 'http_code' => 404, 'description' => 'The ID of the transcoding template group does not exist.'],
['code' => 'InvalidTime', 'message' => 'The query time cannot exceed the last 3 days.', 'http_code' => 400, 'description' => 'The request time cannot be returned for more than 3 days.'],
['code' => 'InvalidTime.Malformed', 'message' => 'The specified Time is malformed.', 'http_code' => 400, 'description' => 'The time format is incorrect. Modify the format of the input parameter based on the documentation.'],
['code' => 'InvalidTime.ValueNotSupported', 'message' => 'The specified time has invalid value.', 'http_code' => 400, 'description' => 'The time parameter value is invalid.'],
['code' => 'InvalidTimeRange', 'message' => 'Invalid StartTime and EndTime range.', 'http_code' => 400, 'description' => 'The time frame is not legal.'],
['code' => 'InvalidTimeSpan', 'message' => 'The time span exceeds the limit.', 'http_code' => 400, 'description' => 'The time span exceeds the limit. Configure a valid time span based on the documentation.'],
['code' => 'InvalidVideo.DurationZero', 'message' => 'Video duration is 0.', 'http_code' => 400, 'description' => 'Video duration is 0.'],
['code' => 'InvalidVideo.NoneStream', 'message' => 'The video has no stream to play for the request parameter.', 'http_code' => 400, 'description' => 'No video stream is found for playback based on the request parameters that you specified.'],
['code' => 'InvalidVideo.Status', 'message' => 'The video status check failed.', 'http_code' => 400, 'description' => 'Failed to check the video status.'],
['code' => 'InvalidWorkFlowId.NotFound', 'message' => 'The workflow does not exist.', 'http_code' => 404, 'description' => 'Workflow does not exist'],
['code' => 'LengthExceededMax', 'message' => 'The specified %s length has exceeded %s.', 'http_code' => 400, 'description' => 'The maximum length of the parameter value has been reached.'],
['code' => 'LicensePayOrderError', 'message' => 'Each version of SDK only supports one pending payment status license.', 'http_code' => 400, 'description' => 'Each version of the SDK supports only one pending payment.'],
['code' => 'LogstoreNotExist', 'message' => 'The log store project does not exist', 'http_code' => 404, 'description' => 'The log storage project does not exist.'],
['code' => 'MediaId.NotExist', 'message' => 'The MediaId is not exist.', 'http_code' => 404, 'description' => 'MediaId does not exist.'],
['code' => 'Meter.AuthError', 'message' => 'Authentication Failed,Please Try Again.', 'http_code' => 403, 'description' => 'You do not have permissions to perform this operation.'],
['code' => 'Meter.DataSourceQueryError', 'message' => 'Data Source Error:%s,Please Try Again.', 'http_code' => 500, 'description' => 'An internal data source error occurred.'],
['code' => 'Meter.ParamError', 'message' => 'Param Error:%s,Please Check Again.', 'http_code' => 400, 'description' => 'One or more parameters are invalid.'],
['code' => 'Meter.ReadyTsError', 'message' => 'Get ReadyTs Failed,Please Try Again.', 'http_code' => 502, 'description' => 'The data is not prepared.'],
['code' => 'Meter.ServerInternalError', 'message' => 'The Request Processing Has Failed Due To Some Unknown Error.', 'http_code' => 500, 'description' => 'An internal error occurred.'],
['code' => 'MissingParameter', 'message' => 'The input parameter \\ that is mandatory for processing this request is not supplied.', 'http_code' => 400, 'description' => 'You must specify this parameter.'],
['code' => 'MissingParameter', 'message' => 'The Source Content must be specified.', 'http_code' => 400, 'description' => 'The Source Content must be specified.'],
['code' => 'MissingParameter.ObjectType', 'message' => 'The ObjectType parameter is required if DomainName or Status is specified.', 'http_code' => 400, 'description' => 'ObjectType parameter is required when specifying DomainName or Status'],
['code' => 'MissingTimeParameter', 'message' => 'The StartTime and EndTime must be both specified.', 'http_code' => 400, 'description' => 'Both start time and end must be specified'],
['code' => 'MissingVideoId', 'message' => 'VideoId is mandatory for this action.', 'http_code' => 400, 'description' => 'The VideoId parameter is not specified.'],
['code' => 'NoSuchResource', 'message' => 'The specified resource does not exist.', 'http_code' => 404, 'description' => 'The resource does not exist.'],
['code' => 'NotExist.AppId', 'message' => 'The specified AppId does not exist.', 'http_code' => 404, 'description' => 'AppId does not exist'],
['code' => 'NotExist.WorkflowId', 'message' => 'The specified vod workflow does not exist.', 'http_code' => 404, 'description' => 'The VOD workflow does not exist.'],
['code' => 'NotInternationRealIdentity', 'message' => 'You need to do real name authentication when you use Chinese mainland resources.', 'http_code' => 400, 'description' => 'You have not passed real-name verification. According to the regulations issued by MIIT, you must pass real-name verification if you want to purchase IT services in the Chinese mainland. '],
['code' => 'NotUserInfoExist', 'message' => 'Can not found user info.', 'http_code' => 400, 'description' => 'User information does not exist.'],
['code' => 'Operation.Deny', 'message' => 'Operation is not allowed.', 'http_code' => 400, 'description' => 'This operation is not allowed.'],
['code' => 'OperationDenied.FunctionNotSupported', 'message' => 'The function is not supported in current region.', 'http_code' => 403, 'description' => 'This feature is not supported in the current region.'],
['code' => 'OperationDenied.NotOpenAppService', 'message' => 'The app service is not open.', 'http_code' => 403, 'description' => 'The multi-application service for ApsaraVideo VOD is not enabled.'],
['code' => 'OperationDenied.Suspended', 'message' => 'Your VOD service is suspended.', 'http_code' => 403, 'description' => 'You have overdue payments in your account. Please top up or recharge your account.'],
['code' => 'OverLimit', 'message' => 'Quantity of specified resource reached the maximum limit.', 'http_code' => 403, 'description' => 'The number of resources you can create within your account has reached the upper limit. No resources can be created.'],
['code' => 'PreloadQueueFull', 'message' => 'Preload queue is full, please try again later.', 'http_code' => 400, 'description' => 'The prefetch queue is full. Please try again later.'],
['code' => 'Produce.TimelineClip.Status.InValid', 'message' => 'Timeline Clips do not have valid status.', 'http_code' => 400, 'description' => 'The TimeLine.Clip parameter is invalid.'],
['code' => 'ProduceCheckMaterialError', 'message' => 'The Editing Project\'s Materials error.', 'http_code' => 400, 'description' => 'Failed to get clip material.'],
['code' => 'ProduceFailed', 'message' => 'The Producing for Editing Project has failed.', 'http_code' => 400, 'description' => 'The editing task failed.'],
['code' => 'ProduceFailed', 'message' => 'The Producing for Editing Project has failed.', 'http_code' => 400, 'description' => 'The production failed.'],
['code' => 'ProduceGetUserError', 'message' => 'Before Generate Video Get User failed.', 'http_code' => 400, 'description' => 'Failed to obtain user information while generating video.'],
['code' => 'ProduceRegionInvalid', 'message' => 'Before Generate Video Get User Region failed.', 'http_code' => 400, 'description' => 'Failed to obtain region information.'],
['code' => 'QuotaExceeded.Preload', 'message' => 'Your preload attempts have exceeded the daily limit.', 'http_code' => 400, 'description' => 'The daily prefetch quota has been exceeded.'],
['code' => 'QuotaExceeded.Refresh', 'message' => 'Your refresh attempts have exceeded the daily limit.', 'http_code' => 400, 'description' => 'The daily refresh quota has been exceeded.'],
['code' => 'RefreshQueueFull', 'message' => 'Refresh queue is full, please try again later.', 'http_code' => 400, 'description' => 'The refresh queue is full. Please try again later.'],
['code' => 'RegisterMetadatasIsEmpty', 'message' => 'The specified RegisterMetadatas can not be empty.', 'http_code' => 400, 'description' => 'Specify RegisterMetadatas.'],
['code' => 'Rejected.Throttling', 'message' => 'Request was rejected due to flow control.', 'http_code' => 403, 'description' => 'Throttling is triggered.'],
['code' => 'RequestTimeout', 'message' => 'The request timeout, please try again.', 'http_code' => 503, 'description' => 'The request timed out.'],
['code' => 'Resource usage and cannot be deleted.', 'message' => 'The ApsaraVideo for VOD service is still running. Delete the video resources and ensure that there are no tasks in upload or transcoding.', 'http_code' => 400, 'description' => 'The ApsaraVideo for VOD service is still running. Delete the video resources and ensure that there are no tasks in upload or transcoding.'],
['code' => 'ResourceExist.PreprocessStream', 'message' => 'The preprocess stream resource is exist', 'http_code' => 200, 'description' => 'The preprocessed playback stream already exists.'],
['code' => 'ResourceNotFound', 'message' => 'Resource Not Found.', 'http_code' => 404, 'description' => 'Resource not found'],
['code' => 'SDK.ServerUnreachable', 'message' => 'SocketTimeoutException has occurred on a socket read or accept.', 'http_code' => 400, 'description' => 'The requested service timed out.'],
['code' => 'ServiceNotAvailable', 'message' => 'The service is unavailable due to an account error.', 'http_code' => 400, 'description' => 'The account information is incorrect. Submit a ticket.'],
['code' => 'ServiceUnAvailable', 'message' => 'The request has failed due to a temporary failure of the server.', 'http_code' => 503, 'description' => 'The service is unavailable.'],
['code' => 'SSLPri.MissingParameter', 'message' => 'An input parameter SSLPri that is mandatory for processing the request is not supplied.', 'http_code' => 400, 'description' => 'Specify SSLPri.'],
['code' => 'TimelineFormatError', 'message' => 'The Editing Project Timeline format error.', 'http_code' => 400, 'description' => 'Incorrect format of the editing project timeline.'],
['code' => 'TimelineIsBlank', 'message' => 'The Editing Project\'s Timeline is blank.', 'http_code' => 400, 'description' => 'The clip timeline is empty.'],
['code' => 'TimeSpanExceed', 'message' => 'time span too long.', 'http_code' => 400, 'description' => 'Time span too large'],
['code' => 'TitleIsEmpty', 'message' => 'The specified Title can not be empty.', 'http_code' => 400, 'description' => 'Specify a title.'],
['code' => 'TranscodeJob.SubmitFailed', 'message' => 'Submit transcode job failed.', 'http_code' => 400, 'description' => 'Failed to submit the transcoding task.'],
['code' => 'Unauthorized', 'message' => 'Service Not Authorized', 'http_code' => 400, 'description' => 'You do not have permissions to access this service.'],
['code' => 'VideoIdExceededMax', 'message' => 'The videoId size exceeded maximum.', 'http_code' => 403, 'description' => 'The maximum number of video IDs has been reached.'],
['code' => 'VodServiceNotFound', 'message' => 'The VOD service is not activated.', 'http_code' => 403, 'description' => 'ApsaraVideo VOD is not activated.'],
],
'changeSet' => [
[
'apis' => [
['description' => 'OpenAPI offline', 'api' => 'SetAuditSecurityIp'],
],
'createdAt' => '2025-08-05T08:16:39.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'OpenAPI offline', 'api' => 'DescribeVodCertificateList'],
['description' => 'OpenAPI offline', 'api' => 'DescribeVodDomainConfigs'],
['description' => 'OpenAPI offline', 'api' => 'DeleteVodSpecificConfig'],
['description' => 'OpenAPI offline', 'api' => 'DescribeVodDomainDetail'],
['description' => 'OpenAPI offline', 'api' => 'DeleteVodTemplate'],
['description' => 'OpenAPI offline', 'api' => 'DeleteWatermark'],
['description' => 'OpenAPI offline', 'api' => 'DescribeMediaDistribution'],
['description' => 'OpenAPI offline', 'api' => 'DeleteVodDomain'],
['description' => 'OpenAPI offline', 'api' => 'DeleteMultipartUpload'],
['description' => 'OpenAPI offline', 'api' => 'DeleteVideo'],
],
'createdAt' => '2025-07-10T07:33:25.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'OpenAPI offline', 'api' => 'DescribeVodCertificateList'],
['description' => 'OpenAPI offline', 'api' => 'DescribeVodDomainConfigs'],
['description' => 'OpenAPI offline', 'api' => 'DeleteVodSpecificConfig'],
['description' => 'OpenAPI offline', 'api' => 'DescribeVodDomainDetail'],
['description' => 'OpenAPI offline', 'api' => 'DeleteVodTemplate'],
['description' => 'OpenAPI offline', 'api' => 'DeleteWatermark'],
['description' => 'OpenAPI offline', 'api' => 'DescribeMediaDistribution'],
['description' => 'OpenAPI offline', 'api' => 'DeleteVodDomain'],
['description' => 'OpenAPI offline', 'api' => 'DeleteMultipartUpload'],
['description' => 'OpenAPI offline', 'api' => 'DeleteVideo'],
],
'createdAt' => '2025-07-10T07:33:25.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'OpenAPI offline', 'api' => 'DescribeVodCertificateList'],
['description' => 'OpenAPI offline', 'api' => 'DescribeVodDomainConfigs'],
['description' => 'OpenAPI offline', 'api' => 'DeleteVodSpecificConfig'],
['description' => 'OpenAPI offline', 'api' => 'DescribeVodDomainDetail'],
['description' => 'OpenAPI offline', 'api' => 'DeleteVodTemplate'],
['description' => 'OpenAPI offline', 'api' => 'DeleteWatermark'],
['description' => 'OpenAPI offline', 'api' => 'DescribeMediaDistribution'],
['description' => 'OpenAPI offline', 'api' => 'DeleteVodDomain'],
['description' => 'OpenAPI offline', 'api' => 'DeleteMultipartUpload'],
['description' => 'OpenAPI offline', 'api' => 'DeleteVideo'],
],
'createdAt' => '2025-07-10T07:33:11.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'OpenAPI offline', 'api' => 'DescribeVodCertificateList'],
['description' => 'OpenAPI offline', 'api' => 'DescribeVodDomainConfigs'],
['description' => 'OpenAPI offline', 'api' => 'DeleteVodSpecificConfig'],
['description' => 'OpenAPI offline', 'api' => 'DescribeVodDomainDetail'],
['description' => 'OpenAPI offline', 'api' => 'DeleteVodTemplate'],
['description' => 'OpenAPI offline', 'api' => 'DeleteWatermark'],
['description' => 'OpenAPI offline', 'api' => 'DescribeMediaDistribution'],
['description' => 'OpenAPI offline', 'api' => 'DeleteVodDomain'],
['description' => 'OpenAPI offline', 'api' => 'DeleteMultipartUpload'],
['description' => 'OpenAPI offline', 'api' => 'DeleteVideo'],
],
'createdAt' => '2025-07-10T07:33:05.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'OpenAPI offline', 'api' => 'GetAppInfos'],
['description' => 'OpenAPI offline', 'api' => 'CreateAppInfo'],
['description' => 'OpenAPI offline', 'api' => 'ListAppInfo'],
],
'createdAt' => '2025-06-19T08:27:33.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'OpenAPI offline', 'api' => 'GetAppInfos'],
['description' => 'OpenAPI offline', 'api' => 'CreateAppInfo'],
['description' => 'OpenAPI offline', 'api' => 'ListAppInfo'],
],
'createdAt' => '2025-06-18T07:27:25.000Z',
'description' => '',
],
[
'apis' => [
['description' => 'OpenAPI offline', 'api' => 'CreateAppInfo'],
['description' => 'OpenAPI offline', 'api' => 'ListAppInfo'],
['description' => 'OpenAPI offline', 'api' => 'GetAppInfos'],
],
'createdAt' => '2025-06-17T07:30:27.000Z',
'description' => '',
],
],
'flowControl' => [
'flowControlList' => [
['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetDefaultAITemplate'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AttachAppPolicyToIdentity'],
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteCategory'],
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteImage'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainDetail'],
['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetDefaultTranscodeTemplateGroup'],
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RestoreMedia'],
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SubmitAIImageAuditJob'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchSetVodDomainConfigs'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateVideoInfos'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateEditingProject'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GenerateKMSDataKey'],
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetMediaAuditResult'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainHitRateData'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetMediaAuditResultTimeline'],
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListAuditSecurityIp'],
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAuditHistory'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainMax95BpsData'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainRealTimeHttpCodeData'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainSrcTrafficData'],
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetMediaDNAResult'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetVodDomainCertificate'],
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateCategory'],
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GenerateDownloadSecretKey'],
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RegisterMedia'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetTranscodeTemplateGroup'],
['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListJobInfo'],
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodTieringStorageData'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDefaultAITemplate'],
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ProduceEditingProjectVideo'],
['threshold' => '360', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetVideoPlayAuth'],
['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteVodTemplate'],
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodTieringStorageRetrievalData'],
['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAITemplate'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListVodTemplate'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteAppInfo'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddWatermark'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListWatermark'],
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateUploadImage'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainLog'],
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateVideoInfo'],
['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddAITemplate'],
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetMediaRefreshJobs'],
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribePlayTopVideos'],
['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListTranscodeTask'],
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RefreshVodObjectCaches'],
['threshold' => '2', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetDefaultWatermark'],
['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListAITemplate'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteMessageCallback'],
['threshold' => '80', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RefreshUploadVideo'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetEditingProject'],
['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteAITemplate'],
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateAudit'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteVodDomain'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainCertificateInfo'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetWatermark'],
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListLiveRecordVideo'],
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateAttachedMediaInfos'],
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateVodTemplate'],
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribePlayVideoStatis'],
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteStream'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetMediaAuditResultDetail'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SubmitMediaDNADeleteJob'],
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateMediaStorageClass'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateAppInfo'],
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UploadMediaByURL'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainBpsData'],
['threshold' => '360', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetPlayInfo'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetVodDomainSSLCertificate'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateVodDomain'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetImageInfos'],
['threshold' => '3', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDailyPlayRegionStatis'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SubmitAIImageJob'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddEditingProject'],
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteMezzanines'],
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetUploadDetails'],
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListAIImageInfo'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainRealTimeQpsData'],
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodEditingUsageData'],
['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteTranscodeTemplateGroup'],
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAttachedMediaInfo'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteVodSpecificConfig'],
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainRealTimeTrafficData'],
['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddTranscodeTemplateGroup'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodCertificateList'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetEditingProjectMaterials'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteVideo'],
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetMediaAuditAudioResultDetail'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListAppInfo'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddVodTemplate'],
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ChangeResourceGroup'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodMediaPlayData'],
['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetTranscodeSummary'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetVodTemplate'],
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteAIImageInfos'],
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribePlayUserTotal'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodStorageData'],
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CancelUrlUploadJobs'],
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateUploadAttachedMedia'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainRealTimeByteHitRateData'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainRealTimeDetailData'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodRefreshQuota'],
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RefreshMediaPlayUrls'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainTrafficData'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodAIData'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainQpsData'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListSnapshots'],
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodRefreshTasks'],
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetVideoList'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDynamicImage'],
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetVideoInfo'],
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteAttachedMedia'],
['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetMessageCallback'],
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetVideoInfos'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetEditingProjectMaterials'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodSSLCertificateList'],
['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeMediaDistribution'],
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAppInfos'],
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateAppInfo'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainConfigs'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SubmitDynamicImageJob'],
['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteWatermark'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchStopVodDomain'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetCrossdomainContent'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainRealTimeBpsData'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainSrcBpsData'],
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainBpsDataByLayer'],
['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListTranscodeTemplateGroup'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListAppPoliciesForIdentity'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAIVideoTagResult'],
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchGetMediaInfos'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchStartVodDomain'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainReqHitRateData'],
['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SubmitPreprocessJobs'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListAIJob'],
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateImageInfos'],
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainUsageData'],
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListDynamicImage'],
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SearchMedia'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodVerifyContent'],
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'PreloadVodObjectCaches'],
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddEditingProjectMaterials'],
['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateTranscodeTemplateGroup'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddCategory'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SubmitSnapshotJob'],
['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateAITemplate'],
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UploadStreamByURL'],
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteEditingProject'],
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteEditingProjectMaterials'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodTranscodeData'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodUserDomains'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SearchEditingProject'],
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetImageInfo'],
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SubmitWorkflowJob'],
['threshold' => '2', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateWatermark'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetMessageCallback'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'MoveAppResource'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddVodStorageForApp'],
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetCategories'],
['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAIMediaAuditJob'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SubmitAIJob'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAIImageJobs'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SubmitDigitalWatermarkExtractJob'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SubmitTranscodeJobs'],
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodRangeDataByLocateAndIspService'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddVodDomain'],
['threshold' => '80', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateUploadVideo'],
['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeVodDomainRealTimeReqHitRateData'],
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetAuditSecurityIp'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteMultipartUpload'],
['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SubmitAIMediaAuditJob'],
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDigitalWatermarkExtractResult'],
['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetTranscodeTask'],
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetURLUploadInfos'],
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetMezzanineInfo'],
['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DecryptKMSDataKey'],
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'VerifyVodDomainOwner'],
['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetJobDetail'],
['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DetachAppPolicyFromIdentity'],
['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribePlayUserAvg'],
],
],
'ram' => [
'productCode' => 'VOD',
'productName' => 'ApsaraVideo VOD',
'ramCodes' => ['vod'],
'ramLevel' => 'OPERATION',
'ramConditions' => [],
'ramActions' => [
[
'apiName' => 'GetVideoPlayAuth',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetVideoPlayAuth',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'RefreshUploadVideo',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:RefreshUploadVideo',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetImageInfos',
'description' => '',
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:GetImageInfos',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodUserVipsByDomain',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodUserVipsByDomain',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetAuditHistory',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetAuditHistory',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodTieringStorageData',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'vod:DescribeVodTieringStorageData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DeleteMultipartUpload',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteMultipartUpload',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'UploadMediaByURL',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:UploadMediaByURL',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'SubmitAIImageAuditJob',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:SubmitAIImageAuditJob',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DeleteEditingProjectMaterials',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteEditingProjectMaterials',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'SubmitWorkflowJob',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:SubmitWorkflowJob',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetDefaultAITemplate',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetDefaultAITemplate',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DeleteWatermark',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteWatermark',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'BatchStopVodDomain',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:BatchStopVodDomain',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetAIMediaAuditJob',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetAIMediaAuditJob',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'ListAIImageInfo',
'description' => '',
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:ListAIImageInfo',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'UpdateCategory',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:UpdateCategory',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'UpdateVodDomain',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:UpdateVodDomain',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetEditingProjectMaterials',
'description' => '',
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:GetEditingProjectMaterials',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'AddCategory',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:AddCategory',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DeleteDynamicImage',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteDynamicImage',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetMediaAuditResultDetail',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetMediaAuditResultDetail',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DeleteVodSpecificConfig',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteVodSpecificConfig',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodDomainRealTimeQpsData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainRealTimeQpsData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodDomainRealTimeBpsData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainRealTimeBpsData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'VerifyVodDomainOwner',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:VerifyVodDomainOwner',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'SetVodDomainCertificate',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:SetVodDomainCertificate',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'ListVodTemplate',
'description' => '',
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:ListVodTemplate',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodDomainConfigs',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainConfigs',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodRangeDataByLocateAndIspService',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodRangeDataByLocateAndIspService',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'MoveAppResource',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:MoveAppResource',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodDomainQpsData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainQpsData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetTranscodeTask',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetTranscodeTask',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'RegisterMedia',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:RegisterMedia',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'SetMessageCallback',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:SetMessageCallback',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetAITemplate',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetAITemplate',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'UpdateWatermark',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:UpdateWatermark',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetTranscodeSummary',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetTranscodeSummary',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodDomainRealTimeHttpCodeData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainRealTimeHttpCodeData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeMediaDistribution',
'description' => '',
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:DescribeMediaDistribution',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetMediaRefreshJobs',
'description' => '',
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:GetMediaRefreshJobs',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'SubmitAIJob',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:SubmitAIJob',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DeleteAppInfo',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteAppInfo',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'ProduceEditingProjectVideo',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:ProduceEditingProjectVideo',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'BatchGetMediaInfos',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:BatchGetMediaInfos',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'BatchStartVodDomain',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:BatchStartVodDomain',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodCertificateList',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodCertificateList',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'AddVodDomain',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:AddVodDomain',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'ListLiveRecordVideo',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:ListLiveRecordVideo',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'UpdateVideoInfo',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:UpdateVideoInfo',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribePlayTopVideos',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribePlayTopVideos',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DeleteMezzanines',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteMezzanines',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetPlayInfo',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetPlayInfo',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'AddWatermark',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:AddWatermark',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'SearchMedia',
'description' => '',
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:SearchMedia',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetTranscodeTemplateGroup',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetTranscodeTemplateGroup',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribePlayVideoStatis',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribePlayVideoStatis',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'CancelUrlUploadJobs',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:CancelUrlUploadJobs',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetAppInfos',
'description' => '',
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:GetAppInfos',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'SubmitAIMediaAuditJob',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:SubmitAIMediaAuditJob',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'RestoreMedia',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:RestoreMedia',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'SearchEditingProject',
'description' => '',
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:SearchEditingProject',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'UpdateAITemplate',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:UpdateAITemplate',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodVerifyContent',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodVerifyContent',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodTieringStorageRetrievalData',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'vod:DescribeVodTieringStorageRetrievalData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'UpdateAppInfo',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:UpdateAppInfo',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetMediaAuditAudioResultDetail',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetMediaAuditAudioResultDetail',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'SetEditingProjectMaterials',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:SetEditingProjectMaterials',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodSSLCertificateList',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodSSLCertificateList',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodRefreshTasks',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodRefreshTasks',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodDomainCertificateInfo',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainCertificateInfo',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetDigitalWatermarkExtractResult',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetDigitalWatermarkExtractResult',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodEditingUsageData',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'vod:DescribeVodEditingUsageData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodDomainRealTimeDetailData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainRealTimeDetailData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'AddTranscodeTemplateGroup',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:AddTranscodeTemplateGroup',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'UploadStreamByURL',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:UploadStreamByURL',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodRefreshQuota',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodRefreshQuota',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'ListAIJob',
'description' => '',
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:ListAIJob',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DeleteImage',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteImage',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'RefreshVodObjectCaches',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:RefreshVodObjectCaches',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodDomainMax95BpsData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainMax95BpsData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetAIVideoTagResult',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetAIVideoTagResult',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'ListAppPoliciesForIdentity',
'description' => '',
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:ListAppPoliciesForIdentity',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodDomainSrcTrafficData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainSrcTrafficData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'AddEditingProject',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:AddEditingProject',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'SetDefaultAITemplate',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:SetDefaultAITemplate',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribePlayUserTotal',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribePlayUserTotal',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetCategories',
'description' => '',
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:GetCategories',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'ListTranscodeTask',
'description' => '',
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:ListTranscodeTask',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DeleteVodDomain',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteVodDomain',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'SetCrossdomainContent',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:SetCrossdomainContent',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'AddVodStorageForApp',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:AddVodStorageForApp',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetUploadDetails',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetUploadDetails',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodDomainBpsDataByLayer',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainBpsDataByLayer',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'SetAuditSecurityIp',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:SetAuditSecurityIp',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DeleteTranscodeTemplateGroup',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteTranscodeTemplateGroup',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'RefreshMediaPlayUrls',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:RefreshMediaPlayUrls',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'ListAppInfo',
'description' => '',
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:ListAppInfo',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'AddEditingProjectMaterials',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:AddEditingProjectMaterials',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'AttachAppPolicyToIdentity',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'vod:AttachAppPolicyToIdentity',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodMediaPlayData',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'vod:DescribeVodMediaPlayData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodUserDomains',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodUserDomains',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DeleteMessageCallback',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteMessageCallback',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'UpdateVodTemplate',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:UpdateVodTemplate',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DecryptKMSDataKey',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DecryptKMSDataKey',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'UpdateTranscodeTemplateGroup',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:UpdateTranscodeTemplateGroup',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetAttachedMediaInfo',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetAttachedMediaInfo',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DeleteAITemplate',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteAITemplate',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodTranscodeData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodTranscodeData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodDomainDetail',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainDetail',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'SetAppPlayKey',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:SetAppPlayKey',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'SubmitAIImageJob',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:SubmitAIImageJob',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'AddVodTemplate',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:AddVodTemplate',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodDomainRealTimeTrafficData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainRealTimeTrafficData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodDomainBpsData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainBpsData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DeleteVodTemplate',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteVodTemplate',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'UpdateAttachedMediaInfos',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:UpdateAttachedMediaInfos',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DeleteEditingProject',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteEditingProject',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'ChangeResourceGroup',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:ChangeResourceGroup',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetWatermark',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetWatermark',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'CreateUploadImage',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:CreateUploadImage',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'ListDynamicImage',
'description' => '',
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:ListDynamicImage',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetMessageCallback',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetMessageCallback',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetAppPlayKey',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetAppPlayKey',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodDomainRealTimeReqHitRateData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainRealTimeReqHitRateData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'SubmitSnapshotJob',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:SubmitSnapshotJob',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'AddAITemplate',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:AddAITemplate',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodDomainHitRateData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainHitRateData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodDomainLog',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainLog',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodStorageData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodStorageData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DeleteCategory',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteCategory',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'SubmitMediaDNADeleteJob',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:SubmitMediaDNADeleteJob',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodPlayerMetricData',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'vod:DescribeVodPlayerMetricData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'ListJobInfo',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:ListJobInfo',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetMediaAuditResultTimeline',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetMediaAuditResultTimeline',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodPlayerCollectData',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'vod:DescribeVodPlayerCollectData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'CreateUploadAttachedMedia',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:CreateUploadAttachedMedia',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'SetVodDomainSSLCertificate',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:SetVodDomainSSLCertificate',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'ListAuditSecurityIp',
'description' => '',
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:ListAuditSecurityIp',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetAIImageJobs',
'description' => '',
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:GetAIImageJobs',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'UpdateMediaStorageClass',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:UpdateMediaStorageClass',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodDomainTrafficData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainTrafficData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DetachAppPolicyFromIdentity',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:DetachAppPolicyFromIdentity',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'CreateAudit',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:CreateAudit',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribePlayUserAvg',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribePlayUserAvg',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'UpdateImageInfos',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:UpdateImageInfos',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GenerateDownloadSecretKey',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:GenerateDownloadSecretKey',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'SubmitDynamicImageJob',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:SubmitDynamicImageJob',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DeleteAIImageInfos',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteAIImageInfos',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodDomainRealTimeByteHitRateData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainRealTimeByteHitRateData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetMediaAuditResult',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetMediaAuditResult',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodAIData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodAIData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetMediaDNAResult',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetMediaDNAResult',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GenerateKMSDataKey',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:GenerateKMSDataKey',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodDomainSrcBpsData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainSrcBpsData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetImageInfo',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetImageInfo',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodPlayerDimensionData',
'description' => '',
'operationType' => 'none',
'ramAction' => [
'action' => 'vod:DescribeVodPlayerDimensionData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetMezzanineInfo',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetMezzanineInfo',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'ListWatermark',
'description' => '',
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:ListWatermark',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'ListSnapshots',
'description' => '',
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:ListSnapshots',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'PreloadVodObjectCaches',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:PreloadVodObjectCaches',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetEditingProject',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetEditingProject',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodDomainUsageData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainUsageData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'UpdateVideoInfos',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:UpdateVideoInfos',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetVideoInfo',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetVideoInfo',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'SubmitTranscodeJobs',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:SubmitTranscodeJobs',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'ListTranscodeTemplateGroup',
'description' => '',
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:ListTranscodeTemplateGroup',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'SetDefaultWatermark',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:SetDefaultWatermark',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetVideoInfos',
'description' => '',
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:GetVideoInfos',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DeleteStream',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteStream',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'SetDefaultTranscodeTemplateGroup',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:SetDefaultTranscodeTemplateGroup',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'ListAITemplate',
'description' => '',
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:ListAITemplate',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'UpdateEditingProject',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:UpdateEditingProject',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DeleteVideo',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteVideo',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetVideoList',
'description' => '',
'operationType' => 'list',
'ramAction' => [
'action' => 'vod:GetVideoList',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DeleteAttachedMedia',
'description' => '',
'operationType' => 'delete',
'ramAction' => [
'action' => 'vod:DeleteAttachedMedia',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'BatchSetVodDomainConfigs',
'description' => '',
'operationType' => 'update',
'ramAction' => [
'action' => 'vod:BatchSetVodDomainConfigs',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetJobDetail',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetJobDetail',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetDailyPlayRegionStatis',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetDailyPlayRegionStatis',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'SubmitDigitalWatermarkExtractJob',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:SubmitDigitalWatermarkExtractJob',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetURLUploadInfos',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetURLUploadInfos',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'CreateUploadVideo',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:CreateUploadVideo',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'CreateAppInfo',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:CreateAppInfo',
'authLevel' => 'resource',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'DescribeVodDomainReqHitRateData',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:DescribeVodDomainReqHitRateData',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'GetVodTemplate',
'description' => '',
'operationType' => 'get',
'ramAction' => [
'action' => 'vod:GetVodTemplate',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
[
'apiName' => 'SubmitPreprocessJobs',
'description' => '',
'operationType' => 'create',
'ramAction' => [
'action' => 'vod:SubmitPreprocessJobs',
'authLevel' => 'operate',
'actionConditions' => [],
'resources' => [
['validationType' => 'always', 'product' => 'VOD', 'resourceType' => 'All Resource', 'arn' => '*'],
],
],
],
],
'resourceTypes' => [
['validationType' => 'always', 'resourceType' => 'Image', 'arn' => 'acs:vod:{#regionId}:{#accountId}:Image/*'],
['validationType' => 'always', 'resourceType' => 'MediaRefreshJob', 'arn' => 'acs:vod:*:{#accountId}:MediaRefreshJob/*'],
['validationType' => 'always', 'resourceType' => 'AppInfo', 'arn' => 'acs:vod:{#regionId}:{#accountId}:appinfo/{#AppId}'],
['validationType' => 'always', 'resourceType' => 'EditingProject', 'arn' => 'acs:vod:{#regionId}:{#accountId}:editingproject/{#EditingProjectId}'],
['validationType' => 'always', 'resourceType' => 'UrlUploadJob', 'arn' => 'acs:vod:{#regionId}:{#accountId}:urluploadjob/{#UrlUploadJobId}'],
['validationType' => 'always', 'resourceType' => 'Storage', 'arn' => 'acs:vod:{#regionId}:{#accountId}:storage/{#StorageLocation}'],
['validationType' => 'always', 'resourceType' => 'AiTemplate', 'arn' => 'acs:vod:{#regionId}:{#accountId}:aitemplate/{#TemplateId}'],
['validationType' => 'always', 'resourceType' => 'AiTemplate', 'arn' => 'acs:vod:{#regionId}:{#accountId}:aitemplate/*'],
],
],
];